Page 1 of 1

Sending MMC commands from Lemur

Posted: 13 May 2013 17:58
by Mystic
I use Logic Pro as a DAW, which only will deal with one OSC controller at a time, and I want that to be my MCU Pro. However I also want to be able to use Lemur on my iPad to a least control the Logic transport via MIDI Machine Control when I am across the room from my DAW and other control surfaces. When I went looking through the user library, the only template I found that seemed to have MMC was the MPD24 emulation here:

http://liine.net/en/community/user-library/view/314/

However, although the pads and sliders in this Lemur template do work properly (which suggests to me that I have the daemon set up properly to route into Logic), the transport controls do not work. I see some MIDI messages being received by Logic when I press them, but I don't know if they are correct or not (frankly I don't know enough about MMC - yet - to know what constitutes a correct MMC message). I went looking for help online, and to my dismay found comments about Lemur (albeit old ones, prior to the iPad version) that suggested it does not support MMC at all and that I should use OSC protocol instead (which I cannot for reasons I enumerated earlier … the whole reason I got Lemur at all was because it supposedly had full MIDI support).

So my questions are two-fold: should Lemur on my iPad (connected to Logic via a Line 6 MIDI Mobilizer II, by the way) be able to send MMC to Logic in order to control Logic's transport remotely? And if so, can anyone point me toward a template that actually does so successfully so that I at least have a starting point for knowing what works before I attempt to start creating my own?

Re: Sending MMC commands from Lemur

Posted: 13 May 2013 18:02
by Softcore
Im not very knowledgeable with MMC myself too but after a quick search it appears to be just a subset of Sysex messages. If that's the case I think its "doable" with Lemur indeed.

One question though.....why dont you just use Lemur as a secondary MIDI controller (and not as an OSC controller) and then use plain 'ol midi mapping for the transport controls? Not doable in Logic? pardon my question but I have absolutely no experience with Logic so Im just wondering.

Re: Sending MMC commands from Lemur

Posted: 13 May 2013 18:40
by Mystic
Softcore wrote:Im not very knowledgeable with MMC myself too but after a quick search it appears to be just a subset of Sysex messages. If that's the case I think its "doable" with Lemur indeed.

One question though.....why dont you just use Lemur as a secondary MIDI controller (and not as an OSC controller) and then use plain 'ol midi mapping for the transport controls? Not doable in Logic? pardon my question but I have absolutely no experience with Logic so Im just wondering.
If I need to resort to MIDI mapping I think I probably could, but I much prefer the idea of having a working MMC transport because then I wouldn't need to worry about regenerating those custom MIDI mappings on every new project. Also, I am hoping to eventually take a custom Lemur transport a bit further with MIDI time code data display and other such things that are related to MMC (and which also fall into the sysex spectrum I believe), for which I would not be able to "cheat" with MIDI mapping.

Re: Sending MMC commands from Lemur

Posted: 13 May 2013 18:44
by Softcore
Ok hear ya! I can mock up some buttons by using the data provided in my link above but I will not be able to test it....If thats ok with you I'll just post them here!

Re: Sending MMC commands from Lemur

Posted: 13 May 2013 20:45
by Softcore
Ok solution no1....

How about a second MCU in your Lemur?

Can you try the template below and tell me if it works?

Configure it as an MCU in Logic and then press the "connect" button - tell me if I am lucky ;)
Logic-LeMackie2.zip
(23.15 KiB) Downloaded 113 times

Re: Sending MMC commands from Lemur

Posted: 13 May 2013 20:51
by Softcore
Solution no2

Can you check if the below MMC - play button works?

If we can nail this...we will be able to make all the rest too....
MMC-play.jzml
(1.34 KiB) Downloaded 118 times
Its configured on target 0

Re: Sending MMC commands from Lemur

Posted: 13 May 2013 21:28
by Mystic
Softcore wrote:Ok solution no1....

How about a second MCU in your Lemur?

Can you try the template below and tell me if it works?

Configure it as an MCU in Logic and then press the "connect" button - tell me if I am lucky ;)
Logic-LeMackie2.zip
That will not work because Logic will only accept a single OSC device. Which doesn't include multiple devices of the same type, alas. :D

I'll try the other template with the MMC play button tonight.

Re: Sending MMC commands from Lemur

Posted: 13 May 2013 21:39
by Softcore
Not sure what you mean because the MCU is not an OSC device, its MIDI....

Anyways, dont try the MMC play above it wont work.....

This one will though - I tested it with Sonar which is MMC compatible.... ;)
MMC-transport.jzml
(8.6 KiB) Downloaded 166 times

Re: Sending MMC commands from Lemur

Posted: 14 May 2013 01:19
by Mystic
Softcore wrote:Not sure what you mean because the MCU is not an OSC device, its MIDI....

Anyways, dont try the MMC play above it wont work.....

This one will though - I tested it with Sonar which is MMC compatible.... ;)
MMC-transport.jzml
Wow ... times two!

First off, I don't know why I was always thinking that the MCU Pro was an OSC device. Now that I've gone looking, I can't find a single thing that suggests this, so I even don't know where I got that idea. I was just plain wrong on that, it appears ... which means that the problem I had with my old iPad OSC software not connecting to Logic anymore had nothing to do with the MCU Pro, and everything to do with either that OSC app or Logic just not working very well.

Second, your revised MMC transport above does in fact work. Sweet ... thanks so much! Now I need to take a closer look at what you did so I can begin learning to do stuff like this for myself.

Seriously, I'm greatly appreciative of the help.

Re: Sending MMC commands from Lemur

Posted: 14 May 2013 06:23
by Softcore
As a hint to understand what goes on here are the "sources"....

1. midiout(target, msg[]) function is used in the scripts

2. the data inside the script are decimal versions of

F0 7F deviceID 06 command F7

The third byte is the Device ID.
The fifth byte is the command:
01 Stop
02 Play
03 Deferred Play
04 Fast Forward
05 Rewind
06 Record Strobe (Punch In)
07 Record Exit (Punch out)
08 Record Ready (Record Pause)
09 Pause
0A Eject
0B Chase
0D MMC Reset
40 Write
44 Locate/Go to
47 Shuttle

found here http://en.wikipedia.org/wiki/MIDI_Machine_Control
I actually used a random number as "device ID"

3. To convert hex to decimal
http://www.statman.info/conversions/hexadecimal.html

So for example the above
F0 7F deviceID 06 command F7

becomes

240 127 deviceID 06 command 247

;)