Previous Thread
Index
Next Thread
Print Thread
Go To
Off-Topic
Joined: Mar 2018
Posts: 7,214
Veteran
OP Online Content
Veteran
Joined: Mar 2018
Posts: 7,214
It seems that program itself is a donationware (pay what you want). The concept is pretty interesting.



Off-Topic
Joined: Nov 2008
Posts: 3,538
Veteran
Offline
Veteran
Joined: Nov 2008
Posts: 3,538
Interesting. "Where is the industry going?" is a great question.

Honestly, based on my plugin needs and inventory, I'll never make a custom plugin. But still cool.


DC Ron
BiaB Audiophile
Presonus Studio One
ASUS I9-12900K DAW, 32 GB RAM
Presonus Faderport 16
Too many guitars (is that a thing?)
Off-Topic
Joined: May 2000
Posts: 22,538
Veteran
Offline
Veteran
Joined: May 2000
Posts: 22,538
Huh, wonder whose algorithms that AI was 'trained' on ...


I do not work here, but the benefits are still awesome
Make your sound your own!
Off-Topic
Joined: Jul 2022
Posts: 2,926
Veteran
Offline
Veteran
Joined: Jul 2022
Posts: 2,926
Originally Posted by rharv
Huh, wonder whose algorithms that AI was 'trained' on ...
That’s a good question, because this can be a can of worms.
About 15 years ago, I programmed a few VST plugins, and for one of them, I came up with an extremely efficient extension of the Fast Fourier Transform.
When I posted this on a forum for plugin developers, someone pointed out that I had (without knowing it) come up with the same idea as someone else ten years earlier, who had published it as a master’s thesis.
The problem: A few years later, a company had "acquired" the rights to this algorithm, so I couldn’t release my plugin without risking a lawsuit.

Who knows what’s hidden in the code generated by AI...

Off-Topic
Joined: Mar 2018
Posts: 7,214
Veteran
OP Online Content
Veteran
Joined: Mar 2018
Posts: 7,214
For the sake of discussion, lets assume the code used was in public domain.
The key here is a proof of concept, which I think is brilliant.

Off-Topic
Joined: Jun 2012
Posts: 3,890
J
Veteran
Offline
Veteran
J
Joined: Jun 2012
Posts: 3,890
Originally Posted by Rustyspoon#
For the sake of discussion, lets assume the code used was in public domain.
The key here is a proof of concept, which I think is brilliant.
Misha, this is AMAZING! We are fortunate to be in the midst of a period of rapid advancement of AI in all areas! I look away for a month or two to focus on other things and when I return there are new insanely cool advances that have been made. It is really mind boggling! In my real job I design and code websites and apps. And recently, AI has begun to provide viable ways to generate high quality, highly functional code that would previously have required weeks or months of design and programming! We live in interesting times!

Off-Topic
Joined: Sep 2010
Posts: 8,186
Veteran
Offline
Veteran
Joined: Sep 2010
Posts: 8,186
I spent some time with Gemini coding up a "lush" reverb using Reaper's .jsfx script. It's not terrible, but Valhalla doesn't have any worries.

It took a lot of iterations to get something usable, but maybe I'm using the wrong AI.


desc: Householder Cloud with Ducking
// Householder matrix with a more sensitive sidechain envelope.

slider1:-17<-60, 0, 1>Wet Level (dB)
slider2:-12<-60, 0, 1>Dry Level (dB)
slider3:0.85<0.1, 0.97, 0.001>Decay (Lushness)
slider4:0.5<0.1, 0.99, 0.01>Damping
slider5:0.3<0, 1, 0.01>Modulation
slider6:50<0, 100, 1>Ducking Amount (%)
slider7:150<10, 500, 1>Ducking Recovery (ms)

@init
B_SZ = 131072; B_MSK = B_SZ - 1;
freemem = 0;
d1=freemem; d2=freemem+B_SZ; d3=freemem+B_SZ*2; d4=freemem+B_SZ*3;
freemem += B_SZ*4;
ap1=freemem; ap1l=1453; ap2=freemem+1453; ap2l=1997;
freemem += 4000;

l1=3433; l2=4547; l3=5641; l4=6823;
env = 0;

@slider
wet = 10^(slider1/20); dry = 10^(slider2/20);
g = min(slider3, 0.96);
damp = slider4;
m_inc = slider5 * 0.0002;
// Ducking sensitivity: Higher % = deeper cut
duck_amt = slider6 / 100;
rel_coeff = exp(-1/(srate * (slider7/1000)));

