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



Off-Topic
Joined: Nov 2008
Posts: 3,673
Veteran
Offline
Veteran
Joined: Nov 2008
Posts: 3,673
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,593
Veteran
Offline
Veteran
Joined: May 2000
Posts: 22,593
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: 3,027
Veteran
Offline
Veteran
Joined: Jul 2022
Posts: 3,027
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,244
Veteran
OP Offline
Veteran
Joined: Mar 2018
Posts: 7,244
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,901
J
Veteran
Offline
Veteran
J
Joined: Jun 2012
Posts: 3,901
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,189
Veteran
Offline
Veteran
Joined: Sep 2010
Posts: 8,189
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,244
Veteran
OP Offline
Veteran
Joined: Mar 2018
Posts: 7,244
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,189
Veteran
Offline
Veteran
Joined: Sep 2010
Posts: 8,189
Edited:

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 had posted a version earlier, but it wasn't that great. The prior version could only cast a limited number of rays, while bakes the rays into an impulse response, which means the result is much more detailed.

This is an interesting technology, but it's a bit like a 3D printer - I'm not sure there are a lot of use cases for it in my life. It's easy to get lost in making a tool that - at the end of the day - just copies something else that's out there. It's way too easy for this sort of thing to become a timesink. I'm really no more the author of this tool as I am something I bought off the shelf. The difference is that something off the shelf had a lot more work go into it to make sure it was useful to lots of people.

I've restarted my voice synthesis using LLMs to help with the core functions, but I doubt that is going to be used by anyone other than me, either.

But if you're hankering for your own FX, Reaper's [b]jsfx[/i] is a really convenient way to do it.

I'm posting the code in case anyone want to try it out for grins and giggles.

// ---------------------------------------------------------------------------
// Plugin: Professional Studio Spatializer
// Author: Gemini AI Collaboration
// Date: March 2026
//
// PHYSICS LOGIC:
// 1. Stochastic Ray Tracing: Bakes 320 unique paths into a lookup table.
// 2. Inverse Square Law: Natural volume drop-off based on 1/Distance.
// 3. Air Absorption: High-frequency damping as a function of distance.
// 4. Wood Warmth: Frequency-dependent absorption (Low-Pass) on reflections.
// 5. Physical Diffusion: Stochastic time-jitter (up to 5ms) to smear transients.
//
// TECHNICAL CONSTRAINTS:
// - No scientific notation supported (e.g., use 0.00001, NOT 1e-5).
// - Circular Buffer: Power-of-two size (262144) for bitwise masking (& B_MSK).
// - Memory: Tables (0+) and Audio (20,000+) are separated to avoid corruption.
// ---------------------------------------------------------------------------

desc: Pro-Studio Spatializer (Final Build)

// --- Sliders ---
slider1:0<-60, 12, 0.1>Output Gain (dB)
slider2:2.5<0.1, 20.0, 0.01>Distance (m)
slider3:0<-90, 90, 1>Source Angle (deg)
slider4:10<4, 60, 0.1>Room Width (m)
slider5:12<4, 60, 0.1>Room Depth (m)
slider6:0.6<0, 1, 0.01>Diffusion (Physical Smear)
slider7:0.5<0, 1, 0.01>Wall Warmth (Wood Damping)

@init
// --- Memory Allocation ---
IR_DATA_PTR = 0; // Start of physics tables
AUDIO_BUF_PTR = 20000; // Start of audio delay line (prevents clicking)

B_SZ = 262144; // ~5.9 seconds at 44.1kHz
B_MSK = B_SZ - 1; // Bitwise mask for fast wrapping
buf_pos = 0; // Write head for audio buffer

// Table Pointers (1024 slots each for safety)
impL_T = IR_DATA_PTR; // Left Delay Times (samples)
impR_T = IR_DATA_PTR + 1024; // Right Delay Times (samples)
impL_G = IR_DATA_PTR + 2048; // Left Gains (linear)
impR_G = IR_DATA_PTR + 3072; // Right Gains (linear)

// Constants
PI = 3.1415926535;
C = 343; // Speed of sound m/s
DENORM = 0.000000000000001; // Prevents CPU "underflow" spikes

