Externally indexed torrent
If you are the original uploader, contact staff to have it moved to your account
Textbook in PDF format
Learn the fundamentals of audio programming by building a fully-featured software synthesizer plug-in, with every step explained along the way. The plug-in can be used in all the popular DAWs and is made using the industry standard tools for audio development: JUCE framework and the C programming language. Not too much math, lots of explanations!
Audio programming is a lot of fun, but it has always been hard to get into. Most of the existing teaching materials aren't written for the audio programming enthusiast and generally don't cover the topic of plug-ins, also known as VSTs. Until now!
Code Your Own Synth Plug-Ins With C and JUCE provides a clear introduction to the world of audio programming, using a real software synthesizer as the example project. This book is for programmers of all experience levels who want to learn how audio plug-ins work under the hood, and how these synths can magically create sound out of nothing.
Why this book? Some time ago I came across the source code for a virtual analog synthesizer plug-in called MDA JX10. I wanted to understand how this synth worked and so I started going through the code to clean it up and add comments. While doing this, I realized that this synth would make an excellent topic for a book — it has a little bit of everything one needs to know to get started with audio development and digital signal processing, tied neatly together into a working plug-in.
Most plug-ins these days are written using the popular JUCE audio programming framework. There aren't many books available about JUCE — or even about how to make synthesizers — and so I decided I might as well write one, explaining how to code a modernized version of the MDA JX10 synth from scratch.
This book takes you on a journey of building a software synthesizer step-by-step, starting from the very basics and ending up with a full-featured VST or Audio Unit plug-in that can be used in any of the popular DAWs such as Logic Pro, REAPER, FL Studio, Cubase, Bitwig Studio, and others.
Topics covered in the book
Synthesizer design: What synthesizers are and the different building blocks they are made from.
How and why to use JUCE for making audio plug-ins.
All about handling MIDI.
What digital audio is, and the basics of digital signal processing (DSP).
Oscillators, from a simple sine wave to a bandlimited sawtooth, and how to combine oscillators into a square wave with pulse width modulation (PWM).
Using an analog-style ADSR envelope to shape the sound over time.
Polyphony and voice stealing, legato-style playing, handling the sustain pedal, and other voice management topics.
Filters and how to use them to make your synth sound awesome.
Modulation using velocity, LFO, filter envelope, and MIDI CC such as the modulation wheel.
Parameter smoothing and other ways to avoid audio glitches.
How to communicate between the audio thread and the UI thread, the proper way.
Building a good-looking user interface for the plug-in.
And lots more: factory presets, glide, avoiding aliasing, adding a MIDI learn function, and so on...
Chapter 1: What is a synth, exactly?
Chapter 2: Getting started with JUCE
Chapter 3: MIDI in, sound out
Chapter 4: Handling MIDI events in JUCE
Chapter 5: Introduction to oscillators
Chapter 6: The sawtooth oscillator
Chapter 7: Plug-in parameters
Chapter 8: The ADSR envelope
Chapter 9: Combining oscillators
Chapter 10: Polyphony & voice management
Chapter 11: Modulation
Chapter 12: The filter
Chapter 13: User interface
Chapter 14: Where to go from here