GR-55 - Marc Benigni's GR-55 TouchOSC Navigator for iPad

Started by MCK, February 17, 2011, 03:05:24 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

MCK

Quote from: mbenigni on September 26, 2011, 06:58:51 AM
Playing over moving tones is one of my favorite new tricks, so it'll probably be one of the first things I demonstrate.

Oh, and I'll be uploading the new template tonight, probably.

Sounds great! Can't wait to see. Keep well.

mbenigni

#201
I'm late with the new upload and with instructional videos.  Caught a serious cold right on schedule.

I've been tinkering with variations on the detuning mechanism, and I'm not quite satisfied with any of them.  Will wait on the next upload until I'm convinced I've exhausted the possibilities.

Right now I'm using Z messages to turn off the exp pedal (touch), tweak the exp ON pitch bend range (drag), and turn the exp pedal back on again (release).  This gives something like a real-time on-screen keyboard response, but you hear a blip of the unison while the exp pedal is off; not suitable for playing melodies.  :(  If I had a fourth Z message, I could detune both the exp OFF and exp ON bend ranges to the same value, and all would be well.

Does anyone know how to send multiple SysEx messages from a single event of a single control?  Elantric gave an example of multiple CC sends from a single control, but I can't get a SysEx equivalent out of that.  (I even tried overlaying multiple controls, but the control in front blocks the control in back.)

armatronix

You should be able to just place them back-to-back, like so:

0xf0 <sysex1> 0xf7 0xf0 <sysex2> 0xf7

-Hans

mbenigni

Thanks, Hans.  I did try this and it didn't work, but it had gotten pretty late by then and my coding and/or testing might have gotten sloppy.  I'll give it another shot this weekend.  Fingers crossed!

gumtown

If there is no limit on the size of a syx message that a control can send, you could send an entire "initialization" patch with it's settings that match the initial state of the controls of the Navigator GUI on startup, this would mean the GR-55 and the Navigator settings will start off in sync.
Free "GR-55 FloorBoard" editor software from https://sourceforge.net/projects/grfloorboard/

mbenigni

Quote from: gumtown on September 30, 2011, 02:16:07 PM
If there is no limit on the size of a syx message that a control can send, you could send an entire "initialization" patch with it's settings that match the initial state of the controls of the Navigator GUI on startup, this would mean the GR-55 and the Navigator settings will start off in sync.

An Init button is a good idea, but of course it would only be valuable if I also had the onscreen elements initialized to those same preferred states.  As it is they tend to be initialized to whatever is represented by a default 0 or center value.  It would be difficult (maybe impossible in TouchOSC) to get all the controls synced with that starting patch.  For the moment, I have a preferred starting template (as opposed to Roland's Init Patch) with my typical CTL/GK/Exp settings, routing, assigns, etc. which I copied throughout my unused patches with Librarian.  Even though the screen is largely inaccurate until I begin tweaking, I always start off in familiar territory, so it works out fairly well.

Then there's your first point: I think I would exceed the max length on the SysEx string.

mbenigni

#206
Quote from: armatronix on September 30, 2011, 12:20:07 PM
You should be able to just place them back-to-back, like so:

0xf0 <sysex1> 0xf7 0xf0 <sysex2> 0xf7

-Hans
Blargh.  Going out of my mind with this.  Hans, the approach you cite does work, and will likely be useful for other features down the road, but as for my little keyboard detuner, I'm still foiled.  For some arbitrary reason, you can use multiple SysEx commands in a simple /midi/[sysex][sysex] format, but you can't embed them in touch/drag/release SysEx sequences, i.e. /midi/z/[sysex]/[sysex][sysex]/[sysex].  I have no idea why not.  Alternately, just stringing together 3+ commands e.g. /midi/[sysex][sysex][sysex][sysex] fails for reasons that would be impossible to debug, barring extremely time-consuming trial and error.  (TouchOSC now takes upwards of a minute to save this template!)  I've tried, but I'm cross-eyed now...  My best guess is that it has to do with timing and conflicts between various commands arriving at the GR55 more or less simultaneously.

I'll probably give up on refining this feature and accept it with its current warts.  It's held me back from actually doing anything creative for too many nights now.

mbenigni

LOL just realized how utterly unreadable that last post is.    ;D

thatsrayor

#208
Hey guys!

This is some amazing work you're doing here. I'm limited in that I have an iPhone (no iPad yet) and can't justify spending money on The Missing Link right now - though having this setup wirelessly is an incredible achievement.

I've downloaded the TouchOSC template and have been trying to get it to work in a few different ways with no success so far. I've tried with the Midi Mobilizer, but it looks like TouchOSC only supports native sysex messages through OSC atm. I've tried OSC via wifi through a PC with Pure Data as OSC to MIDI converter, but it seems I'd have to create my own set of translations (basically from scratch) for Pure Data, which is far beyond what I'm capable of - for a solution that isn't ideal, anyhow.

So this leads me to the conclusion that the only solution for those of us without The Missing Link is to use MIDI CCs and the assigns on the GR55 - not a great solution for creating sounds from scratch, but better than nothing, and I have it working successfully with Midi Surface 2.

Hopefully TouchOSC will implement native sysex messages via MIDI in the near future, though at that point it still might be a bit of work to translate the OSC messages to MIDI. I'm fairly new with this technology so I don't quite understand what would be required, but I might be willing to give it a shot, if and when that happens.

I will eagerly await that day  8)

