Programming For Musicians:
C++ For Musicians
Course Syllabus

Chapter 1

Setup

  • Chapter 1 Part 1 (7:10)
  • Chapter 1 Part 2 – Mac (6:24)
  • Chapter 1 Part 2 – Windows (2:27)
  • Chapter 1 Part 3 – Mac (8:59)
  • Chapter 1 Part 3 – Windows (11:26)
  • Chapter 1 Part 4 (2:45)
  • Chapter 1 Part 5 – Sourcetree Windows Setup (2:56)

Chapter 2

C++ Pt. 1: The Basics (12 parts)

  • Chapter 2 Part 1 – C++ Nouns and Verbs (10:23)
  • Chapter 2 Part 2 – Plugin development (2:25)
  • Chapter 2 Part 3 – C++ Declarations (16:27)
  • Chapter 2 Part 4 – First noise! (6:15) (preview: https://www.youtube.com/watch?v=VEJQD-z95Y4)
  • Chapter 2 Part 5 – C++ Defining User Objects (15:06)
  • Chapter 2 Part 6 – C++ Implementation (18:43)
  • *Chapter 2 Part 7 – C++ Returning Values (14:54) 
  • Chapter 2 Part 8 – C++ Constructors (10:13)
  • Chapter 2 Part 9 – C++ Member Initialization (4:32)
  • Chapter 2 Part 10 – C++ Variable Lifetime and Scope (18:19)
  • Chapter 2 Part 11 – Applying Our Scope Knowledge (1:36)
  • Chapter 2 Part 12 – C++ Destructors (16:56)
* PFM::C++ Days 1-7 includes everything in Chapter 1, and Chapter 2 Part 1-7

Chapter 3

C++ Part 2: The Intermediate Stuff (7 parts)

  • Chapter 3 Part 1 – C++ the ‘this’ keyword (12:32)
  • Chapter 3 Part 2 – C++ Pointers (28:06)
  • Chapter 3 Part 3 – C++ References (21:16)
  • Chapter 3 Part 4 – C++ the ‘new’ keyword (14:17)
  • Chapter 3 Part 5 – Plugin development (8:36)
  • Chapter 3 Part 6 – C++ ‘this’/pointers/references/’new’ conclusion (22:25)
  • Chapter 3 Part 7 – C++ Don’t #include what you don’t use (22:37)

Chapter 4

C++ Part 3: The Advanced Stuff (7 Parts)

  • Chapter 4 Part 1 – Audio Parameters (17:12) (preview: https://www.youtube.com/watch?v=CG5KVZJeDWI)
  • Chapter 4 Part 2 – C++ Inheritance and Composition (31:46)
  • Chapter 4 Part 3 – C++ Casting (23:18)
  • Chapter 4 Part 4 – Plugin Development (17:10)
  • Chapter 4 Part 5 – Plugin Development (continued) (7:12)
  • Chapter 4 Part 6 – C++ Public Vs. Private Vs. Protected (32:15)
  • Chapter 4 Part 7 – C++ Function/Constructor overloading (17:40)

Chapter 5

C++ Part 4: The Pro stuff (8 Parts)

  • Chapter 5 Part 1 – Intro (2:28)
  • Chapter 5 Part 2 – C++ Operator overloading (21:21)
  • Chapter 5 Part 3 – C++ Lambdas (56:32)
  • Chapter 5 Part 4 – C++ Templates and Containers (1:08:56)
  • Chapter 5 Part 5 – C++ Wrapper Classes (38:48)
  • Chapter 5 Part 6 – C++ RValues/LValues/Move Semantics (34:32)
  • Chapter 5 Part 7 – C++ Perfect Forwarding (28:48)
  • Chapter 5 Part 8 – C++ Rule of 3/5/0 and Single Responsibility (38:26)

Chapter 6

Common JUCE Patterns (7 Parts)

  • Chapter 6 Part 1 – Intro (2:26)
  • Chapter 6 Part 2 – Component Pattern (7:48)
  • Chapter 6 Part 3 – OwnedArray Pattern (8:49)
  • Chapter 6 Part 4 – Button Pattern #1 (6:11)
  • Chapter 6 Part 5 – Button Pattern #2 (6:01)
  • Chapter 6 Part 6 – Timer Pattern (11:08)
  • Chapter 6 Part 7 – AsyncUpdater pattern (9:28)

Chapter 7

Threads (7 Parts)

  • Chapter 7 Part 1 – Introduction to Threads (36:37)
  • Chapter 7 Part 2 – Data Races (12:22)
  • Chapter 7 Part 3 – Thread Sanitizer (35:38)
  • Chapter 7 Part 4 – Spectrum Analyzer Pt. 1 (50:27)
  • Chapter 7 Part 5 – FIFO Pattern (10:36)
  • Chapter 7 Part 6 – Spectrum Analyzer Pt. 2 (1:04:07)
  • Chapter 7 Part 7 – C++ A discussion about temporaries and proxy objects (34:18)

Bonus Content

Bonus Content

  • Git: Interactive Rebase (14:30) (preview: https://youtu.be/HUSOxuDrgMc)
  • Unit Tests & Validators (40:00)
  • Git SubModules & JUCE Modules (41:32)

Other courses and products

Free products