# Blog

This started by tidying up some of the notes I took while working on audio/DSP stuff, but it's become a project of its own.

## Latest post

# The Design of Signalsmith Stretch

Geraint LuffSignalsmith Audio Ltd.

A closer look at our open-source C++ pitch-shifting library

My ADC talk Four Ways To Write A Pitch-Shifter is now out on YouTube!

I'd watch the talk first (if you haven't already), but then come back if you're curious about the inner workings of Signalsmith Stretch.

## Investigations

Things I figured out up with while trying to solve a problem... or just having fun. ðŸ™‚

# Cascaded box-filter smoothing filters

Geraint LuffSignalsmith Audio Ltd. original

We combine box-filters to create a family of cheap FIR smoothing filters, and provide some optimal sizes.

# Stride-Interpolated Delay

Geraint Luff originalWhen we change the length of a delay-line, we usually use either a smooth slide (with detuning) or a cross-fade (with comb-filtering artefacts). Let's look at a third option!

# Analytic pluck synthesis

Geraint Luff originalNo feedback, no wavetables, no aliasing: synthesising a plucked-string sound using a family of directly-computable band-limited impulses.

# A cheap energy-preserving-ish crossfade

Geraint Luff originalA fun little polynomial cross-fade curve with (almost) constant energy, extended into a family of curves for fractional power-laws.

## Effects

Guides to some designs for particular audio effects. The reverb one was presented at ADC21.

# Warmer waveshapers

Geraint LuffSignalsmith Audio Ltd.

Looking at a couple of ways to reduce the bright high-end you commonly get from waveshaping distortion, while preserving clarity.

# Designing a straightforward limiter

Geraint LuffSignalsmith Audio Ltd.

We set out some requirements for a brick-wall limiter, have a go at solving them, and sketch out some ways it could be modified.

# Let's Write A Reverb

Geraint LuffNo magic numbers, no tricky tuning: a clean and flexible approach to designing a smooth high-quality reverb, using a variation on the classic feedback-delay network (FDN) structure.

It's not quite a how-to guide (the ADC22 talk is closer to that), but here are some particular choices for our Signalsmith Stretch library:

## Technical Tidbits

Technical stuff I thought was interesting!

# Constant-time peak-hold

Geraint LuffSignalsmith Audio Ltd.

Looking at some ways to implement peak-hold (sliding maximum), including one with constant O(1) complexity.

# Smooth Monotonic Interpolation

Geraint LuffProducing a smooth, *intuitive* curve from a set of control points.

# Invertible fixed-point complex rotation

Geraint LuffA look at how to perform lossless rotations on integer / fixed-point co-ordinates or complex values.

# Box-filters without accumulating errors

Geraint LuffSignalsmith Audio Ltd.

Exploring some ways to efficiently calculate box filters without accumulating floating-point errors, including varying-width filters.

# Extra-wide window functions

Geraint LuffWindow functions are typically matched to the length of your FFT, but they don't have to be. Let's look at how we can use a window longer than the FFT size.