Hi!
Ardour (and Mixbus becoming better and better …
But one more thing can do even better
All known about many musical tunings (https://en.wikipedia.org/wiki/Musical_tuning),
but not many people use something besides Equal temperament.
And for those who can’t work with this always not fully tuned tuning system
very important anything that might help use a more proper tuning.
Of course this work more for external instruments and plugins,
but maybe it would be better if this will be a consistent solution to the whole ecosystem.
As I understand it, this is more an architectural decision that is not hard to implement at the host level,
and all the hard work is done by plugins.
For the simplest case (for chromatic scales) this can be done as follows:
- on host level
- in session settings
- global settings about used tuning system
- preset selector (Equal, Just intonation, Pythagorean, ...)
- editor
- scale settings
- list of note's ratios (may be from scala file (http://www.huygens-fokker.org/scala/scl_format.html) (for example: just-intonation.scl)
- root note (for example: C)
- frequency settings
- note (for example: A4)
- frequency in Hz (for example 440)
- scale settings
- global settings about used tuning system
- in session settings
- on LV2 level
- transfer 1.1.1.2 data to plugin
- frequency table (note->frequency) generator library
- on plugins level
- in settings
- switch for using host settings (via LV2) OR own settings
- editor (enabled if own settings ON) (as 1.1.1.2)
- use 2.2 instead hardcoded Equal temperament frequencies
- in settings
- plugins for scale correction on alien devices (hardware or software)
- for those that implements MIDI Tuning standard support
- in settings
- standard's selector (for example: "SCALE/OCTAVE TUNING 2-BYTE FORM (REAL-TIME)")
- generate SYSEX
- send it to the device (hmm ... at what point ?)
- in settings
- for any equal tuned, via Pitch Bend correction (only 1 voice, but nice for mono synth, ...)
- in settings
- device Pitch Bend range (for example: 2 semitone)
- in realtime for each note generate Pitch Bend correction value (ideally, relative to the specified)
- in settings
- for those that implements MIDI Tuning standard support
For a more general case (not chromatic scales) need to add a keyboard mapping (as in scala .kbm files)
Of course (4) can be implemented before (1)-(3), and subsequently to use the new features of LV2
Sorry for formatting, hierarchy as HTML lists looks strange