Gin
Loading...
Searching...
No Matches
KickSynth Class Reference

Kick reinforcement - synthesises low end triggered by transients. More...

#include <gin_kicksynth.h>

Public Member Functions

 KickSynth ()=default
 ~KickSynth ()=default
void setSampleRate (double sr)
void setDetectorFrequency (float hz)
 Centre of the band the transient detector listens to.
void setFrequency (float hz)
 Frequency of the synthesised sine.
void setLength (float l)
 How long each hit rings for, 0 to 1.
void setWet (float w)
void setDry (float d)
void reset ()
void process (juce::AudioSampleBuffer &buffer)
void process (juce::AudioSampleBuffer &buffer, const juce::AudioSampleBuffer &sidechain)
 Keys off sidechain instead of the signal being processed.

Detailed Description

Kick reinforcement - synthesises low end triggered by transients.

A bandpass picks out the region a kick lives in and drives a transient detector. Whenever the fast envelope runs ahead of the tracked one - which is to say, whenever something hits - a sine is triggered at the chosen frequency and faded in proportion to how big the hit was, then mixed in under the original.

This is not EQ. Boosting a kick that has no energy at 50 Hz only raises what is already there, whereas this puts a note where there wasn't one, which is how you fix a thin kick without touching the rest of the mix. The oscillator's phase is reset on every trigger, so successive hits always add in phase with themselves and never cancel.

Feed it a side chain to key from something other than the signal being processed - a kick track keying a synthesised sub under a whole mix.

Key Features:

  • Tunable detector band and oscillator frequency
  • Phase reset per hit, so hits reinforce rather than cancel
  • Independent wet and dry levels
  • Optional side chain key

Usage:

KickSynth kick;
kick.setSampleRate (44100.0);
kick.setDetectorFrequency (80.0f); // listen around 80 Hz
kick.setFrequency (50.0f); // synthesise 50 Hz
kick.setLength (0.3f);
kick.setWet (0.25f);
kick.process (buffer);
KickSynth()=default
void setDetectorFrequency(float hz)
Centre of the band the transient detector listens to.
Definition gin_kicksynth.h:75
void setFrequency(float hz)
Frequency of the synthesised sine.
Definition gin_kicksynth.h:82
void process(juce::AudioSampleBuffer &buffer)
Definition gin_kicksynth.h:107
void setLength(float l)
How long each hit rings for, 0 to 1.
Definition gin_kicksynth.h:89
void setSampleRate(double sr)
Definition gin_kicksynth.h:67
void setWet(float w)
Definition gin_kicksynth.h:95

Note: stereo only - the synthesised signal is mono and added to both.

See also
TransientShaper, Dynamics

Constructor & Destructor Documentation

◆ KickSynth()

KickSynth::KickSynth ( )
default

◆ ~KickSynth()

KickSynth::~KickSynth ( )
default

Member Function Documentation

◆ setSampleRate()

void KickSynth::setSampleRate ( double sr)

References reset().

◆ setDetectorFrequency()

void KickSynth::setDetectorFrequency ( float hz)

Centre of the band the transient detector listens to.

◆ setFrequency()

void KickSynth::setFrequency ( float hz)

Frequency of the synthesised sine.

◆ setLength()

void KickSynth::setLength ( float l)

How long each hit rings for, 0 to 1.

◆ setWet()

void KickSynth::setWet ( float w)

◆ setDry()

void KickSynth::setDry ( float d)

◆ reset()

void KickSynth::reset ( )

Referenced by setSampleRate().

◆ process() [1/2]

void KickSynth::process ( juce::AudioSampleBuffer & buffer)

◆ process() [2/2]

void KickSynth::process ( juce::AudioSampleBuffer & buffer,
const juce::AudioSampleBuffer & sidechain )

Keys off sidechain instead of the signal being processed.


The documentation for this class was generated from the following file: