Transport commands to the Roland Jupiter Xm

So I’m still considering an Electra One, and have been for a while, but prior to purchase I need to confirm via scripting that my primary use case, controlling a Roland Jupiter Xm sequencer and its Scenes (preset patches), can be satisfied. So I would appreciate any input from those who are familiar with sending MIDI, sysex and transport commands to Roland gear.

I have written python/mido code allowing me to change the Scenes and also edit some parameters of the step edit sequencer. Where I am stuck is with the starting and stopping of the sequencer. I have tried many approaches, without success.

I have configured the Xm to take an external midi sync, which supposedly hands over control of the transport to an external source. The MIDI Monitor on my Mac shows that the Start and Stop commands are being sent by my script. I’ve even configured Cubase to do the same. But both approaches fail: the Xm does not react to the commands.

FWIW, pressing the assignable S3 button on my Xm is how you start and stop the sequencer. This becomes disabled when external MIDI sync is enabled on the device.

Any advice, tips or pointers welcome in how I can move forward. I’ve been told that a Roland TR-6S can externally control the Xm sequencer so I know it is possible.

I am presuming also that this is something that I have to handle myself, i.e. using an Electra One wouldn’t solve this without my configuration.

Thanks in advance.

1 Like

Could you post the relevant section from the midi /sysex spec for the Roland?

Many thanks for replying.

The command is part of a group called ‘Arpeggio Part’. The Roland spec I was using gives the hex as follows:

| 00 1F | 0000 000a | Step Seq Mode (0 - 1) |

| OFF, ON |

The first column is the offset, and the remaining values are (obviously) the range, i.e. the two values for Off and On. (As mentioned, I can run with success other commands in this group.)

However … I have noticed something which may be important: I was not using the most recent spec. The latest spec has the same offset but the range of values has been extended to 0000 00aa, i.e. 0-2. The additional parameter is called KEYSWITCH.

So I am now wondering if I was misinterpreting this command as the start and stop command for the step sequencer when in fact it may have some other function?

I have been told by another Xm user on a Facebook forum that they are able to start and stop the sequencer from Cubase and also from a Roland TR-6S, which is why I believe that it should be possible to do it from a platform like the Electra One or standalone scripts.

This is the latest MIDI spec for the Jupiter X/Xm. The definitions above are on page 15 in the right hand column.

Thanks again for getting back to me. Any kind of interaction gets me thinking again in a fresh way.

Maybe stupid question, but if you have the Roland set to extermal sync, are you actually sending midi clock to it? You didn’t mention it. Without any clock a start command itself won’t do anything

Good question to ask. Yes, the script I used has a background thread which sends the midi clock at the chosen BPM rate. I have also used the MIDI transport commands Start (‘FA’) and Stop (‘FC’) with the script to see if these would work instead.

I’ve read thru the specs a couple of times, but couldn’t find anything, but googling for the problem I found https://gearspace.com/board/showpost.php?p=14677066&postcount=4422 (and subsequent posts). Maybe that helps?

1 Like

Hi Markus

Many thanks for taking the time out for doing this. I will take a look now.

1 Like

You’re welcome :blush:

If even driving it from Cubase doesn’t work, it’s gotta be a settings thing on the xm, I’d focus on that for now (and ideally testing with Cubase to have less variables)

Thanks to your ideas, I am making some progress.

In the short term, I have abandoned (well, postponed) trying to control the ‘S3’ button which, in Step Edit mode, starts and stops the sequencer. I have so far failed to capture anything in a MIDI monitor relating to this control. It seems to act invisibly in midi/sysex terms.

So first things first. What i have established is that different MIDI ports are needed for different commands. Some work with the port ‘JUPITER-X’ and others with the port ‘JUPITER-X DAW CTRL’. This was worked out through trial and error. It’s a bit frustrating but I discovered this by sending test commands via the Roland Editor.

Below are the command parameters which give successful results. I had got myself started with ChatGPT code initially and some of its parameters were wrong.

F0 and F7 - sysex start/end

41 - Roland ID

10 - the device ID, which is 16

00 00 00 65 - model ID

12 - command ID

01 00 10 01 - example of an address offset

01 - data example, e.g. to turn something off and on

6D - checksum (example)

What I can now do with my command set in my script is start and stop the Arp, mimicking the behaviour of a different Xm button, namely the I-Arpeggio On/Off button. I didn’t realise that the arp has a mode whereby it starts and stops the step sequencer.

Where I am blocked now is that this mode doesn’t fully start and stop the arp. To be exact, it merely enables it. The arp is started by pressing and holding any key on the keyboard and is stopped by releasing the key. I have tried in my script to mimic the pressing of a key but I cannot get this to work.

But it’s a lot of progress. I am just one instruction away from being able to start and stop the Step Edit sequencer, albeit by different means now.

1 Like

And some better news. i have managed to configure the foot pedal to turn the Xm’s step sequencer on and off.

Trying to simulate a pedal press through scripting is another story though …

Ok, I am now one step away from succeeding (or definitively failing!) in my quest to remotely start and stop the step sequencer of the Roland Jupiter Xm.

I can now trigger the Jupiter Xm’s I-arpeggio sequencer by playing a note on a remote keyboard connected via a MIDI cable.

This proves that data carried over a MIDI cable can indeed invoke the functionality I require.

So why can this not be replicated by scripted commands sent over a USB cable into the Xm?

Could the Roland Jupiter Xm be restricted in how it handles data over the two different physical MIDI media?