Forum index > Feature requests

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 :)
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
KODAMO
Thanks for the lib, unfortunately it's not readily useable for us as we use really low level C with a small subset of C++ and assembly.

32 note limit sounded just like a sweet spot - not too much to process, and good margin over the standard 12-note scales.
DX100
Please re-consider using FULL microtuning, it would really propel this instrument into the modern new wave of synths coming out.

I highly recommend checking out the free excellent app WILSONIC on ios to get a good taster of what you can do with FULL microtuning, it's really easy to use.
DX100
Is there a chance the cents range can be increased past 1200, to the maximum possible range, this limitation is preventing some really amazing tuning possibilities from being made?
DX100
The tuning screen on the Essence is ALMOST amazing, what we need is something very simple, where any key can be any frequency so ALL tuning possibilities can be possible.
I think the implementation can be very simple, for every key selected for tuning, the coarse note can first be selected c4, e6, d#4 etc and then fine tune?
KODAMO
You're right that values greater than 1200 could be used to give more options (octave ratios different than 2).
Maybe in a future firmware upgrade.
Allowing to define each note's frequency (or relative frequency to the equal temperament) would be possible, although very tedious to do manually
noyzelab
hi, have u thought further about making full keyboard tuning via scala file import?

the 32 note limit is useful up to a point, but is quite restrictive. the scala scale library has lots of scales with more than 32 steps, all the way to 128 steps. consider for example 53EDO where there are 53 notes per octave, a very popular tuning. and anyone wishing to emulate the nrussian ANS synthesizer
would require 72EDO with 72 notes per octave.

something also to consider is loading in keymap .kbm files, also discussed on the scala site. these specifiy the actual keyboard mapping, allowing for very easy switching of root key & frequency. eg, its very easy then to specify in the .kbm that you want to tune to something other than A=440hz. the benefit is it can be done via the scale tuning, rather than having to adjust the master tune for the whole instrument.
Kopplog
I totally agree on the usefulness of heaving the EFM beyond the 32-tone limitation. Now, this machine is going to get a historic behemoth for sound design and audio science outside the 12-edo realm.
Hoping for the best!

Ps. In fact, that is why I purchased it, aside it's MPE capabilities.
noyzelab
i just saw on the GS thread in bug fixes => [Scala Import] Some Scala files weren't imported correctly

thats great to hear. will you also be implementing full keyboard microtuning in this release?

it would also be great and speed up workflow considerably if it was possible accept midi tuning standard [MTS] dumps, which can be specified as 12 note octave as well as full keyboard tunings. i am lucky to be one of the beta testers for the new microtuning plug in from oddsound called MTS-ESP => https://oddsound.com/ which would be able to control the EssenceFM via midi MTS dumps really nicely.
KODAMO
We're doing some tests currently, non-realtime MTS dumps should be supported soon.
You'll have to be in Global > Tuning, then receiving the SysEx will overwrite the currently selected scale.
When receiving MTS data, the scale will automatically switch to "Advanced Mode", which allows separate tuning for all 128 notes.
DX100
Hi,
This is excellent news, we REALLY need full tuning on this machine and not the 32 note limit, a lot of Yamaha fm synths had full microtuning like the TX81z, TX802, Dx7 E! etc

This machine is going to awesome!
noyzelab
thanks that's great, really looking forward to this!

Reply