Topic outline

  • General

    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 required.

    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.

    Course is 3 ECTS credits.

    Responsible teacher: Lauri Savioja lauri.savioja@aalto.fi

    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:  

    Location: 
    • Contact Teaching (Mon, Wed, Fri): E208b Karjalainen, 2nd floor,  Otakaari 5E, Espoo, Finland
    • Demo Day (Fri 13.9. at 13:00 ):  E208b Karjalainen, 2nd floor,  Otakaari 5E, Espoo, Finland

    Time and Date

    • Monday August 19th, 2024 to Friday 13th September, 2024

    • Contact teaching on Mondays, Wednesdays, and Fridays (August 19th-30th)
      • 9:00 to 12:00 - morning session

      • 13:00 to 16:00 - afternoon session

    • Independent project work (September 2nd- 13th)
    • Demo day September 13th at 13:00
    • Enrollment through SISU

      • Opens on 27.5.2024 in 

      • Closes on 9.8.2024

      • Maximum attendance of 20 students


    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. Knowledge of any programming language should be sufficient to follow up with the course content and activities. A basic digital signal processing background is required.

    We 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 intensive course is to encourage students and researchers to use real-time programming for audio DSP research and product development.

    This will be achieved by pragmatically introducing them to some industry standard tools. Using C++ to write efficient DSP algorithms and leverage the JUCE framework for practical graphical user interface (GUI) audio application development.