JX 10 SysEx Edit

Important Update for June 2014:

This week I became aware of a new project by Fred Vecoven to completely re-write the JX10 assigner and voice board OS from scratch.
You can find his JX10 page here.

Fred has done a great job, and his assigner code is now available to buy on ROM.
It includes a lot more features than my sysex add-on, and includes the same sysex support.

I have decided therefore to stop selling my JX ROM. It would be daft to go to the bother of upgrading your ROM, and not getting the extra features of Fred's ROM for the reasonable extra cost.

This page gives details of the modified firmware I developed for the Roland JX10 to add system-exclusive editing of tones via MIDI.
I sold my JX several years ago now, and no longer actively sell this ROM, as it has been superseded as described above.

May 2013: The modified sysex code is based on version 2.3 of the JX10 assigner code.
This is the final version of the assigner code.

Please note, I do not sell ROMs on eBay. Any eBay sellers have simply downloaded the ROM image to burn onto chips and sell without permission.

Contrary to information from Roland, the voice board ROMs for the JX did not change for version 2.1 or 2.3 of the assigner code, so the sysex modified ROM should be usable with any version of JX.


Like many JX10 owners without a PG800 programmer I was disappointed to find that Roland had made a complete arse of the midi implementation - there is no way to edit sounds via midi.
So I got hold of the service manual and the datasheet for the 6303 processor used in the assigner board, and set about dis-assembling the firmware, in the hope of finding the 'bug' that stopped SysEx sound edits working.

In the process I learned a lot about how the JX works, how the PG800 works, and how NOT to write firmware for a synthesizer.
The Roland software engineers must have either been under real pressure to get the job finished, or they simply got the office cleaner to write it, because it is a poorly structured, badly written mess.

When I found the code for SysEx reception there was only a slight hint that they had planned to implement editing via midi, no 'broken' code for it, but with a little thought, I found a way to hack it in there myself.

DISCLAIMER: I take no responsibility for any damage undertaking a ROM swap may cause to your JX10, or any coincidental damage. If you're not sure how to go about writing and fitting a new EPROM, DONT DO IT!

jx10se2.3.zip - This file is a zip of binary dump of my hacked version of the JX10 firmware
This is the latest version, based on the v2.3 JX10 firmware.

The bulk of the code is copyright Roland Corp. I only provide the image as a full dump rather than a patch file to save the hassle of reading then patching an existing ROM.
You may not download this file unless you are the owner of a Roland JX10 synthesizer.

The binary image should be written to a suitable 32k EPROM (27C256) and swapped for the original firmware on the assigner board - the one with the 6303 processor.
You could always erase and re-write the original EPROM, but back it up before you do.
Details of how to swap the ROM over are here.

This firmware allows editing of the currently active tone via midi. That is, if you are using Dual or Split mode, the Tone that is currently active for editing (the one with the dot by the number) will be modified by the SysEx.
The command format is the same as that used by the MKS70 rack version of the JX10.
For further information, see the links to other notes below.

It does not support the MKS70 single patch/tone dumps nor does it support sysex editing of patch parameters.
I have been using the Emagic SoundDiver MKS70 editor with my JX10 for tone edits, and it has been working well.
I considered implementing direct editing of the Upper and Lower tone without having to switch the selected tone from the front panel, but as my intention was to allow a midi fader box to be used for editing the JX in the absence of a PG800, I decided not to bother.
I believe Tone B editing is broken on the MKS70 anyway.

If you have a Peavey 1600 MIDI controller, here is a zip file of a JX10se PC1600 profile, courtesy of Mike Azevedo

During the development of this code I came to the conclusion the JX10 firmware really needs to be scrapped and re-written from scratch.
This keyboard must have about the sloppiest midi timing I've heard - due to the fact that incoming midi data is written into a table by the interrupt routine, but the voice assignment code is run in the main program loop after a potentially long and variable delay.

Further Information:

My notes:
Disassembled code (note that my first micro was a BBC, so I habitually use & to indicate hex)
My further notes on the firmware, in Excel format

JX and PG800 Technical Information
JX10se Sysex Command Set for Tone Edit

Last update: 5th June, 2014