Systeemontwerp voor Geluid en Muziek

Project bouwen

Make (algemeen)
CMake
Compileren en linken
Compileren en linken van C++ files
Header en implementatie
Makefile example
Recursive Make Considered Harmful (PDF)
Runtime vs. Compile time
C++ preprocessor
Voorbeeld-ontwerp: guitarfx

Taalspecifieke C++ onderwerpen

Flow control
Arrays
Functies
Pointers
Namespaces
Exception handling
Templates

Object Oriented Design

Classes en objecten
Synchronisation
Inheritance
Polymorfisme

Special topics

Standard Template Library (STL)
Threads (C++ 11 and up)
TCP sockets
C++ wrapper for OSC --- needs liblo

Boeken en bronnen

Design Patterns (Erich Gamma, John Vlissides) The Audio Programming Book (Richard Boulanger, Victor Lazzarini) Elements of Computer Music (Richard Moore)
Introduction to computer music (Nick Collins) Designing Audio Effects and plug-ins in C++ (Will Pirkle) Head First Design Patterns
Fundamentals of Music Processing - Meinard Müller

Videos



Oefeningen en opdrachten

Instrument class (PDF)
Instrument inheritance (PDF)

Voorbeelden

Voorbeelden van onder andere pointers, communication, inheritance, polymorfisme, advanced_C/C++, new features in C++ 11/14/47, C++ wrapper for portaudio (Github)