core audio

20
CoreAudio Cocoaheads 2013, Maxime Bokobza

Upload: cocoaheads-france

Post on 15-May-2015

3.833 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Core audio

CoreAudioCocoaheads 2013, Maxime Bokobza

Page 2: Core audio

HexASound

Page 3: Core audio

CoreAudio

Page 4: Core audio

Mixer Graph

RemoteIO

CoreAudio

Effect

Page 5: Core audio

AUGraphAUGraphInitialize()

AUGraphNew()

AUGraphOpen()

AUGraphClose()

AUGraphStart()

AUGraphStop()

AUGraphUninitialize()

Page 6: Core audio

AudioComponentDescription

componentManufacturerex: kAudioUnitManufacturer_Apple

componentType ex: kAudioUnitType_Mixer kAudioUnitType_Effect kAudioUnitType_Output

componentSubType ex: kAudioUnitSubType_MultiChannelMixer kAudioUnitSubType_Delay kAudioUnitSubType_RemoteIO

Page 7: Core audio

AUNode

AUGraphAddNode()

AUGraphConnectNodeInput()

Page 8: Core audio

AudioUnit

AUGraphNodeInfo()

Audio Unit Properties

Audio Unit Parameters

Page 9: Core audio

Audio Unit PropertiesAudioUnitSetProperty()AudioUnitGetProperty()

PropertyIDex:kAudioUnitProperty_StreamFormatkAudioUnitProperty_BypassEffectkAudioUnitProperty_CPULoad

AudioUnitScopeex:kAudioUnitScope_GlobalkAudioUnitScope_Output

Page 10: Core audio

Audio Unit Parameters

AudioUnitSetParameter()AudioUnitGetParameter()

ParameterIDex:kBandpassParam_CenterFrequencykMultiChannelMixerParam_Volume

Page 11: Core audio

AURenderCallbackStruct

AUGraphSetNodeInputCallback()

static OSStatus renderInput( !void *inRefCon, !AudioUnitRenderActionFlags *ioActionFlags, !const AudioTimeStamp *inTimeStamp, !UInt32 inBusNumber, !UInt32 inNumberFrames, !AudioBufferList *ioData)

Page 12: Core audio

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

Page 13: Core audio

Démohttp://github.com/maxbok/CoreAudioTemplate

Page 14: Core audio

One more thing

Page 15: Core audio

CoreMidi

Page 16: Core audio

Enable MIDI out

[[MIDINetworkSession

defaultSession] setEnabled:YES]

MIDIClientCreate()

MIDIOutputPortCreate()

Page 17: Core audio

Send an event

MIDIPacketListInit()

MIDIPacketListAdd()

MIDISend()

Page 18: Core audio

Disable MIDI out

[[MIDINetworkSession

defaultSession] setEnabled:NO]

MIDIClientDispose()

Page 20: Core audio

Démohttp://github.com/maxbok/CoreMIDITemplate