function bake_room() (
d = slider2;
a_rad = slider3 * (PI / 180);
hw = 0.24; // Human head width (meters)

// Virtual source coordinates
sx = sin(a_rad) * d; sy = cos(a_rad) * d;
exL = -hw * 0.5; exR = hw * 0.5;

active_rays = 320;
seed = 888; // Fixed seed for deterministic acoustics

// Calculate base decay based on Wall Warmth
base_decay = 0.88 - (slider7 * 0.35);

i = 0;
loop(active_rays,
seed = (seed * 1103515245 + 12345) & 0x7FFFFFFF;

i == 0 ? (
// Direct Path logic
vx = sx; vy = sy;
decay = 1.0;
jit = 0;
) : (
// Reflection logic
rand_ang = (seed / 0x7FFFFFFF) * 2 * PI;
path_base = d + (i / active_rays) * ((slider4 + slider5) * 0.5);

// Diffusion: Inject random timing jitter to the rays
jit = ((seed % 200 / 100) - 1.0) * slider6 * 0.005;

vx = sx + cos(rand_ang) * path_base;
vy = sy + sin(rand_ang) * path_base;
decay = pow(base_decay, (path_base - d) / 2.5);
);

// Distances to virtual ears
rdL = sqrt((vx - exL)^2 + vy^2);
rdR = sqrt((vx - exR)^2 + vy^2);

// Convert to samples + apply diffusion jitter
impL_T[i] = ((rdL / C) + jit) * srate;
impR_T[i] = ((rdR / C) + jit) * srate;

// Inverse Square Law Gain * Decay Coefficient
impL_G[i] = (decay / max(1.0, rdL)) * 0.15;
impR_G[i] = (decay / max(1.0, rdR)) * 0.15;

i += 1;
);

ray_cnt = i;

// Pre-calculate filter coefficients for @sample
shadowL = min(1.0, 1.0 - max(0, slider3 / 100));
shadowR = min(1.0, 1.0 - max(0, -slider3 / 100));
air_loss = max(0.2, 1.0 - (d * 0.03));
wood_lp = 0.03 + (1.0 - slider7) * 0.5;
);

@slider
g_out = 10^(slider1/20);
bake_room(); // Re-calculate acoustics on parameter change

@sample
// Input + Denormal noise
sig_in = (spl0 + spl1) * 0.5 + DENORM;
AUDIO_BUF_PTR[buf_pos] = sig_in;

outL = 0; outR = 0;
idx = 0;
loop(ray_cnt,
// Linear Interpolation for high-fidelity fractional delays
tL = impL_T[idx]; itL = floor(tL); ftL = tL - itL;
vL = AUDIO_BUF_PTR[(buf_pos - itL) & B_MSK] * (1 - ftL) +
AUDIO_BUF_PTR[(buf_pos - itL - 1) & B_MSK] * ftL;
outL += vL * impL_G[idx];

tR = impR_T[idx]; itR = floor(tR); ftR = tR - itR;
vR = AUDIO_BUF_PTR[(buf_pos - itR) & B_MSK] * (1 - ftR) +
AUDIO_BUF_PTR[(buf_pos - itR - 1) & B_MSK] * ftR;
outR += vR * impR_G[idx];

idx += 1;
);

// Wood Absorption Stage
reflL += wood_lp * (outL - reflL);
reflR += wood_lp * (outR - reflR);

// Head Shadowing + Air Absorption Stage
fL += (shadowL * air_loss * 0.6) * (reflL - fL);
fR += (shadowR * air_loss * 0.6) * (reflR - fR);

// Final smoothing smear
dfL += 0.5 * (fL - dfL);
dfR += 0.5 * (fR - dfR);

resL = fL * 0.4 + dfL * 0.6;
resR = fR * 0.4 + dfR * 0.6;

buf_pos = (buf_pos + 1) & B_MSK;

spl0 = resL * g_out;
spl1 = resR * g_out;

@gfx 500 450
// --- GUI Background ---
gfx_r=0.08; gfx_g=0.07; gfx_b=0.06; gfx_rect(0,0,gfx_w,gfx_h);

// --- Auto-Scaling Logic ---
cx = gfx_w / 2; cy = (gfx_h / 2) + 20;
max_dim = max(slider4, slider5);
view_scale = (min(gfx_w, gfx_h) * 0.75) / max_dim;
rw = slider4 * view_scale; rd = slider5 * view_scale;

// Draw Room Boundary
gfx_r=0.3; gfx_g=0.2; gfx_b=0.1;
gfx_rect(cx - rw/2, cy - rd/2, rw, rd, 0);

// Metrics
gfx_r=0.8; gfx_g=0.8; gfx_b=0.7;
gfx_x = 20; gfx_y = 20;
gfx_printf("Room Dimensions: %0.1f m x %0.1f m", slider4, slider5);
gfx_y += 18;
gfx_printf("Path Distance: %0.2f meters", slider2);

// Listener (Mics)
gfx_r=1; gfx_g=1; gfx_b=1;
gfx_circle(cx - 5, cy, 2, 1); gfx_circle(cx + 5, cy, 2, 1);
gfx_x = cx - 28; gfx_y = cy + 12; gfx_drawstr("Mics");

