Touch the Waveのバージョン0.5をApp Storeに再提出しました。
アラートつけるだけだったら一瞬で終わる変更だったんですけど、以前からiPod touch第2世代でまれに再生が止まるという不具合があって、解決するのに時間がかかってしまいました。
どうやら原因は、CALayerだったようです。波形の画像を表示するのにCALayerのcontentsにCGImageを渡して、position.xで動かすってことをやっていたのですが、このposition.xの頻度を上げていくと再生(というかアプリ全体の動作)が止まってしまう確率が高くなるという感じでした。自分のコードが根本的に悪かったという可能性もありますが、第1世代だとまったく出ないんですよねぇ。
解決策として、波形の表示をマルッとOpenGLに差し替えてしまいました。OpenGLはまだ研究途中だったのですが、AppleのサンプルソースのaurioというのがOpenGL ESを使っていたので参考にさせてもらいました。コピペコピペでなんとか取り繕ってます。OpenGLをちゃんと習得したら、プレイヤー画面全体をOpenGLで描画したいです。
aurioといえば、App Storeにaurioの画面表示部分だけを書き換えただけのようなマイク入力ビジュアライザーアプリをちらほらと見かけますねぇ。