yinyue Posted November 11, 2019 Share Posted November 11, 2019 Hi forum, I'm trying to send MIDI info from secondary program to Logic. I send it through IAC drivers to Logic. The MIDI is sent correctly and I receive it in Logic through MIDI Thru. Now: How do I set an Instrument Track to receive information from only the IAC Driver XYZ (and Channel #XYZ)? I'm sure there is some info somewhere that lets me adjust the MIDI input of a track. Thanks Quote Link to comment Share on other sites More sharing options...
des99 Posted November 11, 2019 Share Posted November 11, 2019 All MIDI coming into Logic, from all ports, is merged and send to the currently selected track. You can't say "On this track, listen to channel 13 on the IAC bus only". If you need to filter some MIDI out, you'll need to do it in the environment before that info hits the sequencer (eg, filtering out whole MIDI ports you don't want, etc) Quote Link to comment Share on other sites More sharing options...
volovicg Posted November 11, 2019 Share Posted November 11, 2019 You could use the multiplayer option (auto demix = on) to route the incoming midi channel to the desired track Quote Link to comment Share on other sites More sharing options...
des99 Posted November 11, 2019 Share Posted November 11, 2019 You could use the multiplayer option (auto demix = on) to route the incoming midi channel to the desired track But still from all incoming MIDI ports - in other words, all the MIDI channel 1 info coming in from any port will go to that track. Quote Link to comment Share on other sites More sharing options...
volovicg Posted November 11, 2019 Share Posted November 11, 2019 Yes - you cannot specify the port - only the midi channel - so the limit is 16 (I know you know that ) Quote Link to comment Share on other sites More sharing options...
yinyue Posted November 11, 2019 Author Share Posted November 11, 2019 Oh, sad to hear. Thanks for the replies. Quote Link to comment Share on other sites More sharing options...
volovicg Posted November 11, 2019 Share Posted November 11, 2019 Not sure I understand what is sad to hear..... You have an external program sending via the IAC - as long as you know which midi channel it is sending to and is a different channel than other channels being sent - it can be assigned to a track. Just because the ports cannot be assigned doesn't mean you can't do it. The only caveat is that you can only route up to a maximum of 16 midi channels simultaneously. I can post a video if want to see how it is done ( when I can ) Quote Link to comment Share on other sites More sharing options...
des99 Posted November 11, 2019 Share Posted November 11, 2019 I'm guessing that there is other MIDI data coming in from other ports that the OP *doesn't* want arriving at the selected track. Which, as I said, can be achieved in a number of ways, including the environment stuff, and also turning those ports off in the MIDI input prefs... Quote Link to comment Share on other sites More sharing options...
Dewdman42 Posted November 11, 2019 Share Posted November 11, 2019 If you’re not going to need to record the incoming midi dedicated for this one instrument then try something like: Create the instrument track Reassign that track to no output Delete the track Open the environment and you’ll see the instrument CHANNEL is still there. Now patch a cable from that specific IAC port to the instrument channel. Doing so will also remove that IAC port from the sum that is feeding the sequencer You should then hear external midi from IAC hitting your instrument plugin and avoiding the sequencer altogether Quote Link to comment Share on other sites More sharing options...
Dewdman42 Posted November 11, 2019 Share Posted November 11, 2019 If and when you need to record that IAC then cable it to the sequencer and create an external midi track and reassign it to the instrument channel again. Quote Link to comment Share on other sites More sharing options...
Dewdman42 Posted November 11, 2019 Share Posted November 11, 2019 I'm at my computer now and can make a better response. So first a couple points... As others have already noted, by default LogicPro sends all incoming midi on all midi ports, to the sequencer object (in the environment). Then in your arrange view of LogicPro, you see your "tracks" and the currently selected track is the one that receives all that incoming midi from all ports. You can use the demix feature that has been mentioned, to isolate the midi per midi channel, so that not only will the selected track receive midi, but other tracks that are record enabled at the same time...and there is some built in magical voodoo rules about which order of the tracks the incoming midi goes to those tracks, based on midi channel. All midi has to be consumed, as I recall... Me personally I've never gotten along very well with this particular feature of logicPro, I would much prefer if LogicPro just let me arm any track I want and manually specify in the track header which port and channel to listen to, like every other DAW on the planet. But that's just me. So.. First thing is play around with the demix feature and see if it gets you going.... The other way to handle it is by wiring things up in the environment, which is a bit cumbersome to do, but on the other hand, you don't have to worry about magical voodoo of which tracks are receiving the midi and so forth.. Here is an example: Create an instrument track with the instrument you plan to use, then right click on the track header and reassign it to "No Output" After you reassign the track to "No Output", the track and underlying instrument channel strip are disassociated, so you can delete that non functional track if you want or just leave it there for now, but either way, the underlying instrument channel will not be lost. You can still find it by looking at the mixer pane, make sure the View tab is set to ALL and there it is...a mixer channel that is not associated with any track in the sequencer: Now you open the scary environment (LogicPro window menu). That will open an environment window and by default it will be looking at the Mixer layer, and as you can see the Instrument channel you created earlier when you created a new track, is still there. Now open another environment window, using the same menu command, you will have two open environment windows both pointing to the same mixer layer. IN the top corner of the window you will see a Layer control you can use to select one of several different available layers. On one of the two windows, choose the "Clicks and Ports" layer. Drag the instrument channel object across from the mixer layer to the Clicks and ports layer on the other window. Now you need to cable it up. On the box called "Physical Input", you will see the IAC port you are using to send midi from the other program. Click on the little triangle on the side of it and drag over on top of the Instrument channel object, that will create a cable between them. By default, The Physical Input object sums up all received midi on all ports and sends it via the "Sum" triangle over to the Sequencer object, passing through the keyboard and monitor on the way there. When you cable any of the specific midi ports explicitly as we have just done, then it will automatically be excluded from that Sum. So at this point your external midi generator should be sending midi to your instrument via that cable you set up, and its completely blocked from hitting the sequencer at this point. Which means you can go ahead and use LogicPro the way you want for other tracks, use it normally...that one IAC won't effect any of it, its totally isolated to the instrument setup there. But unfortunately you can't record it this way. But it will stay hardcoded out of the way, listening to the external midi and the external midi won't hit any tracks. When you're ready to record, then you have to change the cabling... Two steps.. Recable the IAC to the sequencer by dragging from the little triangle next to the IAC port over to the keyboard object... Then go back to the arrange page...if you didn't delete that old empty track you can use it now, if not then create a new external midi track, then right click on the track header and reassign it to the instrument channel object: At that point, all incoming midi will be recorded to that track, but just record your external midi at that point to that track and be done with it. I know some people will not agree with me, and that's fine, but I prefer to use these laborious steps when doing stuff like that because LogicPro's built in behavior to assign all incoming midi to the currently selected track, or the voodoo demix feature, I find to be difficult to work with. You could also get trickier in the environment and create a switch that could switch the instrument in/out of record mode instead of having to recable it to record. I'll leave that as an exploration for you and the environment. Quote Link to comment Share on other sites More sharing options...
des99 Posted November 11, 2019 Share Posted November 11, 2019 Me personally I've never gotten along very well with this particular feature of logicPro, I would much prefer if LogicPro just let me arm any track I want and manually specify in the track header which port and channel to listen to, like every other DAW on the planet. But that's just me. I'll be controversial and say I like it how it is... (Don't shout at me! ) I like it how it is because in general, like I suspect the vast majority of Logic userbase, I basically have one main controller, and Logic's longtime behaviour means I never have to worry about faffing about with incoming MIDI routing. If I want to play a different keyboard/controller, I just plug it in, and I have to do nothing, it just works. Now, there are undoubtedly users and use cases where this existing behaviour is hurting people (and yes, I'm aware of what these use cases are, in detail). So, if the MIDI input bottleneck is ever dealt with (how many years now..?), I'd like it done in a way that doesn't increase complexity/faff for "simple" setups, but that adds flexibility for those times where you would prefer to easily target different tracks with different MIDI input ports/channels. Something like by default, a track listens to all incoming ports, but you can enable a checkbox that then enables this and lets you pick a port and channel that that track exclusively will respond to... I'm not sure how that would be handled in the environment to let you preprocess the input streams pre-sequencer object but I'm sure something could be figured out... Quote Link to comment Share on other sites More sharing options...
Dewdman42 Posted November 11, 2019 Share Posted November 11, 2019 I agree with you des. I think it easily could be achieved with a best of both worlds scenario.. but I am not holding my breathe for them to change anything honestly. Quote Link to comment Share on other sites More sharing options...
Fred B Posted November 12, 2019 Share Posted November 12, 2019 Input channel selection can be done with MIDI FX > Scripter > Channel Filter. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.