iPhone用の凶暴なカオス的オーディオ・オシレータ、Sinwave.appを作成しました。なかなか素晴らしいサウンドなのですが、操作するうちに確実にiPhoneがフリーズするので(笑)、取り敢えず公開したのはYouTubeでのデモ・ムービーだけです。偶然だと思うけど、ファイルの一部が破損したこともあって、音だけでなく動作も狂暴なのかもしれません。タイトルもSinewave(サインウェーブ、サイン波)じゃなくって、Sinwave(シンウェーブ、罪悪波?過失波?)ですよ。

元々は、そろそろ(面倒っぽいけど)Audio Queueをやらなきゃな〜ってことで、James McCartney氏が作成したSinewaveなるCocoaアプリをiPhoneに移植しようとしていました。JamesはSuperColliderのオリジナル開発者で、SuperColliderをMac OS Xに移行させる前段階として試作したのがソレね。移植と言っても、Cheetah(Mac OS X 10.0)時代のHALとLeopardから導入されたAudio QueueとではAPIが違うので、サイン波生成部分をいただいて、GUIを似せた程度ですけどね。ちなみに、サイン波生成は単純にsin()関数ですね。プログラミング言語では伝統的にsine()じゃなくってsin()です。
それで、何度かのビルド・エラーとランタイム・エラーを乗り越えて、初めてiPhoneから出た音がコレだったんです。もう一発でシビレました(低脳表現だな〜笑)。おそらく、バッファにデータを書き込む時に馬鹿をしていて、そのせいで凶暴音になるし、場合によってはフリーズしちゃうんですね。でも、そんなことはどうでも良いくらいにグレートな音だったので、それ以上コードを直すことを止めて、ビルドしたアプリを永年保存することにしました。
ミスやエラーが創造に繋がることは多々指摘されているけど、このケースもその典型ですね。一方で、公式SDKや公式実行環境では、こんな無謀が許されないかもしれず、その点が心配になります。セキュリティ絡みで窒息している馬鹿Flashが良い(悪い)例ですから。砂場(サンドボックス)では、創造性は萎びてしまいます。無茶をやりましょう。無茶ができる環境を求めましょう。無茶な世界でも、紳士淑女として振る舞えるからね(ってのは性善説、セキュリティは性悪説)。
ピンバック: 2/9は東京でBBBライブ « akalogue