View Issue Details

IDProjectCategoryView StatusLast Update
0007455ardourfeaturespublic2019-04-21 22:51
Reporternaught101 Assigned To 
PrioritynormalSeverityminorReproducibilityN/A
Status newResolutionopen 
Product Version5.X git (version in description) 
Summary0007455: Modulators
DescriptionSometimes it is nice to be able to arbitrarily modulate midi controls of a plugin. For instance, if a plugin doesn't have an LFO, and it would be nice to have one for some parameter. In this case, it would be great if there was some way to create a "modulator" plugin (built-in?), that simply outputs a modulation signal that is mapped to the relevant input of the other plugin.

Bitwig uses a system like this, for example: https://www.youtube.com/watch?v=Qr2gVHybc_4

I don't know whether this would make more sense as a built-in plugin, or if it could be an external plugin. But either way, the key important thing would be an easy way to map outputs (modulation signals) to inputs (named plugin parameters). Bitwig does this particularly well, but I doubt Ardour's current interface would allow something like that easily. Perhaps some kind of paired drop-down selector might work? It would be a fair bit clunkier than Bitwig's interface though.


Key useful modulators:
- LFO modulator (wave shape selection, rate (free/tempo synced), phase, depth/amplitude)
- Envelope generator (ASDR etc. from midi, max amplitude)
- Mathematical transform (this would take input from another modulator, and transform it, e.g. log/exp/power/trig functions, etc. Ideally could take more than one input, and add/multiply/divide/etc. Perhaps any Lua maths functions?)

See also https://www.bitwig.com/en/bitwig-studio/bitwig-studio-2/modulators.html for some other options (many of which are not that necessary, as they can already be done in other ways).
TagsNo tags attached.

Activities

beefheart

2017-08-29 08:45

reporter   ~0019994

I can't give a big enough thumbs up for this, it's the one thing that keeps me from moving away from Renoise. This would be a huge improvement to Ardour and really modernize it.

unfa

2017-08-30 11:22

reporter   ~0020001

Last edited: 2017-08-30 11:54

Another type of a modulator like this would be a universal envelope follower (for audio) - this way you could do sidechain processing with plugins that don't allow this by design.

unfa

2017-08-30 13:20

reporter   ~0020002

There is a plugin called The Infamous Envelope Tracker that generates a MIDI CC signal based on audio - but how to rout this to a control in another plugin? I have no idea.

I guess this all could be done with maybe even Lua plugins.

I think Ardour would need a convenient way to use such functionality to route something like this to a plugin control port. Maybe an extension on the Pin Connections? Maybe a "Control Port" tab in there to do stuff like that?

naught101

2017-08-31 01:59

reporter   ~0020003

Also, I don't know if this should be a separate issue or not, but containers would also be useful:

- A "chain" container, that groups a set of sequential plugins (or layers).
- A "layers" container, that groups a set of parallel plugins (or chains).

Both of these should be able to be saved as templates for re-use.

The reason I say I'm not sure if this should be a separate issue, is that a modulator could be designed as a special case of a chain - a grouping element, that also generates its own control signals. This is roughly how bitwig 1.X did it, and it worked reasonably well. Bitwig 2.x instead adds "modulation slots" to each plugin/chain/layer, and modulators can be put in to each slot and then mapped to parameters. I don't think I have a strong opinion about which version is better...

naught101

2019-04-18 04:23

reporter   ~0020632

A sub-type of layer container that would be really nice would be a drum machine container, that contains a separate instrument on each midi note - both Ableton and Bitwig have something like this, and it's awesome for layering up drums (in bitwig, the layers are also sub-busses, that have their own effects chain and mixer strip).

johmue-eo

2019-04-21 10:54

developer   ~0020635

You can route a MIDI CC signal to any plugin contro
 port via the MIDI-learn feature. I amusing that to manipulate stuff by a foot pedal while playing. You can even record those as automation.

http://manual.ardour.org/using-control-surfaces/generic-midi/midi-learn/

Does that help?

naught101

2019-04-21 13:37

reporter   ~0020636

Yeeeesss.. in a way. I'm not just talking about control of a plugin though, I'm also talking about generating the control signal. A plugin that output modulation sources (e.g. an LFO or envelope) to MIDI CC, that could be routed to another plugin's control ports would be suitable. I guess that is probably already possible via careful MIDI CC routing. However, actually figuring out which CC value to send/recieve is not easy (or even always possible?). Also, there are plugins that take control inputs that aren't necessarily MIDI CC compatible (e.g. LV2's CV ports). Basically, it would be good to have a nice UI for routing signals with more granularity than just MIDI-from and MIDI-to.

The chain/container/layers thing can't be solved by MIDI, and should be a separate issue.

naught101

2019-04-21 13:51

reporter   ~0020637

Split out the containers suggestion into a new issue: https://tracker.ardour.org/view.php?id=7753

johmue-eo

2019-04-21 17:52

developer   ~0020639

You can use some external application to create the MIDI LFO signal. For example qmidiarp.

naught101

2019-04-21 22:51

reporter   ~0020640

Yep, it's possible. The external app workflow just doesn't work for me. Nor does it solve the routing UI problem mentioned in my previous comment.

Issue History

Date Modified Username Field Change
2017-08-25 08:05 naught101 New Issue
2017-08-29 08:45 beefheart Note Added: 0019994
2017-08-30 11:22 unfa Note Added: 0020001
2017-08-30 11:53 unfa Note Edited: 0020001
2017-08-30 11:54 unfa Note Edited: 0020001
2017-08-30 13:20 unfa Note Added: 0020002
2017-08-31 01:59 naught101 Note Added: 0020003
2019-04-18 04:23 naught101 Note Added: 0020632
2019-04-21 10:54 johmue-eo Note Added: 0020635
2019-04-21 13:37 naught101 Note Added: 0020636
2019-04-21 13:51 naught101 Note Added: 0020637
2019-04-21 17:52 johmue-eo Note Added: 0020639
2019-04-21 22:51 naught101 Note Added: 0020640