attilammagyar/js80p

Microtonal support

Closed this issue ยท 6 comments

have you considered adding microtonal support

Either adding the MTS-ESP Library

or the Surge Synth Team Tuning Library

MTS-ESP would be ideal

This MTS-ESP lib looks like it takes all the work off the shoulder of the plugin developer, and indeed I was considering adding some kind of tuning support, so I think I'm going to implement it some time in the upcoming weeks. Thank you for suggesting it!

Please let me know when this is implemented. I am using Linux Debian 12. Looking forward to testing it out.

I think this tuning thing (and the stuff that it inspired) is getting into shape. Thank you for suggesting it!

I'm planning to write some documentation, maybe make one or two new presets, do some more testing, and if everything goes well, then maybe release v2.4.0 by the end of the weekend.

I made a preview release if you want to try it. Please let me know if you find any problems.

Note:

  • the MTS-ESP1 tuning only updates when a NOTE ON event is received, and it does not change notes that are already sounding,
  • MTS-ESP2 updates tunings for every block of audio, and it changes the frequencies of already started notes.

Edit: if you want to compile it for yourself, then you can find the code on the dev branch.

I've been following this. Will test it out soon.

I haven't had an opportunity to test on Linux, however from our #Tuning channel at our Discord Server (Surge Synth Team) one of our many microtonal experts and testers with a particular nuanced understanding of MTS-ESP has offered the following initial feedback (tested on Windows):

  • Neither of the builds would load from the browser in BWS5 (the host 'sees' and lists the plugin in the browser, but cannot load it for some unknown reason), although the .VST3 could be dragged onto the host and would load from explorer.

  • Microtuning implementation is a bit peculiar in that the C:M (Oscs 1 and 2) can have MTS-ESP enabled or disabled.

  • This really should be, and needs to be, on for both oscillators when the plugin is loaded.

  • MTS-ESP microtuning is per-preset, so every time you change a patch, it resets it to 12, then you have to re-enable it for both C:M oscillators.

  • Ideally, like all of the other implementations of MTS-ESP, the instrument should recognize the presence of MTS-ESP Master loaded in the project and globally activate it in the instrument for all oscillators.

The other feedback I got was that the synth sounds very nice and that once these changes were made they'd be interested in further testing.

Thank you for the detailed info!

Neither of the builds would load from the browser in BWS5 (the host 'sees' and lists the plugin in the browser, but cannot load it for some unknown reason), although the .VST3 could be dragged onto the host and would load from explorer.

I tried a freshly installed demo version of BWS 5.0.11 on a Windows 7 virtual machine, and I could get both plugin types loaded into a session if I placed them in the standard locations.

(Not simultaneously however: BWS seems to recognize that the FST (VST 2.4) and the VST 3 are the same plugin, and the VST 3 wins. This might be because the VST 3 plugin's ID was generated from the FST's ID.)

Microtuning implementation is a bit peculiar in that the C:M (Oscs 1 and 2) can have MTS-ESP enabled or disabled.

This is intentional: this allows using different MTS-ESP modes (note-on vs. continuously updating) for the two oscillators, e.g. in split keyboard mode.

This really should be, and needs to be, on for both oscillators when the plugin is loaded.

Ideally, like all of the other implementations of MTS-ESP, the instrument should recognize the presence of MTS-ESP Master loaded in the project and globally activate it in the instrument for all oscillators.

I was not keen on turning it on by default, because the client code starts off with dynamically loading a closed source DLL/SO, and if that goes wrong in some DAW, then it would be a pain to debug. (As opposed to a bug report like "JS80P crashes when switching to MTS-ESP.")

But it seems that even commercial plugins have it turned on by default, so I guess if it's good enough for Surge, Arturia, etc. then it's good enough for me.

MTS-ESP microtuning is per-preset, so every time you change a patch, it resets it to 12, then you have to re-enable it for both C:M oscillators.

You're right, this can be annoying. I think I will modify the patch loading code to avoid overwriting a non-default tuning setting with the default one.

The other feedback I got was that the synth sounds very nice and that once these changes were made they'd be interested in further testing.

Thanks!