JUCE/iPlug and Other Users

If you are not using ASPiK or RackAFX7, do not fear! All of the 2nd edition book plugins are based on C++ and DSP effects objects that are not tied to any platform or any API or any plugin framework. The plugin objects are located within the [ASPiK project]/PluginObjects subfolder. There are three files that include everything you need:

  • fxobjects.h: all constants, helper functions, interfaces, DSP, effect,WDF and FFTW object declarations and most implementations
  • fxobjects.cpp: C++ object implementations for very long member functions that would be too long to place in the .h file
  • filters.h: a file full of pre-computed FIR filters specifically for the FFTW chapters involving sample rate conversion, phase vocoding and fast convolution



Download the ASPiK version of the plugin project. Find the objects in the files and folders above. The objects follow the same design and usage patterns throughout, with the exception of the WDF objects, which have their own separate design pattern. See the 2nd Ed FX book Chapter 8 which explains all the details of each type of object and the simple pattern for updating the underlying object variables from the GUI controls

  • reset: reset the object in your framework’s initialization function that sets the current sample rate for the plugin session; see the PluginCore::reset( ) function in the ASPiK project to snag this code
  • update GUI: transfer the GUI information from your framework GUI variables into the C++ objects using the same, simple pattern for each; this function is named the same for all projects and is found in the PluginCore::updateParameters( ) method
  • process audio: see the PluginCore::processAudioFrame( ) method to process input samples; alternatively you can process buffers instead; this is all explained in detail in the See the 2nd Ed FX book Chapter 8.