JDTools - Patch conversion utility for Roland JD-800 / JD-990 (and compatibles)
Forum rules
READ: VSE Board-Wide Rules and Guidelines
READ: VSE Board-Wide Rules and Guidelines
-
ʝɵʝɵ
- Junior Member

- Posts:217
- Joined:Sat Jun 11, 2011 11:50 am
- Gear:Roland D-50, JD-800, R-8, U-220, XV-5080, Yamaha AN1x, CS6R, TG77, Korg Triton Rack, Wavestate, X5DR, Kawai K4, Kurzweil K2500, Ensoniq SQ-R Plus/32
- Location:Germany
- Contact:
Hello!
I recently acquired a Roland JD-800. I also bought an old set of patches for it, which was supposed to exist for both the JD-800 and the JD-990, but I only received a file for the JD-990. Since it's an old patch set, the seller was no longer able to provide the file for the JD-800. However, knowing that the two banks should be practically identical, I went ahead and looked for JD-990 to JD-800 patch conversion tools, which don't seem to exist. And of course that makes sense in the general case because the JD-990 has more features, making such a conversion tool inherently lossy. But since I knew I can get those patches to work on a JD-800, I went ahead, studied the SysEx formats of both synths and wrote a conversion tool. Et voilà - I have working patches for the JD-800 now!
However - the two synths use different parameter ranges for a couple of their common parameters. They are all documented, but manually confirming these for dozens of parameters is quite a chore. And more importantly: Just because I know my software can round-trip a patch from JD-800 to JD-990 and back to JD-800 doesn't mean that my conversion code is really bug-free.
Hence, my call for help:
a) If a JD-990 can directly process JD-800 SysEx dumps, I need the help of a person with access to a JD-990.
b) Otherwise, as far as I know a JD-990 can handle RAM card data from a JD-800, in which case I need the help of a person who has access to both a JD-800 and a JD-990 and has a RAM card to transfer patches between them.
In either case, you can help me by taking a few JD-800 banks (doesn't matter which really, but optimally they should exercise all patch features), loading them into the JD-990 and then providing me some SysEx dumps for both the JD-800 and JD-990 version. This would greatly help me with confirming that my patch conversion round-trips correctly.
Help no longer needed - thanks Tekhed66!
The code for my conversion tool is available here: https://github.com/sagamusix/JDTools - as soon as I am confident enough that the parameters round-trip correctly, I will also put up an EXE file.
I recently acquired a Roland JD-800. I also bought an old set of patches for it, which was supposed to exist for both the JD-800 and the JD-990, but I only received a file for the JD-990. Since it's an old patch set, the seller was no longer able to provide the file for the JD-800. However, knowing that the two banks should be practically identical, I went ahead and looked for JD-990 to JD-800 patch conversion tools, which don't seem to exist. And of course that makes sense in the general case because the JD-990 has more features, making such a conversion tool inherently lossy. But since I knew I can get those patches to work on a JD-800, I went ahead, studied the SysEx formats of both synths and wrote a conversion tool. Et voilà - I have working patches for the JD-800 now!
However - the two synths use different parameter ranges for a couple of their common parameters. They are all documented, but manually confirming these for dozens of parameters is quite a chore. And more importantly: Just because I know my software can round-trip a patch from JD-800 to JD-990 and back to JD-800 doesn't mean that my conversion code is really bug-free.
Hence, my call for help:
a) If a JD-990 can directly process JD-800 SysEx dumps, I need the help of a person with access to a JD-990.
b) Otherwise, as far as I know a JD-990 can handle RAM card data from a JD-800, in which case I need the help of a person who has access to both a JD-800 and a JD-990 and has a RAM card to transfer patches between them.
In either case, you can help me by taking a few JD-800 banks (doesn't matter which really, but optimally they should exercise all patch features), loading them into the JD-990 and then providing me some SysEx dumps for both the JD-800 and JD-990 version. This would greatly help me with confirming that my patch conversion round-trips correctly.
Help no longer needed - thanks Tekhed66!
The code for my conversion tool is available here: https://github.com/sagamusix/JDTools - as soon as I am confident enough that the parameters round-trip correctly, I will also put up an EXE file.
Last edited by ʝɵʝɵ on Tue Aug 02, 2022 8:17 pm, edited 3 times in total.
- Tekhed66
- Junior Member

- Posts:234
- Joined:Thu Jun 04, 2015 6:59 am
- Gear:JD990, JD800, XV5080, Triton Rack, M1, Radias, Wavestation A/D, V-Synth XT, An1x, Sledge 2.0, Motif XF6
- Location:Australia
- Contact:
Re: JDTools - Patch conversion utility for Roland JD-800 / JD-990 - Help needed
Hi Jojo
That sounds like me... I've got a JD-800, JD-990 and one of your world-famous RAM cards (two actually).
P.M. me with a step-by-step of what you want me to do and how you want me to do it and I'll give it a go sometime over the weekend.
cheers!
That sounds like me... I've got a JD-800, JD-990 and one of your world-famous RAM cards (two actually).
P.M. me with a step-by-step of what you want me to do and how you want me to do it and I'll give it a go sometime over the weekend.
cheers!
-
ʝɵʝɵ
- Junior Member

- Posts:217
- Joined:Sat Jun 11, 2011 11:50 am
- Gear:Roland D-50, JD-800, R-8, U-220, XV-5080, Yamaha AN1x, CS6R, TG77, Korg Triton Rack, Wavestate, X5DR, Kawai K4, Kurzweil K2500, Ensoniq SQ-R Plus/32
- Location:Germany
- Contact:
Re: JDTools - Patch conversion utility for Roland JD-800 / JD-990 - Help needed
Excellent! I will send you a message soon. In other news, my conversion utility just gained the possibility to merge SysEx dumps with individual "temporary" patches into a single bank (or multiple, if there are more than 64 temporary patches). Really handy for uploading many single-patch dumps at once!
-
ʝɵʝɵ
- Junior Member

- Posts:217
- Joined:Sat Jun 11, 2011 11:50 am
- Gear:Roland D-50, JD-800, R-8, U-220, XV-5080, Yamaha AN1x, CS6R, TG77, Korg Triton Rack, Wavestate, X5DR, Kawai K4, Kurzweil K2500, Ensoniq SQ-R Plus/32
- Location:Germany
- Contact:
Re: JDTools - Patch conversion utility for Roland JD-800 / JD-990
Thanks to Tekhed66's help, I was now able to confirm that my conversion code round-trips correctly, so here we go:
You can now download JDTools at https://github.com/sagamusix/JDTools/releases
This is a command line utility (currently only binaries for Windows are provided but it can be built for other platforms as well), so maybe not the most user-friendly tool in the world, but a GUI could be built on-top of this tool to make usage easier in the future.
At the moment, the tool can do three things:
To the best of my knowledge, this is the first tool supporting conversion from JD-990 format to JD-800 format (at least I couldn't find any others!). Obviously, it can only convert features supported by both synths - if you have set up any complex modulation matrix stuff that cannot be expressed by the JD-800 parameters, or use individual tone panning, the conversion will be incomplete. But the tool will warn you about every parameter that couldn't be translated properly, so at least you know which properties of the patch may need to be reworked.
In the near future, I will probably be able to add conversion from and to the JD-800 VST plugin's BIN format. I'd hope that the JD-08 boutique synth uses the same format, otherwise it is unlikely that I can support it as well (as I don't have one).
You can now download JDTools at https://github.com/sagamusix/JDTools/releases
This is a command line utility (currently only binaries for Windows are provided but it can be built for other platforms as well), so maybe not the most user-friendly tool in the world, but a GUI could be built on-top of this tool to make usage easier in the future.
At the moment, the tool can do three things:
- Convert JD-800 SysEx dumps (both in MID or SYX format) to JD-990 SysEx dumps and vice versa. The target file is always a SYX file.
- Take any number of "temporary" patches (a SYX file containing a single patch usually uses temporary patches, i.e. they don't overwrite a specific patch number) from any number of SYX or MID input files and rearrange them into one or more SYX files containing regular banks
- List the contents of a JD-800 or JD-990 SysEx dump (patch names, etc.)
To the best of my knowledge, this is the first tool supporting conversion from JD-990 format to JD-800 format (at least I couldn't find any others!). Obviously, it can only convert features supported by both synths - if you have set up any complex modulation matrix stuff that cannot be expressed by the JD-800 parameters, or use individual tone panning, the conversion will be incomplete. But the tool will warn you about every parameter that couldn't be translated properly, so at least you know which properties of the patch may need to be reworked.
In the near future, I will probably be able to add conversion from and to the JD-800 VST plugin's BIN format. I'd hope that the JD-08 boutique synth uses the same format, otherwise it is unlikely that I can support it as well (as I don't have one).
- madtheory
- Supporting Member!

- Posts:5646
- Joined:Mon May 01, 2006 12:45 pm
- Real name:Tomas Mulcahy
- Gear:Wurlitzer Opus 1536, Model F, Morovdis Arpeggiator, Maplin My First EQ, Jeff Wayne Thunderchild rack, Thermostat, Buck Owens' Moog.
- Location:Cork, Ireland
- Contact:
Re: JDTools - Patch conversion utility for Roland JD-800 / JD-990
Very cool! Makes me want a JD-990 again.
The JD-08 boutique is quite different from an actual JD-800. As this reviewer says "Despite Roland's claims, it's not a JD-800".
https://www.soundonsound.com/reviews/roland-jd-08
The JD-08 boutique is quite different from an actual JD-800. As this reviewer says "Despite Roland's claims, it's not a JD-800".
https://www.soundonsound.com/reviews/roland-jd-08
Re: JDTools - Patch conversion utility for Roland JD-800 / JD-990
I do love a good Gordon synth review!
That's interesting about many of the waveforms having the wrong octave pitches... poor attention to detail? Or a necessary artifact of the ZenCore engine?
-
ʝɵʝɵ
- Junior Member

- Posts:217
- Joined:Sat Jun 11, 2011 11:50 am
- Gear:Roland D-50, JD-800, R-8, U-220, XV-5080, Yamaha AN1x, CS6R, TG77, Korg Triton Rack, Wavestate, X5DR, Kawai K4, Kurzweil K2500, Ensoniq SQ-R Plus/32
- Location:Germany
- Contact:
Re: JDTools - Patch conversion utility for Roland JD-800 / JD-990
Without owning one I cannot tell if it's exactly the same issues as with the VST of course, but the plugin also has several limitations compared to the original. Like the boutique, it misses setup / drum mode (so no "I Can't Dance" for you) and many parameters have limited precision compared to their equivalents on a real JD-800. My "hope" is that the JD-08 and JD-800 VST use the same limited ZenCore implementation and thus their patch files are interchangeable. In fact, I after reading that review there I had a look at the plugin and it has exactly the same octave discrepancy on waveform 23. Coincidence? I think not.
Edit: Yep, quite a few waveforms have the wrong octave, at least "Metal Wind" is also just detuned by half a semitone, and they managed to swap the Plink and Plunk waveforms without swapping their names. Great job.
-
ʝɵʝɵ
- Junior Member

- Posts:217
- Joined:Sat Jun 11, 2011 11:50 am
- Gear:Roland D-50, JD-800, R-8, U-220, XV-5080, Yamaha AN1x, CS6R, TG77, Korg Triton Rack, Wavestate, X5DR, Kawai K4, Kurzweil K2500, Ensoniq SQ-R Plus/32
- Location:Germany
- Contact:
Re: JDTools - Patch conversion utility for Roland JD-800 / JD-990
It is done! 
https://github.com/sagamusix/JDTools/releases
The JD-800 VST's .bin format is now supported. And what's even better, I found that those patches can also be loaded straight into Zenology (I suppose you need to have the JD-800 model expansion installed for that). And what's EVEN better, in Zenology I found that there is a "hardware export" option, which generates SVZ files that I assume must be compatible with the JD-08. I added support to convert from and to this .svz format as well, so if someone with a JD-08 can actually confirm that this process works, that would be great...
Note that due to the new conversion possibilities, the syntax for the "convert" command has slightly changed to require the conversion target format (syx, bin or svz) as the second parameter. Please refer to the readme file for more details.
https://github.com/sagamusix/JDTools/releases
The JD-800 VST's .bin format is now supported. And what's even better, I found that those patches can also be loaded straight into Zenology (I suppose you need to have the JD-800 model expansion installed for that). And what's EVEN better, in Zenology I found that there is a "hardware export" option, which generates SVZ files that I assume must be compatible with the JD-08. I added support to convert from and to this .svz format as well, so if someone with a JD-08 can actually confirm that this process works, that would be great...
Note that due to the new conversion possibilities, the syntax for the "convert" command has slightly changed to require the conversion target format (syx, bin or svz) as the second parameter. Please refer to the readme file for more details.
- antilles
- Active Member

- Posts:260
- Joined:Tue May 10, 2005 12:38 pm
- Real name:David
- Gear:Virus C, String Melody II, Triton, MS-20, M1, Juno-60, Paraphonic 505, SH-09, VK-09, JD-800, JD-990, Pro One, CS-30, SY-1, TX81Z
- Band:Antilles
- Location:Denmark
- Contact:
Re: JDTools - Patch conversion utility for Roland JD-800 / JD-990 (and compatibles)
I don't understand how this works. Is there any Youtube tutorial or something that shows how to use JDtools?
-
ʝɵʝɵ
- Junior Member

- Posts:217
- Joined:Sat Jun 11, 2011 11:50 am
- Gear:Roland D-50, JD-800, R-8, U-220, XV-5080, Yamaha AN1x, CS6R, TG77, Korg Triton Rack, Wavestate, X5DR, Kawai K4, Kurzweil K2500, Ensoniq SQ-R Plus/32
- Location:Germany
- Contact:
Re: JDTools - Patch conversion utility for Roland JD-800 / JD-990 (and compatibles)
It's a command line tool. All the possible ways to run it are detailed in the readme. If you're not sure how to use a command line tool, you can find tons of Youtube tutorials on how to use the Windows Command Prompt instead - anything explained there will be applicable to running JDTools.
