ToyToneとRandomizeボタンとInter-App Audio

最初リリースした時は、パラメータの保存が出来なかったんだけどね。

このパラメータの保存機能は、
音色名を入力したくなかったのでKORG electribeを参考にした。
Randomizeボタンは、ある日、家電量販店で知り合いに会った際に、
ランダマイズ出来たらいんじゃない?ってアドバイスを貰ったので、
残り少ないスペースにボタンを配して実装した。
プリセット的なものを用意してなかったので、実装して本当に良かった。
最近になって、「toytone ios」で検索したら英語でのレビューが見つかって、
Inter-App Audioに対応して欲しい!って書いてあったので、
いろいろ調査しているうちに対応できそうなのが分かった。
AudioUnitは、レイテンシーが詰められないと思ってたけど、
久々に検証してみたらレイテンシーを詰めることができたので、
即応性を落とさずに済むことが分かって、がんばることにした。

一番手こずったのは、Inter-App Audio(以下、IAA)のテストで、
サンプルコードだと動作が不安定すぎて、有料アプリを買う羽目になった。
おかげで、自分の書いたコードに問題が無いことが分かってリリースできた。
それにしてもドキュメントが見つからないのだけど、
探し方が悪かったのか、Audiobusで事足りてるのか、とにかく困った。

追記 2016/03/31
日本語で「IAAのドキュメントがない!」ってブログに書いてたら、
お世話になったホストアプリとエフェクタの開発者が、
ドキュメントを用意してくれました!
http://lijon.github.io/inter-app-audio.html

(あれれ?書いてから1日くらいしか経過してないのですが・・・。)
— ここまで追記 —

基本的に、IAAはAudioUnitを利用するので、
サンプルコード同様にObjective-Cで書いた。
あと、サウンドエンジンはCで書いて、そのラッパーはObjective-Cで書いた。
SwiftからObjective-Cを使うのは簡単なので、UIはSwiftで書いた。
Swift, Objective-C, Cが混在してるが、そんなに違和感はないと思う。

IAAに対応した結果、
楽器アプリ専門のレビューサイトで扱ってくれたので、
機械翻訳を使って、いくつか感想を読むことが出来て良かった。
個人的には、
1画面に収まる割にいろんな音が出るあたりが評価されたと思ってるんだけど、
実際のところはどうかな?

ところで、IAAってiOS7の時に実装されたので、
もう少し早く対応すべきでした。

おしまい。

Leave a Comment