SlideShare a Scribd company logo
1 of 20
Download to read offline
CoreAudio
Cocoaheads 2013, Maxime Bokobza
HexASound
CoreAudio
CoreAudio
Mixer       Graph




            Effect   RemoteIO
AUGraph
AUGraphInitialize()
AUGraphNew()
AUGraphOpen()
AUGraphClose()
AUGraphStart()
AUGraphStop()
AUGraphUninitialize()
AudioComponentDescription
componentManufacturer
ex: kAudioUnitManufacturer_Apple

componentType
ex: kAudioUnitType_Mixer
    kAudioUnitType_Effect
    kAudioUnitType_Output

componentSubType
ex: kAudioUnitSubType_MultiChannelMixer
    kAudioUnitSubType_Delay
    kAudioUnitSubType_RemoteIO
AUNode


AUGraphAddNode()
AUGraphConnectNodeInput()
AudioUnit

 AUGraphNodeInfo()


 Audio Unit Properties
 Audio Unit Parameters
Audio Unit Properties
AudioUnitSetProperty()
AudioUnitGetProperty()

PropertyID
ex:
kAudioUnitProperty_StreamFormat
kAudioUnitProperty_BypassEffect
kAudioUnitProperty_CPULoad

AudioUnitScope
ex:
kAudioUnitScope_Global
kAudioUnitScope_Output
Audio Unit Parameters
 AudioUnitSetParameter()
 AudioUnitGetParameter()


 ParameterID
 ex:
 kBandpassParam_CenterFrequency
 kMultiChannelMixerParam_Volume
AURenderCallbackStruct
AUGraphSetNodeInputCallback()


static OSStatus renderInput(
!void *inRefCon,
!AudioUnitRenderActionFlags *ioActionFlags,
!const AudioTimeStamp *inTimeStamp,
!UInt32 inBusNumber,
!UInt32 inNumberFrames,
!AudioBufferList *ioData)
Links
• http://www.dribin.org/dave/resources/
  files/2010/
  ipdcchi_Dribin_AudioUnits.pdf

• http://izotope.fileburst.com/guides/
  iZotope_iOS_Audio_Programming_Guide.pdf

• http://www.subfurther.com/blog/
  2009/04/28/an-iphone-core-audio-brain-
  dump/

• http://www.slideshare.net/invalidname/
  core-audio-cranks-it-up
Démo
http://github.com/maxbok/CoreAudioTemplate
One more thing
CoreMidi
Enable MIDI out

[[MIDINetworkSession
defaultSession] setEnabled:YES]

MIDIClientCreate()

MIDIOutputPortCreate()
Send an event

MIDIPacketListInit()

MIDIPacketListAdd()

MIDISend()
Disable MIDI out

[[MIDINetworkSession
defaultSession] setEnabled:NO]

MIDIClientDispose()
Links
•http://goodliffe.blogspot.fr/
  2010/10/using-coremidi-in-
  ios-example.html?m=1

•https://github.com/
  petegoodliffe/PGMidi

•http://www.onicos.com/staff/
  iz/formats/midi-event.html
Démo
http://github.com/maxbok/CoreMIDITemplate

More Related Content

Similar to Core audio

Game programming with Groovy
Game programming with GroovyGame programming with Groovy
Game programming with GroovyJames Williams
 
Compose로 Android:Desktop 멀티플랫폼 만들기.pdf
Compose로 Android:Desktop 멀티플랫폼 만들기.pdfCompose로 Android:Desktop 멀티플랫폼 만들기.pdf
Compose로 Android:Desktop 멀티플랫폼 만들기.pdfssuserb6c2641
 
60分鐘完送百萬edm,背後雲端ci/cd實戰大公開
60分鐘完送百萬edm,背後雲端ci/cd實戰大公開60分鐘完送百萬edm,背後雲端ci/cd實戰大公開
60分鐘完送百萬edm,背後雲端ci/cd實戰大公開KAI CHU CHUNG
 
Gstreamer Basics
Gstreamer BasicsGstreamer Basics
Gstreamer Basicsidrajeev
 
