Adding user defined scales to Dr Chaos Max4Live device
Hi everyone,
I'd like to add scales of my own design to the preexisting set of scales available in the Dr Chaos M4L device that is included with Live. I have created my own version of the device for experimentation, but have not had success. As far as I can tell, the scale feature is located in a bpatcher. I have not been able to edit this bpatcher or find where it exists on my hard drive.
I am assuming that the preexisting scales are defined on a list somewhere that is associated with the bpatcher and that this list can be extended by simply adding other scales to it. Is this correct?
There is a chromatic scale included in the preexisting set. Theoretically this could serve as a mechanism for introducing any other scale. Unfortunately, this is not a true chromatic scale since it only spans the distance of a perfect 5th for each key setting and therefore is inadequate for what I would like to do.
I am including screenshots of the Dr Chaos device and of the scale selection menu.


Best,
Julius
I would assume that custom1 - custom6 at the bottom of the scale list is intended to store user-defined stuff. Maybe it'd be a good idea to check the device documentation.....
I couldn't find any documentation for this device, but I did take a poke around out of curiosity. I don't think the custom scales are user configurable, but I may be wrong on that count. In any case, I think I found a way for you to edit the scales yourself.
To get into the bpatcher with the scale info, this series of screenshots might be helpful.
If you open up the device and unlock it, right click on the bpatcher (the transparent one containing the text with the scale names) > Object > New View of Embedded Patcher.

Inside there, unlock/move out of presentation mode and look for the coll connected to the scale live.menu:

Double click on the coll object:

It looks like these correspond to the notes of the scale.
I am assuming that the preexisting scales are defined on a list somewhere that is associated with the bpatcher and that this list can be extended by simply adding other scales to it. Is this correct?
So this seems right. You should be able to edit any of the lines in this coll and it'll change the scale at that index in the list of scales. :) If you wanted to change custom 6, for example, I'd change the values after 30. I would strongly suggest keeping the scale the same length as all of the others in the coll.
I see why the chromatic scale option wouldn't work for what you're trying to do, now that I'm looking at it. I believe the device uses the root note of the scale/the key to determine where to begin on the list of notes. (I learned this by following the send/receive ---from_key. Useful tip: you can double click on one of the pairs in a send/receive and find all the places the matching pair are used.) Back to the details of my findings... If you had the chromatic scale and picked a root of C, the 31st line of the ---scales_multi is selected, then the first 9 values of those values are the pool of ---note_possible.

This might be good information for you if you edit the ---scales_multi coll because now you know that changing the root will shift your offset into the custom scale you write out. Maybe that will be useful for you.
I hope this helps and makes sense!
Beautiful work, Isabel.
The other elephant, sleeping quietly in the corner, involves the use of the phrase "my own scales." Should that interest run to non 12-tone equal temperament (or !12tET, as we like to say) to things such as historical temperaments, non-western scale systems, different equal divisions of the octave (EOD) scales and so on, you have a bit of a rougher slog. If not, Isabel has armed you for your journey, and you owe her a festive libation of her choice at some future point.
If you write your own synths in Max, it's easy. You calculate the frequencies for each key and bung that value into a coll which replaces any mtof objects you have in your patch. If you're hanging a softsynth off the end of your patching, my suggestion would be to find a softsynth which supports !12tET out of the box and send your scales to it. You could spend the next N part of your life calculating note + pitchbend offset, but um... well, I don't do it (although perhaps the arrival of MPE/MIDI 2.0 will encourage me to change my mind).
Best of all, finding a softsynth that lets you work with the enormous and sprawling library of scales that Scala users have created will just send you on your way with a minimum amount of mess or fuss — I have yet to imagine a scale that Scala users haven't already thought of and created.
http://www.huygens-fokker.org/scala/
Excellent point ;)
Thanks Isabel and Max for your feedback!
Isabel, your detailed description has made everything clear. I now know how to attain my desired result. Thanks again for your help!