Peace

Elantric

#209
Don't forget there's other IOS  apps to control the GR-55. While not as extensive as mbenigni's TouchOSC GR-55 editor, VGuitarForum member Galvonot programmed "MIDITouch" to control the GR-55 too:

https://www.vguitarforums.com/smf/index.php?topic=4494.0



and he has the template for download at the link above.

mbenigni

Quote from: thatsrayor on October 13, 2011, 09:51:33 PM
I've tried with the Midi Mobilizer, but it looks like TouchOSC only supports native sysex messages through OSC atm... Hopefully TouchOSC will implement native sysex messages via MIDI in the near future, though at that point it still might be a bit of work to translate the OSC messages to MIDI. I'm fairly new with this technology so I don't quite understand what would be required, but I might be willing to give it a shot, if and when that happens.

I think you're right; and yeah, this is the crux of the problem for anyone trying to use a MIDI connection vs. an OSC-to-MIDI translator. (And disclaimer:  Whenever I use the acronym OSC, you can assume I only half know what I'm talking about.)

QuoteI've tried OSC via wifi through a PC with Pure Data as OSC to MIDI converter, but it seems I'd have to create my own set of translations (basically from scratch) for Pure Data, which is far beyond what I'm capable of - for a solution that isn't ideal, anyhow.

