"I have tried using the LEARN function, but nothing seems to work."
First make sure you are transmitting the sysex.
If you have a PC you can use MidiOx or Mark's BC Manager
If you need a Midi interface you can use the BCR.
Start by putting it into Mode U-2. In this mode the BC acts as though it is a 2 In 2 Out Midi interface.
In and Out 1 are connected to the BCR and In and Out 2 are a separate Midi interface with no connection to the BCR.
Now run the program - the BC won't appear in the list of interfaces if you power it up or change modes after you start the program.
Connect the synth Midi In to BC Midi Out A and the reverse, synth Midi Out to BC Midi In, with 2 Midi cables.
Always connect Out to In
So when using MidiOx go to Options/ Midi Devices and select the TWO BC inputs and the TWO BC output ports.
Make sure you have the Input Monitor and Port Routing wind open in MidiOx (you'll find them in the View menu)
It might be handy to see where the Midi data is coming from, but MidiOx only displays 3 letters, so go to Options / Customize Port Names... and use the function key F2 on the computer to change the BC ports. I use Bi1 and Bo1 and Bi2 and Bo2 so I can see in's and out's.
Play the Roland and see if you get the note data coming in Bi 2.
Change a synth parameter and see if it is outputting sysex, also from Bi2.
If you twist an encoder on the BCR you are likely to get data coming in to MidiOx onBi1
On MidiOx's Port Routing window drag the Bi1 (BCR) input to the Bo2 (synth) output.
Also n MidiOx's Port Routing window drag the Bi2 (synth) input to the Bo1 (BCR) output.
I know this might seem strange, but have a look at the diagram of Mode U2 on page 9 of the manual
Now when you change a parameter on the synth, with a data wheel I guess, the sysex should be seen by the BCR.
Drop the BCR into Learn mode and select an encoder. Twist the data wheel quickly to give the max and min (the Roland should jump lots of in-between values if you twist it quickly.) Hopefully the BCR will say "good"
If not you will have to program the BC by learning Marks editor.
As far as the sysex goes F0 41 10 00 00 00 0E 12 18 00 02 03 64 7F F7
F0 start sysex
41 Roland (manufacture's id)
10 Id - you can have a lot of JD-Xi's connected and you this to pick the one you want
00 00 00 0E Model Id JD-Xi
12 DTS Command "I'm sending you parameter data"
18 00 02 03 This is the 4 byte address of where it goes (parameter Id)
64 This is the value (just like CC that is CC+channel type value - B0 07 40 - set the volume)
7F checksum you already know
F7 end of sysex
To program this line in the language that the BC understands (BCL)
.tx F0 41 10 00 00 00 0E 12 18 00 02 03 val cks-1 8 F7
(Mark's editor hides a lot of the BCL to make it easier for you)
val as you might guess - 7 bit value - 0 to 127
cks-1 8 checksum type 1 starting at byte 8
Roland uses type 1 checksum and performs the checksum from the start of the address (0 is F0 so 18 is byte 8)
Twist the encoder and the BC will put out
F0 41 10 00 00 00 0E 12 18 00 02 03 00 43 F7
F0 41 10 00 00 00 0E 12 18 00 02 03 01 42 F7
F0 41 10 00 00 00 0E 12 18 00 02 03 02 41 F7
F0 41 10 00 00 00 0E 12 18 00 02 03 03 40 F7
F0 41 10 00 00 00 0E 12 18 00 02 03 04 3F F7
etc.
Hope this helps
Royce