fbpx
Skip to main content

MIDI Forum

Sysex issue with Cu...
 
Notifications
Clear all

Sysex issue with Cubase > 3rd party Hardware manager app

13 Posts
3 Users
0 Reactions
6,778 Views
Audio
Posts: 9
Active Member
Topic starter
 

Hi all...

I'm using Cubase 11 Pro to record sysex MIDI messages and then replay them from/to a BOSS GS-10 effects unit.

The information is passed via USB from the hardware and is selected in Cubase as "Gs10 Control" both in and out.

The above works fine....

I am also using a 3rd part "manager" software for the GS-10 ( https://mountainutilities.eu/gs-10manager), this also communicates with the GS-10 via the USB midi in/outs. This program has a graphical interface for the various effects within the GS-10... So... when I move a knob or make a program change, the corresponding knob or switch in the manager program moves accordingly... basically this program is also reading sysex messages from the GS-10.

Here's the issue:

When I "play back" the sysex MIDI recorded in Cubase, the GS-10 manager program does not respond. Obviously, I've routed the MIDI correctly (using loopMIDI), and even confirmed the GS-10 program is receiving the sysex via the programs incoming monitor.

So, thinking about it as logically as I can... the GS-10 program receives and responds to sysex coming directly from the GS-10 hardware, but will not respond to sysex that has been recorded into cubase and is replayed, even though the GS-10 hardware itself responds to that same "replayed" MIDI info from Cubase without a problem.

This one has me scratching my head.. hence my asking here... in case anyone has overcome a similar problem?

Thanks in advance, 🙂

 
Posted : 08/10/2021 11:02 am
Geoff
Posts: 1039
Noble Member
 

Can you intercept the data being sent, or if it's in a file copy the file and attach it here? Even better if you can supply an example of data that works, and data that does not, in as 'raw' a form as possible.

Geoff

 
Posted : 08/10/2021 11:55 am
Audio
Posts: 9
Active Member
Topic starter
 

Attached files are raw input monitor in MIDI OX

 
Posted : 08/10/2021 12:37 pm
Audio
Posts: 9
Active Member
Topic starter
 

attached files are from MIDI OX raw input monitor. The one that works is the direct "GS-10 control" MIDI port, the one that doesn't is the loopMIDI port

 
Posted : 08/10/2021 12:39 pm
Audio
Posts: 9
Active Member
Topic starter
 

These are a string of values that represent the sweeping of a knob on the GS-10.

Admittedly, I don't understand what I'm looking at but the yellow lines show a difference in that in the first attachment, i.e. the WORKING direct sysex from the hardware, the first number is 0000 followed by letters, whereas the second NON WORKING attachment has 0000888 followed by a single letter.

 
Posted : 08/10/2021 12:55 pm
Audio
Posts: 9
Active Member
Topic starter
 

..oh shucks... that's just the timestamp!

 
Posted : 08/10/2021 1:00 pm
Geoff
Posts: 1039
Noble Member
 

What??

Had a quick look at the two data sets.

Both sets look like a standard SysEx message, 13 bytes, and while I don't know the details of this system, it appears to be quite normal.

The first few bytes will be the SysEx header, which is specific to the Mfg, and the device.

The next parts could be a command number, an address, and a number of bytes (size of data), and these could be again standard.

So bytes 1 thru 10 are the same for all the lines, this could be perfectly fine.

Bytes 11 and 12 are the 'payload', these are the bytes that effect the actual change.

Byte 13 is the SysEx terminator.

In the set that works, the payload shows two data bytes that are gradually stepping down, i.e. they are a sequence.

In the other set, that you say does NOT work, there are merely two pairs of data bytes, that just alternate. So no sequence.

I would suggest that the SysEx commands are the correct structure, but the actual data in the second set is wrong. Wrong as in the numbers are MUCH larger than the correct numbers, and also that they merely repeat A-B-A-B-A-B-etc.

What is this command supposed to be doing?

Geoff

 
Posted : 08/10/2021 1:45 pm
Audio
Posts: 9
Active Member
Topic starter
 

The example above was me moving one of the knobs back and forth.

To simplify things, I did a channel change on the pre-amp section. Two actions: 1. switch to channel B, 2. switch to channel C

In the first attachment, this is shown as two sysex values, this is the direct output from the hardware that WORKS.

In the second attachment, the loopMIDI output that DOESNT WORK, it's a stream of the same sysex message (the first one) over and over.

Interesting... a bit like a stuck note!

 
Posted : 08/10/2021 2:16 pm
Geoff
Posts: 1039
Noble Member
 

OK.

So, this suggests that the 12th byte is a checksum. When the 11th byte went up by one, the 12th byte went down by one.

So, we've got different commands, doing different things, the SysEx messages seem to have the exact same structure, and they seem to be using the same memory address. This address must be a general memory address in the device.

Going back the the first examples, the 11th byte is the data, which is changing by 2, 3 or 4 in a sequence. The checksum changes by the same amount. My guess is that the 10th byte is the command ##, i.e. 21 in the first example, and 1 in the second.

Oh, what cable are you using to connect the devices together, if that is the case?

Geoff

 
Posted : 08/10/2021 3:05 pm
Audio
Posts: 9
Active Member
Topic starter
 

The GS-10 hardware is connected to the computer via a USB cable, the MIDI goes back and forth via USB. LoopMIDI is a virtual cable obviously... but it does make me wonder if I should try something else...

 
Posted : 08/10/2021 3:46 pm
Bavi_H
Posts: 266
Reputable Member
 

I was able to get GS-10 Manager to change its knob display by connecting a virtual cable as input and also connecting a different virtual cable as output that doesn't go to anything.

Step-by-step example:

1. I configured loopMIDI to have two virtual cables, called "loopMIDI Port 1" and "loopMIDI Port 2".

2. In GS-10 Manager, I went to the Options menu, MIDI devices. I selected "loopMIDI Port 1" as an input, and selected "loopMIDI Port 2" as an output.

3. In the Options menu, GS-10 options, I selected "loopMIDI Port 1" as the GS-10 input port, and "loopMIDI Port 2" as the GS-10 output port. After I clicked OK, a moment later it complained that it didn't get a response from the GS-10, but I just closed that message.

4. In the Temporary Patch window, I went to the View menu and selected Effects to display the Effects window. In the Effects window, I made sure the Channel was C.

5. In a MIDI player (I used Sekaiju), I set the MIDI Output as "loopMIDI Port 1", then played the attached MIDI file (Download: gs-10-test.zip). The Gain knob in the Effects window changes as the MIDI file plays.

Additional FYI: In Cubase or in GS-10 Manager or in MIDI-OX, if a particular virtual cable is selected as both a MIDI Input and a MIDI Output, and if the program is set to send a copy of messages it gets from its MIDI Inputs to its MIDI Outputs, this can cause messages to get sent over and over in an infinite loop. I think something like that was causing the repeated messages you saw in MIDI-OX. I don't think this was related to your problem in this case, it was just a red herring while troubleshooting.

 
Posted : 08/10/2021 11:12 pm
Audio
Posts: 9
Active Member
Topic starter
 

Thanks Bavi, that's really helped me out!

I never thought to change the GS-10 in-out ports under options>gs-10 to anything other than "GS-10 control".

Yes, this does work to control the graphical interface on the GS-10 manager software via MIDI playback from Cubase

However, there's one catch... now the GS-10 hardware doesn't respond to the MIDI info!!

In the end, I found a workaround by using a MIDI routing patch in Max 8 ( https://cycling74.com/forums/sharing-midi-routing-patch)

This enabled me to link the GS-10 program's output to the GS-10 control IN.

I'm mindful of the fact that so far, everything mentioned in this post has been freely available (apart from Cubase, but there are plenty of alternatives), whereas the Max 8 routing patch will only be useable with Max 8. I hope to export the Max 8 routing patch to a standalone app and will post a link here for anyone else looking for a solution to this or other similar problems.

 
Posted : 09/10/2021 8:41 am
Audio
Posts: 9
Active Member
Topic starter
 

OK... so final update on this one - seems I was over-complicating the issue. (there's no need to be messing about with Max!)

Firstly, I failed to take note of the fact that knob movements on the GS-10 pre-amp section are channel specific... so if I record moving the bass EQ on channel A in cubase, it will not play back or show anything happening either on the GS-10 itself or the manager software if I'm on channel B. Pretty obvious, but led me to some false conclusions.

Secondly, I didn't realize that the loopMIDI virtual port is automatically a "multi" port and so I can send the one instance of the port to as many places as I like.

Here's the setup that is working for me:

Cubase: (MIDI track) MIDI in = GS10 control; MIDI out = loopMIDI #1

GS-10 manager: "options>MIDI devices" ; Input = LoopMIDI #1 ; Output = GS10 control & LoopMIDI #1 (no thru devices)

"options>Gs10" ; Input = loopMIDI #1 ; output = GS-10 control

So, with this setup I've achieved what I was hoping for:

- I can have Cubase receive and transmit recorded sysex MIDI info from the GS-10 when I record a guitar track.

- I can tweak parameters and patches on the GS-10 and see these reflected in the GS-10 Manager, and vice versa

- GS-10 manager will show realtime changes on playback from Cubase.

Great... now I can go make some music! Thanks to everyone for your help 😀

 
Posted : 10/10/2021 5:11 am
Share: