Synth Book Projects
Welcome to the Synth Book Downloads page. Here you will find all the book projects and notes on using them. Be sure to follow the instructions for setting up and installing your plug-in SDK. You can find notes in the Synth Book, Chapter 2. NOTE: the book refers to multiple project files with and without GUI or processing code. After surveying students and book readers, we found that no one cared about the partial projects; everyone wants the full, completed projects. If you need partially complete projects, ping me on the Forum or use the Contact form to send me an email.
Polyphony of the synth plug-ins is MOST dependent on your compiler build mode. In Debug mode (VS) or Development mode (XCode) you will only get 3-5 notes of polyphony. For full polyphony, compile in Release Mode (VS) or Product->Build For Running (XCode). You should now achieve 12-24 notes of polyphony or more depending on your processor speed and the synth type. DXSynth has the least processing and therefore most polyphony while VectorSynth and AniSynth are the most processor intensive. The book projects are written for intermediate-level programmers and are not optimized in any way. There is no “trick code.” After you are comfortable with a project, you are encouraged to optimize the code and post your new versions on the Forum. You will also find optimizations that my students are working on in the Forum’s Synth Book section.
RackAFX and AU produce the most polyphony. We noticed a slight polyphony reduction in VST3. As a comparison, you are encouraged to build and test the “note expression synth” which comes with the SDK and compare it’s polyphony with the Synth Book projects.
The digital sample based synths (DigiSynth, VectorSynth and AniSynth) require the following samples to be installed in your plug-ins folder. This is different depending on your platform and is detailed in the Synth Book (Chapters 9, 10, 11). The samples MUST be in the proper location for the plug-ins to work correctly.
RackAFX: the PlugIns folder (choose PlugIn->Open PlugIns Folder)
VST3: the VST3 folder of your target VST3 client (eg Cubase)
AU: the ~/Library/Audio/Plug-Ins/Components folder
Copyright Notice: The multi-sample sets here were distributed as royalty-free samples in a CD-ROM from Computer Music magazine Number 171 and designed by Cyclick. These are all stereo samples with the correct MIDI Unity Note information. As a free distribution, the sample designers give you three octaves of samples on minor third boundaries. These are all designed to work well in a bass synth application. Future Music Publishing grants full rights for commercial or non-commercial use providing the samples are not sold as part of a sample library. If you like them, you might wish to contact Cyclick and purchase the rest of the samples in the sets.
In all sample-based synths in the Synth Book, the quality of the synthesis ultimately depends on the quality of the samples. No amount of math or signal processing will fix poorly recorded or looped samples. I urge you to find your own suppliers and find the best sounding samples for the synth at hand. Many sample and loop suppliers will give you free samples if you sign up for a newsletter. Also, check magazines like Future Music that deliver gigabytes of royalty free samples and loops every month.
Download: Synth Book Sample Pack
Make sure you have the latest version of RackAFX, currently v18.104.22.168. You can get the latest version from the Downloads Page. The synth projects also work properly in the current Beta version (22.214.171.124 at the time of this writing). The RackAFX projects are self contained and can be located anywhere on your computer, but for convenience I suggest that you place the projects in the default folder you setup in View->Preferences. These projects have been tested in Visual Studio 2008, 2010, 2012, 2013 and 2015. You do not need the professional versions; the Express versions work just as well.
VS2008 and VS2010: there is nothing else to do but open the projects with RackAFX.
VS2012: when opening a project, you will be asked to do a one-way upgrade; choose YES and let the upgrade occur. There is nothing more to do after that.
VS2013, VS2015: when opening a project, you MAY be asked to do a one-way upgrade; choose YES and let the upgrade occur. If you do not get the upgrade query, Right-Click on the solution in the Solution Explorer and choose “Upgrade VC++ Compiler and Libraries” to manually perform the upgrade. There is nothing more to do after that.
NOTE: if you upgrade your VS Compiler after working on RAFX plug-ins, you may get an error message saying “MiniSynth.pdb is invalid” — all you need to do is go to your project folder and delete the old .pdb (program data-base) file. This is not RAFX specific; it is a VS compiler quirk.
Download: RackAFX Synth Projects
VST3 Projects SDK3.6.6
You must download the VST3 SDK from Steinberg here: http://www.steinberg.net/en/company/developers.html and you may need to create a developer account (free) if you don’t have one already. Be sure to follow the directions in the Synth Book Chapter 2 for locating your projects in the proper folder hierarchy. Unlike the RackAFX and AU projects, the VST3 projects must be located in the proper layer in the hierarchy so follow the book instructions correctly. The project set also contains a Template Synth Plug-In project; follow the instructions in the Synth Book Appendix for converting this into a new VST3 project if you would like to start your Synth projects “from scratch.”
Latest Upload: August 23, 2016: this version requires the VST SDK 3.6.6 released June, 2016. The 3.6.6 version of the SDK broke the old 3.6.0 and 3.6.5 code in multiple ways (this includes Steinberg’s own SDK sample code as well as my synth projects). I have updated the projects to eliminate the issues caused by the 3.6.6 SDK release. In addition:
– I added the VST2 Wrapper code and files to all synth projects so you can test in VST2 hosts. Be aware that there are known issues with the VST2 Wrapper (e.g. no sidechaining) though I have not had issues with the wrapper in Reaper or Cubase
– all Synth projects pass the VST Validator software 100%
– the 32 and 64 bit output file destinations have all been pre-configured in the same manner (e.g. 32 bit release versions are in the …/Win32/Release folder, 64 bit debug version are in the …/x64/Debug folder, etc…) so there is nothing for you to do other than select the configuration from the dropdown box in Visual Studio and compile, then find the resulting .vst3 file and place in your appropriate VST3 plugins folder. Of course you may always modify the VS project settings to write this file to whatever folder you wish, but since I do not know your setup, I am leaving the plugins in their normal destination folders.
– all versions have been tested in 32 and 64 bit modes and verified in Reaper 5.24Pre1
– some code has been eliminated or streamlined
– some code that was originally located in the setActive( ) method has been relocated to the Constructor/Destructor; not only does this make the code more parallel to the RackAFX and AU counterparts, it also works much better (and faster) with VST3 hosts that call setActive( ) numerous times while loading your plugin (e.g. Reaper)
In the 3.6.6 SDK Steinberg has: eliminated direct support for Visual Studio 2008 and removed the .sln files for VS2008. In addition they changed the naming paradigm for the various VS versions (2010, 2012, 2013, 2015).
Make sure that you: open and read the file named “HowToCompile_VS.txt” which is in each folder for the various projects. This will instruct you on which .sln file to use when opening with VS2010, 2012, 2013 or 2015. You may need to go through an “upgrade project” process which is unavoidable because the appropriate settings are not provided for the SDK’s base class files.
Download: VST3 Synth Projects
Audio Unit (AU) Projects
As with RackAFX, the AU projects are fully self contained and may be located anywhere in your directory hierarchy. The .component plug-in is automatically copied to the Library folder so you do not need to copy/relocate anything. Make sure you validate any new plug-in using auval prior to testing; the instructions are in the Appendix of the Synth Book. The project set also contains a Template Synth Plug-In project; follow the instructions in the Synth Book Appendix for converting this into a new AU project.
These projects have all been tested on MacOSX 10.9 with XCode 5.1.1 in both 32 and 64 bit configurations and were tested with Logic Pro 9 and Logic Pro X and Ableton Live 9.
NOTE: remember to change the Base SDK to your current version if you are not on OSX 10.9. Change this in the Build settings for the project.
Download: AU Synth Projects