Making a non-12-tone scale
I’m working on a patch to play non 12-tone scales. I have to make an expr that can convert midi-ints to frequency (like the mtof-object), but in a way, so that I can decide how many tones there’s gonna be (with logarithmicly equal space between them). Something kind of like:
440 * (2^(x/y))
…where x is the midi-int and y is scale. I’ve tried and tried with the expr’s – but just got lost.
Can anyone please help me on that one? :-)
Thanks in advance!
You could use [expr (pow(2.,(($f1-69.)/12.)))*440.] and change the 12 to the number of equal tones you want per octave. You can also change the 69 and 440 to set the reference midi note and pitch in Hz should you need to.
A maybe less elegant, but very easy and foolproof way to do this without any math whatsoever would be to combine a [scale] object with a [mtof]. The [scale] does your scaling, the [mtof] the conversion from intervals to frequencies.
For example, if you use a [scale 0 100 60 72] attached to an [mtof], you divide every octave in 100 steps of equal intervals and define 0 as middle C. -100 would then be C3, 200 would be C6, -25 would be A3, and 10 something slightly higher than a C#4.
(If desired, you can also change the base of [mtof].)
[mtof] can be a really useful object if you think of it not just as a "midi note to frequency" device, but as a general-purpose linear-logarithmic converter.
P.S. Of course the fun only really starts as soon as you begin dividing the octave in non-whole numbers (yay for dividing an octave into pi parts!), or divide other (maybe huge) intervals – all in order to get away from that boring octave identity.
Thank you both so very, very much! :-D
Very strange atmospheres are about to dwell in my apartment……..
Nice clear explanations of two different ways to think about this. will be fun to experiment!
If you find something that pleases your ear Mr. M, please put it up. PI parts, probably been tried with no success, but what if that’s the key to the ultimate pop music crackrock…
Forums > MaxMSP