[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [sc-users] Re: Tunings beyond 12 notes..



My take: it's about creating a note structure that is different from and
largely independent of the note structure represented by the piano
keyboard. Of course what the piano keyboard represents has evolved over
time but has settled more-or-less permanently, conventionally and
conveniently where it is -- equal temperament where each of 12 notes is
distributed equidistantly within an octave (that has a frequency ration
of 2:1.) This octave ratio and the distribution are conventions upon
which our Western music has been based since, for the sake of argument,
Bach.

Other cultures have different conventions regarding "octave" and
distribution intervals of notes in between -- number of notes, distance
between, equal or not. And there are also, I guess you'd call them,
synthetic systems that for, say, mathematical reasons are put forward as
viable or maybe just interesting alternatives. For example, the one that
interested me was created my Stockhausen and was described as having an
octave ratio of 5:1 with 25 equally spaced notes between.

Part of the difficulty, as I understand it (which is pretty sketchy) has
to do with the hierarchy of SC algorithms that compute these matters and
the odd bits of code that might limit the flexibility in describing and
generating arbitrary alternatives, synthetic or cross cultural or 12ET.

I stayed away from the words tuning and scale because they are probably
terms whose meanings are themselves fraught with implication as well as
denotation.

...edN

> Marigold Maripol <mailto:marigoldmaripol@xxxxxxxxx>
> December 18, 2016 at 7:37 PM
> This is quite a thread all-of-a-sudden... can someone explain this for
> someone that doesn't know anything about tuning or Supercollider?
> (Like me, for example)
>
>
>
>
>
> On Sun, Dec 18, 2016 at 11:38 AM, Tim Walters
>
> _______________________________________________
> sc-users mailing list
>
> info (subscription, etc.):
> http://www.birmingham.ac.uk/facilities/ea-studios/research/supercollider/mailinglist.aspx
> archive: https://listarc.bham.ac.uk/marchives/sc-users/
> search: https://listarc.bham.ac.uk/lists/sc-users/search/
> Tim Walters <mailto:walters@xxxxxxxxxxxxxxxxxx>
> December 18, 2016 at 11:38 AM
>
>
> I don't think it will take long. Once I finish my annual holiday track
> (all-SuperCollider this year due to lack of studio!), I will pull the
> latest version and work on it.
>
>
> _______________________________________________
> sc-users mailing list
>
> info (subscription, etc.):
> http://www.birmingham.ac.uk/facilities/ea-studios/research/supercollider/mailinglist.aspx
>
> archive: https://listarc.bham.ac.uk/marchives/sc-users/
> search: https://listarc.bham.ac.uk/lists/sc-users/search/
> ddw_music <mailto:jamshark70@xxxxxx>
> December 18, 2016 at 6:09 AM
> Tim Walters wrote
>> I apologize in turn for getting hasty and defensive about code I haven't 
>> touched since 2009. It might not even be my issue! (Yeah, right...)
>
> For my side, I saw the curious definition of stepsPerOctave and assumed the
> rest of it wouldn't work for other than 12 steps -- but the end result is
> correct.
>
> No rush on a fix, I think -- ~note is very rarely used, so users won't see
> the issue unless they hack deeper into Event's calculations than users
> typically do.
>
>
>>> When Partch divided the octave into 43 equal steps, 
>> Partch's steps aren't equal. I only mention that so that I can be right 
>> about *something* today.
>
> Good point, thanks for the correction. (Obviously I never studied Partch's
> theory carefully.)
>
> hjh
>
>
>
> --
> View this message in context: http://new-supercollider-mailing-lists-forums-use-these.2681727.n2.nabble.com/Tunings-beyond-12-notes-tp7629560p7629589.html
> Sent from the SuperCollider Users New (Use this!!!!) mailing list archive at Nabble.com.
>
> _______________________________________________
> sc-users mailing list
>
> info (subscription, etc.): http://www.birmingham.ac.uk/facilities/ea-studios/research/supercollider/mailinglist.aspx
> archive: https://listarc.bham.ac.uk/marchives/sc-users/
> search: https://listarc.bham.ac.uk/lists/sc-users/search/
> Tim Walters <mailto:walters@xxxxxxxxxxxxxxxxxx>
> December 17, 2016 at 9:33 PM
> On 12/17/16 5:05 PM, ddw_music wrote:
>> Tim Walters wrote
>>> On 12/17/16 4:48 AM, ddw_music wrote:
>>>> Lance Bantham wrote
>>>>> Tuning.all.put(\sixteenppo, Tuning.new([1/1, 25/24,10/9, 9/8, 32/27,
>>>>> 6/5,
>>>>> 5/4, 4/3, 25/18, 45/32, 3/2, 25/16, 5/3, 16/9,9/5, 15/8].ratiomidi));
>>>>>
>>>>> Scale.new((0..16), 16, tuning: \sixteenppo).stepsPerOctave;
>>>>>
>>>>> It says there are 12 steps Per Octave.
>>>> Oh. It's a bug. Tuning assumes 12 chromatic steps.
>>> No, it doesn't.
>> First, I should apologize for the heat of my reply. On a technical
>> level,
>> I'm quite sure I'm correct -- but the way I expressed it may not have
>> been
>> the most helpful.
>
> I apologize in turn for getting hasty and defensive about code I
> haven't touched since 2009. It might not even be my issue! (Yeah,
> right...)
>
> You're quite right about the problem. It's easy to fix it for ET
> scales (using the existing pitchesPerOctave variable), but less so for
> non-ET scales, which I think will require refactoring how the Scale
> and Tuning objects interact. I will look at it when I get a chance
> (although I am moving house and studio right now, so...).
>
>> When Partch divided the octave into 43 equal steps, 
>
> Partch's steps aren't equal. I only mention that so that I can be
> right about *something* today.
>
>
> _______________________________________________
> sc-users mailing list
>
> info (subscription, etc.):
> http://www.birmingham.ac.uk/facilities/ea-studios/research/supercollider/mailinglist.aspx
>
> archive: https://listarc.bham.ac.uk/marchives/sc-users/
> search: https://listarc.bham.ac.uk/lists/sc-users/search/
> ddw_music <mailto:jamshark70@xxxxxx>
> December 17, 2016 at 8:05 PM
> Tim Walters wrote
>> On 12/17/16 4:48 AM, ddw_music wrote:
>>> Lance Bantham wrote
>>>> Tuning.all.put(\sixteenppo, Tuning.new([1/1, 25/24,10/9, 9/8, 32/27,
>>>> 6/5,
>>>> 5/4, 4/3, 25/18, 45/32, 3/2, 25/16, 5/3, 16/9,9/5, 15/8].ratiomidi));
>>>>
>>>> Scale.new((0..16), 16, tuning: \sixteenppo).stepsPerOctave;
>>>>
>>>> It says there are 12 steps Per Octave.
>>> Oh. It's a bug. Tuning assumes 12 chromatic steps.
>> No, it doesn't.
>
> First, I should apologize for the heat of my reply. On a technical level,
> I'm quite sure I'm correct -- but the way I expressed it may not have been
> the most helpful.
>
>
>>> 	stepsPerOctave {
>>> 		^octaveRatio.log2 * 12.0
>>> 	}
>> octaveRatio is an instance variable that very well might not be 2.0. See 
>> the stretched/shrunk Tuning examples at the bottom of Scale.sc.
>
> I understand the purpose of octaveRatio here, but...
>
>
>> This method is exactly analogous to Event.stepsPerOctave, and is used in 
>> its place when the event contains a Scale object. Event needs to know 
>> the the stretched/shrunk octave amount *in semitones* to calculate 
>> ~midinote and therefore ~freq. What's so "incredible" about that?
>>
>> I find the name "stepsPerOctave" to be misleading ("semitonesPerOctave" 
>> might be better), but it long predates Scale/Tuning.
>
> I'm afraid, here, your understanding is not quite correct.
>
> In Event, stepsPerOctave is defined as the size of the chromatic gamut used
> by ~note.
>
> When Partch divided the octave into 43 equal steps, stepsPerOctave should be
> 43. In Lance's case, stepsPerOctave should be 16.
>
> f = { |event|
> 	event.make {
> 		~note.value.debug("note");
> 		~midinote.value.debug("midinote");
> 		~freq.value.debug("freq");
> 	}
> };
>
> e = (degree: 5, scale: (0..15), stepsPerOctave: 16).play;
> f.(e);
> note: 5
> midinote: 63.75
> freq: 324.90175210669
>
> ^^ "note" is expressed in terms of the 16ET division.
>
> Scale and Tuning define stepsPerOctave always in terms of 12ET -- that is,
> Scale's stepsPerOctave applies to the ~midinote level, not the ~note level
> as it's used in Event.
>
> Tuning.all.put(\et16, Tuning.et(16));
> z = Scale.new((0..16), 16, tuning: \et16);
> e = (degree: 5, scale: z).play;
> f.(e);
> note: 3.75
> midinote: 63.75
> freq: 324.90175210669
>
> ^^ But using Scale, "note" is expressed in 12ET. The only difference, in
> this case, between note and midinote is that midinote adds an octave offset.
>
> You end up with the same frequency, but the internal calculations are
> different -- and, because Scale changes the meaning of stepsPerOctave, then
> you end up with the counterintuitive result that asking a Scale based on a
> 16-note gamut for its stepsPerOctave, you get 12 rather than 16.
>
> We've gotten away with it because the final frequency is OK, and because
> basically nobody ever uses the ~note level. But if somebody created a custom
> event prototype depending on the original meaning of ~note and
> ~stepsPerOctave, she would be in for a surprise when using it with Scale.
>
> IMO we shouldn't be "getting away with it." Scale should not redefine
> stepsPerOctave. stepsPerOctave was never meant to be "12ET semitones per
> octave."
>
> hjh
>
>
>
> --
> View this message in context: http://new-supercollider-mailing-lists-forums-use-these.2681727.n2.nabble.com/Tunings-beyond-12-notes-tp7629560p7629584.html
> Sent from the SuperCollider Users New (Use this!!!!) mailing list archive at Nabble.com.
>
> _______________________________________________
> sc-users mailing list
>
> info (subscription, etc.): http://www.birmingham.ac.uk/facilities/ea-studios/research/supercollider/mailinglist.aspx
> archive: https://listarc.bham.ac.uk/marchives/sc-users/
> search: https://listarc.bham.ac.uk/lists/sc-users/search/


_______________________________________________
sc-users mailing list

info (subscription, etc.): http://www.birmingham.ac.uk/facilities/ea-studios/research/supercollider/mailinglist.aspx
archive: https://listarc.bham.ac.uk/marchives/sc-users/
search: https://listarc.bham.ac.uk/lists/sc-users/search/