xenharmonic-devs / scale-workshop

Design and visualize microtonal scales and play them in your web browser. Export your scales for use with VST instruments. Convert Scala files to various tuning formats.
MIT License
80 stars 12 forks source link

Feature request: exporting scales to MTS "Bulk Tuning Dump" and upload to connected MIDI instrument #387

Open tobia opened 1 year ago

tobia commented 1 year ago

There is a MIDI standard for micro-tuning hardware synths, called the MIDI Tuning Standard or MTS (free registration required to download it.) In particular the "Bulk Tuning Dump" is a SysEx message to upload precise frequencies for all 128 MIDI notes in bulk to a synth. Several devices already support this message, for example Audiothingies MicroMonsta 2.

Would it be possible to use Scale Workshop's MIDI capabilities to upload the current scale directly to a hardware synth by crafting the appropriate SysEx messages?

NB. The original text of this issue was all over the place, because I didn't know about MTS. My apologies.

tobia commented 1 year ago

Slightly OT: here's my favorite demo (not mine) of this small synth. It's not using MPE nor custom scales, but I find the sound quality quite impressive.

frostburn commented 1 year ago

Scale Workshop uses WebMidi under the hood and it should be capable of sending SysEx messages. (I'm pretty sure we could still use the browser MIDI API directly if WebMidi fails.)

I don't own MPE devices myself which makes development quite difficult, but adding MPE support to SW would certainly be nice. Marking this issue as help wanted in case there's a developer out there with compatible hardware.

znmeb commented 1 year ago

Scale Workshop uses WebMidi under the hood and it should be capable of sending SysEx messages. (I'm pretty sure we could still use the browser MIDI API directly if WebMidi fails.)

I don't own MPE devices myself which makes development quite difficult, but adding MPE support to SW would certainly be nice. Marking this issue as help wanted in case there's a developer out there with compatible hardware.

Many software synths support MPE as well as MTS, including some free ones.

MPE: https://support.roli.com/support/solutions/articles/36000037202-compatible-synths-daws-and-instruments MTS: https://en.xen.wiki/w/List_of_microtonal_software_plugins

vsicurella commented 1 year ago

Just to be clear, MPE and MTS would be two separate features. I'll treat this issue as an MTS request as per the title.

Good news - I have working and tested code on exporting SysEx Bulk Tuning dump messages. This can be loaded into some desktop MIDI software (like MIDI-OX) to be sent to your synth. It shouldn't take too much more work to add some controls to allow you to send the message directly to your synth from SW :)

frostburn commented 1 year ago

I don't have SysEx cabable devices so I can't verify it, but this little web app for converting scl to syx just dropped in XA Facebook group: https://scala2mts.vercel.app/

tobia commented 9 months ago

Sorry for disappearing for a year. Yes, this issue was about MTS. I didn't realize that MTS was a thing and that was exactly what my synth supports. I can confirm that the https://scala2mts.vercel.app/ app works. Also I see that @/vsicurella wrote an MTS exporter that was just merged. Thank you!