Jump to content

convert sysex to xml


julienvoirin

Recommended Posts

Dear programmers

I discovered some months ago this now amazing AU plug in mimicing the Roland Juno 60 :

http://kunz.corrupt.ch/products/tal-u-no-lx

I do not have a Juno 60, but a 106, and i tried some patch on both Juno and the plug in, and the result is amazing ! it does well the job !

moreover i A/B tested the chorus versus a real Juno hardware chorus, and it sounds exactly the same !

But back to my question :

i would like to convert my Juno 106 sysex patch into xml files used by the plug.

How can i do ?

the juno uses 24 bytes sysex message and the structure of the plug setting is the following :

TAL Preset:

<?xml version="1.0" encoding="UTF-8"?>

<tal curprogram="55" version="1">

 <midimap>

   <map param="14" controllernumber="1"/>

 </midimap>

 <programs>

   <program programname="Startup" category="Lead" dcolfovalue="0"

dcopwmvalue="0"

            dcopwmmode="1" dcopulseenabled="0" dcosawenabled="0"

dcosuboscenabled="0"

            dcosuboscvolume="1" dconoisevolume="0" hpfvalue="0"

filtercutoff="0.328000009"

            filterresonance="1" filterenvelopemode="1" filterenvelopevalue="0"

            filtermodulationvalue="0" filterkeyboardvalue="1"

volume="0.548000038"

            masterfinetune="0.5" octavetranspose="0.5" vcamode="0"

adsrattack="0"

            adsrdecay="0.568000019" adsrsustain="0" adsrrelease="0.444000036"

            lforate="0.604000032" lfodelaytime="0" lfotriggermode="1"

lfowaveform="0"

            chorus1enable="0" chorus2enable="0" controlvelocityvolume="0"

            controlvelocityenvelope="0" controlbenderfilter="0"

controlbenderdco="0"

            portamentointensity="0" portamentomode="0" arpenabled="0"

arpsyncenabled="0"

            arpmode="0" arprange="0" arprate="0" voicehold="0"

miditriggerarp16sync="0"

            midiclocksync="0" hostsync="0" maxpoly="0.454545468"

keytranspose="0.5"

            lfomanualtriggerenabled="0"/>

 </programs>

</tal>

the idea is to read the sysex and replace each number in " " by one byte and save the result as a file with an extension.

i can code stuff for MIOS but i am rather newbie on computer. I must work on Mac.

Edited by julienvoirin
Link to comment
Share on other sites

Did you already try to contact the developer of this software?

You need to know how the values are scaled in this XML file in relation to a Juno106

I guess that writing a conversion script would also be interesting for him...

Best Regards, Thorsten.

Link to comment
Share on other sites

Hi Thorsten :)

thanks a lot for your answer.

to contact the developer

Yes i contacted him and he gave me the xml structure presented in the first post.

I guess that writing a conversion script would also be interesting for him/quote]I guess too

you know what, I have been thinking to the old perl script LOL (hex2syx).

after some research and some lessons on the xml, i think that i only need a script capable of parsing data (the hex in Sysex) and place them into some frames in a text file, isn't ?

Link to comment
Share on other sites

Yes... and you don't need a (complicated) library to generate XML, just output the text into a file.

Example:


my $outfile = "myfile.xml";
my $dcolfovalue = 10;
my $dcopwmvalue = 20;


open(OUT, ">${outfile}") || die "ERROR: cannot create ${outfile}!\n";

print OUT <<HERE;
<?xml version="1.0" encoding="UTF-8"?>
<tal curprogram="55" version="1">
<midimap>
<map param="14" controllernumber="1"/>
</midimap>
<programs>
<program programname="Startup" category="Lead" dcolfovalue="${dcolfovalue}" dcopwmvalue="${dcopwmvalue}"

...

</programs>
</tal>
HERE

close(OUT);
[/code]

replace the "..." by the additional parameters (I think that you got the point)

And use variables instead of static numbers - the variable values have to be derived from the SysEx... somehow.

And see http://www.perl.org for free books about perl which will help you to learn this (simple but powerful) programming language.

Especially the "perl cookbook" gives a lot of code snippets for many purposes.

Alternatively use the docs which are already installed on your computer (type "perldoc") - I learned perl based on these manuals.

Best Regards, Thorsten.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...