Logic Pro 9 LFO control of Plugin Parameters?

alienimplant

Logician
Is there a way to create and assign an LFO to (for example) the Wah Pedal cutoff filter in Pedalboard? If this is possible to do in the Environment, I'd be happy to do it. I'm not interested in responses that use automation or external controllers. I just want to know if there is an internal way to route an LFO, or envelope to a destination plugin parameter. My current understanding is that this is not possible. Anyone?

Happy New Year!
 

Peter Ostry

Administrator
Staff member
Why all the beef over MIDI inputs?
Because we talked about MIDI processing.
A MIDI LFO is clearly MIDI processing and that is what you asked for :)

Before you can process any MIDI you need an input, right? And for hearing the result an output is a great advantage.


It's already built into Logic: MIDI Learn function. All we need are MOD plugins that send instructions to a virtual core MIDI port. Problem solved!
The learn function does not play a role here, this is for control surfaces. Or, in the case of Mainstage, to automatically find the port where MIDI messages come in.

You are right with the plugin and we already went through this. It just happened that Sascha did not know that sending MIDI from a plugin is already possible. I hope this plugin-in/out-problem is now explained and we know that at least output is possible, probably direct input (not sure about that), and direct routing between plugins rather not unless the AU specifications get improved.
 
Upvote 0

alienimplant

Logician
I'm cursed today. I'm seeking the path of least resistance for a solution. I know we need input, but it's granted by MIDI Learn. Apple could create a plugin that would send controller MIDI messages to core MIDI which we could then route to any plugin. I thought it might be easier than implementing a whole new MIDI input engine.
 
Upvote 0
I know there's plugins providing access to physical MIDI outs - yet, this is absolutely not the same as if that MIDI out would be working straight inside the host already. You have to set up your IAC bus, route the I/Os properly and such. And you lose total recall on other machines.

Most other hosts are doing this fine, why not Logic?

Edit:
Just went through Peters post again, and well - even I have something onboard that kinda works like this, Redmaticas Keymap that is. Works the other way round but there's no need for the IAC bus, either.
Yet, I wonder why there's still no way to get quite some plugins to work while they *do* work in just about any other host.

- Sascha
 
Upvote 0

Peter Ostry

Administrator
Staff member
Dynamic Control Plugins
Maybe "Dynamic Control Plugins" would be a better name, because we would not just want to do the ususal MIDI tweaks but also apply similar manipulation to the data that flows around Logic in the automation and mixing functionality. I would like the option to open a "Dynamic Control Plugin" in a channel strip slot ...
Ok, here are my three current wishes/suggestions.

==============================================
The first one does not fit into this thread but is a long-term wish of mine:

Audio: Random Delay

A delay that allows positive and negative (!) values up to, say, 500 ms. Maybe 250 ms is enough for most applications. The negative delay is of course not usable in real time but in the mix.

Parameter 1:
The range, either in milliseconds or as a percentage of the full range. It sets the maximum of delay in both directions.

Parameter 2:
Weighting between forward and backwards delay. We need a preceding delay only or a following delay and anything between.

Parameter 3:
A factor for randomization. It tells if the behavior is fully random or rather floating with adjustable steps. If you have a long negative/positive delay you usually don't want it to jump from -250 ms right to +380 ms. The possible delay time is given by the overall time range but the deviation of the time should also be controlled.

Parameter 4:
Audio quality/behavior. A non-static delay causes slipping audio and that must be controlled to avoid unpleasent distortion of the tone. There should be a smooth mode that is as good as possible and probably rough modes for effects. This feature goes beyond my technical understanding, maybe it has to do with some buffers and internal mixing.

Other parameters:
Panning, volume, high/Low cut, feedback, pitch control. Probably an LFO that works on pitch and/or volume would be a good addition. The plugin should be able to work in synced mode but it will mostly be used in free mode (for overdubs, synthetic choirs and whatever).

Interface:
Mostly normal controls. I just see a problem with the range/weighting parameters. They are very abstract if done as knobs or faders. They would better be made as a ruler with two marks (negative/positive) where you set the amount of delay graphically. Best would be to have a fine/coarse mode because small delays are hard to adjust.

Some time ago a developer did almost program such a delay for me, without a fancy interface, but he stopped development as it was half done. We didn't have a problem, I think he just lost interest. The function was ok, the sound quality was not at its best but so far I heard there was room for improvement.

==============================================

Audio/MIDI: Universal Trigger

A realtime plugin. It reads an audio stream and at certain levels and/or frequencies it sends MIDI messages out. Basically it works like apTrigga or Drumagog but is specialized on MIDI processing rather than throwing audio samples for drum replacement.

At the first glance one may understand it as Audio-to-MIDI software like the Widisoft plugin. But the focus is not on recognizing correct pitches or even chords but rather on trigger levels.

The plugin should work on several independent channels. Each channel has an input level meter where you can set upper and lower thresholds. And an equalizer with different filter types.

