Core audio

Preview:

Citation preview

CoreAudioCocoaheads 2013, Maxime Bokobza

HexASound

CoreAudio

Mixer Graph

RemoteIO

CoreAudio

Effect

AUGraphAUGraphInitialize()

AUGraphNew()

AUGraphOpen()

AUGraphClose()

AUGraphStart()

AUGraphStop()

AUGraphUninitialize()

AudioComponentDescription

componentManufacturerex: 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 PropertiesAudioUnitSetProperty()AudioUnitGetProperty()

PropertyIDex:kAudioUnitProperty_StreamFormatkAudioUnitProperty_BypassEffectkAudioUnitProperty_CPULoad

AudioUnitScopeex:kAudioUnitScope_GlobalkAudioUnitScope_Output

Audio Unit Parameters

AudioUnitSetParameter()AudioUnitGetParameter()

ParameterIDex:kBandpassParam_CenterFrequencykMultiChannelMixerParam_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émohttp://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()

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

Recommended