Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
AUGraph
Search
Aliaksandr Andrashuk
November 02, 2013
Programming
90
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AUGraph
Aliaksandr Andrashuk
November 02, 2013
Other Decks in Programming
See All in Programming
golang-bob.pdf
iwatsukayura
0
130
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
1
430
パスワード再設定メールのURLについて知っておこう
uyuki234
0
160
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
TechTown - Creating Composable Callables in Contemporary C++
rollbear
0
130
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
790
Simple Storage Service(S3) is not simple
iwatsukayura
0
290
Web Framework Benchmark Battle 2026, Any%
a_matsuda
2
2k
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
420
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
380
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
5
5.2k
外から家のPCの電源入れたい!をPHPで解決する
kawashimo0
1
130
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
46
8.3k
Making the Leap to Tech Lead
cromwellryan
135
10k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
550
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
750
What the history of the web can teach us about the future of AI
inesmontani
PRO
2
740
Joys of Absence: A Defence of Solitary Play
codingconduct
1
550
A Tale of Four Properties
chriscoyier
163
24k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
570
Accessibility Awareness
sabderemane
1
250
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
890
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Git: the NoSQL Database
bkeepers
PRO
433
67k
Transcript
AUGraph: скандалы, интриги, расследования Aliaksandr Andrashuk @lime_jelly
AudioUnit
AudioUnit Bus 0 Bus 1 Bus 0 Bus 0 Input
scope Output scope Global scope AudioUnit
typedef struct OpaqueAudioComponentInstance * AudioComponentInstance; typedef AudioComponentInstance
AudioUnit; AudioUnit unit;
typedef struct AudioComponentDescription { OSType
componentType; OSType componentSubType; OSType componentManufacturer; UInt32 componentFlags; UInt32 componentFlagsMask; } AudioComponentDescription;
AU Types •Output •MusicEffect, MusicDevice •FormatConverter •Effect •Mixer •Panner •Generator
•OfflineEffect •MIDIProcessor
iOS 7
Properties & Parameters Scheduled parameters
File Player Merger/ Mixer Reverb RemoteIO Speakers Microphone AUGraph
AUGraph •Initial •Opened •Initialized •Running
AUGraph graph; NewAUGraph(&graph); Create/Destroy AUGraph DisposeAUGraph(graph);
AudioComponentDescription acd = ...; AUNode node; AUGraphAddNode(graph, &acd, &node); Adding
nodes
Connecting nodes AUNode node1 = ...; AUNode node2 = ...;
AUGraphConnectNodeInput(graph, node1, 0, node2, 0);
Open/Close AUGraph AUGraphOpen(graph); AUGraphClose(graph);
OSStatus AUGraphNodeInfo( AUGraph inGraph, AUNode inNode, AudioComponentDescription * outDescription, AudioUnit
* outAudioUnit);
Init/Uninit AUGraph AUGraphInitialize(graph); AUGraphUninitialize(graph);
Start/Stop AUGraph AUGraphStart(graph); AUGraphStop(graph);
#import <AssertMacros.h> __Require_noErr __Check_noErr __Verify_noErr
__Require_noErr(NewAUGraph(&graph), fail); ... fail: return false;
AUGraph’s
AUFilePlayer RemoteIO
RemoteIO / VoiceProcessingIO •Audio input & output •Filters input audio
•“Head” of AUGraph
AUFilePlayer •Plays some number of files (AudioFileID) •Can play only
one file at moment •Plays only uncompressed audio
AUFilePlayer RemoteIO AUEffect •Filters (high, mid, low) •EQs •Delay •Pitch
•etc
AUFilePlayer RemoteIO Merger/Mixer AUFilePlayer
AUMultiChannelMixer •Any number of inputs •One output •Volume & Pan
for inputs
RemoteIO / GenericOutput AUGraph AUGraphAddRenderNotify Write to file AURenderCallback
GenericOutput AU •Start/Stop API •Offline audio processing
Custom input RemoteIO Mixer AUScheduledSoundPlayer RemoteIO Mixer AUGraphSetNodeInputCallback AURenderCallback
AUScheduledSoundPlayer •No inputs, one output •Can schedule slices of audio
AUCustom
AudioComponent AudioComponentRegister( const AudioComponentDescription *
inDesc, CFStringRef inName, UInt32 inVersion, AudioComponentFactoryFunction inFactory)
typedef struct AudioComponentPlugInInterface { OSStatus
(*Open)(void *self, AudioComponentInstance mInstance); OSStatus (*Close)(void *self); AudioComponentMethod (*Lookup) (SInt16 selector); void * reserved; // set to NULL } AudioComponentPlugInInterface;
The end • http://developer.apple.com • http://idev.by/tag/audiounit/ • Learning Core Audio,
A Hands-On Guide to Audio Programming for Mac and iOS. Chris Adamson, Kevin Avila.