Gin
Loading...
Searching...
No Matches
Public Member Functions | List of all members
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:

Usage:

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);
Kick reinforcement - synthesises low end triggered by transients.
Definition gin_kicksynth.h:62
A lightweight 2D point class for projects that don't use juce_graphics.
Definition gin_point.h:25

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 ( )

References Biquad::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: