ABSTRACT

Build AI-Enhanced Audio Plugins with C++ explains how to embed artificial intelligence technology inside tools that can be used by audio and music professionals, through worked examples using Python, C++ and audio APIs which demonstrate how to combine technologies to produce professional, AI-enhanced creative tools.

Alongside a freely accessible source code repository created by the author that accompanies the book for readers to reference, each chapter is supported by complete example applications and projects, including an autonomous music improviser, a neural network-based synthesizer meta-programmer and a neural audio effects processor. Detailed instructions on how to build each example are also provided, including source code extracts, diagrams and background theory.

This is an essential guide for software developers and programmers of all levels looking to integrate AI into their systems, as well as educators and students of audio programming, machine learning and software development.

part I|79 pages

Getting started

chapter 1|9 pages

Introduction to the book

chapter 2|12 pages

Setting up your development environment

chapter 3|9 pages

Installing JUCE

chapter 4|12 pages

Installing and using CMake

chapter 5|9 pages

Set up libtorch

chapter 6|7 pages

Python setup instructions

chapter 8|10 pages

Basic plugin development

chapter 9|8 pages

FM synthesizer plugin

part II|77 pages

ML-powered plugin control: the meta-controller

chapter 10|6 pages

Using regression for synthesizer control

chapter 11|11 pages

Experiment with regression and libtorch

chapter 12|5 pages

The meta-controller

chapter 13|4 pages

Linear interpolating superknob

chapter 14|12 pages

Untrained torchknob

chapter 15|10 pages

Training the torchknob

chapter 16|6 pages

Plugin meta-controller

chapter 18|8 pages

Show a plugin's user interface

chapter 19|6 pages

From plugin host to meta-controller

part III|52 pages

The autonomous music improviser

chapter 20|11 pages

Background: all about sequencers

chapter 21|5 pages

Programming with Markov models

chapter 22|13 pages

Starting the Improviser plugin

chapter 23|7 pages

Modelling note onset times

chapter 24|6 pages

Modelling note duration

chapter 25|9 pages

Polyphonic Markov model

part IV|126 pages

Neural audio effects

chapter 26|4 pages

Welcome to neural effects

chapter 28|11 pages

Convolution

chapter 29|10 pages

Infinite Impulse Response filters

chapter 30|13 pages

Waveshapers

chapter 32|13 pages

Neural FX: LSTM network

chapter 33|13 pages

JUCE LSTM plugin

chapter 34|9 pages

Training the amp emulator: dataset

chapter 35|13 pages

Data shapes, LSTM models and loss functions

chapter 36|6 pages

The LSTM training loop

chapter 37|5 pages

Operationalising the model in a plugin

chapter 38|8 pages

Faster LSTM using RTNeural

chapter 39|7 pages

Guide to the projects in the repository