@sample
in = (spl0 + spl1) * 0.5;

// 1. IMPROVED DUCKING ENVELOPE
// Use a faster attack and a more responsive curve
abs_in = abs(in);
abs_in > env ? env = abs_in : env = env * rel_coeff;
// Apply a scaling factor to 'env' so ducking is audible even at -18dB
duck_sense = min(1, env * 2.5);
duck_gain = 1.0 - (duck_sense * duck_amt);

// DC Block
in_dc = in - prev_in + 0.999 * in_dc; prev_in = in;

m_ph += m_inc;
mod = (sin(m_ph) + 1) * 8;

function read_itp(buf, ptr) (
i = floor(ptr); f = ptr - i;
buf[i & B_MSK] * (1-f) + buf[(i+1) & B_MSK] * f;
);

n1 = read_itp(d1, p1 - l1 - mod);
n2 = read_itp(d2, p2 - l2 + mod);
n3 = read_itp(d3, p3 - l3);
n4 = read_itp(d4, p4 - l4);

// 2. Householder Scattering
sum_n = (n1 + n2 + n3 + n4) * 0.5;
t1 = n1 - sum_n; t2 = n2 - sum_n;
t3 = n3 - sum_n; t4 = n4 - sum_n;

function diffuse(sig, buf, len, p) (
out = buf[p] - sig;
buf[p] = sig + out * 0.6;
out;
);
f1 = diffuse(t1, ap1, ap1l, pap1 = (pap1+1)%ap1l);
f2 = diffuse(t2, ap2, ap2l, pap2 = (pap2+1)%ap2l);

// 3. Damping and Limiting
lp1 = atan(f1 * (1-damp) + lp1 * damp);
lp2 = atan(f2 * (1-damp) + lp2 * damp);
lp3 = atan(t3 * (1-damp) + lp3 * damp);
lp4 = atan(t4 * (1-damp) + lp4 * damp);

d1[p1] = in_dc + lp1 * g;
d2[p2] = in_dc + lp2 * g;
d3[p3] = in_dc + lp3 * g;
d4[p4] = in_dc + lp4 * g;

p1=(p1+1)&B_MSK; p2=(p2+1)&B_MSK; p3=(p3+1)&B_MSK; p4=(p4+1)&B_MSK;

// 4. APPLY DUCKING TO WET SIGNAL
// Multiplying the final wet sum by duck_gain
out_L = (lp1 + lp3) * wet * duck_gain;
out_R = (lp2 + lp4) * wet * duck_gain;

spl0 = (spl0 * dry) + out_L;
spl1 = (spl1 * dry) + out_R;


I've spent far too much time trying to get a ray-casting version of a studio room simulation to work.


-- David Cuny

My virtual singer development blog
Vocal control, you say. Never heard of it. Is that some kind of ProTools thing?

BiaB 2025 | Windows 11 | Reaper | Way too many VSTis.
Off-Topic
Joined: Mar 2018
Posts: 7,214
Veteran
OP Online Content
Veteran
Joined: Mar 2018
Posts: 7,214
David,
Billy showed off his "local" LLM setup sometime ago. It was sort of in the back of my brain. A few days ago I've read on it, downloaded and briefly tested. While it is slower to respond, it produced viable answers, even on intricate questions. There are many free models. Some tailored for "reasoning" some for "coding". I am taking care of a friend, who needs a lot of attention, so not much time to play with these toys right now, but I definitely want to experiment with this FX plugin.

Off-Topic
Joined: Sep 2010
Posts: 8,186
Veteran
Offline
Veteran
Joined: Sep 2010
Posts: 8,186
All right, here's a "Studio Simulation" that tries to create a binaural simulation of a sound source in a studio room with wood walls, also a Reaper .jsfx file. I don't think Panagement has anything to worry about.

This version has a GUI - you can move the sliders to move the sound source and size of the room. It was another interesting experiment, showing that many effects are as much art as they are science. While it's cool to build your own stuff, it's also a bit of a distraction from actually making music. The common wisdom is that we need less effects that we use better, not more that we waste our time fiddling with. And this sort of thing is really a timesink.

desc: Binaural Room Spacializer
// Fixed scientific notation error and boosted feedback resonance.

