KODAMO logo
Forum index > General discussion > Microtuning/Scala support/.tun

Microtuning/Scala support/.tun

AuthorMessage
DX100
Hi,

It's good to see some microtuning features but this machine would be be INCEDIBLE if it could import FULL microtonal tunings from Scala files .scl
or .tun files?
KODAMO
Hi,

I agree that would be nice. It wasn't implemented since Scala files aren't very easy to parse and convert, but it may come in a future firmware upgrade!
DX100
Wow!
This is really good news, I just noticed yesterday that Scala can export .xml files if that makes things any easier.
noyzelab
hi!

this looks like the FM synth of my dreams. i'm seriously considering this machine for my studio, and full keyboard microtuning is a highly desirable feature for me. there are some examples of Scala parsers online but i can't post any links into forum replies, so you'll have to web search =>

C++ library for interpreting and using AnaMark Tuning files (.tun V0.0 - V2.0), multiple scales files (.msf), and Scala files (.scl and .kbm).

Observable dot com Parsing Scala Tuning files (.scl)

music21 at web dot mit dot edu

haskell dot org Music.Theory.Tuning.Scala

Tarsos: Software for Pitch Analysis is open source java that contains a Scala import function is on github

Scala website also details the .scl file format

as DX100 mentioned, there is also the .tun and .xml file format, but there are also other formats including the MIDI Tuning Standard [MTS] for microtuning dumps and messages, both full keyboard and octave based. MTS support would also be highly desirable along with direct import via .scl & .tun format files. some useful links to MTS info =>

microtonal-synthesis dot com

also midi dot org has the full MTS spec in MIDI 1.0 of course, but you will need to register to get the file..

i've recently made an open source repository which contains the entire Scala scale library converted to every format that supports full keyboard microtuning =>

gitlab dot com forwardslash noyzelab

from within Scala you can list all supported tuning dump types with the following command => show synthesizers

as you will see from the displayed list, the one for full keyboard MTS support is type 103.

hope some of this is useful? and thanks again for considering going the distance with implementing full keyboard microtuning support.

cheers
dave
KODAMO
Hi,
Thank you for all the details!

I just looked at the SCL format documentation this night and wrote a parser for it.

Works nicely - the only limitation to avoid modifying the EssenceFM engine is 32 notes per scale max, and the scale frequency multiplier should be close to 2 (a slight deviation from that is possible via the "Octave Stretching" parameter).

The new firmware bringing this feature and much more (MIDI file player and old-school FM mode without interpolation) will come in the next days :)
Last edited on 2020-05-21 10:19:05
noyzelab
Hi thanks for the reply!

Can you explain about the restriction to 32 notes and the freq multiplier?

Another resource to check out is an MIT licensed open source .scl & .kbm at www dot surge dash synth dash team dot org they are also working on the Dexed program, and setting up microtuning to work in it..

".. core tuning implementation from surge and converted it into a standalone MIT licensed C++-14 header only library. We used this to build the tuning workbench synth and also to add tuning to our dexed form. And soon we will back-port it into surge.

But you can use it today!

So if you are a developer writing a virtual instrument, and you want to add support for SCL/KBM tuning, simply add our code to your source tree and use our data structures. We provide functions that given an SCL and KBM file or data source will give you an object which tells you the frequency of the entire keyboard in a mapping aware fashion."

hope that is useful reading.

cheers!
dave

Reply