MusicKit Tutorials

David A. Jaffe

Edited by

Hans-Christoph Steiner

Leigh M. Smith


Table of Contents
Editors Preface
1. Class 1 ― Object Oriented Programming in Objective-C
Objective-C
Encapsulation (motivation)
Messaging (motivation)
Basic Objective-C Terminology
Inheritance
Various Details
Example ― Using Objective-C Classes
Example ― Defining An Objective-C Class
OpenStep Software Kits
Interface Builder
Assignments - Week 1
2. Class 2 ― MusicKit Representation Classes
Review: Classes in the MusicKit
MusicKit Representation Classes
The MKNote Class
MKNote Parameters
MKEnvelope Class
MKWaveTable Class
Example (review)
Assignment - Week 2
3. Class 3 ― Performance Classes
Review: Classes in the MusicKit
MusicKit Performance Classes
The MKConductor Class
MKConductor Class Settings
The MKInstrument Class
The MKPerformer Class
Connecting MKPerformers to MKInstruments
The MKNoteFilter Class
The MKMidi Class
Summary of Performance Classes
Assignment - Week 3
4. Class 4 ― DSP Synthesis Classes
Review: Classes in the MusicKit
MusicKit Synthesis Classes
A Simple Common Example
The MKOrchestra Class
MKOrchestra Settings
The MKSynthInstrument Class
Intro to MKUnitGenerators
The MKUnitGenerator Library
The MKUnitGenerator Class
Connecting MKUnitGenerators
The MKSynthData Class
Simple Example of a Collection of MKUnitGenerators, Operated from a User Interface
Assignment - Week 4
5. Class 5 ― MKSynthPatches
Review: Classes in the MusicKit
MusicKit Synthesis Classes (review)
The MKSynthPatch Class
The MusicKit SynthPatch Library Classes
The MKSynthPatch Library Timbre Data Base
Making Your Own MKSynthPatch Class
Specifying a Collection of MKUnitGenerators
Specifying the Connections
Specifying the Performance Behavior
Specifying the Performance Behavior + Example
Complete Example
Fancier SynthPatches
The Complete Story About Phrase Status
Assignment - Week 5
List of Tables
2-1. Examples of MKNote Parameters
3-1. MKInstrument subclasses provided by the MusicKit
3-2. Pseudo-Instrument classes provided by MusicKit
3-3. MKNoteReceivers provided by MKInstrument subclasses
3-4. MKPerformer subclasses provided by the MusicKit
3-5. MKNoteSenders provided by MKPerformer subclasses.
3-6. Pseudo-MKPerformer Performance Protocol
4-1. MKUnitGenerators
4-2. MKUnitGenerator States
5-1. WaveTable synthesis:
5-2. Frequency Modulation synthesis:
5-3. Plucked string synthesis:
5-4. MKSynthPatch States
5-5. Phrase States
List of Figures
1-1. Example of MusicKit Inheritance
2-1. EnvelopeEd
2-2. Wave Form Display
3-1. A MusicKit Performance
4-1. MKSynthInstrument
5-1. A Simple Synth Patch
5-2. noteTypes Time Line