slider1:0<-60, 12, 0.1>Output Gain (dB)
slider2:1.5<0.1, 10.0, 0.01>Distance (m)
slider3:0<-90, 90, 1>Angle (deg)
slider4:0.22<0.1, 0.5, 0.01>Head Width (m)
slider5:6<2, 20, 0.1>Room Width (m)
slider6:8<2, 20, 0.1>Room Depth (m)
slider7:0.6<0, 1.0, 0.01>Liveness (Space Presence)
slider8:0.75<0.1, 0.99, 0.01>Absorption (Muffle)

@init
B_SZ = 131072; B_MSK = B_SZ - 1;
buf_pos = 0;
data_ptr = 140000;

MAX_REFS = 30;
rT_L = data_ptr; data_ptr += MAX_REFS;
rG_L = data_ptr; data_ptr += MAX_REFS;
rS_L = data_ptr; data_ptr += MAX_REFS;
rT_R = data_ptr; data_ptr += MAX_REFS;
rG_R = data_ptr; data_ptr += MAX_REFS;
rS_R = data_ptr; data_ptr += MAX_REFS;
fL_h = data_ptr; data_ptr += MAX_REFS;
fR_h = data_ptr; data_ptr += MAX_REFS;

PI = 3.1415926535; C = 343;

function update_physics() (
d = slider2; a_rad = slider3 * (PI / 180); hw = slider4;
sx = sin(a_rad) * d; sy = cos(a_rad) * d;
exL = -(hw * 0.5); exR = (hw * 0.5);

dL = sqrt((sx - exL)^2 + sy^2); dR = sqrt((sx - exR)^2 + sy^2);
dT_L = (dL / C) * srate; dT_R = (dR / C) * srate;
dG_L = 1 / max(1.0, dL); dG_R = 1 / max(1.0, dR);

dC_L = min(1, max(0.01, 1 / (1 + (dL * 0.05) + max(0, slider3/45))));
dC_R = min(1, max(0.01, 1 / (1 + (dR * 0.05) + max(0, -slider3/45))));

idx = 0; absorb = slider8;
loop(6,
idx == 0 ? (vx = sx; vy = (slider6*0.6)*2 - sy);
idx == 1 ? (vx = sx; vy = (-slider6*0.4)*2 - sy);
idx == 2 ? (vx = (-slider5*0.5)*2 - sx; vy = sy);
idx == 3 ? (vx = (slider5*0.5)*2 - sx; vy = sy);
idx == 4 ? (vx = sx; vy = sy; vz = -2.4);
idx == 5 ? (vx = sx; vy = sy; vz = 3.6);
rdL = sqrt((vx - exL)^2 + vy^2); rdR = sqrt((vx - exR)^2 + vy^2);
rT_L[idx] = (rdL / C) * srate; rT_R[idx] = (rdR / C) * srate;
rG_L[idx] = (0.5 / max(1, rdL)) * (1 - absorb);
rG_R[idx] = (0.5 / max(1, rdR)) * (1 - absorb);
rS_L[idx] = 0.4 * (1 / (1 + rdL * 0.04));
rS_R[idx] = 0.4 * (1 / (1 + rdR * 0.04));
idx += 1;
);

seed = 42;
loop(24,
seed = (seed * 1103515245 + 12345) & 0x7FFFFFFF;
sc_ang = (seed / 0x7FFFFFFF) * 2 * PI;
room_dim = (slider5 + slider6) * 0.5;
sc_path = d + (room_dim * (0.4 + (seed % 100)/50));
vx = sx + cos(sc_ang) * sc_path; vy = sy + sin(sc_ang) * sc_path;
rdL = sqrt((vx - exL)^2 + vy^2); rdR = sqrt((vx - exR)^2 + vy^2);
rT_L[idx] = (rdL / C) * srate; rT_R[idx] = (rdR / C) * srate;
rG_L[idx] = (0.2 / max(1, rdL)) * (1 - absorb);
rG_R[idx] = (0.2 / max(1, rdR)) * (1 - absorb);
rS_L[idx] = 0.06; rS_R[idx] = 0.06;
idx += 1;
);
);

@slider
g_out = 10^(slider1/20);
update_physics();
// We do not clear filters here to avoid pops, but clear on major room changes
// memset(fL_h, 0, MAX_REFS);

@sample
// 1. FIXED FEEDBACK LOGIC
// Standard decimal notation used for denormal protection
fb_sig = (last_rSumL + last_rSumR) * 0.5 * slider7 * 1.9;

fb_hpf += 0.05 * (fb_sig - fb_hpf);
fb_sig -= fb_hpf;

