Hi Robert,

Yes, the polyphase impulse response prototype is a Kaiser-windowed sinc,
whose beta comes from the target attenuation (beta ~= 0.1102*(A-8.7) for A
> 50 dB). That prototype is sampled Lx finer than the input rate and sliced
into L polyphase branches of T taps. Default is L=256 phases x T=48 taps. L
sets phase resolution (images drop ~12 dB per doubling), T sets transition
width / stopband depth (group delay ~= T/2 samples).

For the polyphase execution at runtime I take the two bracketing phase rows
and linearly interpolate their coefficients before the dot product. The
inter-phase blend is what gives resolution well beyond L discrete phases.
mu itself lives in a 64-bit accumulator that carries the deviation eps from
unity ratio.

And for the controller, it takes the target vs. instantaneous delay to
calculate the adjustment ratio using a type-2 (PI) servo on FIFO occupancy:

* Observable = FIFO backlog in frames plus current mu (adding mu removes
the +/-1-frame staircase as whole samples slip to make it continuous).
* Error e vs. a target setpoint feeds a PI filter outputting eps_hat; the
resampler then consumes (1 + eps_hat) frames per output frame.
* The plant is a pure integrator (occupancy = integral of rate mismatch,
gain fs), so PI gives a clean 2nd-order loop: Kp = 2zetawn/fs, Ki =
wn^2/fs, wn = 2pif_L. The integrator nulls a constant ppm offset to zero
standing error.

The one wrinkle: it's gain-scheduled across three bandwidths - ~10 Hz to
acquire, 1 Hz to track, 0.05 Hz steady-state. The occupancy observable
carries a quantization sawtooth (one push-block peak-to-peak), and a PI's
proportional path would leak that as FM sidebands; dropping to 0.05 Hz with
a 3-pole error cascade rejects it to ~-120 dBc-equivalent at 20 kHz while
still following a 1 ppm/s drift with under half a frame of error.

best,
Tim
_________________
*Timothy Place*
[email protected]


On Fri, Jun 26, 2026 at 9:13 PM robert bristow-johnson <
[email protected]> wrote:

> I don't really want to decode your code, but am interested in how you're
> doing the polyphase thingie, how your polyphase impulse response is defined
> (windowed-sinc or something else), and how your controller works (what
> compares the target delay
> ZjQcmQRYFpfptBannerStart
> This Message Is From an External Sender
> This message came from outside your organization.
>
> ZjQcmQRYFpfptBannerEnd
>
> I don't really want to decode your code, but am interested in how you're 
> doing the polyphase thingie, how your polyphase impulse response is defined 
> (windowed-sinc or something else), and how your controller works (what 
> compares the target delay with the actual instantaneous delay and adjusts the 
> SRC ratio to control it).
>
> That would be interesting to me.
>
> --
>
> r b-j . _ . _ . _ . _ [email protected]
>
> "Imagination is more important than knowledge."
>
> .
> .
> .
>
> > On 06/26/2026 9:59 PM EDT Timothy Place <[email protected]> wrote:
> >
> >
> > Hi all, A couple weeks back I created a software ASRC, MIT license, with 
> > some assistance from Claude Fable while it was online. It was partly 
> > motivated as an experiment to see if/what the LLM would actually do. I'm 
> > still in the process of
> > ZjQcmQRYFpfptBannerStart
> > This Message Is From an External Sender
> > This message came from outside your organization.
> > ZjQcmQRYFpfptBannerEnd
> > Hi all,
> >
> > A couple weeks back I created a software ASRC, MIT license, with some 
> > assistance from Claude Fable while it was online. It was partly motivated 
> > as an experiment to see if/what the LLM would actually do.
> >
> > I'm still in the process of verifying the results, but so far it is looking 
> > pretty good. Thought I would share here as it may be of interest and I 
> > welcome any feedback.
> >
> > https://urldefense.com/v3/__https://github.com/tap/SampleRateTap__;!!BDUfV1Et5lrpZQ!QnirfUSux-u7cttThG_bYCu7i6WKe4qHNH0sOT0qOX6TOi3JkqX2EoZ3_wQXpgEAnyD5Y_GXnXtEZmGcVrzG_vD1H20$
> >  
> > (https://urldefense.com/v3/__https://github.com/tap/SampleRateTap__;!!BDUfV1Et5lrpZQ!TlEQrC9mvnPYnpHGXdl_0QcFG_7rR0lnNreby02I8K29g8qeGsIQ1B_dQG8UpSYeebuDiB521EldoIUsNGB2EDlZKKfIhUei$)
> > <https://urldefense.com/v3/__https://github.com/tap/SampleRateTap__;!!BDUfV1Et5lrpZQ!TlEQrC9mvnPYnpHGXdl_0QcFG_7rR0lnNreby02I8K29g8qeGsIQ1B_dQG8UpSYeebuDiB521EldoIUsNGB2EDlZKKfIhUei$)%3E>
> > Cheers,
> > Tim
> > _________________
> > Timothy Place
> > [email protected]
> >
>
>

Reply via email to