// Source Position
src_x = cx + sin(slider3 * PI / 180) * slider2 * view_scale;
src_y = cy - cos(slider3 * PI / 180) * slider2 * view_scale;
// Clip icons to room walls
src_x = max(cx - rw/2, min(cx + rw/2, src_x));
src_y = max(cy - rd/2, min(cy + rd/2, src_y));

gfx_r=1; gfx_g=0.5; gfx_b=0;
gfx_circle(src_x, src_y, 6, 1);
gfx_r=1; gfx_g=0.9; gfx_b=0;
gfx_line(cx, cy, src_x, src_y); // Distance visualization

// Data Label
gfx_x = src_x + 10; gfx_y = src_y - 10;
gfx_printf("%d deg", slider3);

Last edited by dcuny; 03/15/26 02:11 PM. Reason: New and better code.

-- 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: Sep 2010
Posts: 8,189
Veteran
Offline
Veteran
Joined: Sep 2010
Posts: 8,189
Originally Posted by Rustyspoon#
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.
I've been re-doing my vocal synth program. Now that I've got the equivalent of a DSP expert on hand, I've been able to get past a number of hurdles.

I find that it works well when closely guided. I'm using the free version of Gemini, with occasional assists from the free Pro version when it can't track down a serious bug. I'll probably have to get a subscription, because I keep running into the issue of it having a limited number of tokens and so constantly losing context.

It can do common coding things quite well. For example, I'd been planning to use a spectral morphing algorithm of my own design to handle missing phoneme transitions - something that would require tagging phonemes to identify formants. Gemini suggested I use Line Spectral Frequencies instead - an algorithm that's been around since 1974 and used in phone transmission. It relied on LPC filters - something I'd never been able to implement correctly. Gemini free was able to crank out the functions I needed, but Gemini Pro was needed to debug it, where it immediately identified that Gemini free was trying to something nonsensical.

Between the two programs I eventually got it working. That's something I wouldn't be able to do on my own.

On the other hand, Gemini free is constantly hallucinating away key parts of the program and introducing regressions. By the time it's solved one problem, it's entirely forgotten what the rest of the program does.

Sounds like I may need to get a hold of Billy. smile

Edit: I've got a Ryzen AI chip on my computer, so it turns out I can run LLM models locally. Now to see if I can find a model that can understand Lua... crazy

Last edited by dcuny; 03/16/26 12:27 AM.

-- 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 2026 for Mac is Here!

Band-in-a-Box® 2026 for Mac is here and it is packed with major new features! There’s a new modern look, a GUI redesign to all areas of the program including toolbars, windows, workflow and more. There’s a Multi-view layout for organizing multiple windows. A standout addition is the powerful AI-Notes feature, which uses AI neural-net technology to transcribe polyphonic audio into MIDI—entire mixes or individual instruments—making it easy to study, view, and play parts from any song. And that’s just the beginning—there are over 100 new features in this exciting release.

Along with version 2026, we've released an incredible lineup of new content! There's 202 new RealTracks, brand-new RealStyles, MIDI SuperTracks, Instrumental Studies, “Songs with Vocals” Artist Performance Sets, Playable RealTracks Set 5, two new RealDrums Stems sets, XPro Styles PAK 10, Xtra Styles PAK 21, and much more!

Special Offers
Upgrade to Band-in-a-Box® 2026 for Mac and save up to 50% on most upgrade packages during our special offer—available until May 15, 2026. Visit our Band-in-a-Box® packages page to explore all available upgrade options.

2026 Free Bonus PAK & 49-PAK Add-ons
Our Free Bonus PAK and 49-PAK are loaded with amazing add-ons! The Free Bonus PAK is included with most Band-in-a-Box® 2026 for Mac packages, but you can unlock even more—including 20 unreleased RealTracks—by upgrading to the 2026 49-PAK for just $49.

Holiday Weekend Hours

As we hop into the Easter weekend, here are our holiday hours:

April 3 (Good Friday): 8:00 AM – 4:00 PM PDT
April 4 (Saturday): Closed
April 5 (Easter Sunday): Closed
April 6 (Easter Monday): Open regular hours

Wishing you an egg-cellent weekend!

— Team PG

Update to Build 10 of RealBand® 2026 for Windows®!

If you're already using RealBand 2026 for Windows, download build 10 to get all the latest additions and enhancements.

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!

Forum Statistics
Forums57
Topics86,150
Posts801,374
Members40,061
Most Online64,515
Apr 8th, 2026
Newest Members
Armando D'Errico, PhilinPhil, RBDavis1957, Trenamusic, feralearthman
40,061 Registered Users
Top Posters(30 Days)
MarioD 131
rsdean 102
DC Ron 101
zedd 97
Noel96 71
Today's Birthdays
boomerballads, Hogman, Marius1976
Powered by UBB.threads™ PHP Forum Software 7.7.5