Sending patch changes to JV-1080 - Anyone?

Trying to determine the actual raw MIDI message that needs to be sent to change patch on a Roland JV 1080. I’m kicking off all of my patch changes when a preset is active. been really easy on the keyboards as i can just capture midi messages and make the changes and use that. on the JV-1080 when i’m Capturing, it isn’t sending anything as I change patches on the JV-1080 itself. I’m sure someone has done this before?

Not sure but the manual specifies tone parameters are controlled via MIDI via " Paatch Matrix Control". I think you have to tell it your source (CC #), destination (what you want to control) and sensitivity.

See page 26 of the user manual .

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

that sounds like sending changes to the color of the patch. I just need to switch presets… like select organ sound on the 1080. What’s great about a regular keyboard is I can just capture the midi messages. cant do that on racks apparently as they are not sending messages when you poke buttons or whirl knobs. this is a sad turn. hit a wall with this one.,

It really depends on the individual device. I know on my Roland VR-09. I cannot send individual patch changes but most devices will do this by sending them Program Change MIDI messages (PCs)On my Roland VR-09, it only responds to PC when I’m using the GM module.

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

i suppose I could try to hook up the impulse to it and see if there is some accidental mapping in place that will move through presets on the 1080… then capture those messages.

Yes, you are pretty much dependent on Roland support or trial and error engineering unless you can find a post out on a forum somewhere with someone that been down that path.

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

This looks promising. Did you see it?

Using MIDI to Select Patches on the JV-1080 | Sweetwater.

saw that but i’m only able to send hex values to it via MT… so 81 10 04… I don’t see how what that post at sweetwater shows equates to sending hex values. It’s like everyone talks in code. can’t simply say, 81 10 05 02… done… it’s always cryptic like that post. annoying. If I ever figure it out i’ll post here but it does not appear that anyone ever in the history of owners of 1080s have ever done this. insane.

Program Change on MIDI CH 1 = C0 nn (where program number is 0-7F hex (0-127 decimail)
Bank Select MSB on MIDI CH 1 = B0 00 nn (where bank is the bank number from 0-7F)
Bank Select LSB on MIDI CH 1 = B0 20 nn

For MIDI channel 2-15 use 1-F as the second nibble of the first byte for instances C1 is Program Change on MIDI CH 2 and CF is Program Change on MIDI Channel 16.

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

woah… well that’s closer. i got it to change. I figured out C4 for the first part since it’s on channel 5. Now I have to figure out the rest… and B0 00 nn doesn’t help. Again, the disconnect here is, MT is going to send XX XX XX XX… not B0 00 nn 0-7F(10,638Faatartarsauce…). just need an actual example and I can reel it in. So far, I have C4 XX XX XX. I don’t know why this has to be so convoluted… MT sends HEX. All i find on line is stuff like, 10,231 ss(blah blah) … like, ok, how do I send that in hex? how many units? And i’m a .Net developer of 32 years and this just does not line up for me so I know i’m not the only one. At least it changed… to the wrong thing but still. proof of concept. Trying various random values, crashed MT… had to restart so lost my progress. Not going well.

EXAMPLE: To access Patch PR-C: 112 “Cascade” we need the following messages:

  • Controller 0 with a value of 81, Controller 32 with a value of 2, and Program Change 111.
    or
  • Bank number 10,370 and Program Change 111.

For MIDI CH 1 this would be:

B0 00 51 B0 20 02 C0 6F

You could also use the following output from Bome MIDI Translator, which would send the exact same things.
image

Keep in mind 51 Hex is 81 Decimal, 20 Hex is 32 Decimal and 6F Hex is 111 decimal.

You can find a programmers calculator if you have a PC to do the conversion and there are other conversion tools on the web.

Here is the outgoing log with both MIDI OUT and Outgoing Checked. MIDI OUT is always in Hex and Outgoing is more understanding to humans.


Note-to-Bank-PC.bmtp (982 Bytes)

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

Now THAT is very helpful! would rather work inside of MT. Like that… and it works. However, last hurdle is, i need a different bank than the example. I see that 10370 is one bank, what are the others? is it just a hit and miss thing or is there some logic to it? I changed for the ch5 and the patch number, but i’m in the wrong bank.

Well the MSB bank will be 0-127 and the LSB bank will also be 0-127. You shift the bits left by 7 to to move and then OR them together to get the result. It is a bit convoluted since you are using Binary, hex and decimal conversion.

So if you want to know the bank number from the LSB MSB and as an example LSB is 5 and MSB is 4.

// get msb << is the left shift operator and we are shifting 7 bits
ga=4<<7
// (Yield 512 or 200H)
// OR with LSB
ga=ga|5

// (Yields 517 or 205H) You can enter that in the bank number of the translator


Now if you know the bank number in decimal just enter it into the translator.

If you want to convert it back to msb and lsb

pp=517
// get msb into qq (shifting right 7 bits)
qq= pp>>7
// get lsb in rr (by ANDing with 127 we strip out the high 7 order bits
rr=pp&127

MIDI was invented over 20 years ago so to conserve data bandwidth and memory programmers did a lot of bit arithmetic in those days. The standard is old but it still works.

Most documentation either shows the absolute bank number or MSB LSB. Now you have the tools either way they document it.

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

i don’t understand that at all. i guess i need to start googling midi standards or something. i tried using the 517 and the 205h and neither work so i’m missing something here. really need to wrap my head around the concept of ‘shifting bits’ and a value of x OR x… i will research till it clicks. thanks again for your help Steve.

Well if you moved patches around within your JV-1080 they may show up somewhere else. I don’t see in the manual how they relate MIDI bank numbers to the JV-1080 nomenclature system.

If you want the standards, go to MIDI.org. You can create a free user account there, log in and check out the specs and other MIDI implementation documents.

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

i’ll have to make sure i’m on the correct bank and stay on that bank and the rest will work. the bank portion of that MT setup is ignored by the 1080 from what i can tell.

Then you can set the bank and PC at project start (when project is opened) and then just send Program Change (without bank information) thereafter. Most MIDI devices will ignore a bank change if the Program Change is not the next message after a bank change.

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

Actually, i’ve given up on sending Bank changes from MT. It does not work for any of my boards or racks. Instead what I will have to do is manually set the bank on each keyboard and rack and make sure I don’t use any patchs outside of that bank. Unfortunate but that’s were I am. Also, my disconnect in understanding how for example, I translate info like …

BANK A
Message Value
Controller 0 0
Controller 32 0
Program Change 0-99 (0-127) BANK B
Message Value
Controller 0 0
Controller 32 1
Program Change 0-99 (0-127) BANK C
Message Value
Controller 0 0
Controller 32 2
Program Change 0-99 (0-127) BANK D
Message Value
Controller 0 0
Controller 32 3

into a series of hex midi messages like xx xx xx xx…
I can’t find any help anywhere that explains that. Like ANYWHERE on the entire net. Amazing.
I checked out midi stuff from the standard and nothing explains how to bridge that gap.

Examples

B0 00 00 - Controller 0 MIDI CH 1 value 0
B0 20 00 - Controller 32 Midi CH1 value 0 (20 is the hex value for decimal 32)
C0 00 - Program Change 0 on MIDI CH 1

Total message 
B0 00 00 B0 20 00 C0 00

B1 00 02 - Controller 0 MIDI CH 2 value 2
B1 20 03 - Controller 32 Midi CH2 value 3
C1 7F - Program Change 127 on MIDI CH 2 (7F is the hex value for 127)

Total message 
B1 00 02 B1 20 03 C1 7F

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

so ‘Bx’ is a Controller and ‘Cx’ is Program Change?
and B1 indicates Controller on CH2 (zero based… so CH3 would be B2)?
Then, since the unit sees the next bits are from Controller, it expects the next two values to be ‘Controller’ and ‘Value of that controller’?
Likewise, ‘C’ for Program Change (+CH) the unit expects the value to come next?