Jump to content

Redirect events to different instruments


blastron

Recommended Posts

I've recently got a Novation Launchpad Pro and am hoping to wire it up into Logic (and eventually MainStage) so that I can control a bunch of different effects and instruments live. What I'm currently trying to do is figure out how to redirect incoming note events to different software instruments. Currently, I have a "Launchpad Input" channel strip that is set as record-enabled and listening on MIDI channel 1, and a "Target Instrument" channel strip listening on MIDI channel 2. I have a Scripter plugin set on the Launchpad Input strip, and tracing events shows that they're being correctly routed.

 

Currently, I'm resending the event to a different MIDI channel:

function HandleMIDI(event)
{
event.channel = 2;
event.trace();
event.send();
}

 

This produces the correct log output, but the Target Instrument channel strip doesn't seem to be receiving input events.

 

What am I doing wrong?

Link to comment
Share on other sites

Hi,

 

The problem is that the Scripter plugin (and all other MIDI FX) outputs directly to the instrument on the same channel strip. If you want the data to go beyond the instrument (but specifically, outside of Logic) you need to load an external instrument plugin. This way it would be possible to re-route the data back into Logic using an IAC bus.

 

But really, for what you're trying to achieve, that's too much of a hassle. You'd be better off dealing with this in the MIDI environment using transformer objects, or even by following the steps on this guide:

 

 

LPX Control Multiple Instruments on Different MIDI Channels

 

J.

Link to comment
Share on other sites

  • 1 month later...

Jordi is correct. You'll need to basically create a midi loopback interface via the IAC bus. Set your launchpad input track to send to that IAC bus. What I did was disconnect the "sum" port on the "Physical Input" environment object, and replaced it with the IAC bus port. I also needed to get data back to the device so I would get visual feedback on things like button presses etc. You may not need to do this because I don't know how a LaunchPad Pro works but I'll tell you how I'm routing things in case it's helpful. I put a transformer object between the input port and the sequencer that sends notes to the sequencer and cc messages to the launchpad output track.

 

I respectfully disagree about it being too much of a hassle though. IMHO if you are truly looking to gain some real control over Logic, these types of methods are totally worth it. Setting up a couple of IAC buses gets to be a lot more convenient once you realize all you can do by programmatically routing data. 

 

I'm working with a Behringer Cmd Touch64 (LaunchPad 2 clone) and I'm using a combination of Scripter, Control Surface assignments and the Environment including the IAC bus to do some fairly complicated things. Depending on how far you are willing to go down the rabbit hole, you can get some pretty outstanding results. For example, I'm currently working on an Ableton Push clone.

 

@Jordi: Does Mainstage have an analog to the environment? I have done a bunch of work in Logic that I'd like to make use of in Mainstage, but I'm not sure if Mainstage has any equivalents to some of the environment objects like transformers etc.

Link to comment
Share on other sites

  • 10 months later...

My query is similar to this. I'm trying to write a script that analyses and parses MIDI data out to different instruments.

- I play notes that come in to MIDI channel 1, which come into a track where there is a MIDI Scriptor. (I've got a separate controller on channel 16.)

- The Scriptor separates the notes into different MIDI channels

- Then I want to route that multi-channel MIDI data across multiple Software Instrument tracks

- And I also want to be able to use MIDI controllers / iPad remote to configure those tracks (e.g. there might be three instruments picking up MIDI channel 4 but I might want to turn one of them on/off so it doesn't play

 

How do I do this? It's a shame you can't have MIDI Scriptors on summing tracks or in the Environment. I'm fine with the javascript but am a novice at Logic Environment and IAC Busses.

 

Thanks for any help!

Link to comment
Share on other sites

I think I've worked it out, and you don't need the Environment.

If anyone else is interested:

1. Use Audio MIDI Setup App to set up a new IAC Bus 1 (https://sites.google.com/site/mfalab/mac-stuff/how-to-use-the-iac-driver)

2. In Logic, Instrument track 1: Input is Utility > External Instrument, MIDI destination IAC Bus 1, outputting to all MIDI channels. Its MIDI Channel is 1. My keyboard controller is set to output on Channel 1.

3. Instrument track 1 has MIDI Scripter FX which separates incoming note data into different midi channels (2-16, not 1, which would create a feedback loop).

4. Other tracks have MIDI channels 2-16 and are record-armed.

5. Select/Arm track 1

 

In my understanding, if you want to record what you play, you're effectively limited to 15 MIDI tracks. If you don't, you can direct different IAC Busses / physical instruments directly to different tracks/groups. Is this correct?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...