@@ -3,7 +3,7 @@ JSFX Name: RCModEQ
33Author: RCJacH
44Release Date: Aug 2025
55Link: https://github.com/RCJacH/ReaScripts
6- Version: 1.2.0
6+ Version: 1.2.1
77Provides:
88 dependencies/*
99Reference:
1616 It lets you stack up to eight filters and drive their parameters with
1717 up to eight shape-selectable and deformable LFOs.
1818Changelog:
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
0 commit comments