JX 10 SysEx Edit
Updated 03/03 ! - and about time...
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!
jx10se.zip - This file
is a zip of binary dump of my hacked version of the JX10 firmware
This is
a BETA version of the code - please let me know if you come across any
bugs.
It is based on the v2.0 JX10 firmware.
A number of people have been
using this code for ages without any reports of trouble.
I've also now got a
copy of the 2.3 ROM, which I will dis-assemble when I get time, and see what (if
anything) they fixed.
Then if it's worthwhile, I'll patch the 2.3 ROM for
SysEX.
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 modification to the code is provided
purely for non-commercial use.
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.
A
long time ago, Mike Azevedo sent me a Peavy 1600 control setup for use with
JX10se, which I have up to now completely forgotten to upload here, so with
apologies to Mike for taking so long - here is a zip file for Peavy 1600 owners
- JX10se-PC1600.zip
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.
I've also decided that due to a lack of decent free
dev tools, it's not worth the effort re-writing the firmware for the original
6303 processor. I've got a plan on the drawing board to use a T89C51RD2 CPU on
an adapter board, which would make life much easier from the development point
of view, and also allow MIDI updates of the firmware.
If this sounds like a
good idea, let me know, and maybe I'll get round to it...
Further Information:
JX and PG800 Technical
Information
JX10se
Sysex Command Set for Tone Edit
Last update: 31st
March 2003
home