This demo is related to the following publications:
@article{MeierCM24_RealTimePLP_TISMIR, author = {Peter Meier and Ching-Yu Chiu and Meinard M{\"u}ller}, title = {{A} Real-Time Beat Tracking System with Zero Latency and Enhanced Controllability}, journal = {Transactions of the International Society for Music Information Retrieval ({TISMIR})}, year = {2024}, volume = {7}, number = {1}, pages = {213--227}, doi = {10.5334/tismir.189}, url-demo = {https://audiolabs-erlangen.de/resources/MIR/2024-TISMIR-RealTimePLP} }
@inproceedings{MeierSM24_RealTimePulseParameters_DAFX, author = {Peter Meier and Simon Schw{\"a}r and Meinard M{\"u}ller}, title = {{A} Real-Time Approach for Estimating Pulse Tracking Parameters for Beat-Synchronous Audio Effects}, booktitle = {Proceedings of the International Conference on Digital Audio Effects ({DAFx})}, address = {Guildford, Surrey, {UK}}, year = {2024}, pages = {314--321}, url-demo = {https://audiolabs-erlangen.de/resources/MIR/2024-DAFx-RealTimePLP} }
In this example, we modulate the cut-off frequency of a low-pass filter to automatically shape the sound of instruments, like a Bass or a Piano, in a rhythmically interesting way. To this end, we use a simple Kick drum pattern as the input signal for generating our control signals. Applying a low-pass filter to an instrument can change its sound depending on the chosen cut-off frequency setting, altering it from a damped sound at lower filter frequencies to a bright sound at higher filter frequencies, as depicted in Figure 1.
This cut-off frequency parameter is now a perfect candidate for modulation with control signals like a low frequency oscillator (LFO), as shown in Figure 2. Particularly, the alpha-LFO extracted from a real-time PLP procedure (see 2024-DAFx-RealTimePLP) is well suited for this job, as it rhythmically changes its amplitude in sync with the beat of the input signal, with values between -1 and 1. Here, -1 represents low filter frequencies, and 1 represents high filter frequencies.
Listen to the Kick (input signal) in combination with the original Bass and Piano tracks, without modulation.
Note that the Bass is just a single long held note, and the Piano only plays chords on the first beat of each bar.
To make the audio example a little more interesting, we add some modulation.
Listen to the Kick (input signal) in combination with the alpha-LFO modulated Bass and Piano tracks, or select individual tracks. Notice how the sound of the instruments changes from more damped to brighter tones, following the alpha-LFO curve.
Settings: For this example, we used a PLP kernel size of 6 seconds and a tempo range from 55 to 115 BPM.
Following the previous example, we replace the Piano sound with the sound of a Wavetable synthesizer. A wavetable synthesizer creates sound by playing back small, pre-recorded sound waves and allowing to shape and modify them for different tones and effects. One of the most obvious ways to alter the sound of a wavetable synthesizer is to select different positions within the wavetable to choose different waveforms, resulting in varying sounds. In Figure 3, we illustrate different types of wavetables, holding different waveforms.
In this way, wavetables can create smooth transitions from one waveform to another, making them perfectly applicable for our control signal scenario to change the waveform automatically in sync with the beat of the music.
For example, the wavetable in Figure 3 (left side) shows a sinusoidal-shaped waveform at the bottom position (0%), producing a rather clean tone. On the other hand, at the top position (100%), the wavetable presents a more noisy waveform, producing a more edgy sound with lots of overtones.
The position of a wavetable synthesizer is again a perfect candidate for modulation with control signals, like the alpha-LFO. For the following audio examples, we map alpha-LFO values of -1 to the 0% position of the wavetable and alpha-LFO values of 1 to the 100% position of the wavetable.
This wavetable changes the timbre of the sound while the pitch stays the same. The bottom position (0%) of the wavetable produces a sawtooth-like sound, while the top position (100%) of the wavetable produces a clean sinusoidal sound.
Note how the prominent sawtooth sound is synced with the offbeats of the kick track, while the softer sinusoidal sound goes along with the beats, leaving space for the kick.
Settings: For this example, we used a PLP kernel size of 6 seconds and a tempo range from 55 to 115 BPM.
This wavetable changes the pitch of the sound while the timbre stays the same. The bottom position (0%) of the wavetable produces a sine wave with low pitch (a single period), while the top position (100%) of the wavetable produces a sine wave with higher pitch (ten periods).
Note how the high-pitched sounds go along in sync with the beat of the kick drum, while low-pitched sounds can be heard in between.
Settings: For this example, we used a PLP kernel size of 6 seconds and a tempo range from 55 to 115 BPM.
This wavetable changes the timbre and the pitch of the sound at the same time. The bottom position (0%) of the wavetable produces a clean sine wave sound with lower pitch, while the top position (100%) of the wavetable produces a more edgy sound with higher pitch and lots of overtones.
Note how the distorted high-pitched sounds go along in sync with the beat of the kick drum, while clean low-pitched sounds can be heard on the offbeats.
Settings: For this example, we used a PLP kernel size of 6 seconds and a tempo range from 55 to 115 BPM.