It will be quite tedious, but in no way technically demanding: if you find another combination of iOS app and adaptor that will allow you to send SysEx to the iPhone, you can just open the TouchOSC editor, and whatever new editor you use, and copy and paste each of my SysEx strings across (probably ommitting the "/midi/" prefix that is unique to TouchOSC.)  There are only a few controls that use what TouchOSC calls "Z messages" that might not translate.  (And to give due credit - about 90% of the SysEx in my template was actually copied from gumtown's Floorboard app.)

Also if you do find a way to get TouchOSC working for you (e.g. an effective adaptor), you can simply copy and paste entire controls or blocks of controls from my template to a new one that is formatted to suit the iPhone.

QuoteSo this leads me to the conclusion that the only solution for those of us without The Missing Link is to use MIDI CCs and the assigns on the GR55 - not a great solution for creating sounds from scratch, but better than nothing, and I have it working successfully with Midi Surface 2.

That's how I started out, actually.  It's pretty cool as a performance tool, and for limited programming (e.g. amp eq and gain).  The main problem is that with 8 assigns you run out so quickly.

prsrick

I am getting confused.  Can OSC works directly wih a MIDI adapter for iPAD,  e.g. The Alesis IO Dock.

Macciza

NO!
OSC = Open Sound Control is completely different to MIDI.
OSC can however transmit 'MIDI-styled data' as a small subset of it's capabilities.
How the OSC messages are translated is dependant on software/hardware implementations - but they are not naturally midi compatible
Cheers
MM
'70s Strat, Brian Moore iM, VG-8, VG-99, FC-300, VL-70m, StringPort, SoftStep, Sentient6, iMac QC i7 27".

Elantric

#213
This might help:
Wiki  - OSC - Open Sound Control
http://en.wikipedia.org/wiki/Open_Sound_Control
Open Sound Control (OSC) is a content format for messaging among computers, sound synthesizers, and other multimedia devices that are optimized for modern networking technology. Bringing the benefits of modern networking technology to the world of electronic musical instruments, OSC's advantages include interoperability, accuracy, flexibility, and enhanced organization and documentation.
Contents  [hide]
1 Motivation
2 Features
3 Design
4 Implementations
5 References
6 External links

Motivation

OSC is a content format developed at CNMAT by Adrian Freed and Matt Wright comparable to XML WDDX or JSON. It was originally intended for sharing music performance data (gestures, parameters and note sequences) between musical instruments (especially electronic musical instruments such as synthesizers), computers, and other multimedia devices. OSC is often used as an alternative to the 1983 MIDI standard, where higher performance, higher resolution and a richer musical parameter space is desired. OSC messages are commonly transported across the internet and within home and studio subnets using (UDP/IP, Ethernet). OSC messages between gestural controllers are usually transmitted over serial endpoints of USB by being wrapped in the SLIP protocol.
OSC gives musicians and developers more flexibility in the kinds of data they can send over the wire, enabling new applications that can communicate with each other at a high level.


Features

Open-ended, dynamic, URL-style symbolic naming scheme
Symbolic and high-resolution numeric argument data
Pattern matching language to specify multiple recipients of a single message
High resolution time tags
"Bundles" of messages whose effects must occur simultaneously
There are dozens of implementations of OSC, including real-time sound and media processing environments, web interactivity tools, software synthesizers, a large variety of programming languages, and hardware devices. OSC has achieved wide use in fields including new computer-based interfaces for musical expression, robotics, video performance interfaces, wide-area and local-area networked distributed music systems, inter-process communication, and even from within a single application.
The TUIO community standard for tangible interfaces such as multitouch is built on top of OSC. Similarly the GDIF system for representing gestures integrates OSC.
OSC is used extensively in experimental musical controllers and has been built into many commercial products including, the Jazz Mutant Lemur, the Monome, Native Instruments Reaktor and Cycling 74 Max/MSP.
The Open Sound World (OSW) music programming language is designed around OSC messaging.
OSC is also used as the heart of the DSSI plugin API, an evolution of the LADSPA API, in order to make the eventual GUI interact with the core of the plugin via messaging the plugin host. LADSPA and DSSI are APIs dedicated to audio effects and synths.
In 2007, a standardized namespace within OSC called SYN, for communication between controllers, synthesizers and hosts, was proposed, (See External links.)


Design

OSC messages contain name/value pairs and an optional time tag. Values are named in a hierarchical name space, reminiscent of a Unix filesystem path, or a URL. Value types are represented in a compact string representation. Values are represented in binary form with 4-byte alignment. The core types supported are
32-bit two's complement signed integers
32-bit IEEE floating point numbers
Null-terminated arrays of 8 bit encoded data (C-style strings)
arbitrary sized blob (e.g. audio data, or a video frame)
Applications commonly employ extensions to this core set. Recently some of these extensions such as a compact Boolean type were integrated into the required core types of OSC 1.1.
The advantages of OSC over MIDI are primarily speed and throughput; internet connectivity; data type resolution; and the comparative ease of specifying a symbolic path, as opposed to specifying all connections as 7-bit numbers with 7-bit or 14-bit data types.


Implementations

Some examples of software with OSC implementations:
Aestesis Elektronika
AlgoScore
Ardour
AVSynthesis
Bidule
CoGe VJ
ChucK
Circle Synth
Cosmovox, for iPhone
Crystal Space
CSound
DiABlu, a set of OSC to Bluetooth (and vice-versa) tools.
Digital Performer
Dlight
DSMI
Eyecon
EyesWeb
Fluxus
FreeJ
harmonySEQ
IanniX
Isadora (v.1.1)
Jamoma, a modular standard for Max/MSP
liblo, a C library for Unix
Lily
LiVES
Logic Pro
LuaAV
Martin Mx-Series Lighting Controller
Max/MSP
Mocolo
Modul8
Mxwendler
NodeBox
OSCpad, an iPad OSC controller
OSCulator
Overtone (Clojure)
Processing
Pure
Pure Data
Quartz Composer (as of v3.0 / Mac OS X v10.5)
Reaktor
Renoise
Resolume Avenue
SuperCollider
Squeak
Tiction
TJShow (as of v3.1)
TouchOSC, for Android, iPhone and iPad
Traktor DJ Studio
Usine
Veejay
VDMX
VirtualDJ
vvvv

Some examples of hardware with OSC implementations:

AlphaSphere
Audiocubes
Kiss-Box
uOSC
Lemur Input Device
Make Controller
MIDIbox
Milkymist One
Monome 40h
OMFootCtrl


Official OSC site
http://opensoundcontrol.org/

OSC is rather mature now, i first heard of it from Carl Malone of CM Automation in the mid 1990s. In some circles, there is strong inertia and bias to favor OSC over MIDI. Many will tell you: "MIDI is Dead" .The head buyer for Sam Ash did not want to carry the GR-55 because he said "MIDI is dead!

Of course MIDI is not dead, but we have a whole new generation of folks who for the past 10 years only know MIDI as data stream transported over a USB connector. The old school 1983 5 pin DIN MIDi jacks are rapidly vanishing from the new gear.

Look at new 2011 Laptops. I'm at a loss on locating one I can recommend buying. Sure they have fast I7 Sandy Bridge processors, but the brainless bean counters at HP, Dell, Toshiba have deleted the essential I/O ports that i find mandatory. Find a new laptop with a Firewire port, or even an Expresscard34 expansion Port. How can i use my MOTU 828 Firewire Audio interface or a UAD??
About the only Laptop you can buy today that meets all my needs is a 17" Macbook Pro, or a Sager/Clevo 900F - and both are pushing into the $2k to $3K  price range.
 

We are in a pivotal age where the processing power is fast and software is where the future is. Nearly everything I used to do in a studio in 1982 with $200k worth of gear, I can now do with an Ipad2, an Alesis IO Dock and the IOS DAW app "Meteor"
http://www.4pocketsaudio.com/product.php?p=8



prsrick

Thanks guys for all the detailed explanation.
But from this site:
http://www.soundware.co.uk/news/2011/07/12/alesis-io-dock-for-ipad-unboxed/

it seems to imply TouchOSC will work with Alesis IO Dock to control midi devices.

if I want a App just to select patches from gr-55,  and I have the Alesis IO Dock now,  which direction should I go?

appreciate all your answer.  thanks!

Elantric

#215
The best Control app in IOS is a moving target week to week.

I'm aware of:
TouchOSC
MIDTouch
Control
more here:
http://www.promusicapps.com/category/music-apps/controllers/


Assuming you have an ipad, get an alesis I/O doc, and start trying different apps that support Core MIDI and MIDi sysex transmission.
The hexler TouchOSC site has instructions on how to enable Core MIDi  hardware support, and this is the path for getting the Alesis I/O Dock to function with TouchOSC.



http://hexler.net/docs/touchosc-configuration-connections-coremidi

But its not a slam dunk. Best to consult with Hexler. and READ THE UDP Protocol doc.
http://hexler.net/docs/touchosc-configuration-connections-osc

Its my understanding UDP OSC messages are NOT transmitted over Core MIDi hardware connections, and that is the crux of the problem for using mbenigni's TouchOSC GR-55 Template with the Alesis I/O Dock.

Its best to be armed with OSC tools
Here is an OSX OSCMonitor app:

http://code.google.com/p/oscmonitor/updates/list

here is a Win7 OSC Monitor app:
http://www.frieder-weiss.de/OSC/index.html




And be sure you have upgraded the Alesis I/O Dock with the latest firmware.
Here's the link to the new firmware request page:
http://www.alesis.com/contentmgr/showdetails.php/id/235236

Ultimately you are best served with the one that you can wrap your brain around to program effectively.

Basic MIDI control apps can send MIIDi CC# numbers, but remember the GR-55 restricts only 8 MIDI CC# assignments TOTAL.

MIDI Sysex is the secret to Gumtown's GR-55 Floorboard - that is the godhead source of knowledge of understanding how to control every parameter on the Roland GR-55 using MIDI sysex. We already covered in prior posts how to "grab" each MIDI sysex command using MIDI-Ox or Bohm's send SX.

They say time is money, and its worth noting that few apps fully support MIDI Sysex.

You could possibly replicate the Mbenigni's GR-55 TouchOSC experience with another app, but it might take weeks and weeks of debug.

the Jabrudian Missing Link +  Mbenigni's GR-55 TouchOSC template running on TouchOSC IS an extremely cost effective solution for a free standing Ipad wireless GR-55 control solution - with no Mac or WinPC required at the gig.
The current crop of IOS MIDI control apps are located with google - there are many IOS dedicated sites that keep track of the latest developments.

http://iosmidi.com/apps/midi-touch/

www.iosmidi.com

http://www.promusicapps.com/category/music-apps/controllers/


On my things to do list is to program my Novation X-Station to send MIDI sysex to control the GR-55.

prsrick


mbenigni

#217
Quotethe Jabrudian Missing Link +  Mbenigni's GR-55 TouchOSC template running on TouchOSC IS an extremely cost effective solution for a free standing Ipad wireless GR-55 control solution - with no Mac or WinPC required at the gig.

Agreed.  TouchOSC is not perfect, but if nothing else it is a serious value.  I think I paid $5 whereas competing products (e.g. MIDITouch) were closer to $25.  The Missing Link was also a bargain IMO.  When I considered that other (wired) adaptors were going to set me back $60 or $70, anyway, $165 for a wireless setup suddenly didn't seem so bad.  And Hans at Jabrudian was extremely helpful in getting the ML to me in a hurry, and then providing post-sales support.

I wouldn't want to push this on anyone - because there are some significant limitations to my solution - but I can tell you I have no regrets for spending an extra $170 (plus a couple weeks of development that you won't have to go through) to get this editing interface going.  It's really turned the GR55 experience around for me.

