Skip to content

Commit 1fee74e

Browse files
committed
update RCModEQ to 1.2.1
1 parent 630e896 commit 1fee74e

File tree

2 files changed

+45
-16
lines changed

2 files changed

+45
-16
lines changed

JSFX/Audio/RCModEQ/RCModEQ.jsfx

Lines changed: 34 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ JSFX Name: RCModEQ
33
Author: RCJacH
44
Release Date: Aug 2025
55
Link: https://github.com/RCJacH/ReaScripts
6-
Version: 1.2.0
6+
Version: 1.2.1
77
Provides:
88
dependencies/*
99
Reference:
@@ -16,6 +16,9 @@ About:
1616
It lets you stack up to eight filters and drive their parameters with
1717
up to eight shape-selectable and deformable LFOs.
1818
Changelog:
19+
* v1.2.1 (2026-01-28)
20+
+ Fix sc rms converted value not updated when srate changes
21+
* Fix 1.1 migration function
1922
* v1.2.0 (2026-01-27)
2023
+ Add Threshold and RMS to Sidechain
2124
* Fix bandwidth being modulated instead of gain
@@ -110,6 +113,7 @@ out_pin:Right Output
110113
printf("MIN_GAIN_DECIBEL = %f;\n", MIN_GAIN_DECIBEL);
111114
printf("MAX_GAIN_DECIBEL = %f;\n", MAX_GAIN_DECIBEL);
112115
printf("LIMITER_RANGE = %f;\n", LIMITER_RANGE);
116+
printf("TOTAL_SLIDERS = %d;\n", sl_idx-1);
113117
?>
114118

115119
TAU = 2. * $pi;
@@ -1021,27 +1025,43 @@ out_pin:Right Output
10211025
init_rate != srate ? (
10221026
init_rate = srate;
10231027
set_all_SVFs_dirty(TOTAL_FILTER_COUNT);
1028+
update_all_SideChains_RMS(TOTAL_SIDECHAIN_COUNT);
10241029
);
10251030

10261031
@serialize
10271032
function migrate_state_to_add_morph()
1028-
local(cur_sl_idx, shift_count, i)
1033+
local(cur_sl_idx, shift_count, i, j, mem, dest)
10291034
(
1035+
i = 0;
1036+
loop(ROUTER_TOTAL_ROUTE_COUNT,
1037+
mem = get_router_active_mem_pos(i);
1038+
dest = mem[ROUTER_DEST_OFFSET];
1039+
j = 0;
1040+
loop(TOTAL_FILTER_COUNT,
1041+
dest >= SVF_FILTERS_MEM_POS + j * SVF_TOTAL_MEM + 3 ? dest += 1;
1042+
dest >= SVF_FILTERS_MEM_POS + j * SVF_TOTAL_MEM + 9 ? dest += 1;
1043+
dest >= SVF_FILTERS_MEM_POS + j * SVF_TOTAL_MEM + 20 ? dest += 2;
1044+
j += 1;
1045+
);
1046+
mem[ROUTER_DEST_OFFSET] = dest;
1047+
i += 1;
1048+
);
1049+
10301050
shift_count = 2 * TOTAL_FILTER_COUNT;
1031-
cur_sl_idx = sl_idx - 1;
1051+
cur_sl_idx = TOTAL_SLIDERS;
10321052
loop(TOTAL_LFO_COUNT * 10,
1033-
slider(cur_sl_idx) = slider(cur_sl_idx - shift_count); cur_sl_idx - 1;
1053+
slider(cur_sl_idx) = slider(cur_sl_idx - shift_count); cur_sl_idx -= 1;
10341054
);
10351055
loop(TOTAL_FILTER_COUNT,
1036-
slider(cur_sl_idx) = slider(cur_sl_idx - shift_count); cur_sl_idx - 1; // f_spread
1037-
slider(cur_sl_idx) = slider(cur_sl_idx - shift_count); cur_sl_idx - 1; // f_gain
1038-
slider(cur_sl_idx) = slider(cur_sl_idx - shift_count); cur_sl_idx - 1; // f_bandwidth
1039-
slider(cur_sl_idx) = slider(cur_sl_idx - shift_count); cur_sl_idx - 1; // f_freq
1040-
slider(cur_sl_idx) = slider(cur_sl_idx - shift_count); shift_count -= 1; cur_sl_idx - 1; // f_morph
1041-
slider(cur_sl_idx) = slider(cur_sl_idx - shift_count); shift_count -= 1; cur_sl_idx - 1; // f_type2
1042-
slider(cur_sl_idx) = slider(cur_sl_idx - shift_count); cur_sl_idx - 1; // f_type
1043-
slider(cur_sl_idx) = slider(cur_sl_idx - shift_count); cur_sl_idx - 1; // f_channel
1044-
slider(cur_sl_idx) = slider(cur_sl_idx - shift_count); cur_sl_idx - 1; // f_active
1056+
slider(cur_sl_idx) = slider(cur_sl_idx - shift_count); cur_sl_idx -= 1; // f_spread
1057+
slider(cur_sl_idx) = slider(cur_sl_idx - shift_count); cur_sl_idx -= 1; // f_gain
1058+
slider(cur_sl_idx) = slider(cur_sl_idx - shift_count); cur_sl_idx -= 1; // f_bandwidth
1059+
slider(cur_sl_idx) = slider(cur_sl_idx - shift_count); cur_sl_idx -= 1; // f_freq
1060+
slider(cur_sl_idx) = slider(cur_sl_idx - shift_count); shift_count -= 1; cur_sl_idx -= 1; // f_morph
1061+
slider(cur_sl_idx) = slider(cur_sl_idx - shift_count); shift_count -= 1; cur_sl_idx -= 1; // f_type2
1062+
slider(cur_sl_idx) = slider(cur_sl_idx - shift_count); cur_sl_idx -= 1; // f_type
1063+
slider(cur_sl_idx) = slider(cur_sl_idx - shift_count); cur_sl_idx -= 1; // f_channel
1064+
slider(cur_sl_idx) = slider(cur_sl_idx - shift_count); cur_sl_idx -= 1; // f_active
10451065
);
10461066
sliderchange(-1);
10471067
slider_automate(-1, 1);
@@ -1050,13 +1070,12 @@ out_pin:Right Output
10501070
file_avail(handle) >= 0 ? (
10511071
// Read mode
10521072
file_var(0, version);
1053-
version == 1 ? migrate_state_to_add_morph();
1073+
version < 1.1 ? migrate_state_to_add_morph();
10541074
file_var(0, is_initialized);
10551075
file_var(0, g_cur_gain_range);
10561076
file_var(0, g_cur_gain_step);
10571077
file_mem(0, ROUTER_INDICES_MEM_POS, ROUTER_TOTAL_ROUTE_COUNT);
10581078
file_mem(0, ROUTER_ROUTING_MEM_POS, ROUTER_TOTAL_ROUTING_MEM_COUNT);
1059-
file_mem(0, SIDECHAIN_PARAM_MEM_POS, TOTAL_SIDECHAIN_PARAM_MEM_COUNT);
10601079
) : (
10611080
// Write mode
10621081
// TODO: The version number should reflect the current script version
@@ -1068,7 +1087,6 @@ out_pin:Right Output
10681087
file_var(0, g_cur_gain_step);
10691088
file_mem(0, ROUTER_INDICES_MEM_POS, ROUTER_TOTAL_ROUTE_COUNT);
10701089
file_mem(0, ROUTER_ROUTING_MEM_POS, ROUTER_TOTAL_ROUTING_MEM_COUNT);
1071-
file_mem(0, SIDECHAIN_PARAM_MEM_POS, TOTAL_SIDECHAIN_PARAM_MEM_COUNT);
10721090
);
10731091

10741092

JSFX/Audio/RCModEQ/dependencies/sidechain.jsfx-inc

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,17 @@ function on_SideChain_slider_change(idx, active, thres, rms)
141141
);
142142

143143

144+
function update_all_SideChains_RMS(sc_count)
145+
local(i)
146+
global()
147+
(
148+
i = 0;
149+
loop(sc_count,
150+
set_SideChain_rms(i, get_SideChain_rms(i));
151+
i += 1;
152+
);
153+
);
154+
144155
function process_all_SideChains(sc_count)
145156
local(i, mem, active, setting, thr, v, o, x, x2, runave, a)
146157
(

0 commit comments

Comments
 (0)