A Lazy Sequence

Creating synthetic hi-hat's from bitcrusher aliasing

Synthesising hi-hats typically starts with some source of inharmonic sound – such as white noise – and then processing it with filtering, and envelope shaping. If we disregard realism, other sources of inharmonic sound can be fun and interesting tools. Sample rate reduction (“bitcrushing”) aliasing produces interesting inharmonic sounds with the useful property that the frequency distribution changes over time based on the input to the bitcrusher.

An example of the final result.

At a high level, we take some audio, reduce its sample rate enough to introduce a lot of aliasing artefacts, filter out the original sample so that we are predominantly hearing the aliasing noise, and finally use a make-up gain stage to bring the level backup to a usable level.

Input audio goes to sample rate reduction, then to a high pass filter, and finally make-up gain.
Signal flow for the basic transformation

The input audio makes a big difference to this process. The harmonic content of the input, as well as its overall envelope, will heavily influence which frequences end up in the aliasing. I’m looking for input sounds where the harmonic content changes overtime, and have a percussive character already: piano keys, guitar, plucky synth sounds, etc. This results in the aliasing noise changing over time, and giving us a more interesting final sound as a result.

Screenshot of AudioThing Things Crusher UI for this signal flow
Things – Crusher set up to leave only the high frequency aliasing content. The filter is set to High Pass 4-pole, with the mode set to Post, and the Output cranked: this is doing both high passing and make-up gain. The Crusher section has Bits set to taste but is not strictly required, Downsample is aggressive at around 32x, but again set to taste. Harshness is a waveshaping control specific to this plugin, but it sounds great maxed. Finally, Mix is set all the way wet.

Here is an example using one of the stock piano samples from Bitwig, the Nektar Acoustic Piano, through Things – Crusher (above) to get the raw sample audio. I happen to like the Crusher UI and it has everything needed for this built in, but any bitcrusher, highpass, gain combo will do the job.

Piano converted into alias noise hits.

You can hear that the piano sample has an abbreviated decay and no sustain. The resulting alias noise is still too long for usable hi-hats, so the next step is simply to put the noise into a sampler, and reign the decay time way down. I also mapped velocity onto decay time for a little extra dynamics, and took advantage of the filter to do some additional tone shaping.

Bitwig Sampler instrument showing the clip and AHDSR settings
Alias noise in the Sampler instrument

Here is a scruffy little demo of the hi-hats in context with kick, clap, and a simple baseline.

13 December 2022