mtof and the new scala support

vojko v's icon

1. Is there a reason we can't load our own scala files and have to load from the scala library?

The scala library is a absolute mess, no one that does microtonal stuff doesn't really go and browse through 4000 files of absolute madness, we mostly use Scala program itself or go to the few online scala-file generators.

2. In the mtof help file, when defining your own scale as list: what is this format about?

"scale 7 128.298 0 276.357 0 545.806 0 669.366 0 784.692 0 967.096 0 2 1"

The first number (7) is the number of elements in the scale, and the floats are frequencies, but what are the zeroes and ones?

The mtof reference doesn't clear this up either:

"The first value is the count of notes, followed either by floats defining a value in cents (example: 579.47057) or a ratio of two ints (example: 5/4)."

Roman Thilenius's icon

there are enough reasons to not trust built-in stuff - if you want a custom solution, create a custom solution.

i´ve always converted scala files to lists of note numbers and then i can simply use mtof~ in existing, regular generator patches.

Wetterberg's icon

>The scala library is a absolute mess, no one that does microtonal stuff doesn't really go and browse through 4000 files of absolute madness, we mostly use Scala program itself or go to the few online scala-file generators.

ah, I thought my weaponised ADHD just kept me from being deep in the microtonal... I have the lib and can't deal with the amount of it at all.

>we mostly use Scala program itself or go to the few online scala-file generators.

ah, so you're saying that if you're in Scala (or a web generator) you can transmit that directly?

Gregory Taylor's icon

One clue: There are twice as many items in the list as there are notes in the scale, and - as the Scala format makes clear - the Scala format also supports two-integer ratios. If you specify the scale as frequencies, the second item in the list will/should be a zero; if not, it's read as an integer ratio (which is why the last two list items are 2 and 1 - [2/1 is an octave]). That way, the scale message can easily support either frequency or ratios as lists (or a mix of the two). It seems to work for me. Might not be a bad idea to include an integer ratio example like this in the help file, if this really is how it works....

Max Patch
Copy patch and select New From Clipboard in Max.

And, as an aside, I don't view the Scala library as an absolute mess; it's the shared work of a lot of different users over many years. Many of those users have differing needs and uses for the tunings they upload (i.e. not everyone wants to lay microtunings out across a 5-pitch keyboard, it's a useful place to share historical tunings or site-specific tuning data (as in the helpfile example, which looks like it's from Jaap Kunst's "Music in Java" listing), etc.. In addition, the differing rubrics for representing scales are things that have been added/updated since Manuel first set Scala up decades ago.

vojko v's icon

@roman

"i´ve always converted scala files to lists of note numbers and then i can simply use mtof~ in existing, regular generator patches."
- I am interested to see how you pulled it off with mtof~. Up until this new update I used to get frequencies out of the scala file and place them into a coll instead of a mtof.

@wetterberg
Yes, I usually go into scala and make and export a .scl or .tun file and put in in my VST or in Max. Sometimes I emit MIDI directly from Scala into Ableton but that is a real pain to do.

@gregory
Thanks, very clear info. Also love your book, can't wait for volume 2

Roman Thilenius's icon

sure coll, coll is perfect. just a list of frequencies for the range of one octave - and its name. the rest can be gathered when calling the scale.

and if you convert the Hz vales to notenumbers, you can easily perform modulations (such as fine tuning, LFOs, portamento) linear and in signal rate (before finally going to mtof~ or whatever you are using to get Hz again. note numbers are also a useful format when your target is hardware synths tuning maps or midi tuning)