Author Topic: How does DX7 conversion work?  (Read 4972 times)


  • Team member
  • *
  • Posts: 14
    • View Profile
How does DX7 conversion work?
« on: March 04, 2021, 04:00:05 PM »
I know that the preenfm2 is not supposed to be a Yamaha DX7 emulator, but still, the functionality of translating DX7 Sysex files into the PreenFM2 format is one of the attractive features.  What I would like to know is how this conversion works.

So I can try to get a bunch of patches, look at their values, import them into the preenFM2, and then look at their values to figure it out but it seems tedious for two reasons:  If I just download some DX7 patches, I need to import them somewhere where I can see the values, and ideally I want a script that can just convert them, but I can't find one, and I don't understand sysex enough to code it myself.  Dexed doesn't display values in a nice way, sadly.  Secondly, I can't get preenfm2controller to compile (I gues I'll manage someday), and I therefore would have to load the stuff onto the preenfm2 to see the values.  Tedious.

I tried to look at the preenfm2 source code to find where the DX7 sysex file conversion takes place.  I am too stupid to find it.

So my question is: How does the conversion work?  Can you document this?  Where in the source code can I find where this happens?

Furthermore, since there are only two key level scaling (midi note scaling) sources instead of 6 from the original DX7 can't possibly be respected, can they?

Some of the questions I asked can be answered by trying it out myself simply, I know, I still have to do that, sorry.


  • Administrator
  • Hero Member
  • *
  • Posts: 2259
    • View Profile
Re: How does DX7 conversion work?
« Reply #1 on: March 05, 2021, 08:46:39 AM »


The answer to your question in bold is :
I used some code from Hexter, a PC DX7 emulator that read the DX7 sysex files.
I retrieve the DX7 parameters and map them to preenfm parameters.

The best way to understand all the preenfm params is to look at the editor.

As the preenfm was not designed at all to be DX7 compliant the result is far from perfect.