GR-55 Ipad Midi Touch Basic Guitar Interface

Started by Galvonot, September 14, 2011, 02:33:44 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Galvonot

Hello All

Back when the TouchOSC interface was being talked about, there was some discussion about a more specific solution, creating an interface that had only what was needed. a subset of the wide array of GR-55 settings. I did this in Midi Touch, and have included a screen shot, Midi Touch file (zipped format) and GL5 file. The GL5 file, for the Floorboard Editor, is what I mostly use with this interface, with a Variax based Warmoth guitar. I plug the iPad into the camera kit, then plug an EMU midi 1x12 USB midi connector into that, then on into the input of the GR-55.

I offer this as is, to be used this way or as the starting point for somebody else to create their own interface, possibly choosing different amp and guitar models, or adding effects as needed. The GL5 file is for a preset that activates the overdrive with the ctrl pedal, and uses the unswitched expression pedal to increase gain while decreasing level. When switched on, the toe of the expression pedal is the guitar pickup (Variax in my case) and the heel is the model guitar from the GR-55

The work of the Touch OSC people has been most impressive, and helped keep me going while trying to figure out how to make sysex work. My solution is not wireless, but I hope it will be someday.

I hope someone enjoys this as much as I have. It's a blast being able to control these parameters in real time.



Elantric


mbenigni

That looks great!  Does the MIDITouch solution update the settings on the iPad screen when you load a new patch on the GR55?

Galvonot

No feedback from the GR-55 using this solution, I'm afraid. Someday, though, I'm sure both apps will respond to feedback the way we want.

Elantric

#4
I doubt it

Who would want all that bi directional MIDI traffic during each patch change any way?

The typical paradigm of a GUI editor for a guitar processor is to maintain a separate local patch library database file. Upon each patch change, a pointer to the appropriate patch (stored within the local patch library database file) is loaded into the GUI, where the current status/value of the all parameters that make up a specific patch  are loaded from a local file and then displayed to the user.


gumtown

The best way, if bi-directional midi is not possible, is to copy all the user patches from the GR-55, and have the software read from the backup file to update the parameter values in the GUI on each patch change.
Although the way Roland have implimented there midi communication in recent years, by sending large 256-byte bulk chuncks of data, make patch data transfer very quick.
But it depends on the wireless midi hardware too, whether they are capable of transfering 1.3Kb of data per patch in a reasonable amount of time without too much buffering.
Free "GR-55 FloorBoard" editor software from https://sourceforge.net/projects/grfloorboard/

Elantric

#6
If we do the math,
MIDI transports single direction data at 31.25 kbits/sec

If a GR-55 patch contains 1.3kbits of data, then 1.3kbits divided by  31.25 kbits/sec = 0.0415 second.  This translates to 415 milliseconds to transport the data that represents each GR-55 patch to the GUI.
Add MIDI to USB adapter handshakes, error checking, etc, all contribute additional time required to transport this 1.3kbits of data for each patch change.   

Galvonot

How about a manual update?  A button that requests a sysex dump of the current patch? If I knew the sysex command for this I'd give it a try sometime soon.  Just had carpal tunnel surgery - both hands - so I am a bit limited for now.

mbenigni

Sorry to hear about the carpal tunnel.  I've had bouts of it over the years, along w/ chronic tendonitis, but I've managed to avoid surgery thus far.

As for the two potential solutions to the patch-loading problem... I doubt either is feasible with the current version of TouchOSC, and if I had to guess probably same said for MIDITouch.  If TouchOSC were ever updated to support bidirectional I/O, it would probably require a major (i.e. inclusive of every control) update to the template file.

If I had to choose between the two, I'd still prefer to read patch settings directly from the GR55 on patch change (perhaps requiring that the user press a "Read" button on the iPad) as opposed to maintaining a patch library on the iPad.  I just prefer the simplicity of the former; the latter requires set up in advance, and presents the likelihood of things getting out of sync if you occasionally edit via other means.  (And if you own more than one GR-5...)

I hate the idea of "throwing away" the work I've done thus far and going to an entirely different platform, but I'd like to think it would be easier the second time around, with all of this SysEx documented.  So who knows, maybe I will be revisiting this in a couple of months with an eye toward Control or some other script-based solution.

