/IAP-2019-2020

The code projects for IAP 2019-2020

Primary LanguageC++GNU Lesser General Public License v3.0LGPL-3.0

IAP Learning Materials

IAP (Introductory Audio Programming) is a programming course designed to teach you the basics of computer programming, using the C++ language to build a range of musical applications.

Getting started

Read the following guide to get started. Video guides are also included.

Tutorials

Part I

  1. Familiarisation
  2. Variables and Program Input/Output
  3. Processing MIDI input
  4. Flow Control
  5. Functions I
  6. Functions II
  7. Switch Case and Combinational if Statements
  8. Flow Control: Loops

Part II

  1. Classes
  2. Arrays
  3. Vectors
  4. Algorithms and Program Design
  5. Constants and std Algorithms
  6. Files & String manipulation
  7. Bitwise Manipulation
  8. Some more C++

Unit Test assessments

Certain exercises in the tutorials are important milestones along your journey learning C++ and will be assessed. Aserve can automatically test your iapProj programs for certain tutorial exercises to see if your solution responds in the expected way. Check the following link for more info.

Unit test assessments

Reference

C++ Quick Reference Guide

Applications

Aserve 2.0

is a light weight audio client that contains a number of basic audio generating functions as well as provide MIDI input/output.

Codebook

Codebook is a application for storing the solutions to each exercise.

iapProj code

You will write all of your code for tutorials in a project called iapProj. This is a pre-configured xcode/visual studio project which includes all the files needed (including JUCE 5) to control and co-operate with Aserve. See the iapProj/Builds folder for MacOS Xcode and Windows Visual Studio compatible project files.

Compatability

The project has been tested on the following platforms.

Mac OS

10.13, 10.14, 10.15 (pending). Note that 10.16 is not supported officially

Xcode

9+

Windows

10

Visual studio

2017, 2019

Pyhton

A python front ent for the project can be found here:

IAP-Python

note this is an experimental feature and is not complete!