Creating Music                            Instruments on iOS                                      Greg Cerveny            ...
Music on iOS                    • Apple Design Award Apps                     • DM 1, Djay, Tab Toolkit                   ...
Tuesday, September 11, 12
Tuesday, September 11, 12
Max Mathews Radio Baton Video Demo:                               http://www.youtube.com/watch?                           ...
Core Audio                    • Audio and MIDI support                    • Low Latency & Dynamic                    • Obj...
Introduction to                            Computer MusicTuesday, September 11, 12
Introduction to                            Computer Music                    • NotesTuesday, September 11, 12
Introduction to                            Computer Music                    • Notes                    • SignalsTuesday, ...
Sonata No. 14, Moonlight                                                                                                  ...
1. Music FileTuesday, September 11, 12
2. Set Up Music Sequence                    • Create a new music sequence                            NewMusicSequence(Musi...
3. Load Into Music Player                    • Create a new music player                            NewMusicPlayer(MusicPl...
DEMOTuesday, September 11, 12
Music Player Types                • MusicPlayer                  • MusicEventIterator                • MusicSequence      ...
Notes                • MIDI Notes                       MIDINoteMessage {                           UInt8 channel;        ...
SignalTuesday, September 11, 12
8 Steps to an Audio Graph                    1.      Configure an Audio Session                    2.      Create an Audio ...
8 Steps to an Audio Graph                • Create an Audio Processing Graph                            NewAUGraph(AUGraph ...
8 Steps to an Audio Graph                • Add Node to Graph                            AUGraphAddNode(                   ...
8 Steps to an Audio Graph                • Pointers to Nodes                            AUGraphNodeInfo(                  ...
8 Steps to an Audio Graph                • Initialize Graph                            AUGraphInitialize(!                ...
DEMOTuesday, September 11, 12
Audio Graph                    • Audio Graph                     • Creation, Opening, and Starting                    • No...
Resources                    • Learning Core Audio by Adamson                    • WWDC                     • 2011: Music ...
Other Libraries                    • C Sound                    • LibPD - Pure DataTuesday, September 11, 12
Creating Music                            Instruments on iOS                                      Greg Cerveny            ...
Upcoming SlideShare
Loading in …5
×

iOS as a Music Instrument

1,990 views
1,802 views

Published on

A demonstration of Core Audio applied to Max Mathews' work on Radio Baton and Composer.

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,990
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

iOS as a Music Instrument

  1. 1. Creating Music Instruments on iOS Greg Cerveny @gmcerveny greg.cerveny@gmail.comTuesday, September 11, 12
  2. 2. Music on iOS • Apple Design Award Apps • DM 1, Djay, Tab Toolkit • Companies: Smule, Tonara, Khush • Great Apps: Figure, Lemur, Animoog, ... • Apple StoreTuesday, September 11, 12
  3. 3. Tuesday, September 11, 12
  4. 4. Tuesday, September 11, 12
  5. 5. Max Mathews Radio Baton Video Demo: http://www.youtube.com/watch? v=3ZOzUVD4oLg#t=4m46sTuesday, September 11, 12
  6. 6. Core Audio • Audio and MIDI support • Low Latency & Dynamic • Objective C and C • Proxy Objects • Audio Toolbox, Audio Unit, Core MIDI FrameworksTuesday, September 11, 12
  7. 7. Introduction to Computer MusicTuesday, September 11, 12
  8. 8. Introduction to Computer Music • NotesTuesday, September 11, 12
  9. 9. Introduction to Computer Music • Notes • SignalsTuesday, September 11, 12
  10. 10. Sonata No. 14, Moonlight Ludwig van Beethoven Adagio sostenuto Op. 27, No. 2 Si deve suonare tutto questo pezzo delicatissimamente e senza sordini 3 5 2 4 3 5 1 3 1 sempre pianissimo e senza sordini 5 4 pp 5 2 3 5 4 5 3 5 4 3 1 4 5 4 5 7 5 4 3Tuesday, September 11, 12
  11. 11. 1. Music FileTuesday, September 11, 12
  12. 12. 2. Set Up Music Sequence • Create a new music sequence NewMusicSequence(MusicSequence *outSequence) • Load a music file MusicSequenceFileLoad( MusicSequence inSequence, CFURLRef inFileRef, MusicSequenceFileTypeID inFileTypeHint, MusicSequenceLoadFlags inFlags)Tuesday, September 11, 12
  13. 13. 3. Load Into Music Player • Create a new music player NewMusicPlayer(MusicPlayer *outPlayer) • Load sequence into player MusicPlayerSetSequence(MusicPlayer inPlayer, MusicSequence inSequence) • Play MusicPlayerStart(myMusicPlayer)Tuesday, September 11, 12
  14. 14. DEMOTuesday, September 11, 12
  15. 15. Music Player Types • MusicPlayer • MusicEventIterator • MusicSequence • MusicTrackTuesday, September 11, 12
  16. 16. Notes • MIDI Notes MIDINoteMessage { UInt8 channel; UInt8 note; UInt8 velocity; UInt8 releaseVelocity; Float32 duration; }Tuesday, September 11, 12
  17. 17. SignalTuesday, September 11, 12
  18. 18. 8 Steps to an Audio Graph 1. Configure an Audio Session 2. Create an Audio Processing Graph 3. Create and Describe Audio Nodes for Each Unit 4. Open the Audio Processing Graph to Instantiate the Audio Units 5. Obtain Pointers and Configure Each Unit 6. Connect the Nodes 7. Initialize the Graph 8. Start the AudioTuesday, September 11, 12
  19. 19. 8 Steps to an Audio Graph • Create an Audio Processing Graph NewAUGraph(AUGraph *outGraph) • Describe Audio Node AudioComponentDescription { componentType; componentSubType; componentManufacturer; componentFlags; componentFlagsMask; }Tuesday, September 11, 12
  20. 20. 8 Steps to an Audio Graph • Add Node to Graph AUGraphAddNode( AUGraph inGraph, AudioComponentDescription *inDescription, AUNode *outNode ) • Open the graph AUGraphOpen(AUGraph inGraph)Tuesday, September 11, 12
  21. 21. 8 Steps to an Audio Graph • Pointers to Nodes AUGraphNodeInfo( AUGraph inGraph, AUNode inNode, AudioComponentDescription *outDescription, AudioUnit *outAudioUnit) • Connect Nodes AUGraphConnectNodeInput( AUGraph inGraph, AUNode inSourceNode, UInt32 inSourceOutputNumber, AUNode inDestNode, UInt32 inDestInputNumber)Tuesday, September 11, 12
  22. 22. 8 Steps to an Audio Graph • Initialize Graph AUGraphInitialize(! AUGraph inGraph) • Start Audio AUGraphStart(AUGraph inGrap)Tuesday, September 11, 12
  23. 23. DEMOTuesday, September 11, 12
  24. 24. Audio Graph • Audio Graph • Creation, Opening, and Starting • Nodes and Descriptions • Audio UnitsTuesday, September 11, 12
  25. 25. Resources • Learning Core Audio by Adamson • WWDC • 2011: Music in iOS and Lion • 2010: Audio Development for iOS1/2 • Core Audio Programming Guide • Audio Unit Hosting/Programming GuideTuesday, September 11, 12
  26. 26. Other Libraries • C Sound • LibPD - Pure DataTuesday, September 11, 12
  27. 27. Creating Music Instruments on iOS Greg Cerveny @gmcerveny greg.cerveny@gmail.comTuesday, September 11, 12

×