Core Audio in iOS 6 (CocoaConf Portland, Oct. '12)
Core Audio in iOS 6 (CocoaConf Portland, Oct. '12)Core Audio in iOS 6 (CocoaConf Portland, Oct. '12)
Core Audio in iOS 6 (CocoaConf Portland, Oct. '12)Chris Adamson
 
Google Cloud Dataflow meets TensorFlow
Google Cloud Dataflow meets TensorFlowGoogle Cloud Dataflow meets TensorFlow
Google Cloud Dataflow meets TensorFlowHayato Yoshikawa
 
NVIDIA's OpenGL Functionality
NVIDIA's OpenGL FunctionalityNVIDIA's OpenGL Functionality
NVIDIA's OpenGL FunctionalityMark Kilgard
 
Kinect v2 Introduction and Tutorial
Kinect v2 Introduction and TutorialKinect v2 Introduction and Tutorial
Kinect v2 Introduction and TutorialTsukasa Sugiura
 
XML-Free Programming
XML-Free ProgrammingXML-Free Programming
XML-Free ProgrammingStephen Chin
 
Embedded Android
Embedded AndroidEmbedded Android
Embedded Android晓东 杜
 
GDG Kuwait - Modern android development
GDG Kuwait - Modern android developmentGDG Kuwait - Modern android development
GDG Kuwait - Modern android developmentGDGKuwaitGoogleDevel
 
Juan josefumeroarray14
Juan josefumeroarray14Juan josefumeroarray14
Juan josefumeroarray14Juan Fumero
 
Developing for Plone using ArchGenXML / ArgoUML
Developing for Plone using ArchGenXML / ArgoUMLDeveloping for Plone using ArchGenXML / ArgoUML
Developing for Plone using ArchGenXML / ArgoUMLJazkarta, Inc.
 
Summer Games University - Day 3
Summer Games University - Day 3Summer Games University - Day 3
Summer Games University - Day 3Clemens Kern
 
ECS: Graph Driven Audio in an ECS World
ECS: Graph Driven Audio in an ECS WorldECS: Graph Driven Audio in an ECS World
ECS: Graph Driven Audio in an ECS WorldUnity Technologies
 
Prasentation Managed DirectX
Prasentation Managed DirectXPrasentation Managed DirectX
Prasentation Managed DirectXA. LE
 

Similar to Core audio (20)

Game programming with Groovy
Game programming with GroovyGame programming with Groovy
Game programming with Groovy
 
Compose로 Android:Desktop 멀티플랫폼 만들기.pdf
Compose로 Android:Desktop 멀티플랫폼 만들기.pdfCompose로 Android:Desktop 멀티플랫폼 만들기.pdf
Compose로 Android:Desktop 멀티플랫폼 만들기.pdf
 
60分鐘完送百萬edm,背後雲端ci/cd實戰大公開
60分鐘完送百萬edm,背後雲端ci/cd實戰大公開60分鐘完送百萬edm,背後雲端ci/cd實戰大公開
60分鐘完送百萬edm,背後雲端ci/cd實戰大公開
 
Gstreamer Basics
Gstreamer BasicsGstreamer Basics
Gstreamer Basics
 
Eddystone beacons demo
Eddystone beacons demoEddystone beacons demo
Eddystone beacons demo
 
OpenMAX AL 1.0 Reference Card
OpenMAX AL 1.0 Reference CardOpenMAX AL 1.0 Reference Card
OpenMAX AL 1.0 Reference Card
 
Core Audio in iOS 6 (CocoaConf Portland, Oct. '12)
Core Audio in iOS 6 (CocoaConf Portland, Oct. '12)Core Audio in iOS 6 (CocoaConf Portland, Oct. '12)
Core Audio in iOS 6 (CocoaConf Portland, Oct. '12)
 
Google Cloud Dataflow meets TensorFlow
Google Cloud Dataflow meets TensorFlowGoogle Cloud Dataflow meets TensorFlow
Google Cloud Dataflow meets TensorFlow
 
NVIDIA's OpenGL Functionality
NVIDIA's OpenGL FunctionalityNVIDIA's OpenGL Functionality
NVIDIA's OpenGL Functionality
 
Kinect v2 Introduction and Tutorial
Kinect v2 Introduction and TutorialKinect v2 Introduction and Tutorial
Kinect v2 Introduction and Tutorial
 
XML-Free Programming
XML-Free ProgrammingXML-Free Programming
XML-Free Programming
 
Embedded Android
Embedded AndroidEmbedded Android
Embedded Android
 
GDG Kuwait - Modern android development
GDG Kuwait - Modern android developmentGDG Kuwait - Modern android development
GDG Kuwait - Modern android development
 
Juan josefumeroarray14
Juan josefumeroarray14Juan josefumeroarray14
Juan josefumeroarray14
 
Developing for Plone using ArchGenXML / ArgoUML
Developing for Plone using ArchGenXML / ArgoUMLDeveloping for Plone using ArchGenXML / ArgoUML
Developing for Plone using ArchGenXML / ArgoUML
 
OpenGL 4 for 2010
OpenGL 4 for 2010OpenGL 4 for 2010
OpenGL 4 for 2010
 
Summer Games University - Day 3
Summer Games University - Day 3Summer Games University - Day 3
Summer Games University - Day 3
 
ECS: Graph Driven Audio in an ECS World
ECS: Graph Driven Audio in an ECS WorldECS: Graph Driven Audio in an ECS World
ECS: Graph Driven Audio in an ECS World
 
Prasentation Managed DirectX
Prasentation Managed DirectXPrasentation Managed DirectX
Prasentation Managed DirectX
 
ARCore 101
ARCore 101ARCore 101
ARCore 101
 

More from CocoaHeads France

More from CocoaHeads France (20)

Mutation testing for a safer Future
Mutation testing for a safer FutureMutation testing for a safer Future
Mutation testing for a safer Future
 
iOS App Group for Debugging
iOS App Group for DebuggingiOS App Group for Debugging
iOS App Group for Debugging
 
Asynchronous swift
Asynchronous swiftAsynchronous swift
Asynchronous swift
 
Visual accessibility in iOS11
Visual accessibility in iOS11Visual accessibility in iOS11
Visual accessibility in iOS11
 
My script - One year of CocoaHeads
My script - One year of CocoaHeadsMy script - One year of CocoaHeads
My script - One year of CocoaHeads
 
Ui testing dealing with push notifications
Ui testing dealing with push notificationsUi testing dealing with push notifications
Ui testing dealing with push notifications
 
CONTINUOUS DELIVERY WITH FASTLANE
CONTINUOUS DELIVERY WITH FASTLANECONTINUOUS DELIVERY WITH FASTLANE
CONTINUOUS DELIVERY WITH FASTLANE
 
L'intégration continue avec Bitrise
L'intégration continue avec BitriseL'intégration continue avec Bitrise
L'intégration continue avec Bitrise
 
Super combinators
Super combinatorsSuper combinators
Super combinators
 
Design like a developer
Design like a developerDesign like a developer
Design like a developer
 
Handle the error
Handle the errorHandle the error
Handle the error
 
Quoi de neuf dans iOS 10.3
Quoi de neuf dans iOS 10.3Quoi de neuf dans iOS 10.3
Quoi de neuf dans iOS 10.3
 
IoT Best practices
 IoT Best practices IoT Best practices
IoT Best practices
 
SwiftyGPIO
SwiftyGPIOSwiftyGPIO
SwiftyGPIO
 
Présentation de HomeKit
Présentation de HomeKitPrésentation de HomeKit
Présentation de HomeKit
 
Programme MFI retour d'expérience
Programme MFI retour d'expérienceProgramme MFI retour d'expérience
Programme MFI retour d'expérience
 
How to communicate with Smart things?
How to communicate with Smart things?How to communicate with Smart things?
How to communicate with Smart things?
 
Build a lego app with CocoaPods
Build a lego app with CocoaPodsBuild a lego app with CocoaPods
Build a lego app with CocoaPods
 
Let's migrate to Swift 3.0
Let's migrate to Swift 3.0Let's migrate to Swift 3.0
Let's migrate to Swift 3.0
 
Project Entourage
Project EntourageProject Entourage
Project Entourage
 

Core audio