Replies: 4 comments
-
ProposalBackend (logic)First-class modulators
Fulfilled requirements: 1, 4 Modulator presets
Fulfilled requirements: 9 Modulator source
Fulfilled requirements: 2, 3 (and to some degree 10) Target "Modulator: Set parameter value"
Fulfilled requirements: 5, 6 Target "Modulator: Invoke transport action"
Fulfilled requirements: 7 Real-time FX parameter adjustments
Fulfilled requirements: 8 and 13 (with the mentioned limitations) Frontend (GUI)
AlternativesUsing REAPER's built-in modulation featureOkay, but currently doesn't trivially support requirements 3, 4, 5, 6, 7, 10. At least not that I know of. And some others maybe not to the same extent as ReaLearn would support them. Combining FX that generates MIDI with ReaLearnOne could use JSFX that generates MIDI events or something like Melda MCCGenerator and then feed it into ReaLearn. That works already now! In detailLet's look at how this works in detail and how it supports our requirements. MIDI-generating FX
Fulfilled requirements:
ReaLearn mappings for modulating arbitrary FX parameters
Fulfilled requirements: 2, 3 ReaLearn mappings for changing modulator parameters
Fulfilled requirements: 5, 6 Assessment / missing thingsRequirements that are not fulfilled (at least not in status quo):
Requirements that are fulfilled only partially or not in the highest-possible quality:
|
Beta Was this translation helpful? Give feedback.
-
By "Realime Thread" do you mean the (track-) thread that drives the FX chain the plugin is loaded in, or is the plan to spawn a dedicated thread for that ? ================================================================================================== I suggest to take a look at RePack->ReaRack. This modular synth has a lot of sophisticated modulators (modules) with nice functionality and GUI. These communicate by midi high resolution CC. And hence the output of a "modulation machine" built from them also is high resolution CC (which in reaper can be used for all kinds of modulations, e.g with the help of ReaLearn if (e.g.) Reaper internal parameters are the target. ) The code might be reused, but IMHO it would be most versatile, best learning curve as well for users as for programmers (and maybe easiest to implement) if a new "Modulation Slot" would be able to host "midi filter" JSFXes and feed the Midi output into the ReaLeran infrastructure. ================================================================================================== ... envelopes ... ================================================================================================== Beware what is meant by "real time". The most critical issue is the consistent latency between the different triggers of all event involved and the sequence of the rendered samples. Here PDC and anticipative FX needs to be considered. And the fact that the samples that come together when rendering are handled by different software agents "somewhere" in a range of sample stream positions (i.e. "time") that is as big as the latency defined by block count, block size (and sample rate when rendering "realtime"). This can be as much as a second when configuring the project for heavy CPU load. ================================================================================================== Like selecting plugins from the list of plugins in Reaper. Maybe a " ================================================================================================== like the cute FX-Chain GUI extension (ReaScript) by Sexan ? ================================================================================================== I don't see how this timing-wise could be different from (a) directly using Reaper to convert Midi CC messages to Plugin Parameters and (b) using ReaLearn to convert Midi CC messages to Reaper internal settings/actions. ================================================================================================== True ! |
Beta Was this translation helpful? Give feedback.
-
@mschnell1 Could you please move your many comments into just one? I'd like to keep this clean, if possible. |
Beta Was this translation helpful? Give feedback.
-
I am very interested in this :) if i can be at any help please let me know :) |
Beta Was this translation helpful? Give feedback.
-
This forum discussion brought up the topic of modulators. I think it could be a natural fit for ReaLearn.
In a nutshell: First-class modulator objects that can modulate multiple targets, are parameterizable and controllable from outside, can modulate other modulators, visualize current value and upcoming values, come with an overview GUI and can be intuitively connected to target parameters.
Here are the requirements.
Requirements
1. There should be the concept of a modulator
At its core, a modulator just produces different values over time. Mathematically, it's f(t) = y, where t is the current time or beat and y is the produced value, usually a percentage.
Example: Sinus LFO
2. A modulator should be able to modulate parameters
A modulator is only useful if it modulates something: Some kind of parameter.
Examples of parameters: FX parameters, track volume, send volume
3. One modulator should be able to modulate multiple parameters, not just one
It wouldn't be enough if one modulator can modulate just ONE parameter. It should potentially be many.
4. Modulators should be parameterizable
It should be possible to change the behavior of a modulator from outside by modifying one of its parameters.
Mathematically spoken, this just means that the function gets more inputs: f(t, p1, p2, p3, ...) = y
Example: A modulator "Sinus LFO" could have a parameter "Amplitude"
5. Modulator parameters should be changeable via MIDI, OSC and so on
Just providing a GUI for controlling a modulator's parameters is not enough. It should also be possible to change them from controllers or MIDI items.
6. Modulators should be able to modulate parameters of other modulators
As the title says.
7. Modulators should be startable/stoppable/pausable via MIDI, OSC and so on
One could see this as a specialization of requirement 5 (at the end, starting/stopping/pausing could be just parameters).
However, it might make sense to build dedicated support for this, by influencing the input time/beat.
Mathematically spoken:
8. Modulators should control parameters in real-time
I'm talking about worst-case latency here, i.e., "How many milliseconds may it take at a maximum to apply a new modulator value?""
When I say "real-time", I mean that the modulator should be able to apply the new parameter value at least on the start of each audio block, not later!
For example, with an audio buffer size of 256 samples and a sample rate of 48000 Hz, the worst case latency of applying the new modulator value would then be about 5,33ms.
9. There should be pre-defined modulators
The system should provide multiple useful kinds of modulators out of the box.
10. GUI: Creating and connecting modulators and parameters should be intuitive
11. GUI: Modulators should visualize their current value
Modulators should be visible, visualize their current value (e.g. as an animation) and ideally look pretty. Because humans like pretty things.
12. GUI: Modulators should be visually integrated into existing REAPER views?
I personally don't see this as an important requirement but I feel that some people here do. So it's up to them to describe what exactly they mean by that.
13. Modulations must be rendered (online and offline)
Beta Was this translation helpful? Give feedback.
All reactions