Of course, the tide is always turning.  A year from now I may be eye-balling a Windows 8 tablet to run Guitar Rig, and using the GR55 soley as an audio interface/ guitar modeler/ detuner/ MIDI converter.

mbenigni

In general, I'm finding the output-only limitation is fine if I'm working on patches from scratch, or even on patches I started after I began using the TouchOSC template.  But if I'm working on a patch that I designed months ago, it's very disorienting.  I spend a lot of time checking through Assigns etc. to make sure there isn't something buried in there to trip me up.

Also, hating having to rename patches on the GR55.  It's a real stroke of genius that you break your back if the unit's on the floor, but if it's on the desk and off-angle you can't read the LCD.  :/

vanceg

#10
Well done on an excellent Touch OSC layout!
Wish I had one for the VG-99

alancarl

Hi Vanceg,
     I'm confused by your statement here ... isn't this layout for the app called MIDI Touch?
I have TouchOSC and it is great...but for one thing it does not transmit SYSEX, which is what the GR-55 speaks, right?

Quote from: vanceg on September 15, 2011, 02:22:15 PM
Well done on an excellent Touch OSC layout!
Wish I had one for the VG-99

I'm getting ready to cop MIDI Touch and I'm just making sure what is what.
Thanks,
AL

mbenigni

alancarl, you're correct - Galvonot developed this with/for MIDI Touch, not TouchOSC.

alancarl

Thanks mbenigni,
      I guess I should cop the MIDITouch App soon as it would facilitate a few things... I just kringe at buying more MIDI-only stuff...Heck it is the 21st century, right?

Truthfully I wish OSC would become more widely adopted and developed...
I have had TouchOSC since it's early days and I spent a whole lot of time with it and OSCulator for fun with MIDI(BTW Camille was very helpful)  and with Bidule and SooperLooper for OSC explorations...parameter feedback, naming, etc!

I'm a little hesitant at the price and separate Iphone and Ipad app purchases compared to other music apps..but heck I bought ProRemote for 100.00$ and it has not proved to be useful in my scene so far.
Oh well I digress...

Now Moog's Animoog for an introductory price for .99 is truly amazing!
Thanks again mben,
AL


mbenigni

#14
I hear ya, and MIDI Touch is a little costly compared with TouchOSC.

Not sure whether you've seen this already but -  if you're already on the OSC bandwagon - there is a TouchOSC template for the GR55, discussed here:

https://www.vguitarforums.com/smf/index.php?PHPSESSID=5eeea7bee0ca94d925f7c583c51c99d8&topic=3205.0

(See p. 8 for pics and links to download recent versions.  I post updates from time to time as this evolves.)

Galvonot

Hello Again

Slight update to the Midi Touch Basic Guitar Interface. The time control on the delay did not work properly. Still doesn't,  but you can choose from 17 to 238 ms, with a bump to 500 ms at the end. It stems from a problem in using more than three variables in the sysex statement. Plus I added a couple of sliders that let you scroll through all the electric guitars and amps. I use it often to rapidly, kind of randomly, change amps and guitars to stumble upon new sounds. And some cosmetic changes. Enjoy!

I find I use this along with Gumtowns Floorboard editor.

mbenigni

#16
QuoteIt stems from a problem in using more than three variables in the sysex statement.

You have my sympathy there.  I don't know what Roland were thinking with that data format, but it's impossible to get these apps to talk to those registers.  In some cases I've just sent data to the most-significant byte (nibble, technically) so that you get kind of a low-resolution sweep across the full range.  But for most of the delay time controls I just implemented the note-based values at the very top of the range (so that the high and middle byte are constant at their max values) allowing selection of sixteenth note down to quarter note.  Then you can just assign tap tempo to S1, S2 or the CTL pedal, and get your desired delay time that way.

Here's an example for the DELAY block time control.  Note that only one byte needs to change, and this gives 16th, 8th triplet, dotted 16th, 8th, 1/4 triplet, dotted eighth, and quarter note values:

0xf0 0x41 0x10 0x00 0x00 0x53 0x12 0x18 0x00 0x06 0x07 0x0D 0x04 x(0x09..0x0F) 0x00 0xF7

alancarl