mono_in = (spl0 + spl1) * 0.5 + fb_sig;
abs(mono_in) < 0.000000000000001 ? mono_in = 0;
0[buf_pos] = mono_in;

// 2. Direct Path
pL = buf_pos - dT_L; iL = floor(pL); fL = pL - iL;
sL = (0[iL & B_MSK] * (1-fL) + 0[(iL-1) & B_MSK] * fL) * dG_L;
fL_lp += dC_L * (sL - fL_lp);

pR = buf_pos - dT_R; iR = floor(pR); fR = pR - iR;
sR = (0[iR & B_MSK] * (1-fR) + 0[(iR-1) & B_MSK] * fR) * dG_R;
fR_lp += dC_R * (sR - fR_lp);

// 3. 30 Reflections
rSumL = 0; rSumR = 0; i = 0;
loop(MAX_REFS,
tpL = buf_pos - rT_L[i]; ipL = floor(tpL); fpL = tpL - ipL;
tL = (0[ipL & B_MSK] * (1-fpL) + 0[(ipL-1) & B_MSK] * fpL) * rG_L[i];
fL_h[i] += rS_L[i] * (tL - fL_h[i]);
rSumL += fL_h[i];

tpR = buf_pos - rT_R[i]; ipR = floor(tpR); fpR = tpR - ipR;
tR = (0[ipR & B_MSK] * (1-fpR) + 0[(ipR-1) & B_MSK] * fpR) * rG_R[i];
fR_h[i] += rS_R[i] * (tR - fR_h[i]);
rSumR += fR_h[i];
i += 1;
);

last_rSumL = rSumL; last_rSumR = rSumR;
buf_pos = (buf_pos + 1) & B_MSK;

// Master Output
spl0 = (fL_lp + rSumL) * g_out;
spl1 = (fR_lp + rSumR) * g_out;

// Soft Clipper
spl0 = spl0 / (1 + abs(spl0));
spl1 = spl1 / (1 + abs(spl1));

@gfx 400 300
gfx_r=0.05; gfx_g=0.05; gfx_b=0.08; gfx_rect(0,0,gfx_w,gfx_h);
gfx_r=0.8; gfx_g=0.8; gfx_b=1; gfx_x=10; gfx_y=10;
gfx_printf("Geometric Presence | Liveness: %d%%", slider7*100);

cx = gfx_w/2; cy = gfx_h*0.5; scale = 12;
rw = slider5 * scale; rd = slider6 * scale;
gfx_r=0.2; gfx_g=0.2; gfx_b=0.3;
gfx_rect(cx - rw/2, cy - rd/2, rw, rd, 0);

gfx_r=1; gfx_circle(cx, cy, 3, 1);
sx_v = cx + sin(slider3*PI/180)*slider2*scale;
sy_v = cy - cos(slider3*PI/180)*slider2*scale;
gfx_r=0.2; gfx_g=0.6; gfx_b=1; gfx_circle(sx_v, sy_v, 5, 1);


-- David Cuny

My virtual singer development blog
Vocal control, you say. Never heard of it. Is that some kind of ProTools thing?

BiaB 2025 | Windows 11 | Reaper | Way too many VSTis.
Previous Thread
Next Thread
Go To

Link Copied to Clipboard
ChatPG

Ask sales and support questions about Band-in-a-Box using natural language.

ChatPG's knowledge base includes the full Band-in-a-Box User Manual and sales information from the website.

PG Music News
Band-in-a-Box® 2025 for Mac® users: Build 904 now available!

If you're already using Band-in-a-Box® 2025 for Mac®, make sure to grab the latest update! Build 904 is now available for download and includes the newest additions and enhancements from our team.

Band-in-a-Box® 2026 for Windows® users: Build 1237 is now available!

Already a Band-in-a-Box 2026 for Windows user? Stay up to date and download the build 1237 to get all the latest additions and enhancements.

PowerTracks Pro 2026 for Windows is Here!

PowerTracks 2026 is here—bringing powerful new enhancements designed to make your production workflow faster, smoother, and more intuitive than ever.

The enhanced Mixer now shows Track Type and Instrument icons for instant track recognition, while a new grid option simplifies editing views. Non-floating windows adopt a modern title bar style, replacing the legacy blue bar.

The Master Volume is now applied at the end of the audio chain for consistent levels and full-signal master effects.

Tablature now includes a “Save bends when saving XML” option for improved compatibility with PG Music tools. Plus, you can instantly match all track heights with a simple Ctrl-release after resizing, and Add2 chords from MGU/SGU files are now fully supported... and more!

