Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Cover
Half Title
Title Page
Copyright Page
Table of Contents
Preface
Acknowledgments
Chapter 1. Modular Synthesis: Theory
1.1. Why Modular Synthesis?
1.2. An Historical Perspective
1.2.1. The Early Electronic and Electroacoustic Music Studios
1.2.2. The Birth and Evolution of Modular Synthesizers
1.2.3. The Advent of a Standard
1.2.4. The Software Shift
1.3. Modular Synthesis Basics
1.3.1. Sound Sources
1.3.2. Timbre Modification and Spectral Processing
1.3.3. Envelope, Dynamics, Articulation
1.3.4. “Fire at Will,” or in Short: Sequencers
1.3.5. Utility Modules
Chapter 2. Elements of Signal Processing for Synthesis
2.1. Continuous-Time Signals
2.2. Discrete-Time Signals
2.3. Discrete-Time Systems
2.4. The Frequency Domain
2.4.1. Discrete Fourier Series
2.4.2. Discrete Fourier Transform
2.4.3. Properties of the Discrete Fourier Transform
2.4.4. Again on LTI Systems: The Frequency Response
2.4.5. Computational Complexity and the Fast Fourier Transform
2.4.6. Short-Time Fourier Transform
2.5. Once Again on LTI Systems: Filters
2.6. Special LTI Systems: Discrete-Time Differentiator and Integrator
2.7. Analog to Digital and Back
2.8. Spectral Content of Typical Oscillator Waveforms
2.9. Understanding Aliasing
2.10. Filters: The Practical Side
2.11. Nonlinear Processing
2.11.1. Waveshaping
2.11.2. Amplitude and Ring Modulation
2.11.3. Frequency Modulation
2.12. Random Signals
2.13. Numerical Issues and Hints on Coding
2.14. Concluding Remarks
Chapter 3. VCV Rack Basics
3.1. Overview of the System
3.2. Anatomy of a Module
3.3. Context Menus
3.4. Core Modules
3.4.1. AUDIO-8 and AUDIO-16
3.4.2. MIDI-CV
3.4.3. MIDI-CC
3.4.4. MIDI-GATE
3.4.5. MIDI-MAP
3.4.6. CV-MIDI, CV-CC, CV-GATE
3.5. Fundamental Modules
3.6. Quick Patches
3.6.1. Audio and MIDI Routing
3.6.2. East Coast Synthesis in One Minute
3.6.3. Using the SCOPE
3.6.4. Observing Aliasing
3.6.5. Using Polyphonic Cables
Chapter 4. Developing with VCV Rack
4.1. Comparison with Other Platforms
4.1.1. Audio Processing
4.1.2. Scheduling
4.1.3. Polyphonic Cables
4.1.4. Expander Modules
4.1.5. Simplicity and Object-Oriented Programming
4.2. Plugins: Files and Directories
4.3. Plugins: Software Components
4.4. Setting Up Your System for Coding
4.4.1. Linux
4.4.2. Windows
4.4.3. macOS
4.4.4. Building VCV Rack from Sources
4.5. Building Your First “Hello World” Module
4.5.1. Build and Run
4.5.2. Structure of the Source Files
4.6. Adopting an IDE for Development: Eclipse
4.6.1. Importing a “Makefile Project”
4.6.2. Building the Project Inside Eclipse
Chapter 5. The Graphical User Interface: A Quick Introduction
5.1. Generating SVG Files with Inkscape
5.1.1. Creating the Panel and the Background
5.1.2. Creating the Panel and the Background
5.2. Base Widget Objects for Knobs, Ports and Switches
5.2.1. Automatically Placing Components
Chapter 6. Let’s Start Programming: The Easy Ones
6.1. Creating a New Plugin from Scratch, Using the Helper Script
6.2. Comparator Module
6.3. Muxing and Demuxing
6.4. Knobs: Displaying, Mapping, and Computing Their Values
6.5. Clock Generator
6.6. Sequencer Module
6.7. Binary Frequency Divider
6.8. Random Module
6.9. To Recap: Exercise Patches
6.9.1. Creating a Bernoulli Distribution and Bernoulli Gate
6.9.2. Polyrhythms
Chapter 7. Getting Serious DSP: “Classroom” Modules
7.1. Handling Polyphony Properly
7.2. Linear Envelope Generator
7.3. Exponential Envelope Generator
7.3.1. A Virtual Analog RC Filter
7.3.2. Implementation of the Exponential Envelope Generator
7.4. Envelope Follower
7.4.1. Modelling a Diode Envelope Follower
7.4.2. Implementation of the Envelope Follower
7.5. Multimode State-Variable Filter
7.5.1. A Discrete-Time Model of the Multimode State-Variable Filter
7.5.2. Implementation of the State-Variable Filter
7.6. Polyphonic Filter
7.6.1. To Recap: Exercise with Patches
7.6.1.1. Simple Snare Sound Generation
7.6.1.2. Auto-Wah Effect
7.6.1.3. Creating a Step Filter
7.6.1.4. The Chemist’s Lab, Aka Polyphonic Noise Filters
Chapter 8. Crunching Numbers: Advanced DSP Modules
8.1. Modal Synthesis
8.1.1. Modal Synthesis Principles
8.1.2. A State-Variable Filter Bank
8.1.3. The “Modal” Module
8.1.4. Adding Context Menu Options
8.1.5. Computational Cost
8.2. Virtual Analog Oscillator with Limited Aliasing
8.2.1. Trivial Oscillators
8.2.2. Oversampling: The Easy Solution
8.2.3. Implementing a Trivial Oscillator with Oversampling
8.2.4. Differentiated Parabolic Waveform and Its Extensions
8.2.5. Differentiated Parabolic Waveform Implementation
8.2.6. Computational Cost and Aliasing
8.2.7. Polyphonic Oscillator Module
8.3. Wavefolding
8.3.1. Trivial Foldback Algorithm
8.3.2. Antiderivative Anti-Aliasing Method
8.3.3. Wavefolder Module Implementation
8.4. To Recap: Exercise with Patches
8.4.1. A Modal Synthesis Patch
8.4.2. East Coast Classic
8.4.3. West Coast Mono Voice
8.4.4. Juntti Waveshaper
Chapter 9. The Graphical User Interface: Creating Custom Widgets
9.1. The Rendering Library: NanoVG
9.2. Custom Widgets Creation
9.2.1. Custom Knobs and Buttons
9.2.2. Drawing Text
9.3. An Interactive Widget
Chapter 10. Additional Topics
10.1. Debugging the Code
10.1.1. Running a Debug Session
10.1.2. Debugging a Segmentation Fault
10.1.3. Development Mode
10.1.4. Debugging with the Eclipse IDE
10.1.5. Other Debugging Methods
10.2. Optimization
10.2.1. Table Lookup for Transcendental Functions
10.2.2. Sine Approximation by Table Lookup
10.2.3. Quadratic Approximation of Sine
10.2.4. The Chamberlin Resonator as a Sine Oscillator
10.2.5. Reducing the GUI Processing Burden
10.3. Developing Expander Modules
10.4. Adding Factory Presets
10.5. Storing and Recalling Module Information through JSON
10.5.1. Storing and Recalling JSON Data for AModalGUI
10.6. Versioning the Code and Managing a Git Repository
10.7. Getting into the Third-Party Plugin List
10.8. Making a Revenue out of Coding
10.8.1. The VCV Store
10.8.2. Donations
10.8.3. Blank Panels
Chapter 11. After Reading This Book
11.1. Forking the ABC Collection
11.2. Learn More about Virtual Analog Algorithms
11.3. Experiment with Novel Digital Algorithms
11.4. Build a Hybrid Hardware/Software Modular Rack
Bibliography
Index
← Prev
Back
Next →
← Prev
Back
Next →