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 v126.96.36.199. You can get the latest version from the Downloads Page. 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 2012, 2013 and 2015. You do not need the professional versions; the Express versions work just as well.
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.7
You must download the VST3 SDK from Steinberg here:Â http://www.steinberg.net/en/company/developers.html. 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: March 10, 2017: this version requires the VST SDK 3.6.7 released March, 2017. The 3.6.7 version of the SDK requires that you first “prepare” it for use. This is because the developers deleted some necessary files that you must create. This requires a utility software package named CMake. Many beginning programmers are not familiar with this package. However, I’ve come up with a much easier method for the Synth Book projects (and for RackAFX users who need the Make VST function). The details for preparing your VST3 SDK can be found on the Preparing the VST3 SDK 3.6.7 page. You must prepare the SDK prior to building the synth book projects.
Download: VST3 Synth Projects SDK3.6.7
VST3Â Projects SDK3.6.6
The old 3.6.6 project files are here in case you want to stay with the 3.6.6 SDK.
Download: VST3 Synth Projects 3.6.6
For either SDK, make sure that you:
Open and read the file named “HowToCompile_VS.txt” which is in each folder for the various projects. The 3.6.7 SDK will only work with Visual Studio 2013 and Visual Studio 2015. The 3.6.6 SDK will work with Visual Studio 2010, 2012, 2013 and 2015.
Additions to the VST3 Synth Projects since the book was published
– 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.27
– 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)
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