christofmuc / KnobKraft-orm

The KnobKraft Orm - The free modern cross-platform MIDI Sysex Librarian
GNU Affero General Public License v3.0
194 stars 25 forks source link

Support Yamaha FS1r #73

Open christofmuc opened 3 years ago

christofmuc commented 3 years ago

The documentation is available, e.g. here: https://soundprogramming.net/manuals/Yamaha_FS1R_DataList.pdf

The FS1r also mimicks as a DX7, so maybe that should be done first.

It is currently not possible as an adaptation, but we need the code that I made for the refaceDX, which is a Yamaha and uses the exact same concept of addresses and stream dumps. So this is on hold until we get the right capability implemented.

markusschloesser commented 3 years ago

https://github.com/eclab/edisyn might be helpful, a full editor for (amongst others) the fs1r, Apache 2.0 license

mslinn commented 11 months ago

@markusschloesser The Edisyn docs go into detail about how it does not support Windows very well due to issues with Java MIDI on Windows. :(

markusschloesser commented 11 months ago

@mslinn I am aware, but mostly had it working a while ago, but yeah, that and the stupid Oracle licensing mess, is meh. What also kept me from using edisyn in the past, that it did not have a librarian, hence this GH issues, but iirc that has changed, not sure however if for all synths

christofmuc commented 11 months ago

Actually, the implementation of the adaptations should by now allow to implement the FS1r, even if it is a complex synth. I made a refaceDX adaptation to test the Yamaha protocol, and I think they are all very similar to each other.

christofmuc commented 11 months ago

The document can be found at the Yamaha site at https://usa.yamaha.com/files/download/other_assets/4/317954/FS1RE2.PDF

markusschloesser commented 11 months ago

i tried out the new plugin functionality of chatgpt and asked some (hopefully) good questions, this is the result: https://chat.openai.com/share/f2de7acd-8eff-4781-a04b-8f2b113dd62b Is this something worth proceeding with, or rather not?

christofmuc commented 11 months ago

Hm, not too bad, but also still very generic and not really based on the FS1R. The main challenge with the Yamaha (and Rolands) is to actually understand the data format, as they are so convoluted.

We usually want to ignore multi modes and rather just have the synth in single mode, and then determine what parts of the messages make up a single patch. Mostly 4 voices here on the FS1R, but not knowing the synth I have no idea what I am looking at in the documentation, It has 4 different native bulk dumps - but which 4?

markusschloesser commented 11 months ago

you mean this? 3.2 Bulk Data FS1R transmits and receives 4 kinds of bulk data (1- 4, FS1R native) in addition to reception of Yamaha DX series' bulk data (5-6, VCED and ACED), with "Receive Bulk Dump = on" and Device Number contained in System Exclusive massages matches the FS1R Device Number setting. On reception of a request, FS1R transmits out the requested parameter change.

  1. Performance bulk dump
  2. Voice bulk dump
  3. Fseq bulk dump
  4. System bulk dump
  5. DX Series VCED bulk dump
  6. DX Series ACED bulk dump

Page 13 of the normal manual specifies this:

image

So 1. consists of 4 x 2. plus 3.

For now I would leave neglect 5. and 6.

I'll try to feed this into ChatGPT and report back (btw I also tried out Bard and right now it's imho completely BS)

christofmuc commented 11 months ago

That's very similar to the Roland format with 1 performance and 4 tunes, and potentially sfx and other blocks added.