Personally, I'd start by ponying up the $5 for TouchOSC - a minimal risk - and seeing whether your I/O dock works out (assuming you already own one?)

prsrick

Thanks.  May just buy this app and try it with my newly bought IO Dock.

prsrick

Got the TouchOSC, download the GR55 Layout, and hook up to the GR-55.   The TouchOSC recognize the Alesis IO Dock,
so I enable CoreMidi and disable OSC.   Unfortunately,   nothing responsd when I  touch any of the icon on the layout.
Does that mean the layout only send to OSC and not CoreMidi?    What should be my next step.  Thanks!

Rick

Elantric

#220
QuoteWhat should be my next step.  Thanks!

Lots of debug - or get one of these
http://wifimidi.com/
Missing Link OSC/MIDI Translator



and understand this:
QuoteBut its not a slam dunk. Best to consult with Hexler. and READ THE UDP Protocol doc.
http://hexler.net/docs/touchosc-configuration-connections-osc

Its my understanding UDP OSC messages are NOT transmitted over Core MIDi hardware connections, and that is the crux of the problem for using mbenigni's TouchOSC GR-55 Template with the Alesis I/O Dock.

Its best to be armed with OSC tools
Here is an OSX OSCMonitor app:

http://code.google.com/p/oscmonitor/updates/list

