Developing Virtual Synthesizers with VCV Rack
Developing Virtual Synthesizers with VCV Rack takes the reader step by step through the process of developing synthesizer modules, beginning with the elementary and leading up to more engaging examples. Using the intuitive VCV Rack and its open-source C++ API, this book will guide even the most inexperienced reader to master efficient DSP coding to create oscillators, filters, and complex modules.
Examining practical topics related to releasing plugins and managing complex graphical user interaction, with an intuitive study of signal processing theory specifically tailored for sound synthesis and virtual analog, this book covers everything from theory to practice. With exercises and example patches in each chapter, the reader will build a library of synthesizer modules that they can modify and expand.
Supplemented by a companion website, this book is recommended reading for undergraduate and postgraduate students of audio engineering, music technology, computer science, electronics, and related courses; audio coding and do-it-yourself enthusiasts; and professionals looking for a quick guide to VCV Rack. VCV Rack is a free and open-source software available online.
Leonardo Gabrielli, PhD, is a research fellow at the Department of Information Engineering, Universit Politecnica delle Marche, Italy, where he lectures on music production and conducts research on physical modeling and deep neural audio processing. He collaborates with the music industry as a DSP developer and he is scientific director of Acusmatiq MATME.
Developing Virtual Synthesizers with VCV Rack is a great read; an informative read; an inspiring read; an empowering read; an essential read! This fantastic textbook and comprehensive set of applied audio coding tutorials by Gabrielli will become the basis of many college courses and foundational courses of study for every electronic musician interested in knowing how things work under the hood. With that knowledge and understanding, they can code their own software synthesizers and DSP modules in VCV Virtual Eurorack format.
Dr. Richard Boulanger, Professor of Electronic Production and Design, Berklee College of Music
If, like me, you enjoy creating your own music tools, this book will help you bring your ideas to life inside the wonderful world of VCV Rack. Whether you are a beginner or an expert in DSP, you will learn something interesting or new.
Dr. Leonardo Laguna Ruiz, Vult DSP
First published 2020
by Routledge
52 Vanderbilt Avenue, New York, NY 10017
and by Routledge
2 Park Square, Milton Park, Abingdon, Oxon, OX14 4RN
Routledge is an imprint of the Taylor & Francis Group, an informa business
2020 Taylor & Francis
The right of Leonardo Gabrielli to be identified as author of this work has been asserted by him in accordance with sections 77 and 78 of the Copyright, Designs and Patents Act 1988.
All rights reserved. No part of this book may be reprinted or reproduced or utilized in any form or by any electronic, mechanical, or other means, now known or hereafter invented, including photocopying and recording, or in any information storage or retrieval system, without permission in writing from the publishers.
Trademark notice: Product or corporate names may be trademarks or registered trademarks, and are used only for identification and explanation without intent to infringe.
Library of Congress Cataloging-in-Publication Data
Names: Gabrielli, Leonardo, author.
Title: Developing virtual synthesizers with VCV Rack / Leonardo Gabrielli.
Description: New York, NY : Routledge, 2020. | Includes bibliographical references and index.
Identifiers: LCCN 2019039167 (print) | LCCN 2019039168 (ebook) | ISBN 9780367077730 (paperback) | ISBN 9780367077747 (hardback) | ISBN 9780429022760 (ebook) | ISBN 9780429663321 (epub) | ISBN 9780429660603 (mobi) | ISBN 9780429666049 (adobe pdf)
Subjects: LCSH: VCV Rack. | Software synthesizers. | Computer sound processing. | Sound studiosEquipment and supplies.
Classification: LCC ML74.4.V35 G325 2020 (print) | LCC ML74.4.V35 (ebook) | DDC 786.7/4134dc23
LC record available at https://lccn.loc.gov/2019039167
LC ebook record available at https://lccn.loc.gov/2019039168
ISBN: 978-0-367-07774-7 (hbk)
ISBN: 978-0-367-07773-0 (pbk)
ISBN: 978-0-429-02276-0 (ebk)
Visit the companion website: www.leonardo-gabrielli.info/vcv-book Lightbulb icon by Pettycon from Pixabay
In September 2017, a new open-source software project was released in the wild of the Internet, starting from a few hundred lines of source code written by a talented developer. A couple of months later, thousands of passionate musicians and developers were eagerly following its quick growth. With a user base of tens of thousands, VCV Rack is now one of the trendiest platforms for modular software synthesis, and it is particularly appealing for its open-source codebase and ease of use.
In October 2017, I was more than happily having fun out in the sun during the weekends, trying to soak up the last sun of the trailing summer. My teaching and R&D activities were already quite engaging and kept me more than busy. However, after a glimpse at its source code, I was instantly aware of the potential of this platform: VCV Rack was the first platform ever that would really allow coders, even self-taught ones, to build sounding objects at ease. The modern and swift way of programming a plugin allows almost anyone with some coding background to create their own modules. The sample-wise processing architecture allows students to focus on signal processing experiments rather than spending time debugging cumbersome buffering mechanisms or learning complex application programming interfaces (APIs). As a teaching tool, it allows students to learn real-world coding instead of plugging graphical blocks or writing scripts in scientific computing platforms. As a prototyping tool, it also allows developers to test DSP code quickly before adapting it to their own framework and delivering it.
I was really tempted to help spread the use of this platform and write a teaching resource for students and enthusiasts. Encouraged by good friends and synthesizer experts, I got into this adventure that eventually demanded quite a lot of my time. I hope this resource will prove useful for beginners and students, allowing them a quick bootstrap into the world of virtual synthesizers, sound synthesis, and digital signal processing (DSP), and I really believe that Rack has the potential to serve as a great didactical tool in sound and music engineering teaching programmes.
Finally, I humbly apologize for mistakes or shortcomings that may still be present in the book. The preparation of this manuscript required a lot of effort to track the swift software changes occurring in the beta versions, before Rack v1 would freeze, and to release a timely resource in this liquid world required me to go straight to the point and prepare a compact book that could serve as a primer, an appetizer, or a quick guide, depending on the readers needs. Arranging the contents was not an easy task either. Writing the theoretical section required a lot of trade-offs to adapt to heterogeneous readers. I hope that my take on DSP and the selection of modules will make most of the readers happy.
Objectives
This book is meant as a guide to get people with some object-oriented programming basics into the development of synthesizers. Some DSP theory is covered, specifically tailored for sound synthesis and virtual analog, sufficiently intuitive and suitable for readers not coming from a technical background (some high school math is required, though). There are many books covering sound synthesis and DSP for audio, with examples using scientific programming languages, quick to use, but far from a real-world implementation. Two books published by Focal Press provide a thorough guide for the development of audio effects and synthesizer plugins in C++. I regard my book as the perfect starting point. It covers the foundations of digital musical instruments development and prototyping, gets the reader involved with sound synthesis, and provides some theory in an intuitive way. It is also an important resource to quickly learn how to build plugins with VCV Rack and get into its specificities. After this, one could move to more complex platforms such as the VST/AU software development kits (SDKs) or get involved with more theoretical studies. The book is also an important resource to quickly learn how to build plugins with VCV Rack and get into its specificities.