From e87d77fdf28f84a03ecce7736d5f5cc58b659152 Mon Sep 17 00:00:00 2001 From: Benjamin Klum Date: Fri, 17 Jun 2022 00:02:01 +0200 Subject: [PATCH] #599 Add "this_fx_index" variable to dynamic FX expressions --- main/src/domain/unresolved_reaper_target.rs | 4 + .../test-projects/issue-599-this-fx-index.RPP | 149 ++++++++++++++++++ 2 files changed, 153 insertions(+) create mode 100644 resources/test-projects/issue-599-this-fx-index.RPP diff --git a/main/src/domain/unresolved_reaper_target.rs b/main/src/domain/unresolved_reaper_target.rs index 68e673e21..15f540791 100644 --- a/main/src/domain/unresolved_reaper_target.rs +++ b/main/src/domain/unresolved_reaper_target.rs @@ -1385,6 +1385,10 @@ impl VirtualChainFx { let compartment_params = context.params().compartment_params(compartment); let result = evaluator .evaluate_with_params_and_vars(compartment_params, |name, args| match name { + "this_fx_index" => { + let fx = context.context().containing_fx(); + Some(fx.index() as f64) + } "tcp_fx_indexes" => { let i = extract_first_arg_as_positive_integer(args)?; if chain.is_input_fx() { diff --git a/resources/test-projects/issue-599-this-fx-index.RPP b/resources/test-projects/issue-599-this-fx-index.RPP new file mode 100644 index 000000000..316e65001 --- /dev/null +++ b/resources/test-projects/issue-599-this-fx-index.RPP @@ -0,0 +1,149 @@ + + RIPPLE 0 + GROUPOVERRIDE 0 0 0 + AUTOXFADE 1 + ENVATTACH 3 + POOLEDENVATTACH 0 + MIXERUIFLAGS 11 48 + PEAKGAIN 1 + FEEDBACK 0 + PANLAW 1 + PROJOFFS 0 0 0 + MAXPROJLEN 0 600 + GRID 3199 8 1 8 1 0 0 0 + TIMEMODE 1 5 -1 30 0 0 -1 + VIDEO_CONFIG 0 0 256 + PANMODE 3 + CURSOR 0 + ZOOM 100 0 0 + VZOOMEX 6 0 + USE_REC_CFG 0 + RECMODE 1 + SMPTESYNC 0 30 100 40 1000 300 0 0 1 0 0 + LOOP 0 + LOOPGRAN 0 4 + RECORD_PATH "" "" + + + RENDER_FILE "" + RENDER_PATTERN "" + RENDER_FMT 0 2 0 + RENDER_1X 0 + RENDER_RANGE 1 0 0 18 1000 + RENDER_RESAMPLE 3 0 1 + RENDER_ADDTOPROJ 0 + RENDER_STEMS 0 + RENDER_DITHER 0 + TIMELOCKMODE 1 + TEMPOENVLOCKMODE 1 + ITEMMIX 1 + DEFPITCHMODE 589824 0 + TAKELANE 1 + SAMPLERATE 44100 0 0 + + LOCK 1 + + GLOBAL_AUTO -1 + TEMPO 120 4 4 + PLAYRATE 1 0 0.25 4 + SELECTION 0 0 + SELECTION2 0 0 + MASTERAUTOMODE 0 + MASTERTRACKHEIGHT 0 0 + MASTERPEAKCOL 16576 + MASTERMUTESOLO 0 + MASTERTRACKVIEW 0 0.6667 0.5 0.5 -1 -1 -1 0 0 0 -1 -1 0 + MASTERHWOUT 0 0 1 0 0 0 0 -1 + MASTER_NCH 2 2 + MASTER_VOLUME 1 0 -1 -1 1 + MASTER_PANMODE 3 + MASTER_FX 1 + MASTER_SEL 0 + + + + "" + bHJiaO5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAAAAADbAQAAAQAAAAAAEAA= + eyJ2ZXJzaW9uIjoiMi4xMy4wLXByZS43IiwiaWQiOiJWTVNQd2VZMiIsImNvbnRyb2xEZXZpY2VJZCI6ImtleWJvYXJkIiwiZGVmYXVsdEdyb3VwIjp7fSwiZGVmYXVs + dENvbnRyb2xsZXJHcm91cCI6e30sIm1hcHBpbmdzIjpbeyJpZCI6IkF2ekdCMVQ4dDl5LWRBWm01OGUzaiIsIm5hbWUiOiIxIiwic291cmNlIjp7ImNhdGVnb3J5Ijoi + a2V5Ym9hcmQiLCJpc1JlZ2lzdGVyZWQiOmZhbHNlLCJpczE0Qml0IjpmYWxzZSwib3NjQXJnSW5kZXgiOjAsImtleXN0cm9rZSI6eyJtb2RpZmllcnMiOjEsImtleSI6 + NjV9fSwibW9kZSI6eyJ0eXBlIjoyLCJtYXhTdGVwU2l6ZSI6MC4wNX0sInRhcmdldCI6eyJ0eXBlIjoxMiwiZnhBbmNob3IiOiJkeW5hbWljIiwiZnhFeHByZXNzaW9u + IjoidGhpc19meF9pbmRleCArIDEiLCJ1c2VQcm9qZWN0Ijp0cnVlLCJtb3ZlVmlldyI6dHJ1ZSwic2Vla1BsYXkiOnRydWUsIm9zY0FyZ0luZGV4IjowfX1dfQ== + AFByb2dyYW0gMQAQAAAA + > + PRESETNAME "Program 1" + FLOATPOS 0 0 0 0 + FXID {A280567A-30ED-1945-969A-53D2DD5F5CB6} + WAK 0 0 + BYPASS 1 0 0 + "" + eXNlcu9e7f4AAAAAAgAAAAEAAAAAAAAAAgAAAAAAAABEAAAAAAAAAAAAEAA= + 776t3g3wrd6mm8Q7F7fROgAAAAAAAAAAAAAAAM5NAD/pZ4g9AAAAAAAAAD8AAIA/AACAPwAAAD8AAAAAAAAAAAAAAAA= + AAAQAAAA + > + FLOATPOS 0 0 0 0 + FXID {27CB341F-08E6-4540-94C3-9A797EE56638} + WAK 0 0 + > + > + +>