Level parameters:
The levelmeter has a trim knob to set the gain for difficult signals. Maybe it could have a simple compressor/expander either. Beside or over the level meter are two adjustable threshold marks. Selectors allow to trigger only within the range, within and below and within and above. The reaction time should be adjustable because often we don't want to shoot a MIDI message out if the level just rushes through a threshold range. Synth pads would be targets for such a slower control.

Tone control:
Each channel should have a 3-band Equalizer with different filter types. Most application want steep filters but soft filters are also thinkable, see below.

Fine controls:
The outgoing trigger messages should correspond to the loudness of audio material. A loud audio part sends high values, a quiet part low values. The range should be adjustable and the whole function can be turned off.

Streaming MIDI:
This is a bit complex and I can only suggest the function but not fully describe it. The audio level should be constantly observed, preferably synced to the DAW tempo, and send a stream of MIDI messages that represent the current level. That way synthesizers could follow an audio signal, volume-wise. I don't know if this feature should be available in all trigger channels.

Audio Output:
We should be able to get the original audio signal at the plugin output, to put the plugin easily in any channelstrip. And it would be good to have another function available, that does not output the original signal but a generated audio signal. Be it pink noise or whatever, something that can be used for compressor sidechains for example.

==============================================

MIDI: Universal LFO

Not much to say about it. MIDI LFO's exist since decades and all flavours are known. It's just a matter of experience, discussion and development to make the best LFO on the planet as an AU MIDI plugin.

==============================================



<admin hat on>
My apologies to alienimplant, we are on the way to hijack his forum thread.
I will just wait if the idea of armchair-development of plugins and asking developers to build them generates some resonance here apart from Per's immediate response. If yes, we will make a new thread and bring some system into the process, like a "discussion area" and "approved suggestions" or something like that. If the resonance isn't great we will either forget about it or make it a private project.
<admin hat off>
 
Upvote 0

Peter Ostry

Administrator
Staff member
Apple could create a plugin that would send controller MIDI messages to core MIDI which we could then route to any plugin.

Yet, I wonder why there's still no way to get quite some plugins to work while they *do* work in just about any other host.
Two yes(es) to your comments. But complaining about this seems to be at a dead end. Users asked for years for MIDI plugins but Apple does obviously not want to make them. It's nevertheless their software. We have no chance but to send a thousand requests or find a way to get the plugins on our own. We may be bound to MIDI routing outside of Logic but it's better than nothing. The other way would be to use another software, be it Max/MSP, Bidule or another DAW.

Btw, I find the idea of Ableton to include Max into their software very good, although I think such a solution would be too complicated for most Logic users and is surely too complicated for the average Live user also. And I remember a plugin solution that was based on Max, or looked very similar. It was not bad but by far not ready as it vanished. However, I would prefer a couple of dedicated plugins over playing MIDI-Lego with a mathematical background.
 
Upvote 0

Per Boysen

Logician
Audio/MIDI: Universal Trigger
That looks like an Envelope Follwer plugin to me! That's on top of my wish list too. I had a blast with the Envelope Follower in a TC Electronics FireworX and I've toyed with software Envelope Follower functions in Bidule and Numerology. Would be great to have in Logic! Best as a native plugin so any parameter in any other Logic plugin may be set as target (to follow the audio input level in a properly scaled way). Second best as a MIDI plugin that sends a CC# through the IAC or unique channel created by the plugin.

I hinted an experienced programmer about this thread and got these interesting points that give some perspective:

  • The AU spec definitely allows AU's to generate MIDI (but no hosts support it yet). This is a known 'bug' in Logic, you should encourage others to report it at bugreport.apple.com, squeaky wheel and all...
  • Sending MIDI via regular CoreMIDI ports works, but *always* results in latency.
  • None of the major AU hosts pass valid MIDI timestamps to their AU's, which makes it very, very hard for an AU to generate MIDI without jitter.
 
Upvote 0

Markdvc

Administrator
Staff member
  • The AU spec definitely allows AU's to generate MIDI (but no hosts support it yet). This is a known 'bug' in Logic, you should encourage others to report it at bugreport.apple.com, squeaky wheel and all...


  • Just for the sake of clarity, is this really a bug - meaning, it is implemented, but not working as expected, or is it a wish - meaning, it isn't implemented, but we would all like it to be, and seeing as the AU spec allows it, it should be possible?

    kind regards

    Mark
 
Upvote 0

alienimplant

Logician
At the time I mentioned MIDI Learn, I thought it would be trivial to construct a plugin that sent MIDI control data to Core MIDI and then use the Learn function to route it to any AU parameter at that point. That's why I kept bringing it up. But it sounds like MIDI data that hits Core MIDI from an internal source may be jittery or latent. Strange that it's not a problem to do so from an external hardware source via MIDI interface or USB but not internally. Anyway, that was my logic. I thought it would be simple to route plugin MIDI data to the controller input.
 
Upvote 0

Per Boysen

