I have an mks-70. Will test this tool with it soon
Did notice you have named this a “patch” while in the old Roland language this is actually a “Tone”?
The MKS-70 is like two jx-8s where the patch contains one or two tones and other patch data like tone crossfading, split etc.
Not a big deal. Just mentioning something you probably already know…
There was a bug in earlier firmware versions of mks-70 preventing you from editing both tones in a patch from midi/pg at the same time. You had to manually change between Tone A and Tone B for editing on the front panel. This was fixed in the last 1.08 update.
So it is possible to edit both tones at once now.
Wow, really impressive.
Unfortunately I do not own one of these synths.
But I wonder if it is possible to create a tool concerning a general approach for controlling synths. A tool where I can load a custom xml-template or similar of a special hardware synth; the tool creates then a gui automatically based on that template.
Just similar to Duplex.
I think there are other tools out there that kinda does this or similar stuff, for example this VSTi(?): http://www.ctrlr.org/
But if this tool would be tightly integrated with Renoise, so that you can use commands, automation etc, maybe storing the patches in the song then it would become something you won’t find elsewhere.
The sysex library tool i likely one of building blocks for this, and probably duplex. Anyway, I’m not the person to do it, so anyone feel free to pick it up
I just tested it with my mks-70. The sysex do get sent. But the synth does nothing with it.
I also have a kiwitechnics patch editor for this synth (as well as the pg800 laying around here somewhere), and with that controller it do respond to sysex perfectly. So I’m not doing something wrong here it seems.
So I did a quick monitoring of the sysex being sent, tweaking the filter cutoff to zero:
Do you mean the other command toggle which voice is being edited?
Sure, toggle button will be great. And maybe a dropdown for selecting model, or send to models.
Also maybe the xml patch/tone files (maybe I should rename them) should save both voices.
CB
Yo. Hmm never thought of that scenario, this tool is made as a substitute for us who dont have the PG-800. Don’t know if you can midi map those sysex messages, or if the PG-800 is even sening MIDI at all :-/
Could perhaps be switching between two “screens”. One Tone A and another Tone B. When using Both you perhaps see the last Tone screen you used, but any new edits will affect both tones.
In the JX10/mks70 the “Patch” is the two tones (sometimes also called upper/lower tones) and a bunch of other parameters.
Here is a picture of the “Patch” editor from Midi Quest:
3130
And some additional info from Midi Quest about the MKS-70:
Ok, starting to get a grip of this somewhat now after analyzing messages and collecting and merging info from various blogs and manuals.
So in this message:
F0 41 36 00 21 20 01 22 7F F7
F0 is start of sysex
41 is manufacturer id for Roland
36 is “Operation code”. 36 = individual parameters, 35 = all parameters (used to send the values of all parameters at once)
21 is the model. 21 = JX8P, 24 = JX10/MKS70
20 is “level”. 20 = tone, 30 = patch
01 is “group”. 01 = tone A, 02 = tone B
22 is the parameter
7F is the value
F7 is end of sysex
The JX8P also uses the term “patch”. The patch is bank and tone number plus all the parameters/settings that are not the tone: bend range, portamento, poly/unison/solo mode etc.
So, then I need to figure out how to implement this in the tool.
If we look at the PG-800, it has no patch editing features, I guess you select which tone you are currently editing in the synth?
Yes, the PG is limited as you can only edit a single tone. All other parameters you have to program on the synth it self, or use software/sysex.
I know the Patch/Tone can be confusing, because of the limitations synths had at the time, with midi just being invented and the way they needed to save on expensive memory and hardware cost in general.
So all patches in the patch bank share the same tone bank. Changing for instance tone #12 in the tone bank memory will also change all other patches that use this tone.
So it’s always a good idea to save entire banks when working with these old Roland midi analogs. You have to keep track of what tones and patches you edit within a bank or you can easily unintentionally change common used Tones.
If you just want to ‘replace’ the PG, then the current JX Programmer will do just fine. However it would be really great to be able to edit the Patch parameters as well from the Renoise JX
Ok I see, so in case of the JX10 the entire “patch” makes the resulting “sound”, whereas the with the JX8P the “sound” is pretty much the “tone”.
So for the JX10 you want load and save presets that are complete and not just 50% of the “sound”, though being able to edit just the tone, PG-800 style, is still good.
Since I don’t have a JX10 I will have a bit trouble making that implementation without seeing the result, and it also turns in to a bigger project.
So, for now, I will make the ability to select in the UI which tone you are editing A or B, and also to load and save tone A or B as a file.
So, the possibility to save/edit entire patch, selection for synth model and different UI, are future improvements.
But then maybe, as Cie suggested, make a “Duplex”-like tool for mapping synths is the best idea. I’ve been thinking about that, it’s actually a cool idea. Maybe an XML-file to decribe the synth.
The ‘Duplex-style synth mapper’ idea has been floated around before (mxb had a look at it once), I hope you do have a go at it Cornbeast, it would be a fantastic tool!
Thanks for that link to that interesting project ctrlr. I had a look at this some years ago, but it definately evolved. Basically it is exactly what I meant I think. I will try it.
A renoise native tool would have its advantages though.
I would like to be pointed in the right direction. I’ve got the script, and I am looking at the Juno and PG300 manual, but I can not find the correct parameter number for the changes.
Should I replace the sysex_dco1_range = 11 to the one mentioned in the manual?