surge-synthesizer / tuning-workbench-synth

A simple JUCE synth which uses our tuning-library
GNU General Public License v3.0
48 stars 8 forks source link

Feature request: Microtonal MIDI translation / relay using pitch bend #138

Open mark-orion opened 3 years ago

mark-orion commented 3 years ago

This is a wonderful plugin and an excellent design to work with microtonal scales. It would be great if there would be an option for using it as a microtonal MIDI relay in addition to the synth functionality. Scala has such an option that maps incoming MIDI notes to MIDI / pitch bend combinations so that non-microtuning capable synths can be used. The problem with Scala is that it is very difficult to get running on Linux - mainly due to it depending on very outdated ADA libraries. However, a tool that can act as this kind of relay would make an excellent plugin.

baconpaul commented 3 years ago

Hi!

First: I'm glad you like TWS. Thank you for the kind words.

So quite a few folks have tried the midi-remap approach and found it is very hard to get that reliable. You end up having to deal with complicated channel mapping, it interferes with MPE, etc... and so we have generally pushed to working with projects that take the approach of either adding tuning to the entire system through some non-midi route or add it to each VI. That's why we made our tuning-library MIT licensed, for instance.

If someone wanted to write a midi translator, we have the core API to do it (basically you take midi notes in, load a tuning, call logScaledFrequencyForMidiNote, multiply by 12, send the fractional part as pitch bend) but right now we don't plan to add this to TWS nor to write that plugin.

If you want to write that plugin though, please do use the tuning library and hit us up for help! Happy to offer advice to a dev who wants to tackle it.

Thanks for the comment.