FC2ブログ

iOS9 で Audio Units のフルサポートを開始

iOS9 から Audio Units をフルサポートするらしい。

おぉ、なんとタイムリー。
SDK や ドキュメントも刷新されるじゃろか。

ま、しばらくは関係ないんだけどね・・・。

チュートリアルが

SNS にクダラナイことを書き込んでは、「いやいや、こんなことをしている場合ではない」という気分に陥って、あわてて生産的なことを始めなくてはと思ったりする今日この頃。
いや、実際に始めることは生産的でも何でもないことなんだけど。
まぁ、そういう気分になって、少しでもモチベーションが上がれば、SNS をやっている意味があるのかも知れない。
というか、そういうある種の後ろめたさをモチベーションと呼んで良いのか?

というわけで、ちょこっと進めてみようかと思った、Audio Unit 制作、「まずはチュートリアルからよね」と思ったんだけど、公式のチュートリアルが古い!
最初に Audio Units のテンプレートを選択して~、とか書いてあるけど、そもそもテンプレートの選択肢に Audio Units がない。
そして、「テンプレートがなかったら、SDK を再インストールするか、最新の Xcode を使ってくれたまえ」とか書いてあるんすよね。
サンプル・コードも、ビルドしてみたら deprecation のワーニングだらけだし・・・。

まー、CoreAudio ならまだしも、Audio Unit はメーカー以外は手をつけないような領域だしねぇ。
※個人の感想です。

またしても、英語→日本語、旧版リファレンス→新版リファレンスの翻訳の壁が・・・。

AU Lab の View が・・・

さっそく、AU Lab を試してみたんだけど、AUAudioFilePlayer を起動して、ドロップ・ダウン・メニューで View を Generic View に変更したら戻らなくなっちゃった。

一度、アプリを削除して、新規にコピーしても直らず、結局、Preferences(.plist)を削除するハメに。

今後、何度もありそうなので、パスを記載。

~/Library/Preferences/com.apple.audio.aulab.plist

com.apple.aulab で探して失敗したので備忘録。

CoreAudio SDK のありか

Audio Unit で何か作ってみようかと思ったものの、SDK がどこにあるか分かんないよー! だったワタクシ。

"Audio Unit SDK" でネット検索したところ、かなり上位に こんなサイト が。
やはり、英語だからという理由で敬遠していてはダメということか。
事あるごとに言語の壁に阻まれる・・・。

完全にナナメ読みなので、たぶん間違っているとは思うけど、SDK は全然更新してないので、(Apple Developer にサインインしてから)
https://developer.apple.com/downloads/

ここに行って、「Audio」で検索(Search Download)して、検索結果の「Audio Tools for Xcode - February 2012」をダウンロードせよ、ってことのようです。
その他の「Audio Tools」にはSDKが含まれていないみたい。

ディスク・イメージがダウンロードされるので、ダウンロードが終わったらマウントして、ターミナルを起動して、

sudo cp -r -v "/Volumes/Audio Tools/CoreAudio" /Applications/Xcode.app/Contents/Developer/Extras/CoreAudio

しろとのこと。
で、やってみたけど、ウチの環境では、いつもの通り、No such file or directory ・・・。

しょうがないので、アプリケーション・フォルダ内の Xcode.app を右クリックして「パッケージの内容を表示」で、Extrasフォルダを作成して、

sudo cp -r -v /Volumes/Audio\ Tools/CoreAudio /Applications/Xcode.app/Contents/Developer/Extras/CoreAudio

したら、コピーできたような気がする。それで、

sudo find /Applications/Xcode.app/Contents/Developer/Extras/CoreAudio -type f -exec chmod 666 {} \;

と、パーミッションを変えれば準備完了なのかも知れない。


それ以降に書いてあること言えば・・・、

Mac OS X 10.7 以降を使っている場合は、AUMIDIEffectBase.cpp の154行目を

result = ((AUMIDIBase*)This)->MIDIEvent(inStatus, inData1, inData2, inOffsetSampleFrame);

に変更する。
で、コンパイラを LLVM から LLVM GCC 4.2 に変えた場合は、AUCarbonViewBase.cpp の257行目を

HISize originalSize = { (CGFloat)mBottomRight.h, (CGFloat)mBottomRight.v };

に変更しろとか言ってる気がする。

そして、VST と AU の両方をサポートしたいなら、audioeffextx.cpp の512行目を

char temp[2] = {(char)(digit + 0x60), '\0'};

に変えろ。
更に更に、C++11 を使いたいなら、CADebudMaxros.h の138行目を

#define DebugMessage(msg) DebugPrintfRtn(DebugPrintfFileComma "%s" DebugPrintfLineEnding, msg) FlushRtn

に変更しろとおっしゃっているような気がする。

まぁ、最初のOSバージョンのところだけ変更してテストしてみますかね。


うーん、困った

というわけで、ぼちぼち Audio Unit のことを勉強しようかと思ったんだけど、公式の Developer サイトの「Audio Unit Programming Guide」に書いてある Core Audio SDK のダウンロード先、
http://developer.apple.com/sdk/
がない。

https://developer.apple.com/downloads/

で、「Core Audio」を検索してみたんだけど、出てこない。
「Audio」で検索したら、audiotools_for_xcode_6.1 とか出てきたので、「AU Lab.app」と「HALLab」は、入手できたんだけど・・・。

うーん、つまづき方がハンパない。
もう少し、調べてみるしかないかなぁ。