Prev Previous Post   Next Post Next
Old 05-18-2014, 12:29 AM   #1
Human being with feelings
TBProAudio's Avatar
Join Date: May 2014
Location: Germany
Posts: 637
Default AB Level Matching JSFX

Hey all,

JSFX is amazing!!!!!
So i want to give something back: AB Level Matching JSFX.

This script combo matches automatically the loudness level at the beginning of your plugin chain with the level at the end.
It also provides a automatic delay compensation. Additionally it could automatically calculate the PDC of your plugin chain in oder to compare audiostreams at the sample position.
It also shows some audio-statistics and a GUI for loudness distribution.A short manual is included.

You can download the package here:

Please to note: The scripts are provided as they are, so no guarantee for correctness and error free functionality :-)

Feel free to give any comment, everything can be improved.

1.1: first public release
1.2: add options:gmem=TBProAudio_AB_LM, share gmem exclusively within AM_LM scripts, thanks to James HE
1.3: add A/B button in graphics section, "blind" AB test, thanks to Seventh
1.4: Complete audio analysis in one class, loudness distribution gfx in one class, some visual improvements
1.5: Added ITU-R BS.1770-2 Prefilter
1.6: Small bug fixes, added button autogain and hold
1.7: Re Arrangement of includes, TB Detection added
1.8: Automatic PDC Calculation, Lite Version of plugin (less sliders :-) )
1.9: Use of faster PDM (plugin delay measurement), prefilter button added
2.0: Limititation to only negative Autogain values removed, fixed bug in plugin delay measurement (detect zero delay)
2.1: LinkID Bug Fixed, PDC extended t0 128k Smp, delayed Autogain measurement to avoid heavy volume jumps at the beginning
2.2: LinkID as DropDown Menu, smoothed AutoGain Changes, First gain changes after 2000ms
2.3: New Audio Measurement Class
2.4: Small Fixes
2.5: Make new TP measurement on/off (default off)
2.7: Small fixes, R5 compatibility


PS: Please also note there is a script made by user spk77 which enables short-cuts for JSFX.

#fx_name = "AB_LM_cntrl"; 
parameter_index = 1; // parameter index for "bypass" is 1 (AB_LM_cntrl JSFX)

i = 0;
  sel_track = GetSelectedTrack(0, i);
  fx_i = TrackFX_GetByName(sel_track, #fx_name, 0);
  fx_i > -1 ? (
    bypass_state = TrackFX_GetParam(sel_track, fx_i, parameter_index, 0, 0); 
    TrackFX_SetParam(sel_track, fx_i, parameter_index, !bypass_state);
  i += 1;
Save this python script as *.ell and assign it to any kb short-cut. You can reuse it by changing "#fx_name"

PPS: Fruity Loops
Some notes to the usage of the scripts together with ReaPlugs in Fruity Loops. As FL is using variable frame length for audio processing at least the scripts from TB Pro Audio do not work properly. The communication between source and control plugin is done via fixed sized frame buffers. To solve this you need to reconfigure the FL VST wrapper for all ReaPlug VSts to use "fixed size buffers". Just enable this and select "Use block as buffer size" as option. Please find more info here.

Last edited by TBProAudio; 08-18-2019 at 10:43 PM. Reason: V2.7
TBProAudio is offline   Reply With Quote

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 01:09 PM.

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