Quote from: mbenigni on October 24, 2011, 08:11:38 AM
I hear ya, and MIDI Touch is a little costly compared with TouchOSC.

Not sure whether you've seen this already but -  if you're already on the OSC bandwagon - there is a TouchOSC template for the GR55, discussed here:

https://www.vguitarforums.com/smf/index.php?PHPSESSID=5eeea7bee0ca94d925f7c583c51c99d8&topic=3205.0

thanks mbenigni I will check it out,
Al

Macciza

Hi
If it it doing it similar to VG delay sysex then it should be 2 bytes ie 00 01 - 0E 08 1ms -1800ms 0E 09 - 0E -15 BPM Notes  or similar . BPM are at the end after the range, which can vary depending on situation.
Also some RATE parameters will be 00 - 64 hex = 00 - 100 and 65 - 71 hex BPM Note.
The BPM NOTE is accessed like a 'sub-table' at the top end of the given range.

I don't have a GR but can certainly help with the VG side of things. Keep meaning to complete a few works I have started on . . .

Hope that helps
MM
'70s Strat, Brian Moore iM, VG-8, VG-99, FC-300, VL-70m, StringPort, SoftStep, Sentient6, iMac QC i7 27".

gumtown

Quote from: Macciza on October 24, 2011, 09:35:37 PM
Hi
If it it doing it similar to VG delay sysex then it should be 2 bytes ie 00 01 - 0E 08 1ms -1800ms 0E 09 - 0E -15 BPM Notes  or similar . BPM are at the end after the range, which can vary depending on situation.
Also some RATE parameters will be 00 - 64 hex = 00 - 100 and 65 - 71 hex BPM Note.
The BPM NOTE is accessed like a 'sub-table' at the top end of the given range.

I don't have a GR but can certainly help with the VG side of things. Keep meaning to complete a few works I have started on . . .

Hope that helps
MM

The GR-55 is different that some parameters use 3 bytes, but only use the LSB. Many parameters starting from '0' start off at 000, while others start off at 400, if positive values will increment from 400, or some with +/- values will center at 400 and will increment/decrement.
Some of the PCM synth parameters are not  quite linear either, so for each step a value has to be 'hardwired'.
Free "GR-55 FloorBoard" editor software from https://sourceforge.net/projects/grfloorboard/

teleholic

Galvanot very nice work..i've recently gotten Midi Touch, and got your .miditouchpreset file into my iPad (in the miditouch.app folder along with the default presets files) but it doesn't seem to show on the app itself..any ideas? I've  rebooted it before trying..thanks!

mbenigni

Quote from: gumtown on October 24, 2011, 10:36:49 PM
Some of the PCM synth parameters are not  quite linear either, so for each step a value has to be 'hardwired'.

Hi gumtown.  You posted on this point before, but I've never quite gotten your meaning, even after having implemented (and to my knowledge successfully tested) every PCM synth paramter.  Can you give me an example of this?

gumtown

Quote from: mbenigni on February 28, 2012, 07:10:47 AM
Hi gumtown.  You posted on this point before, but I've never quite gotten your meaning, even after having implemented (and to my knowledge successfully tested) every PCM synth paramter.  Can you give me an example of this?

An example would be PCM1/2 Pan -50>center<+50 (= 101) but the data spans from 01 > 7F (= 127).
same with most of the PCM TVA, TVF, LFO1 & LFO2 controls.
It's not really a big deal, but you will notice on your Touch OSc app that sometimes the value on the page and the value in the GR-55 maybe out by 1 or 2 at various intervals of the controller range.
Free "GR-55 FloorBoard" editor software from https://sourceforge.net/projects/grfloorboard/

mbenigni

Quote from: gumtown on February 28, 2012, 11:31:39 AM
An example would be PCM1/2 Pan -50>center<+50 (= 101) but the data spans from 01 > 7F (= 127).
same with most of the PCM TVA, TVF, LFO1 & LFO2 controls.
It's not really a big deal, but you will notice on your Touch OSc app that sometimes the value on the page and the value in the GR-55 maybe out by 1 or 2 at various intervals of the controller range.

Ah, this explains it.  The TouchOSC template doesn't actually display numerical values corresponding with a control's position, so in this case I would just establish the range from 1-127 and center the fader or knob.  Thanks for clarifying.