KFingerprints VST Effect

Overview

The KFingerprints VST effect enables real-time recreation of audio material by using audio id/fingerprinting techniques to select the most similar slice from a large pool of precaptured slices.

Getting started

The KFingerprints VST effect simultaneously processes two separate audio streams in real-time:

  • The Main Input receives the audio stream to be recreated from slices in the Slice Pool based on the slice selection of the Slice Matcher component.
  • The Sidechain Input is used to fill the Slice Pool with slices which are used to recreate the audio on the Main Input. To learn how to setup sidechaining in Ableton Live, see this tutorial.
The Main Input as well as the Sidechain Input are processed by the Slice Matcher, Slice Pool, Slice Playback Buffer and Mix components which are explained in the following.

Slice Matcher

Incoming slices on the Main Input are fed to the Slice Matcher which perceptually finds the closest matching slice from all slices in the Slice Pool by comparing the individual audio fingerprints. The Slice Matcher provides a few controls to influence the matching process:

  • Type A/B: This switch selects the matching algorithms: Type A matches normalized slices and readjusts the amplitude of the matched slice during playback. Type B matches unnormalized slices which can lead to more organic/natural output but potentially lowers the number of slice matching options.
  • Variation: Adds noise to the matching process. The higher the variation value, the higher the probability that not the best matching slice but the second/third best match is selected.
  • Hold: Sets a probability that during playback the currently played slice will just continue playing the original side chain audio.

Slice Playback Buffer

The output of the Slice Matcher is fed into the Slice Playback Buffer which delays the playback to at least one bar (up to four bars) to align the matched slices with the DAW arrangement. It provides the following controls:

  • Bars: Number of bars to delay the playback of matched slices.
  • Normalize: Allows for normalizing each slice based on their peak amplitude.
  • Attack/Decay: Applies an attack/decay envelope to each slice. It is defined in percentage relative to the slice duration.

Mixer

The Mixer component enables blending between the original Main Input audio feed and the matched slices played from the Slice Playback Buffer.

Slice Pool

If the Recording button is enabled, the sidechain slices are added to the Slice Pool. It provides the following controls:

  • Slice Size: Defines the slice size/duration of the Main Input and the Sidechain Input relative to the DAW BPM tempo settings. Note that changing the slice size automatically clears the Slice Pool.
  • Pool Size: Defines the maximum number of slices in the Slice Pool. If that limit is reached, the older slice gets pushed out and the new fresh slice is added. This allows for a continuously changing Slice Pool content.
  • Clear: Deletes all slices from the slice pool.

Credits

GUI design:
Adam Glazier

Concept & development:
Julius Kammerl