Old 11-02-2019, 10:10 AM   #1
aciddose
Human being with feelings
 
Join Date: Dec 2017
Posts: 22
Default Ability to re-map automation lane

Is there any way to re-map the destination parameter for an automation/envelope lane in reaper? I'm posting here to ensure such a feature doesn't exist before posting a feature request.

Say you have an envelope applied to volume (or plug-in parameter: volume (#0)), is it already possible to move/copy the envelope without doing a copy-paste of the content?

Currently the only way to do this is to select the source envelope lane, use ctrl-a (select all) and ctrl-c (copy), then switch the lane to the target and ctrl-v (paste). To "remap" would then require opening the "Envelopes for track" window to uncheck the source envelope to delete it.

I'm not sure Q&A is best to post this, but; how often are people copying envelopes? Would this simplify your workflow at all?

To clarify: imagine you draw an envelope for amplitude. You want to apply it to filter cutoff instead... or envelope sustain, or ring-mod mix level, or x-mod depth... To quickly experiment with these changes is currently impossible.

I think making it possible to quickly remap envelopes would be great even while you're just experimenting to see how it sounds.

Last edited by aciddose; 11-02-2019 at 11:48 AM. Reason: clarification and added suggestions to new post
aciddose is offline   Reply With Quote
Old 11-02-2019, 10:35 AM   #2
Edgemeal
Human being with feelings
 
Edgemeal's Avatar
 
Join Date: Apr 2016
Location: ASU`ogacihC
Posts: 3,913
Default

I use Automation Items, to move/copy/pool may just need to create the target envelope first, then drag-drop,

Edgemeal is offline   Reply With Quote
Old 11-02-2019, 11:30 AM   #3
aciddose
Human being with feelings
 
Join Date: Dec 2017
Posts: 22
Default

Quote:
Originally Posted by Edgemeal View Post
I use Automation Items, to move/copy/pool may just need to create the target envelope first, then drag-drop,
[/img]
Yes automation items allow you to drag/drop or copy/paste whole blocks of envelope... but they don't allow you to retarget an envelope.

Take for example the case you have an envelope lane set up with 100s of automation items in a sequence. You couldn't glue the items, but you could select the whole track (ctrl-a) and use the "create pooled duplicate" feature and drag/drop the group.

That's the same as copy/paste though. Automation items are a useful way to segment envelopes and re-arrange those sequences but they aren't changing anything significant RE: copy/paste overhead for remapping envelopes.
aciddose is offline   Reply With Quote
Old 11-02-2019, 11:38 AM   #4
aciddose
Human being with feelings
 
Join Date: Dec 2017
Posts: 22
Default

Take for example the case where you have many envelope lanes. Reaper records and stores the "lane" based entirely upon parameter index value. It doesn't seem to deal with the parameter name.

If you apply envelopes to plug-in parameters #5 and #6 and save the project, reaper stores #5 and #6.

If you load the project with a different version of the plug-in with only 5 parameters (#0 - #4) reaper loads the #5 and #6 lanes but they have no effect (untested) and a blank name "/ plug-in name". There is no way to tell which parameters these lanes are mapped to from within reaper and to remap them requires copy/paste. There is no way to delete the original lanes since they're outside the valid parameter range and don't show up in the envelope dialog at all.
aciddose is offline   Reply With Quote
Old 11-02-2019, 11:51 AM   #5
aciddose
Human being with feelings
 
Join Date: Dec 2017
Posts: 22
Default

Moved from my OP:
My suggestion would be to take the "target" identifier as already exists, where the parameter name "Volume" is printed. Currently you can click the parameter and change which is used in the lane by selecting another... but there is no option to re-map the existing envelope content to another parameter, which could be added under "remap to" and "copy to" sub-menu entries.

This would require a messagebox for confirmation "target envelope already exists, are you sure you want to over-write it?" but would make the whole process require usually a single click vs. the additional steps of manually copying/deleting.

Reworded: to remap an envelope you'd click "Amplitude" and the menu would have "remap to:" which would list the same menu content again without copy/remap to. So you'd select "remap to: FX parameters: Cutoff".

One click, 3 sub-menu to find your new target.
aciddose is offline   Reply With Quote
Old 11-02-2019, 12:29 PM   #6
aciddose
Human being with feelings
 
Join Date: Dec 2017
Posts: 22
Default

A bigger and better solution would be to fix the automation/envelope dialog to display it in a table format with a destination for each.

This would be like a "mod matrix" and the destinations could then be switched at will.

The issue is really due to the way reaper is implemented internally... which I don't have access to. We can see though that project files store envelope lanes by parameter index alone:

Code:
      <PARMENV 5 0 1 0.5
        ACT 1 -1
        VIS 0 1 1
        LANEHEIGHT 0 0
        ARM 1
        DEFSHAPE 0 -1 -1
        PT 0 0 0
        PT 0 0.75 0 0 1
        PT 16.27118644 0.225 0 0 1
        PT 56.94915254 0.815 0 0 1
        PT 81.3559322 0.245 0 0 1
      >
So there is no reason to think they aren't stored the same way internally. If they were stored by a unique identifier ("envelope lane index") instead it would require no changes to the internal structures. Only the creation/deletion/mapping would need to change.

A data member could be added for "parameter name", "parameter index". This would store the last mapped parameter and would enable a warning flag to be activated (red box? red x?) to notify the user of a lane that isn't mapped correctly.

Another member "lane name" could be added to allow the user to rename a lane in any way they like. This could default to blank (not set) where reaper could then display the parameter name from the stored index (not the stored last known name.)

The display in the "mod matrix" envelopes dialog would then look like:
Code:
#index: lane name - target name (#index)
You could change the lane name, erase it to set it from the target parameter, right click to select "copy", "paste" and "delete" and see a "flag" that could light up to show any error (last parameter name != parameter[index].name).

Most behaviors would remain identical and most code should remain unchanged.
aciddose is offline   Reply With Quote
Old 11-02-2019, 12:46 PM   #7
aciddose
Human being with feelings
 
Join Date: Dec 2017
Posts: 22
Default

Obviously for backward compatibility reasons the PARMENV # would need to remain identical. It also makes sense to represent the identifier == parameter index as this makes an envelope unique for each parameter.

To maintain this "single unique env per parameter" property it would make more sense to only add "PARAMNAME" and optionally "NAME" data.

While that's somewhat limiting... having multiple envelopes while interesting could complicate the renderer/mixer quite a bit since each would have a parameter to add/multiply/replace and handle scaling. Ideally the mixer would be capable of that, but efficiency is potentially an issue.

Xhip includes such a "mod matrix" both for mixing automation/MIDI CC (like reaper's envelopes) and the synth internal signal routing/mixing. It works well but I often find myself wanting to perform more complex mixing using functions. I'm not sure those advanced features would be practical in reaper but they definitely open up a whole world of great simplification and flexibility. Similar to bidule, just without all the nasty pins and wire visualizations
aciddose is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 03:24 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.