8000 GitHub - maxsolomonhenry/FftBuffer: Experiments in JUCE to build an overlap add framework capable of doing spectral processing.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

maxsolomonhenry/FftBuffer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Stutter+Hold

Stutter+Hold ("Stutter and hold") is a timbral tremolo, basically a freeze pedal and tremolo combined.

Under the hood it's built on a phase vocoder, but this is all really just an excuse to build up an overlap-add analysis synthesis class for JUCE.

Effect parameters

  • Freeze sets the plugin to on or off.
  • Tempo Sync sets the stutter rate to sync with the DAW playback tempo.
  • Refresh is a manual trigger to grab a new frame to freeze on (only useful when Stutter Rate is set to 0).
  • Stutter Rate sets the freeze update rate (in Hz or beats).
  • Envelope Depth determines how much the effect (the frozen part) follows the amplitude envelope of the wet signal. Fun stuff.
  • Dry/Wet sets the mix of processed and unprocessed audio.

The Overlap-add buffer class

The plugin uses an overlap-add buffer class which was designed to be general purpose. To use it, fill the buffer sample-by-sample with the process method. It will store the new value, and mutate the input sample into an output value. What a time to be alive.

Here's how it's working for now: inherit from the OlaBuffer class, which takes care of all the overlap adding. You'll have to implement a processFrameBuffers method, which is called every hopSize samples (i.e., whenever an overlapping frame is filled up). The SimpleOlaProcessor class does all the spectral processing here -- it inherits from OlaBuffer and does all the spectral phasey goodness.

Certainly there is a better way to do this, but when in the vast and featureless landscape of C++, premature optimization is surely the root of all evil. Hope you enjoy.

About

Experiments in JUCE to build an overlap add framework capable of doing spectral processing.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0