Översikt

  • Allmänt

    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 PenttinenCraig 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

    • Enrolment thru Webropol

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