No announcement yet.

Getting isolated MIDI back from Logic

  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Originally posted by camille View Post
    Unfortunately the Logic plugin will not allow to do exactly this. It is designed to display Logic as a Control Surface that speaks OSC.
    I understand. Yes, this function is working great for me.

    Originally posted by camille View Post
    Does Logic sends the MIDI data being played back?
    If so, OSCulator should see it as a MIDI input, and therefore automatically create an OSC routing back to TouchOSC.
    This is the problem - Logic does *not* send the MIDI data out unless I manually create an environment object (external instrument) whose output is assigned to the MIDI "port" of Osculator. This mostly works (except program changes, which don't seem to get passed). And when I do create such an object, it requires specific static routing from a single object within Logic to Osculator - there is no way to specify and cable the output of whichever track happens to be currently selected and active (dynamic routing?).

    This is a limitation of Logic itself - the default behavior is to SUM all of your MIDI source inputs, from any port and any channel, and use any/all of them as the input for whatever track is currently selected. In the environment, this magical object is called "to Recording & Thru" - but there is no similar object for the sequencer output, that would perform the reverse function - taking whatever track we're on, no matter what channel and port and send it out of Logic.

    This, again, is only a MIDI issue. In the scope of "control surface" parameters, there is such a function - Logic outputs data values for a "bank" of 8 channelstrips [/logic/mixer/track/4], as well as just the "current" track [logic/track], no matter which that is. This makes it possible to create a control layout that shows much detail, more than you could cram onto a screen if you had to display all the parameters of all the tracks, all the time.

    My original hope was that if you could somehow tap into the stream of data for *just the selected track*, you could somehow get around the Logic's missing selective MIDI output functionality...


    • #17
      I have an idea about how to get around the MIDI output limitation of logic, by using "control surface" functions instead. Currently, the osculator logic plugin supports a certain set of Logic events, which correspond to most of what you can adjust on a mixer channelstrip (level, pan, sends, a few insert generic insert parameters, etc). When a software instrument or audio channelstrip is used, this allows control of many functions (all of which are logic parameters - fader events? - not MIDI events).

      However, on a purely MIDI instrument channelstrip, the controls are a bit different. You can see this by creating a new "instrument" or "multi-instrument" environment object. These objects can't hold software instrument or even insert audio plugins. When used as tracks they simply capture and record midi data, and it has to be routed to an instrument elsewhere - either a software instrument or an outboard device via MIDI interface. These objects display similar, yet notably different controls in the mixer, as shown in my screenshot. The wider strips are software instruments, and the narrower strips are MIDI-only multi-instruments. From my testing, OSCulator does receive messages for level, pan and mute, just like the normal channelstrips (orange markers). But the "pots" above aren't really audio bus sends - they display the value of MIDI CC data (you can pick which to show), and the topmost button allows display and selection of MIDI program change messages (pink markers). These "pots" provide control and live visual feedback of the MIDI event data being played back on a track. *IF* it is possible, if Logic actually generates and listens to control surface data for these controls, it would permit me to do exactly what I wanted - communicate back thru OSC to touchOSC the current value of a given control - which in this case would represent MIDI CC data values!

      Any chance you could sniff around and see if those pink controls can be tweaked via OSC?


      • #18
        Ok, now I get it, sorry it took me so long.
        Let me see what I can do with what the plugin SDK offers.


        • #19
          When I thought I found the solution I discovered it was not working.
          I can ask Logic to create a control surface assignment for the currently selected track (I used MIDI controller 1 = modulation for a test).
          I have no clue why I can't get it to work so I've asked the person in charge of the Logic plugin SDK to help me, we'll see if there is a solution.


          • #20
            Bad news, I just got the answer that "There is no way to send MIDI controllers or program changes via assignments."
            Which means that you can't program the Logic Plug-in SDK to communicate these values.



            • #21
              Okay, so actual MIDI data is not going to work...

              But can I ask you to investigate one last chance? in my screenshot above, there are certain mixer channelstrip controls that set/display the MIDI data. The ones labeled orange are currently working with control surface assignments - can you find out if the ones *labeled pink* can also be assigned to control surface? If so, then I wouldn't need actual MIDI data - I'd simply manipulate those controls (which in logic happen to be mapped to MIDI data).


              • #22
                Unfortunately this is precisely the question I asked. You can not transmit MIDI Control Change or Program Change messages through the Control Surface plug-in. Wether the final format is MIDI or OSC does not matter, it is those controls that are not available to control surfaces.