Logician
  • The AU spec definitely allows AU's to generate MIDI (but no hosts support it yet). This is a known 'bug' in Logic, you should encourage others to report it at bugreport.apple.com, squeaky wheel and all...


  • Just for the sake of clarity, is this really a bug - meaning, it is implemented, but not working as expected, or is it a wish - meaning, it isn't implemented, but we would all like it to be, and seeing as the AU spec allows it, it should be possible?

    kind regards

    Mark

  • I was just referring what this guy told be, and I'm wondering the same thing! Let's see if we can find out the true matter of state on this! It seems to be a crucial point.
 
Upvote 0

alienimplant

Logician
To clarify my wish list in this thread, I would like several plugins that generate MIDI control data that can be routed to the MIDI Learn function in Logic, namely LFO, Envelope Generator and Step Sequencer. The reason this is important is that, even if I am using one modular component in a plugin such as Line 6 POD Farm (for example), the automation destination list is MASSIVE. Routing automation data to this plugin is daunting because of the long list of automation destinations available. MIDI Learn would bypass this problem by allowing you to write your LFO plugin (for example) to a destination parameter of another plugin without having to look for the proverbial needle in a haystack.

The best example of what I would like to see is how modulation works in Guitar Rig 3 and 4. In this example you just drag your mouse from the assign box to the destination GUI parameter (much like the MIDI Learn functionaly), which is the Wah-Wah cutoff in the pedal module below the step sequencer. That's it; you are modulating your cutoff in one stroke of the mouse. Within the confines of Guitar Rig, I've got to say that NI did a hell of an impressive job. I want this functionality throughout Logic. :]

 
Upvote 0

Peter Ostry

Administrator
Staff member
At the time I mentioned MIDI Learn, I thought it would be trivial to construct a plugin that sent MIDI control data to Core MIDI and then use the Learn function to route it to any AU parameter at that point.
Ah, now I understand. Yes of course this is the easiest way to map incoming messages. We just talked about the origin of the messages, the plugins, and why so few manufacturers make use of it. Once they send MIDI out we have our methods to get it back in and route to any point, environment or controller assignments.

But it sounds like MIDI data that hits Core MIDI from an internal source may be jittery or latent. Strange that it's not a problem to do so from an external hardware source ...
You get a lot of latency through MIDI hardware, depending on your interface and the MIDI path in your computer. I think developers are just picky because they are used to think about every potential problem. They are often right but sometimes they are just too perfect to accept a less sophisticated demand based on musical ideas. We don't ask for perfectly synchronized communication across several plugins over multiple routes. At least I don't need that, I would be happy if a MIDI plugin could simply turn a knob of a synth.
 
Upvote 0

Peter Ostry

Administrator
Staff member
In this example you just drag your mouse from the assign box to the destination GUI parameter (much like the MIDI Learn functionaly), which is the Wah-Wah cutoff in the pedal module below the step sequencer. That's it; you are modulating your cutoff in one stroke of the mouse.
This is indeed a very elegant way, although not directly related to MIDI plugins. If I understand you right you want a mapping function between parameters of different plugins. You can do this already if you use a hardware controller and map both parameters to the same message. But this is not as intuitive as "drag 'n drop mapping" would be.
 
Upvote 0

alienimplant

Logician
Yes, but I want a software LFO, not a hardware controller (I'm quite familiar with that process). This example was just a real-world example of the functionality. It's a metaphorical example. I'm not suggesting it has anything to do with inter-plugin functionality. What I'm saying is that I'd like modulation plugins to work as well as this does, but DAW-wide and in the context of MIDI Learn as a destination route.
 
Upvote 0

Peter Ostry

Administrator
Staff member
  • The AU spec definitely allows AU's to generate MIDI (but no hosts support it yet). This is a known 'bug' in Logic, ...
  • ... is this really a bug - meaning, it is implemented, but not working as expected, or is it a wish ...
    I was just referring what this guy told me, ...
    I think there is a misunderstanding on the developer's side. A couple of years ago I talked to apulsoft about adding MIDI out to the apTrigga instead of triggering audio samples. Adrian (a very nice guy) told me that he cannot do that because the AU specifications do not allow it. At this time I did not know that others do it already and later on I didn't ask again.

    For me it looks as if developers do not fully understand our wishes which may be our fault because we don't tell them exactly what we want. I tried several times for several plugins but everytime I asked someone about MIDI output I got the answer "not possible, a problem, a bug, not yet" and so on. And at the same time others like Widisoft just do it as if it were no problem at all. Honestly, I think it is no technical problem at all. CoreMidi is here and can be used, it is not blocked by Logic or the AU system.

    For me it looks as if they just do not understand the request. Maybe we should ask louder? WE WANT ONLY MIDI OUTPUT TO AN EXISTING MIDI PORT! Loud enough? Should I use a bigger font, bold, red? :)
 
Upvote 0
FWIW, the Widisoft example is pretty much perfect to demonstrate that these things are already possibe. It might still be easier if Logic supported MIDI-out plugins the way, say, Cubase does - but as Peter demonstrated, things can be realized already.

Personally, I really wish that something such as Zebra 2s arpeggiator had a MIDI out, especially for CCs (Zebra allows you to use each arp step as a modulator, which can lead to kickass results). Hmmm... maybe I should just ask Urs...

- Sascha
 
Upvote 0
Top