LeJimme / pcsets

Automatically exported from code.google.com/p/pcsets
0 stars 0 forks source link

Full chromatic sets normalizing to: 123456789AB0 (expecting: 0123456789AB) #2

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
What are the steps to reproduce the problem?

1. Instantiate any pitch-class set with all 12 pitch-classes/tones:

    s = PcSet('0123456789AB')

2. Normalize the set:

    s = s.normal()

3. print the set [or return the string with: str(s)]

    print s

Or combine the steps into something like:

   str(PcSet('6789AB012345').normal())

   which returns: '123456789AB0'

What is the expected output? What do you see instead?

    expected:    0123456789AB
    but getting: 123456789AB0

What version of the product are you using? On what operating system?

    version: pcsets 2.0.2

Please provide any additional information below.

    I think the normal form of the full chromatic set would be the same as its prime form, starting at 0 and ending with B, but the normal() method returns the chromatic set starting at 1 and ending with 0.

    If you are open to the idea, I'd be glad to fork your project and try to resolve the issue - I am in my final term studying Computer Science at CSU Chico and formerly earned a bachelors of music in Music Theory at SFSU. 

Original issue reported on code.google.com by OrtalisM...@gmail.com on 15 Feb 2013 at 2:37

GoogleCodeExporter commented 8 years ago
A simple workaround is to just zero() the set instead of calling normal(), or 
to zero() after calling normal() - if len(str(<your set>)) == 12.

Original comment by OrtalisM...@gmail.com on 15 Feb 2013 at 2:52

GoogleCodeExporter commented 8 years ago
Or else the normal form of the full chromatic set would begin with the first 
pitch-class entered.
Example:
    str(PcSet('6789AB012345').normal())
    would return: '6789AB012345'

Original comment by OrtalisM...@gmail.com on 21 Feb 2013 at 8:58