Logic Pro Footswitch not recording

CinningBao

Logician
I have an M-Audio foot switch jacked into my MPK49, and while I'm playing it responds as you would expect to the Rotor speed of the Rotor effect.

However, none of the data is being recorded into Logic. The notes I'm hitting are in, but no foot switch action. I also have an M-Audio expression pedal whose data is captured perfectly.

The MPK49 screen shows what it is sending, and it shows both the Expression pedal value+CC and Foot switch value+CC, the Logic display only registers the Expression pedal data; none of the foot switch is being detected.

Just restarted Logic for a quick test, to make sure no unwanted configs were hanging around.. same result; Expression pedal is seen by Logic, but foot switch is not.

Any quick fixes for this?

Cheers 🙂
 
First, look into the Controller Assignments. Maybe the events you expect are assigned to something and in this case they do not reach the sequencer. You can delete this assignment if you don't need it.

If the Controller Assignments are clean, look into the MIDI Environment, layer "Click&Ports" and check if there is a filter or a port connection that blocks the events in question.

Finally (and you should do this anyway), install MIDI Monitor and look if the keyboard really sends the data you expect and check the port/channel displayed. Use the MIDI Monitor preferences to switch from CC names to CC numbers. If the keyboard does not send the messages, you may want to check the configuration of the keyboard (sustain pedal/function to the correct port and channel).
 
Upvote 0
Thanks Peter - I did look at Controller assignments and there was nothing related to the Footswitch. Or in MIDI Environment.

I have downloaded MIDI Monitor and although I cold see the HOLD PEDAL data being generated, Logic was not responding to it.

So, I did notice that the Controller Assignments ZONE frame was populated with assignments I never use, and never configured! One of which was my iPhone Logic remote app.. I suppose when I need it again, Logic will work out what to do with that data from the phone when it receives it. So I deleted the all the assignments, and once I redefined the HOLD pedal to the Rotor Speed, the data is now being captured by Logic.. phew!

Thanks - have a good day 🙂
 
Upvote 0
Thanks Peter, no Control Surfaces setup apart from Logic Remote on iPhone, which I do use every now and then.

I think, after a different kind of test, I can better describe the problem, and I don't know if it's bug, or if it's working as designed.

This is my repeatable process:

- load pianoteq (or any instrument which responds to sustain pedals, exs24 piano) on an empty channel
- sustain pedal works? yes, good.
- into another channel load and instrument which doesn't respond to sustain, in this case Martinic's ComboModelV (not sure it's still available, but any organ emu which doesn't actually sustain the notes when pressing the pedal)
- load Rotor after that Organ emu
- sustain pedal does not automatically pickup the Rotor Speed assignment
- alt-shift-k Controllers, Learn, move Rotor on plugin interface
- hit sustain pedal
- Controller Assignment window displays link
- when this channel is selected, the Rotor speed is affected as you would expect
- HOWEVER, i go back to the piano channel and now the sustain pedal does not work.

It seems, even though the controller assignment Class is set to Channel Strip, Logic is now ignoring my sustain pedal when the Piano channel is selected.

Is this how it's supposed to behave?
 
Upvote 0
Is this how it's supposed to behave?
It works as designed.
The reason why it does not work lies in the Logic MIDI structure.

Complete MIDI flow:
• Pedal
=> Keyboard or other controller
==> MIDI Interface (or USB)
===> System MIDI input
====> (we can have additional MIDI software here)
=====> Logic input
======> Controller Assignments (if an event is assigned, it gets blocked here)
=======> Logic Environment, "Physical Input"
=========> "Sequencer Input" (or directly to channelstrips)
==========> Channelstrips and Plugins
===========> Channelstrips Output (if available)

When you assign an event in Controller Assignments it does it's job and gets blocked. Nobody afterwards will see it (we should have a "thru" option but we haven't). Now, what happened: You assigned CC64 (Sustain) to the Rotor plugin. A parameter of this plugin is now controlled by CC64 coming from a certain MIDI port on a certain MIDI channel. Controller Assignments handle that and block exactly this CC64. Your piano doesn't see Sustain anymore.

The "Class = Channelstrip" setting you mentioned does not affect incoming MIDI. It tells the Controller Assignments about the routing but the event gets hijacked anyway.

Normally you can assign an incoming event to multiple targets, but in your case Sustain is not learnable, Pianoteq does not expose this parameter to Logic. Means, the Controller Assignments do not allow to learn and map both, Rotor Speed and Sustain.

There are several ways to go around the problem, depending on your hard- and software and your wishes for performance.

Keyboard
  • Use a second pedal on the keyboard (not for you, MPK49 has only one TS pedal input)
  • Configure a preset on the keyboard where the Sustain pedal sends another CC event. Switch presets to play organ or piano.
  • Use a button/fader/pad on the keyboard for plugin control
  • Use the expression pedal for plugin control

Others:
  • Use an additional hardware MIDI controller for special tasks.
  • Use software before Logic, to generate an additional event from CC64

Logic
  • Do not use Controller Assignments, rather do the mapping in the Logic Environment. One single transformer object can handle what you want. A drawback might be, that you need to remember this for other projects or save it in a template.
I can't recommend anything of the above as the only holy solution, it really depends on the equipment and your wishes. If you want to do it in the Environment we can talk about it. It's quite easy.
 
Last edited:
Upvote 0
Thank you for that detailed explanation; I had my suspicions it was to do with the way Logic routed the MIDI data round itself.

I've actually got an expression pedal which I might just hook up to the Rotor Speed instead, before I find myself needing to setup a MIDI environment for the future for when I don't have it!

I've also sent a FR to Modartt (who make PianoTeq) suggesting they make the GUI sustain pedal something which Logic knows has been clicked - then it might be possible to map without altering plugin values for a single session.

Unless they say no, in which case I'll need that MIDI environment detail..

again, thanks Peter.
 
Upvote 0
I'm having this problem too, not sure what the fix could be long term, but a short term fix I've found is hitting a key on my midi keyboard immediately after starting playback. I hit play, and the playback has no sustain, then I hit a key and it comes back in. Not sure what is going on there but it's worth a shot. It also appears that exported versions (bounce tracks, bounce project to mp3 etc) have the sustain left in.
I'm pretty new, so I don't know what this means, but I hope it helps.
 
Upvote 0
Back
Top