Get started today—first-time packages start at just $49.

Already using PowerTracks Pro Audio? Upgrade for as little as $29 and enjoy the latest improvements!

Order now!

Band-in-a-Box 2026 for Windows Special Offers End Tomorrow (January 15th, 2026) at 11:59 PM PST!

Time really is running out! Save up to 50% on Band-in-a-Box® 2026 for Windows® upgrades and receive a FREE Bonus PAK—only when you order by 11:59 PM PST on Thursday, January 15, 2026!

We've added many major new features and new content in a redesigned Band-in-a-Box® 2026 for Windows®!

Version 2026 introduces a modernized GUI redesign across the program, with updated toolbars, refreshed windows, smoother workflows, and a new Dark Mode option. There’s also a new side toolbar for quicker access to commonly used windows, and the new Multi-View feature lets you arrange multiple windows as layered panels without overlap, making it easier to customize your workspace.

Another exciting new addition is the new AI-Notes feature, which can transcribe polyphonic audio into MIDI. You can view the results in notation or play them back as MIDI, and choose whether to process an entire track or focus on specific parts like drums, bass, guitars/piano, or vocals. There's over 100 new features in Band-in-a-Box® 2026 for Windows®.

There's an amazing collection of new content too, including 202 RealTracks, new RealStyles, MIDI SuperTracks, Instrumental Studies, “Songs with Vocals” Artist Performance Sets, Playable RealTracks Set 5, two RealDrums Stems sets, XPro Styles PAK 10, Xtra Styles PAK 21, and much more!

Upgrade your Band-in-a-Box for Windows to save up to 50% on most Band-in-a-Box® 2026 upgrade packages!

Plus, when you order your Band-in-a-Box® 2026 upgrade during our special, you'll receive a Free Bonus PAK of exciting new add-ons.

If you need any help deciding which package is the best option for you, just let us know. We are here to help!

Band-in-a-Box® 2026 for Windows® Special Offers Extended Until January 15, 2026!

Good news! You still have time to upgrade to the latest version of Band-in-a-Box® for Windows® and save. Our Band-in-a-Box® 2026 for Windows® special now runs through January 15, 2025!

We've packed Band-in-a-Box® 2026 with major new features, enhancements, and an incredible lineup of new content! The program now sports a sleek, modern GUI redesign across the entire interface, including updated toolbars, refreshed windows, smoother workflows, a new dark mode option, and more. The brand-new side toolbar provides quicker access to key windows, while the new Multi-View feature lets you arrange multiple windows as layered panels without overlap, creating a flexible, clutter-free workspace. We have an amazing new “AI-Notes” feature. This transcribes polyphonic audio into MIDI so you can view it in notation or play it back as MIDI. You can process an entire track (all pitched instruments and drums) or focus on individual parts like drums, bass, guitars/piano, or vocals. There's an amazing collection of new content too, including 202 RealTracks, new RealStyles, MIDI SuperTracks, Instrumental Studies, “Songs with Vocals” Artist Performance Sets, Playable RealTracks Set 5, two RealDrums Stems sets, XPro Styles PAK 10, Xtra Styles PAK 21, and much more!

There are over 100 new features in Band-in-a-Box® 2026 for Windows®.

When you order purchase Band-in-a-Box® 2026 before 11:59 PM PST on January 15th, you'll also receive a Free Bonus PAK packed with exciting new add-ons.

Upgrade to Band-in-a-Box® 2026 for Windows® today! Check out the Band-in-a-Box® packages page for all the purchase options available.

Happy New Year!

Thank you for being part of the Band-in-a-Box® community.

Wishing you and yours a very happy 2026—Happy New Year from all of us at PG Music!

Season's Greetings!

Wishing everyone a happy, healthy holiday season—thanks for being part of our community!

The office will be closed for Christmas Day, but we will be back on Boxing Day (Dec 26th) at 6:00am PST.

Team PG

Forum Statistics
Forums57
Topics86,029
Posts799,125
Members40,011
Most Online44,367
Mar 4th, 2026
Newest Members
Brian Watts, 973Cig, TimTom420, drodger, GTRRO
40,011 Registered Users
Top Posters(30 Days)
MarioD 154
rsdean 103
DC Ron 99
DrDan 74
Today's Birthdays
JimHurley, Shlatsa 03
Powered by UBB.threads™ PHP Forum Software 7.7.5