General
Newbie help
Started by teleholic on .
Sign in or create an account to join the conversation.
Hi everyone i'm new to sysex and Lemur and am hoping for some help..i've got a Roland GR-55 and Lemur (mac and ipad)..i'm trying to create a template to help me control my GR-55..Can anyone help me with some basics ? For starters i'm trying patch change, so i created a button, then a custom midi, and on the custom midi i select F0 (sysex),trigger =x, and enter the hex code but it doesn't recognize, so i converted it to dec and it recognizes it (string is in blue)..now what do i do for the button? do i select F0 as well? What about the data string ? If i enter anything, it just goes 0,0,0,0,0,0...Thanks for the help!
Hi
For patch change you should use 'Program Change' option rather than sysex, far easier . . .
Don't worry about custom midi until you get some more basic's under control.
Have a real good read of the manual and check out many of the projects in the Liine library.
There are many ways of achieving similar things depending on the intent and complexity of your project.
If you are wanting to do a major editor like on the VG forum it will probably need some scripting.
If you want a 'gig assistant' that selects favourite patches and does a bit of control thats far easier.
So a bit more info and we can get a bit more in depth and get it sorted out.
Cheers
MM
For patch change you should use 'Program Change' option rather than sysex, far easier . . .
Don't worry about custom midi until you get some more basic's under control.
Have a real good read of the manual and check out many of the projects in the Liine library.
There are many ways of achieving similar things depending on the intent and complexity of your project.
If you are wanting to do a major editor like on the VG forum it will probably need some scripting.
If you want a 'gig assistant' that selects favourite patches and does a bit of control thats far easier.
So a bit more info and we can get a bit more in depth and get it sorted out.
Cheers
MM
Hi Macciza thanks for the reply! Yeah i realise program change is way easier but im only able to select 0 - 127, or till user 43-2..using gumtown's sysex codes i could potentially select all the way to user 99-3 which is what i'm hoping to do eventually, also i'm using program change as a simple example for help, as i would eventually like to include other parameters as well...are you able to guide me through the lemur system exclusive coding i mentioned above? Thanks so much!
Hi
It simply a matter of sending bank change messages as well but you need to write them yourself.
Find out what the Bank change numbers are and it will be easy. I can select all 400 patches on VG99.
Sysex has been covered a fair bit in a few topics here with code and projects -check them out
A scripted approach will probably be best but you will need to understand how it works.
I'm sure we will be able to help you sort it out,
Cheeers
MM
It simply a matter of sending bank change messages as well but you need to write them yourself.
Find out what the Bank change numbers are and it will be easy. I can select all 400 patches on VG99.
Sysex has been covered a fair bit in a few topics here with code and projects -check them out
A scripted approach will probably be best but you will need to understand how it works.
I'm sure we will be able to help you sort it out,
Cheeers
MM
Here is a thread about sysex handling: http://liine.net/forum/viewtopic.php?f=25&t=1103
<
>
Beware, sending sysex to Roland has to follow certain rules. Here is an example to request a patch name from a Roland V-SynthXT:
F0 41 10 00 53 11 10 00 00 00 00 00 00 0C 64 F7
"41 10 00 53" identifies it as a Roland sysex msg to a V-Synth XT
"11" is the command DT1 - Data Request (sends back a information as a sysex message)
"10 00 00 00" is the address were to get the data from (in this case the start address for patch 1)
"00 00 00 0C" is the length, here 12 bytes as patch names are 12 bytes long in a v-synth
"64" is the checksum byte, I can provide more information on how to calculate this (see link above)
Now just need to receive the reply using an ON MIDI expression. Again see link above.
</
>
Let me know if you need more information.
Cheers,
B.
<
Beware, sending sysex to Roland has to follow certain rules. Here is an example to request a patch name from a Roland V-SynthXT:
F0 41 10 00 53 11 10 00 00 00 00 00 00 0C 64 F7
"41 10 00 53" identifies it as a Roland sysex msg to a V-Synth XT
"11" is the command DT1 - Data Request (sends back a information as a sysex message)
"10 00 00 00" is the address were to get the data from (in this case the start address for patch 1)
"00 00 00 0C" is the length, here 12 bytes as patch names are 12 bytes long in a v-synth
"64" is the checksum byte, I can provide more information on how to calculate this (see link above)
Now just need to receive the reply using an ON MIDI expression. Again see link above.
</
Let me know if you need more information.
Cheers,
B.
Thanks for the replies both of you! Macciza you're right i'm looking more at a 'gig assistant' level of programming haha..not full blown like marc's TouchOSC template where almost every parameter is controllable..Ideally I'd like all my favorites and patch change on one page for ease of use live..I'm really new to sysex and remember reading somewhere that the GR-55 doesn't recognize CC's so sysex is the way to go..Really confused on the proper way to write the msg, do i or do i not add 'midiout' in front? not sure when to add 'floor' or x*127 or something like that too..also after reading some sysex tutorials i'm still confused as to which of the 4 addresses is the msb/lsb..would really appreciate an example string for me to start getting my feet wet! Say with patch change..this is from gumtown:
F0 41 10 00 00 53 12 01 00 00 00 00 00 7F F7 = user patch U01:1
F0 41 10 00 00 53 12 01 00 00 00 02 28 55 F7 = user patch U99:3
how would i key it in the custom midi in lemur to get a fader to go from 1-1 to 99-3? Many thanks to both of you!
F0 41 10 00 00 53 12 01 00 00 00 00 00 7F F7 = user patch U01:1
F0 41 10 00 00 53 12 01 00 00 00 02 28 55 F7 = user patch U99:3
how would i key it in the custom midi in lemur to get a fader to go from 1-1 to 99-3? Many thanks to both of you!
Hi
Heres a quick run down on the sysex message -
F0 - Opens sysex
41- Roland,
10- Device No , should match to device
00 00 53 - Model ID#1,2,3 - VG99 is 00 00 1C
12 - DT1 Data sets, 11 is RQ1 Request data
01 00 00 00 - 4 byte Parameter address msb>lsb
00 00 - 02 28 = data values
75/55 - Checksum
F7 -closes sysex
So jus t need to nut out the range of values and what the correlate to in GR55 speak
Probably be something like 00 00- 00 7F, 01 00 -01 7F, 02 00 - 02 28 which seems about right . . . hopefully
So you need a fader, knob, or pads or whatever to pump out some of these values via scripting or midi mapping
Honestly, for patch change , doing it with bank/program change would probably be a lot easier . . .
Will try to grab the latest version of gumtowns editor and have a look, I don't have a GR . . .
Get a bit of an interface together so I can see what you want to do . . .
Cheers
MM
Heres a quick run down on the sysex message -
F0 - Opens sysex
41- Roland,
10- Device No , should match to device
00 00 53 - Model ID#1,2,3 - VG99 is 00 00 1C
12 - DT1 Data sets, 11 is RQ1 Request data
01 00 00 00 - 4 byte Parameter address msb>lsb
00 00 - 02 28 = data values
75/55 - Checksum
F7 -closes sysex
So jus t need to nut out the range of values and what the correlate to in GR55 speak
Probably be something like 00 00- 00 7F, 01 00 -01 7F, 02 00 - 02 28 which seems about right . . . hopefully
So you need a fader, knob, or pads or whatever to pump out some of these values via scripting or midi mapping
Honestly, for patch change , doing it with bank/program change would probably be a lot easier . . .
Will try to grab the latest version of gumtowns editor and have a look, I don't have a GR . . .
Get a bit of an interface together so I can see what you want to do . . .
Cheers
MM
Hi Macciza, really appreciate the help! Now the string is clearer to me..yeah i think PC and CC would be easier for bank change but i'm not sure if the GR55 allows that..cos i remember reading that the GR55 doesn't read straight CC's so one has to use sysex..maybe only for patch change it'll work i dunno...i'll start putting up some stuff in a rough template really soon...Thanks again!
Here is a link to the manual of the GR-55: http://media.rolandus.com/manuals/GR-55_OM.pdf According to the MIDI implementation chart program changes and CC's are supported.
Hope that helps,
B.
Hope that helps,
B.
Hi bxsj, i'm really bad at Lemur and can't even figure out how to input text after creating a text box..so i attached some screenshots of Marc's amazing TouchOSC template..basically i'd like to take bits and pieces of the 3 pages i attached and make them into one or two pages , or it'd be cool if i could do link pages like how he did at the top...also i'd like to select user patches 1-1 to 99-3 too.. would really appreciate if you could give me a few sample programs or scripts so i can start going on my own..wouldn't wanna trouble you too much..cheers!
[img]http://i196.photobucket.com/albums/aa225/pgm_tele52/Screenshot2012-03-05atPM080924.png[/img]
[img]http://i196.photobucket.com/albums/aa225/pgm_tele52/Screenshot2012-03-05atPM080935.png[/img]
[img]http://i196.photobucket.com/albums/aa225/pgm_tele52/Screenshot2012-03-05atPM080941.png[/img]
[img]http://i196.photobucket.com/albums/aa225/pgm_tele52/Screenshot2012-03-05atPM080924.png[/img]
[img]http://i196.photobucket.com/albums/aa225/pgm_tele52/Screenshot2012-03-05atPM080935.png[/img]
[img]http://i196.photobucket.com/albums/aa225/pgm_tele52/Screenshot2012-03-05atPM080941.png[/img]
Hi
Now would be a good time to either change the title to something GR-55 or start another topic re: GR-55 so others can track it as well . . .
Try this quick module, it's an expanded(9 Banks) version of one I did for the VG-99
It send Bank change as msb only CC#0 -Roland does not mind - so long as it's followed by a PgmChg message - works on the VG and some other modules for me.
Pgm change is limited to 100 to match the Bank step size, it does not miss any patches , you may need to check to make sure with your device.
All this is done with simple MIDI Mapping of the scaled .x variable only, and the Monitor are using the .value variable - check the Mapping panel . . .
Have got a copy of Marc'TouchOSC project - and it won't be too difficult to get values,etc to build a Lemur GR 55 controller
The interface can be far richer with Lemur via scripting so you only show the parts that are relevant to what you are doing
I've got a Menu-driven COSM selector that just needs a tidy up and will soon be opening editors for each COSM model . . .
There are some other good tricks you can do with the Control Assigns which you can now control and change what CCs do
Tap a button for real-time CC control of Guitar amp, tap another button for realtime FX change - the vg is good cause I can use the knobs on it as well
Check out the attached patch,
^^Bank-Pgm.jzlib.zip
Cheers
MM
Now would be a good time to either change the title to something GR-55 or start another topic re: GR-55 so others can track it as well . . .
Try this quick module, it's an expanded(9 Banks) version of one I did for the VG-99
It send Bank change as msb only CC#0 -Roland does not mind - so long as it's followed by a PgmChg message - works on the VG and some other modules for me.
Pgm change is limited to 100 to match the Bank step size, it does not miss any patches , you may need to check to make sure with your device.
All this is done with simple MIDI Mapping of the scaled .x variable only, and the Monitor are using the .value variable - check the Mapping panel . . .
Have got a copy of Marc'TouchOSC project - and it won't be too difficult to get values,etc to build a Lemur GR 55 controller
The interface can be far richer with Lemur via scripting so you only show the parts that are relevant to what you are doing
I've got a Menu-driven COSM selector that just needs a tidy up and will soon be opening editors for each COSM model . . .
There are some other good tricks you can do with the Control Assigns which you can now control and change what CCs do
Tap a button for real-time CC control of Guitar amp, tap another button for realtime FX change - the vg is good cause I can use the knobs on it as well
Check out the attached patch,
^^Bank-Pgm.jzlib.zip
Cheers
MM
Thanks for the help Macciza ! It worked perfectly..now when i try a fader or knob and try to use it to control patch vol (CC1) using control change it doesn't work..what am i doing wrong or must i use sysex? also, how do you know the CC# for each parameter? I only know CC1 cos Marc wrote it on his template..thanks!
Hi
Usually CC1is Modulation, CC7 is Volume
That would probably be master volume for the whole unit
See http://www.midi.org/techspecs/midimessages.php for MIDI details
You will need to sort other info for particular pieces of equipment also
Cheers
MM
Usually CC1is Modulation, CC7 is Volume
That would probably be master volume for the whole unit
See http://www.midi.org/techspecs/midimessages.php for MIDI details
You will need to sort other info for particular pieces of equipment also
Cheers
MM
Hi Macciza, i've tried a Fader set to control change and controller 7 to 7.. in fact i've tried 0 to 127 all the way but couldn't get anything changing on my gr55..what am i doing wrong? Or is there more than setting up a Fader to control change? Do you have an example for both CC and F0? Thanks a bunch!
Hi
Looking at the GR MIDI implementation it only receives the CCs on the Basic Channel - check that they are the same . . .
Next you need to confirm that is actually mapping it to it's default of volume control
Make Basic Channel the same as what you are sending on and try again . .
Cheers
mm
Looking at the GR MIDI implementation it only receives the CCs on the Basic Channel - check that they are the same . . .
Next you need to confirm that is actually mapping it to it's default of volume control
Make Basic Channel the same as what you are sending on and try again . .
Cheers
mm
Hi Macciza, by Basic Channel, do you mean keeping 'Channel' within 1-16? I always keep it at 1 to 1..also, how do i confirm what its mapping to? I've tried changing almost everything but still nothing seems to work..downloaded some generic templates to see if the any parameter gets changed with the controls but no luck too..Thanks..
sorry but another thing, how do i write the script for sysex? does it go something like,
(select on expression), set it as x,
midiout(0,{0x41, 0x10, 0x00, 0x00, 0x53, 0x12, 0x18, 0x00, 0x20, 0x04, 127*Fader.x})
or have i missed something out? Thanks again!
(select on expression), set it as x,
midiout(0,{0x41, 0x10, 0x00, 0x00, 0x53, 0x12, 0x18, 0x00, 0x20, 0x04, 127*Fader.x})
or have i missed something out? Thanks again!
here's a screenshot...feel really close now but the actually string itself is in blue even though its recognized in the custom midi..what am i typing wrong in the script? Thanks!
[img]http://i196.photobucket.com/albums/aa225/pgm_tele52/Screenshot2012-03-14atAM031555.png[/img]
[img]http://i196.photobucket.com/albums/aa225/pgm_tele52/Screenshot2012-03-14atAM031555.png[/img]
Every sysex message start with 0xF0 and ends with 0xF7. This defines a MIDI string as a sysex command. In addtion Roland gear usually has one more byte before the end byte (0xF7) which contains a checksum. I am not sure if the GR-55 needs this checksum byte, but all the Roland devices I've got need them (S-760, DJ-70, V-Synth, JV-1080).
Your midiout command should look like this:
midiout(0,{0xF0,0xF41,0x10,0x00,0x00,0x53,0x12,0x18,0x00,0x20,0x04,127*fader.x,0xFF,,0xF7});
Where 0xFF is the checksum byte. Just in case you need it, here is the formula to calculate the checksum:
Sum of all variable bytes. That is everything between 0x12 (DT1) and the checksum byte. In this example 0x18 + 0x00 + 0x20 + 0x04 + 127*fader.x
divide sum/128, take the remainder (e.g. if sum is 129 the remainder is 1; if sum is 64 the remainder is 64)
128 - remainder = checksum (so if fader.x = 80 the checksum for the sysex message above is decimal 116 or 0x74)
Some more (or rather less) information around sysex and the GR-55 can be found here http://www.vguitarforums.com/smf/index.php?PHPSESSID=28b7bf21751eeb8ef69ed012920f9b86&topic=4422.msg32490#msg32490
Also note, all values in the sysex string can also be maintained in decimals. I prefer hexa decimal as all the MIDI implementation charts are in hex ...
Hope that helps,
B.
Your midiout command should look like this:
midiout(0,{0xF0,0xF41,0x10,0x00,0x00,0x53,0x12,0x18,0x00,0x20,0x04,127*fader.x,0xFF,,0xF7});
Where 0xFF is the checksum byte. Just in case you need it, here is the formula to calculate the checksum:
Sum of all variable bytes. That is everything between 0x12 (DT1) and the checksum byte. In this example 0x18 + 0x00 + 0x20 + 0x04 + 127*fader.x
divide sum/128, take the remainder (e.g. if sum is 129 the remainder is 1; if sum is 64 the remainder is 64)
128 - remainder = checksum (so if fader.x = 80 the checksum for the sysex message above is decimal 116 or 0x74)
Some more (or rather less) information around sysex and the GR-55 can be found here http://www.vguitarforums.com/smf/index.php?PHPSESSID=28b7bf21751eeb8ef69ed012920f9b86&topic=4422.msg32490#msg32490
Also note, all values in the sysex string can also be maintained in decimals. I prefer hexa decimal as all the MIDI implementation charts are in hex ...
Hope that helps,
B.
Hi Tele
My reference to Basic Channel was referring to the GR - figure it is similar to the VG in that it has a 'Basic Channel' that it's system responds to . .
B's comments seem fine - though I would add that checksum accuracy is not needed most of the time with Roland hardware, I generally use '00' without problems when sending to my VG - though it may be used in their editors to confirm accuracy of data exchange . . .
A few comments I would add -
Look for repeated data and abstract it to a constant/expression - ie. Model id hex 41,10,00,00,53 should not change, DT1/DataTransmit is always 12 too
Then your message end up something like {0xF0,GR_55_id, DT1, etc . . . - I also find Fader.x * 127 easier to read than the other way around . . .
Unless you are doing other necessary scripting it is probably easier to use MID Mapping/CustomMIDI - the Standard Mapping Sysex should be fixed soon . . .
Here is part of a VG-99 controller - the Amp Head section, allowing selection of Amp, speaker, mic/position etc plus amp knobs etc . . .
Most of the knobs use custom midi scripts, the Amp menus use a bit of scripting - mostly using decimal rather than hex in the MIDI messages
Have a look and see what you can work out - with the info from the GR55 editor it should be able to be adapted . . .
^^VG_Amphead.tiff
Still need to add one or two things and sort out some pre-load issues but it works pretty well as is on the VG . . .
Have also done a similar thing for guitar selection . . .
Cheers
MM
^^VG_Amphead.jzml
My reference to Basic Channel was referring to the GR - figure it is similar to the VG in that it has a 'Basic Channel' that it's system responds to . .
B's comments seem fine - though I would add that checksum accuracy is not needed most of the time with Roland hardware, I generally use '00' without problems when sending to my VG - though it may be used in their editors to confirm accuracy of data exchange . . .
A few comments I would add -
Look for repeated data and abstract it to a constant/expression - ie. Model id hex 41,10,00,00,53 should not change, DT1/DataTransmit is always 12 too
Then your message end up something like {0xF0,GR_55_id, DT1, etc . . . - I also find Fader.x * 127 easier to read than the other way around . . .
Unless you are doing other necessary scripting it is probably easier to use MID Mapping/CustomMIDI - the Standard Mapping Sysex should be fixed soon . . .
Here is part of a VG-99 controller - the Amp Head section, allowing selection of Amp, speaker, mic/position etc plus amp knobs etc . . .
Most of the knobs use custom midi scripts, the Amp menus use a bit of scripting - mostly using decimal rather than hex in the MIDI messages
Have a look and see what you can work out - with the info from the GR55 editor it should be able to be adapted . . .
^^VG_Amphead.tiff
Still need to add one or two things and sort out some pre-load issues but it works pretty well as is on the VG . . .
Have also done a similar thing for guitar selection . . .
Cheers
MM
^^VG_Amphead.jzml