here is a Win7 OSC Monitor app:
http://www.frieder-weiss.de/OSC/index.html


prsrick

Thanks again!
I think I known why it is not working now, I downloaded the TouchOSC editor and open the GR55 layout file, and saw that only OSC messages are filled.  still not very familar with the editor yet.
I can only see the first layout of GR55, but not all other pages, What's wrong?  Thanks!

mbenigni

#222
Quote from: prsrick on October 17, 2011, 02:58:17 PM
Thanks again!
I think I known why it is not working now, I downloaded the TouchOSC editor and open the GR55 layout file, and saw that only OSC messages are filled.  still not very familar with the editor yet.

Cool. Just so I understand, you already own an iPad, TouchOSC, and the Alesis IO Dock, and you've downloaded the GR55 template?

So there are three approaches from here: you either get the Alesis IO Dock to accept OSC messages (which may or may not be possible, I'd check their documentation and ask on any related forums to see whether a firmware update might add this support), OR you invest in another interface that does accept OSC messages (Missing Link is the one I'm familiar with but there are likely others), OR you copy the SysEx from my template into another iOS app that can send SysEx via straight MIDI.  (Unfortunately, TouchOSC does not yet support SysEx in its MIDI messaging, only CC etc.)

The third option is the least attractive IMO. A) You just shelled out $5 for TouchOSC and B) it would be nice to avoid the labor of transferring all that SysEx to new controls in a new app.  Do some legwork to see whether the Alesis will cooperate, and if not, start looking for another interface that suits your budget.

If you have a Mac or PC on WiFi in your home, this might be a good time to set up some kind of OSC connection via Mac/PC as a temporary measure, just to test my template and see whether you like using it enough to warrant investing in a new interface.  I think someone else here may be able to point you to a thread describing how to do that; I haven't tried it myself. 

Before you go too crazy, bear in mind that gumtown's "Floorboard" editor may suit your needs as well, or better, depending on the application.  (The iPad/TouchOSC solution has definite advantages for performance/on-the-fly tweaking; Floorboard has its advantages for programming new patches.)

Quote
I can only see the first layout of GR55, but not all other pages, What's wrong?  Thanks!

You should be able to click on the tabs across the top of the screen to change between the pages of the layout.  (Be careful that you're not actually clicking on the labels that are sitting on top of these tabs; try clicking on the edge of the tabs to avoid these.)

prsrick

Thanks for all the good info.
Yes I found that out  this morning already that my problem is to click on the label itself.
I do not know TouchOSC will not accept SysEx (do you know why?)   I was planning to update your template
to include all the midi messages in the MIDI tab  so TouchOSC can control both I/F,  but looks like it is the wrong
direction again!

I will continue to do my experiment.   My main purpose is to switch the patches on the fly at live session  with added bonus to switch the pickup position,  since  only 3 pedal per bank is not enough for my live situation.    Thanks again.

Rick

mbenigni

No problem.  Wish I could be more help, but of course I've only tested the hardware that I personally use.

If your needs are as simple as you indicate, then you should compare notes with Galvonot as well. As Elantric mentioned above, he's got a nice solution working with a different interface and iOS app:

https://www.vguitarforums.com/smf/index.php?topic=4494.0