preenfm Forum

PreenFM => preenfm2 and preenfm3 => Topic started by: zmberber on March 04, 2021, 04:00:05 PM

Title: How does DX7 conversion work?
Post by: zmberber 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.
Title: Re: How does DX7 conversion work?
Post by: Xavier on March 05, 2021, 08:46:39 AM

Hi,

The answer to your question in bold is :
https://github.com/Ixox/preenfm2/blob/master/src/utils/Hexter.cpp
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 (https://github.com/Ixox/preenfm2Controller).

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

Best,

Xavier