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



Off-Topic
Joined: Nov 2008
Posts: 3,542
Veteran
Online Content
Veteran
Joined: Nov 2008
Posts: 3,542
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,929
Veteran
Offline
Veteran
Joined: Jul 2022
Posts: 2,929
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,215
Veteran
OP Online Content
Veteran
Joined: Mar 2018
Posts: 7,215
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,891
J
Veteran
Offline
Veteran
J
Joined: Jun 2012
Posts: 3,891
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,187
Veteran
Online Content
Veteran
Joined: Sep 2010
Posts: 8,187
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,215
Veteran
OP Online Content
Veteran
Joined: Mar 2018
Posts: 7,215
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,187
Veteran
Online Content
Veteran
Joined: Sep 2010
Posts: 8,187
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; 4 hours ago. 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,187
Veteran
Online Content
Veteran
Joined: Sep 2010
Posts: 8,187
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


-- 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,033
Posts799,149
Members40,012
Most Online44,367
Mar 4th, 2026
Newest Members
Brian Watts, 973Cig, TimTom420, drodger, GTRRO
40,011 Registered Users
Top Posters(30 Days)
MarioD 143
rsdean 103
DC Ron 99
DrDan 75
Today's Birthdays
lboots
Powered by UBB.threads™ PHP Forum Software 7.7.5