Pebble Coding

プログラマーの作業メモ

iOS11 Audio関連機能(2017)

iOS11 Audio関連で追加された機能で気になったものをまとめておきます。
内容はここで見ることができます。
今年からApple Developer登録していない方でもVideoが見られるようになったようです。
(WWDC 2017に見た新しい教材のあり方|MacFan)

developer.apple.com

AVAudioEngine関連

offlineモード追加

ようやくofflineモードが追加され、オーディオファイルに出力できるようになりました。
Mixdownとも言います。
CoreAudioでは元々できましたが、AVAudioEngineでもできるようになりました。

realtimeレンダリング

サンプル単位でリアルタイムでデータを入れて再生できるようになりました。
CoreAudioで実装する場合と同じくUnsafePointer<AudioBufferList>を使うようです。

[補足]動作するサンプルコードがどこにも見当たりません。

Completion Callbacks

.dataConsumed
.dataRendered
.dataPlayedBack

いまいち 理解できておりませんがメモ。

AUGraphが2018年にDeprecationとなる予定

ううむ、マジですか。
iOS12にはAUGraphの全ての機能をAVAudioEngineに入れるつもりってことですな。
まあ、Objective-Cでそのまま書き換えればいいかな。
すぐに使えなくなるわけでもないので放置でもいいですが。

AirPlay2関連

AirPlay自体よく分かっておりません。。

AUAudioUnit関連

MIDI出力できるようになったようです。
iOSにパラメータ表示Viewが追加されたようです。

FLAC,Opus に対応

FLACは可逆フォーマット(wav,cafと同じ)
Opusは非可逆フォーマット(aac,mp3と同じ)

ハイレゾプレーヤーを作っている方は
自前で実装しなくてよくなったということですな。

Iner-Device Audio Mode + MIDI

macOS 10.11(El Capitan),iOS9でAudioのやりとりができるように追加された機能ですが、
macOS 10.13(High Sierra),iOS11でMIDIのやりとりもできるようになったようです。

デモでは、iPadシーケンサーからMIDI(ノートやボリュームオートメーション?)
を出力しmacOSのLogicで録音していました。