11-21-2024, 09:16 PM | #1 |
Human being with feelings
Join Date: Mar 2024
Posts: 59
|
JSFX Delay and Reverb Time Calculator (Windows-G)
After digging through the Reaper forum and checking out some JSFX utilities that do similar things, I’ve completely revamped my Delay and Reverb Time Calculator!
Now it’s a powerhouse: it takes your project tempo and automatically converts musical note values into seconds, milliseconds, and even hertz. Perfect for syncing your delay and chorus effects to the beat. Switch between automatic BPM detection or enter a custom BPM. But here’s the best part (and my personal favorite): it also calculates predelay and decay times for dialing in your reverb settings like a pro. You can also pick from a variety of pre-delay notes for custom reverb pre-delay calculation. So, here it is—the ultimate, all-in-one JSFX Delay and Reverb Time Calculator. Ready to take your mixes to the next level! 💪✨ https://stash.reaper.fm/v/49554/Dela...dows-G%29.jsfx Last edited by Windows; 11-29-2024 at 09:11 AM. Reason: change title after thread mergin |
11-22-2024, 02:11 AM | #2 |
Human being with feelings
Join Date: Apr 2013
Location: France
Posts: 10,381
|
an you screenshot your FX so we can see how it handles BPM ?
What would be nice is if we could choose pre-delay time in ms or beat division. Note: There has been other scripts about this, like Breeder BPM utility and Tompad MusicMaths, but contrary to Polarity Audio tool, they dont take into account predelay.
__________________
Free ReaScripts - Premium Scripts - Custom Scripts Dev - Learn ReaScript - XR Theme - Stash Files - ReaLinks - Website - ReaComics - Alien 2347 - Donation |
11-22-2024, 03:18 AM | #3 | |
Human being with feelings
Join Date: Mar 2024
Posts: 59
|
Quote:
I'm not sure what you mean by your last statement of being able to choose? It's an automatic calculator that displays its values in seconds and milliseconds. |
|
11-22-2024, 11:11 AM | #4 | |
Human being with feelings
Join Date: Apr 2013
Location: France
Posts: 10,381
|
Quote:
Oh but your script doesnt display predelay, so it is not relevant. I though it would be like this. https://anotherproducer.com/online-t...me-calculator/ For reference, breeder take on this is based on sliders, so value can be copy pasted layout is less readable though due to lack of columns in JSFX sliders https://stash.reaper.fm/v/7838/BPM%20Calculator
__________________
Free ReaScripts - Premium Scripts - Custom Scripts Dev - Learn ReaScript - XR Theme - Stash Files - ReaLinks - Website - ReaComics - Alien 2347 - Donation |
|
11-23-2024, 01:39 AM | #5 | |
Human being with feelings
Join Date: Mar 2024
Posts: 59
|
Quote:
https://stash.reaper.fm/v/49526/Reve...dows-G%29.jsfx Last edited by Windows; 11-23-2024 at 01:54 AM. |
|
11-23-2024, 01:48 AM | #6 |
Human being with feelings
Join Date: Mar 2024
Posts: 59
|
JSFX Delay and Reverb Time Calculator (Windows-G)
After digging through the Reaper forum and checking out some JSFX utilities that do similar things, I’ve completely revamped my Delay and Reverb Time Calculator!
Now it’s a powerhouse: it takes your project tempo and automatically converts musical note values into seconds, milliseconds, and even hertz. Perfect for syncing your delay and chorus effects to the beat. But here’s the best part (and my personal favorite): it also calculates predelay and decay times for dialing in your reverb settings like a pro. So, here it is—the ultimate, all-in-one JSFX Delay and Reverb Time Calculator. Ready to take your mixes to the next level! 💪✨ Reaper Stash Link: https://stash.reaper.fm/v/49526/Reve...dows-G%29.jsfx Last edited by Windows; 11-23-2024 at 01:55 AM. |
11-23-2024, 01:56 AM | #7 |
Human being with feelings
Join Date: Apr 2013
Location: France
Posts: 10,381
|
More advanced indeed !!
__________________
Free ReaScripts - Premium Scripts - Custom Scripts Dev - Learn ReaScript - XR Theme - Stash Files - ReaLinks - Website - ReaComics - Alien 2347 - Donation |
11-23-2024, 03:04 AM | #8 |
Human being with feelings
Join Date: Mar 2024
Posts: 59
|
|
11-23-2024, 11:58 AM | #9 |
Human being with feelings
Join Date: Jun 2013
Posts: 291
|
Works great. Thanks, this tool is pretty awesome. I already changed all my templates and deleted some old delay & reverb time calculating fx. Really nice.
__________________
Underground Music Production: Sound Design, Machine Funk, High Tech Soul Last edited by Halma; 11-23-2024 at 12:03 PM. |
11-23-2024, 03:09 PM | #10 |
Human being with feelings
Join Date: Mar 2024
Posts: 59
|
|
11-23-2024, 10:41 PM | #11 |
Human being with feelings
Join Date: May 2008
Posts: 165
|
manual mode
|
11-24-2024, 02:23 AM | #12 |
Human being with feelings
Join Date: Apr 2013
Location: France
Posts: 10,381
|
IMHO what it miss most is pre-delay time adjudtability,
cause in fact there are twi ways two choose a predelay time : sound realism (depending on type if space, like this plugin show) and sound clarity, just considering attacks of the source sound (this need to be adjusted panually based on the source). In this second case, we can either use a value in ms or in beat division. But it both case, being able to input / choose this pre-delay value for reverb is what is missing. @future-bit I like the compact view of liqube plugin ! Less colums is good to see the related beat division (first column) of each row cell.
__________________
Free ReaScripts - Premium Scripts - Custom Scripts Dev - Learn ReaScript - XR Theme - Stash Files - ReaLinks - Website - ReaComics - Alien 2347 - Donation |
11-24-2024, 05:04 AM | #13 |
Human being with feelings
Join Date: Mar 2024
Posts: 59
|
|
11-24-2024, 11:04 AM | #14 |
Human being with feelings
Join Date: Mar 2024
Posts: 59
|
I'm working on adding the manual mode, how is it convenient for calculating LFO?
__________________
https://stash.reaper.fm/u/Windows%20 |
11-24-2024, 11:08 AM | #15 |
Human being with feelings
Join Date: Mar 2024
Posts: 59
|
Finally understood after in depth research. Work done. Check link again. Thanks.
__________________
https://stash.reaper.fm/u/Windows%20 Last edited by Windows; 11-26-2024 at 06:40 PM. |
11-24-2024, 02:47 PM | #16 |
Human being with feelings
Join Date: Jun 2020
Posts: 727
|
I guess he's referring to something like this script
Not a pro but if it's a POV calculation then if the space increases so does the reverb but also the predelay since the distance get's longer too is what i'd imagine |
11-24-2024, 04:04 PM | #17 |
Human being with feelings
Join Date: Mar 2024
Posts: 59
|
Ok, What about if you move only the predelay slider what happens in the others. I want to see if you don't mind?
__________________
https://stash.reaper.fm/u/Windows%20 |
11-24-2024, 04:51 PM | #18 | |
Human being with feelings
Join Date: Jun 2020
Posts: 727
|
Quote:
It's a free script, if you have reapack you should have it also iirc Code:
desc:Reverb Predelay Calculator (simple) // Created by: David Gaviria Piedrahita 2021. Use by your own risk // Thanks to ashcat_lt for solving the "round" issue // Calculate pre-delay for reverbs in_pin:none out_pin:none slider1:0<0,1,1{SongTempo,Free BPM}>Song Tempo / Free BPM slider2:60<50,200,1>BPM // Pre-delay slider6:0<0,5,1{1/8,1/16,1/32,1/64,1/128,1/256}>Pre-delay >> slider8:0<0,500,1>Predelay [ms] // Reverb Time slider14:1<0,5,1{2 bars,1 bar,3/4,1/2,1/4,1/8}>RT60 >> slider16:0<0,10000,1>RT60 [ms] // Reverb Time - Pre-delay slider17:0<0,10000,1>RT60 - PD [ms] @slider // Tempo y=tempo; slider1>0 ? x=slider2 : (x=y;slider2=x); // Predelay n=((30000/(2^slider6))/x); // Formula RT60 RT60= (slider14 == 0 ? 480000 : (slider14 == 1 ? 240000 : (slider14 == 2 ? 180000 : (slider14 == 3 ? 120000 : (slider14 == 4 ? 60000 : 30000))))); // Predelay in ms slider8=floor(((30000/(2^slider6))/x)*100)/100; // RT60 in ms slider16=floor((RT60/x)*100)/100; // RT60 - Predelay in ms slider17=floor(((RT60/x)-n)*100)/100; // Strings predelay="Predelay = "; RT60="RT60"; BYDAGA="by David Gaviria"; ms=" ms"; desc="Reverb Predelay Calculator"; RT60TXT= (slider14 == 0 ? "2 bars" : (slider14 == 1 ? "1 bar" : (slider14 == 2 ? "3/4" : (slider14 == 3 ? "1/2" : (slider14 == 4 ? "1/4" : "1/8"))))); PDTXT= (slider6 == 0 ? "1/8" : (slider6 == 1 ? "1/16" : (slider6 == 2 ? "1/32" : (slider6 == 3 ? "1/64" : (slider6 == 4 ? "1/128" : "1/256"))))); RT=slider16 @gfx 550 210 gfx_x=150; gfx_y=10; gfx_setfont(1,"Courier",19); gfx_r=1; gfx_b=0; gfx_g=1; gfx_a=1; gfx_drawstr(desc); // Graphic gfx_y += 18; gfx_x = 10; gfx_setfont(1,"Courier",8); gfx_r = gfx_g = gfx_b = gfx_a = 0.6; gfx_drawnumber(0,0); gfx_drawstr(ms); gfx_x=450; gfx_drawnumber(5000,0); gfx_drawstr(ms); gfx_y += 20; gfx_x = 10; gfx_setfont(1,"Courier",19); // Time Line gfx_r = gfx_g = gfx_b = gfx_a = 1; gfx_rect(10,45,500,5); // RT60 line gfx_r=0; gfx_g=gfx_b=gfx_a=1; gfx_rect(10,45,slider16/10,5); gfx_r=0; gfx_g=gfx_b=1;gfx_a=0.5; gfx_line(10+(slider16/10),45,10+(slider16/10),85); // Predelay line gfx_r=1; gfx_g=0.50196; gfx_b=0; gfx_a=1; gfx_rect(10,45,slider8/10,5); gfx_r=1; gfx_g=0.50196; gfx_b=0; gfx_a=0.5; gfx_line(10+(slider8/10),45,10+(slider8/10),70); // Draw Predelay time graphic gfx_y += 20; gfx_x = 10+(slider8/10); gfx_r=1; gfx_g=0.50196; gfx_b=0; gfx_a=1; gfx_drawnumber(slider8,2); gfx_drawstr(ms); // Draw RT60 graphic gfx_y += 20; gfx_x = 10+(slider16/10); gfx_r=0; gfx_g=gfx_b=gfx_a=1; gfx_drawnumber(slider17,2); gfx_drawstr(ms); // Predelay number gfx_y += 40; gfx_x=10; gfx_setfont(1,"Courier",19); gfx_r=1; gfx_g=0.50196; gfx_b=0; gfx_a=1; gfx_drawstr(predelay); gfx_drawnumber(slider8,2); gfx_x=172; gfx_drawstr(ms); gfx_x=220; gfx_drawchar($' '); gfx_drawchar($'['); gfx_drawstr(PDTXT); gfx_drawchar($']'); // RT60 number gfx_r = gfx_g = gfx_b = gfx_a = 1; gfx_y += 20; gfx_x=10; gfx_r=0; gfx_g=gfx_b=gfx_a=1; gfx_drawstr(RT60); gfx_drawchar($' '); gfx_drawchar($' '); gfx_drawchar($' '); gfx_drawchar($' '); gfx_drawchar($' '); gfx_drawchar($'='); gfx_drawchar($' '); gfx_drawnumber(slider17,2); gfx_drawstr(ms); gfx_x=220; gfx_drawchar($' '); gfx_drawchar($'['); gfx_drawstr(RT60TXT); gfx_drawchar($']'); // By David Gaviria Piedrahita gfx_y += 40; gfx_x = 10; gfx_r=1; gfx_b=0; gfx_g=1; gfx_a=0.6; gfx_setfont(1,"Courier",6); gfx_drawstr(BYDAGA); |
|
11-24-2024, 06:02 PM | #19 |
Human being with feelings
Join Date: Mar 2024
Posts: 59
|
Alright, thank you very much.
__________________
https://stash.reaper.fm/u/Windows%20 |
11-25-2024, 07:58 AM | #20 |
Human being with feelings
Join Date: Mar 2024
Posts: 59
|
I'm making progress taking into consideration all of your suggestions. 85% done. However, do you think it's necessary for me to include different time signature modes for it. I feel like 4/4 is kind of standard so I want to just leave it alone. But what are your thoughts about that?
__________________
https://stash.reaper.fm/u/Windows%20 |
11-25-2024, 01:16 PM | #21 |
Human being with feelings
Join Date: Jun 2020
Posts: 54
|
Very useful tool, I need to install it. Thank you!
|
11-25-2024, 01:50 PM | #22 | |
Human being with feelings
Join Date: May 2008
Posts: 165
|
Quote:
|
|
11-25-2024, 02:10 PM | #23 |
Human being with feelings
Join Date: Mar 2024
Posts: 59
|
Yes it is, you are welcome.
__________________
https://stash.reaper.fm/u/Windows%20 |
11-26-2024, 04:41 PM | #24 |
Human being with feelings
Join Date: Mar 2024
Posts: 59
|
Finally, I'm done with it. I have implemented all of your suggestions.
Changelog: 1. Compact GUI – The interface is now smaller and sleeker compared to the previous bulky version 2. Manual BPM Mode – Switch between automatic BPM detection or enter a custom BPM 3. New Menu to choose between seconds, milliseconds, or Hertz 4 .Manual Pre-Delay Selection – Choose your own reverb pre-delay notes for more control. I spent time on this. Not an easy task at all. Currently, I don't even think there is any jsfx out there on stash that does all of these stuff in one plugin. I have updated the link in the first post. Thank you all for your suggestions.
__________________
https://stash.reaper.fm/u/Windows%20 Last edited by Windows; 11-26-2024 at 07:45 PM. |
11-27-2024, 05:52 AM | #25 | |
Human being with feelings
Join Date: May 2008
Posts: 165
|
Quote:
|
|
11-27-2024, 05:57 AM | #26 |
Human being with feelings
Join Date: Mar 2024
Posts: 59
|
__________________
https://stash.reaper.fm/u/Windows%20 |
11-27-2024, 10:01 AM | #27 |
Human being with feelings
Join Date: Apr 2013
Location: France
Posts: 10,381
|
Thx for this!
If you want to push it a bit further, you can hide sliders based on other sliders value (like hidding manual BPM slider if BPM mode isn't set to manual), the function for that is just slidershow( slider_id, hide ) , hide being 0 to hide and 1 to show if I remember correctly Also, you can associate a named variable to a slider so rather can calling slider4, when declared as slider2:120<2,960,1>Manual BPM you can return its value as manual_bpm, if declared as slider2:manual_bpm=:120<2,960,1>Manual BPM This can help clean the code a bit
__________________
Free ReaScripts - Premium Scripts - Custom Scripts Dev - Learn ReaScript - XR Theme - Stash Files - ReaLinks - Website - ReaComics - Alien 2347 - Donation |
11-29-2024, 09:11 AM | #28 | |
Human being with feelings
Join Date: Mar 2024
Posts: 59
|
Quote:
__________________
https://stash.reaper.fm/u/Windows%20 |
|
11-29-2024, 09:44 AM | #29 |
Human being with feelings
Join Date: Apr 2013
Location: France
Posts: 10,381
|
Thanks! Way more easy to operates now.
__________________
Free ReaScripts - Premium Scripts - Custom Scripts Dev - Learn ReaScript - XR Theme - Stash Files - ReaLinks - Website - ReaComics - Alien 2347 - Donation |
11-29-2024, 09:46 AM | #30 |
Human being with feelings
Join Date: Mar 2024
Posts: 59
|
__________________
https://stash.reaper.fm/u/Windows%20 |
11-29-2024, 09:54 AM | #31 |
Human being with feelings
Join Date: Mar 2024
Posts: 59
|
One more thing, in case you ever want to feature it on your website, you ca go ahead and do that. Thanks.
__________________
https://stash.reaper.fm/u/Windows%20 |
11-30-2024, 10:51 PM | #32 |
Human being with feelings
Join Date: May 2008
Posts: 165
|
|
11-30-2024, 11:05 PM | #33 | |
Human being with feelings
Join Date: Mar 2024
Posts: 59
|
Quote:
However, if you accidentally changed the font, then delete this one you have and go back to the link and download the original again. The table is perfect in the original.
__________________
https://stash.reaper.fm/u/Windows%20 |
|
11-30-2024, 11:10 PM | #34 | |
Human being with feelings
Join Date: May 2008
Posts: 165
|
Quote:
|
|
11-30-2024, 11:12 PM | #35 |
Human being with feelings
Join Date: Mar 2024
Posts: 59
|
Really? Wow, pls delete this and download again and see if it's still the same? I'm also going to download it now and see for myself. Let me know the outcome. Thanks.
__________________
https://stash.reaper.fm/u/Windows%20 |
11-30-2024, 11:16 PM | #36 | |
Human being with feelings
Join Date: May 2008
Posts: 165
|
Quote:
|
|
11-30-2024, 11:33 PM | #37 |
Human being with feelings
Join Date: Mar 2024
Posts: 59
|
Ok, give me some minutes I will get back to you
__________________
https://stash.reaper.fm/u/Windows%20 |
12-01-2024, 12:11 AM | #38 | |
Human being with feelings
Join Date: Mar 2024
Posts: 59
|
Quote:
1. Click on "Edit" on the top right. When the code opens 2. Scroll down to the part I have titled "TITLE---------" 3. Look for the highlighted word in the screenshot I have attched and tell me what font name you have there or screenshot it for me. Also, are you using MacOS, my default font for the plugin is "Bahnschrift SemiBold Condensed" as indicated in the screenshot. But I'm not sure if it's on MacOS. You do the above steps and let me know.
__________________
https://stash.reaper.fm/u/Windows%20 |
|
12-01-2024, 02:35 AM | #39 | |
Human being with feelings
Join Date: May 2008
Posts: 165
|
Quote:
Yes, the reason is the font: Bahnschrift SemiBold Condensed. Bahnschrift SemiBold Condensed is missing from my system, and also the size 22 is too big. If I change the code: Code:
gfx_setfont(1, "Bahnschrift SemiBold Condensed", 16, 1); // Plugin Name Font (1-multiplier, font name, font size,...) Another suggestion is to make it possible to copy the value (not manually type it later). |
|
12-01-2024, 02:55 AM | #40 | |
Human being with feelings
Join Date: Mar 2024
Posts: 59
|
Quote:
With regards to being able to copy the values, it is only possible in the JS language through using sliders. I chose not to go in the sliders direction because it will make the whole gui cluttered and I can't draw tables and customize it the way I have. It will be unintuitive. So it's a limitation of the language and I chose readability over using plenty unintuitive sliders. So looking and typing the value manually in ur plugin is currently the only way available AFAIK.
__________________
https://stash.reaper.fm/u/Windows%20 Last edited by Windows; 12-01-2024 at 06:27 AM. |
|
Thread Tools | |
Display Modes | |
|
|