Modern Real-Time Audio Programming, Summer 2023
Topic outline
-
Course Description
The course will cover an introduction to modern real-time audio application development using standard industry tools.
The activities will include the development of VST3 (Windows/MacOS) and AudioUnit (MacOS) plugins using the JUCE framework, implementation of audio DSP algorithms in C++ programming language, and also some graphical user interface embellishments.
During the course, attendees will develop their own audio plugin, which can be either their original ideas or from a list provided by the instructors. At the end of the course, the projects will be demoed to Neural DSP and Aalto Acoustics Lab staff for feedback.
The course will mainly use the C++ programming language, and although some experience is desirable, working knowledge of any programming language should be sufficient to follow up with the course content and activities. Basic digital signal processing background is strongly recommended.
Attendees should bring headphones and a laptop for working on tutorial projects and ideally some audio hardware for more interesting experimenting, like musical instruments, audio interface, and MIDI controllers.
The course is targeted at audio DSP students and researchers, although digital audio enthusiasts and hobbyists are welcome.
A certificate of completion can be requested from the course staff for 1 ECTS credit.
Lecturer: Joao Rossi Filho, has over 10 years of experience in DSP development across embedded and desktop applications, currently working as Plugin DSP Team Lead at Neural DSP.
Course assistant: Jon Fagerström jon.fagerstrom@aalto.fi
Advisors: Vesa.valimaki@aalto.fi Athanasios Gotsopoulos, Henri Penttinen, Craig Rollo
Location:- Lectures (Tue - Thu): E208b Karjalainen, 2nd floor, Otakaari 5E, Espoo, Finland
- Project work rooms (Tue - Thu): D209a Mermaid, D209b Morso, D209c Centaur, Otakaari 5E, Espoo, Finland (These are next to the lecture room)
- Demo Day (Fri Afternoon): Otakaari 1, U141 U3, Otakaari 1, Espoo, Finland
Time and Date
Tuesday August 29th, 2023 to Friday 1st September, 2023
9:00 to 12:00 - morning session
14:00 to 17:00 - afternoon session
15 min break every hour
Coffee break - offered by Neural DSP
Enrollment closes on 1.6.2023
Maximum attendance of 20
Prerequisites
The course will make extensive use of the C++ programming language. Although some experience with C++ is desirable, it is not a hard requirement. Working knowledge of any programming language should be sufficient to follow up with the course content and activities. Basic digital signal processing background is required.
Neural DSP will provide tutorial code and libraries to allow a smooth jump to development during the course. This way students can focus on implementing the main concepts.
Windows/Mac laptop
A reasonably modern laptop (~5 years old) should be more than sufficient
Linux is technically supported but the environment setup can be challenging
Integrated Development Environment, installed before the course starts
Xcode for macOS
Microsoft Visual Studio for Windows
Basic development tools
Git
Shell terminal
Optional: Audio interface, instrument, and headphones
Neural DSP might be able to provide a few depending on attendance
Optional: Digital Audio Workstation installation
Logic Pro X; Ableton Live; Reaper; etc…
Tutorial projects - provided by Neural DSP
Objectives
The main goal of the mini-course is to encourage students and researchers to use real-time programming for audio DSP research and product development.
This will be achieved by introducing them to some of the industry standard tools in a pragmatic fashion. Using C++ for writing efficient DSP algorithms and leveraging the JUCE framework for practical graphical user interface (GUI) audio application development.