Audio Unit Extensions 〜オーディオエフェクトのアプリ間共有〜
- 4. iOS 9 / watchOS 2 関連の
これまでのアウトプット
おさらい
- 5. API Diffs から見る iOS 9 の新機能
• 基調講演やニュース記事を見
るだけではわからない、iOS 9
の細かい新機能を「API Diffs」
「What’s new」から抜粋
• http://d.hatena.ne.jp/
shu223/20150609/1433813938
- 6. watchOS-2-Sampler
• watchOS 2 の新機能のサンプルコード集
- Accelerometer
- Gyroscope
- Pedometer
- Heart Rate
- Table Animations
- Animated Properties
- Audio Rec & Play
- Picker Styles
- Taptic Engine
- Alert
- Animation with Digital Crown
- Interactive Messaging
- Open System URL
- Audio File Player
• GitHub で公開中
- github.com/shu223/watchOS-2-Sampler
• 紹介記事
- d.hatena.ne.jp/shu223/20150614/1434313771
- 7. watchOS 2 新機能の細かい話5つ
• watchOS-2-Sampler 実装にあたって気付いた細かい
諸々について
- 2つのアセットカタログの 使い分け
- メディアデータの 保存場所
- WKAudioFilePlayer
- ウォッチ側 Bluetooth の (直接)利用
- Watch Connectivity のメッセージ送���可否の条件
• 『potatotips #18』での発表
• slideshare.net/t26v0748/uiux-watchos-2-3
• d.hatena.ne.jp/shu223/20150616/1434454680
- 8. UI/UX に影響の大きい watchOS 2 の新機能
• watchOS 2 の数ある新機能の中で、
UI/UX に影響の大きそうな機能を3
つ抜粋して紹介
• 『UI Crunch #5』というデザイナー
さん、ディレクターさんも来る勉強
会での発表
- (なのでコードは出てきません)
• http://www.slideshare.net/t26v0748/
uiux-watchos-2-3
- 9. Core Image の新機能
• iOS 9 の Core Image の新機能について
紹介&デモ
- 文字認識
- 新フィルタ47種
• @『WWDC Afterparty Roppongi』
• slideshare.net/t26v0748/ios-9-core-image
• d.hatena.ne.jp/shu223/20150622/
1434924215
- 13. Audio Unit とは?
• Core Audio においてもっとも低
レベル(ハードより)に位置す
るフレームワーク
• 低遅延での音声処理が可能
- 14. Audio Unit とは?
• Core Audio においてもっとも低
レベル(ハードより)に位置す
るフレームワーク
• 低遅延での音声処理が可能
• ユニット同士を繋げて複雑なオー
ディオ処理を実現可能
(図:iOS 5 プログラミングブック より)
- 15. Audio Unit とは?
• Core Audio においてもっとも低
レベル(ハードより)に位置す
るフレームワーク
• 低遅延での音声処理が可能
• ユニット同士を繋げて複雑なオー
ディオ処理を実現可能
• iOS 8 より AVFoundation に
AVAudioEngine が追加され、
Audio Unit の利用ハードルが
グッと下がった
(図:iOS 5 プログラミングブック より)
- 19. Audio Unit Extensions とは?
• iOS 9 で追加された Extension Point のひとつ
• Audio Unit をアプリ間で共有できる
- 自作ユニットを他社のアプリでも使用できるようにする
- 20. Audio Unit Extensions とは?
• iOS 9 で追加された Extension Point のひとつ
• Audio Unit をアプリ間で共有できる
- 自作ユニットを他社のアプリでも使用できるようにする
- 他社が制作したユニットを自分のアプリでも利用する
- 21. Audio Unit Extensions とは?
• iOS 9 で追加された Extension Point のひとつ
• Audio Unit をアプリ間で共有できる
- 自作ユニットを他社のアプリでも使用できるようにする
- 他社が制作したユニットを自分のアプリでも利用する
• すなわち・・・
- 29. エフェクトを適用する
1. 選択された AVAudioUnitComponent の
AudioComponentDescription (構造体)を取得
2. AVAudioUnit を
instantiateWithComponentDescription:options:
で生成
3. AVAudioEngine に attachNode
4. エフェクトノードと、プレイヤー・ミキサー
等のノードを connect
※ このあたりの AVAudioEngine の基本的なサンプ
ルは、iOS8-Sampler にも入っています →
- 35. 例)FilterDemo の Extension が提供するビュー
• 波形をドラッグしてカットオ
フ周波数とレゾナンスを変化
させられる
• Auto Layout やタッチハンドラ
でビューサイズ変更が考慮さ
れているので、画面の下半分
に表示、といったことも可能
• バグ:再生中に波形をいじっ
ても反映されない(どこかに
ちゃんと明記してあった)
※NDAに配慮しスクリーンショットは会場のみとします
- 38. • Xcode: [File] > [New] > [Target]
Audio Unit Extension がない!!!!
※NDAに配慮しスクリーンショットは会場のみとします
- 44. まとめ
• Audio Unit を用いると、ユニット同士を繋げて複雑なオー
ディオ処理を低遅延で実行することができる
• Audio Unit Extensions は、Audio Unit をアプリ間で共有できる
iOS 9 の新機能
- 45. まとめ
• Audio Unit を用いると、ユニット同士を繋げて複雑なオー
ディオ処理を低遅延で実行することができる
• Audio Unit Extensions は、Audio Unit をアプリ間で共有できる
iOS 9 の新機能
- AVAudioUnitComponentManager・・・利用可能なユニットのリストの取
得。ここに AU Extension も入ってくる
- 46. まとめ
• Audio Unit を用いると、ユニット同士を繋げて複雑なオー
ディオ処理を低遅延で実行することができる
• Audio Unit Extensions は、Audio Unit をアプリ間で共有できる
iOS 9 の新機能
- AVAudioUnitComponentManager・・・利用可能なユニットのリストの取
得。ここに AU Extension も入ってくる
- AUViewController・・・Audio Unit Extension が提供するカスタムビュー。
AUAudioUnit の requestViewController∼ メソッドを呼ぶとそのオブジェクト
を取得できる(提供してなければ nil)
- 47. まとめ
• Audio Unit を用いると、ユニット同士を繋げて複雑なオー
ディオ処理を低遅延で実行することができる
• Audio Unit Extensions は、Audio Unit をアプリ間で共有できる
iOS 9 の新機能
- AVAudioUnitComponentManager・・・利用可能なユニットのリストの取
得。ここに AU Extension も入ってくる
- AUViewController・・・Audio Unit Extension が提供するカスタムビュー。
AUAudioUnit の requestViewController∼ メソッドを呼ぶとそのオブジェクト
を取得できる(提供してなければ nil)
- AU Extensions の作成方法・・・まだテンプレートがない。デモからコピー
してくる
- 48. watchOS-2-Sampler
GitHub: shu223/watchOS-2-Sampler
Blog: watchOS 2 の新機能のサンプルコード集『watchOS-2-Sampler』
watchOS 2 新機能のサンプルコード集
- Accelerometer
- Gyroscope
- Pedometer
- Heart Rate
- Table Animations
- Animated Properties
- Audio Rec & Play
- Picker Styles
- Taptic Engine
- Alert
- Animation with Digital Crown
- Interactive Messaging
- Open System URL
- Audio File Player