Logic Pro X Controller assignments - MIDI output

pajczukin

New Member
Hello Everyone of You !!!
It's my first post on that forum so nice to meet you. And here is my first question :)

There is in Logic Pro X nice feature like Learn Control Assignment. That allows to use external real sliders, buttons and knobs as MIDI input to control any parameter in Logic and any parameter in any plugin.
That's great. But I need opposite. I mean I need to be able to send any Logic parameters (especially inserted plugins sliders and knobs) to MIDI output. To be able to read it with my external MIDI equipment.

Is there any way to do that?

For any help great thanks in advance.
Best Regards.
 

Peter Ostry

Administrator
Staff member
If you are familiar with Logic’s MIDI Environment, you can do it. Connect a monitor object to the channelstrip with the plugin, move knobs and faders in the plugin and look what the monitor shows. If you see "Fader" events, you are fine. Take a transformer with a map or a couple of transformers, convert the Fader events to CC or whatever you want and send them out through a "Midi Instrument" which is actually a MIDI port.
 

pajczukin

New Member
If you are familiar with Logic’s MIDI Environment, you can do it. Connect a monitor object to the channelstrip with the plugin, move knobs and faders in the plugin and look what the monitor shows. If you see "Fader" events, you are fine. Take a transformer with a map or a couple of transformers, convert the Fader events to CC or whatever you want and send them out through a "Midi Instrument" which is actually a MIDI port.
Hello Peter Ostry,
great thanks for your answer. It works. But actually I need anything easier. Something like Control Assignment "Learn" option, but in opposite way.
I am working on Arduino based MIDI controller. And it will have two knobs. Ans I want to be able to control with those knobs any parameter in Logic Pro X.
And of course with Control Assignment "Learn" I can do that easily. But the problem is, when I "learn" I want my controller to achieve info about initial value of parameter. Do you understand that situation? With my controller I can set anyone value of parameter between 0-127.
But when current value of parameter is in example 10, and with my controller I set new value of 110, then parameter jumps immediately from 10 to 110.
That's why I need my controller to know about current value of learnt parameter. Then I could increase or decrease that value.
But how to get that value as easy as learning control assignment?

Best regards
 

Peter Ostry

Administrator
Staff member
Just a note: There are settings for reset messages in Logic’s global MIDI preferences, but the option for "send used instrument settings" does not work, at least not in my 10.5.1 Logic under Mojave. This option should send learned (assigned) parameters at several occasions, see the Logic user manual. Maybe it works for you. If I need such a feature I have to find workarounds as described below.



From Controller Assignments you can have feedback of the learned values from Logic. "Automatic" usually works. Logic sends you the current values of learned parameters when you select the instrument track.

Via key commands we have several possibilities to select tracks by MIDI. For me it works for example when I send Logic one MIDI event to select all tracks and another one to select all instrument tracks. Depending on the current selection, one of the two events forces Logic to send the learned parameters of an instrument track. The Arrange window must have the focus, otherwise Logic complains about the wrong view.

A view-independent command is the "Hide" toggle, it works in the Arrange- and Mixer window. The track in question must be selected.

Maybe you find better commands for your application. Maybe you only need that once and simply deselect/select one track with mouse clicks before you start playing. Or the command for next/previous track is good for you.



Another option would be to have track automation that sets plugin parameters. Send a "Play" command via MIDI, read the parameter values in Arduino and switch automation off or send a "Stop" command. This also works only with Controller Assignments and only learned parameters are sent from Logic. Not as flexible as the method above but better if you want always the same start values.



If you do not want Controller Assignments, you can do similar things in the MIDI Environment but this is not easier. Rather more complicated.
 

pajczukin

New Member
Hello Peter Ostry,
great thanks for your exhausting answer. Really appreciate.

But actually nothing of those advices doesn't work for me :(

Maybe it's because my English language. I don't know, but I am not sure if I understand all your advices.

Let's say that:
"From Controller Assignments you can have feedback of the learned values from Logic. "Automatic" usually works. Logic sends you the current values of learned parameters when you select the instrument track."

I don't know how to get that "feedback". For me it's grayed out as you can see on the enclosed screenshot.
But even if it is not grayed out, and let's say I set it to Automatic, it is still some missunderstanding for me because there is no option for MIDI OUTPUT.

So even Logic sends feedback I still don't know where he sends it, to which output?

Please find on enclosed screenshot. The feedback is grayed out. And on MIDI monitor I there are only inputs.
Screenshot 2020-09-07 at 21.49.52.png
 
Last edited:

Peter Ostry

Administrator
Staff member
don't know how to get that "feedback". For me it's grayed out as you can see on the enclosed screenshot.
Your input port is an IAC Bus.
Feedback for IAC is not available because the IAC driver feeds back to itself by default. I like to call it "IAC Echo". Sometimes good, sometimes not.

You have to find a way to use another MIDI port, virtual or hardware. Maybe your Arduino has USB with its own ports. Or you can create virtual in/out MIDI ports on the Arduino. Or you need a MIDI interface. Or you use software that can create virtual ports for you (MidiPipe for example). First choice would be the Arduino itself, if possible.

So even Logic sends feedback I still don't know where he sends it, to which output?
Logic sends the feedback to the same port where the event was learned from.

See the screenshot below. I assigned a parameter and then clicked the track where the compressor sits. In Midi Monitor you see that the current value was sent out to the same port.

Controller_Assignments_and_Feedback.png
 
Top