月別アーカイブ: 2009年1月

Big StopWatch v1.1

Big StopWatchのv1.1が公開されました。今回はAppleの中の人とちょっとしたやり取りがあってからの公開という感じでした。「スナップモード」って何が違うの?って質問だけで、特にリジェクトになるという内容では無かったんですけど。 とりあえず、今回はバッテリー消費を抑えるだけのアップデートになります。v1.0だと何もしてなくても画面を更新していたりしたのですが、計測をストップしているときには更新しないようにしてます。短い時間を計測する使い方をする場合は効果があると思いますが、ずっと動かしっぱなしだと、まったく変わりません。 目盛り単位でカクカクと動くSnapモードを設定アプリ... read more

Touch the Wave v0.5.4

Touch the Waveのv0.5.4が公開されました。今回の追加・修正点は、 ・設定アプリでIOバッファサイズの設定が出来る ・非対応のAIFF・WAVファイルのダウンロードや再生を無視 という2点です。 iPod touch第2世代をご利用の方は、必ずIOバッファサイズを256に変更してください。1024だと今まで通りノイズが入ります。256にすることでノイズが入らないだけでなく、波形のスクロールも60fps近くのスムーズさになって、スクラッチのレスポンスも良くなってます。 逆に、iPhoneやiPod touch第1世代でご利用の方は、デフォルト状態の1024から変更しな... read more

アプリのアップデート予定

Touch the WaveのiPod touch第2世代ノイズ対策版を提出してあります。特に問題なければ今週中にはアップされるんじゃないでしょうか。 ちょっと不本意ではあるのですが、設定アプリ内で「iPhoneまたはiPod touch第1世代」か「iPod touch第2世代」を選択してもらうという形になっています。できればユーザが設定しない形で解決したかったんですけど、世代の違いを判別する方法などが見つからなかったので、あきらめました。 Big StopWatchの方は、やっぱりバッテリーの消費が気になるので、うまいこと処理を軽減する方法を模索してます。ストップ中の画面更新を止める... read more

AudioSession その2 AudioCategory

iPhoneのアプリでオーディオを再生・録音する場合に、iPodの音楽を鳴らしたままミックスして出したり、ロックした時にも音を出せるようにするには、AudioSessionSetProperty関数を使ってAudioCategoryというのを設定します。 AudioSessionSetPropertyはこんな感じで宣言されています。 extern OSStatus AudioSessionSetProperty(AudioSessionPropertyID inID,           ... read more

BigStopWatch v1.0 公開しました

去年の7月にAppStoreへの提出を試すためにストップウォッチのアプリを作ってReady for Saleまで行っていたのですけど、あまりにも工夫も無くビジュアル的にもいまいちなやつだったので自らリジェクトしていまして、でもOpenGLもある程度使えるようになってきたのでゼロから作り直して公開しました。 緑色の針が秒、赤色の針が分を指し示しています。一周はそれぞれ60秒と60分です。60分しか計れません。60分を過ぎると0分0秒に戻ります。 画面全体のどこかをタップするとスタートし、もう一回タップするとストップします。ストップしているときに右上に現れるRESETの文字をタップす... read more

Touch the Wave v0.5.3

Touch the Waveのv0.5.3が公開されました。AppStoreの新機能にも書いてあるメインの修正点は、 ・スクラッチ時のノイズを軽減 ・アラーム等の後にアプリが終了する不具合を修正 でして、細かいところでは、 ・プレイヤーのロック時にループボタンをダブルタップするとループ範囲がリセットされる ・音符ボタンがきれいになった ・ダウンロードしているファイル全体の容量が表示されるようになった といったところです。 iPod touch 2Gで入ってしまうノイズはまだ解決していません。IOバッファサイズを256サンプルにすると入らないようなのですが、そうすると今度はiPhon... read more

AudioSession その1 Interruption

以前、RemoteIOでのオーディオ再生というエントリでRemoteIOでオーディオ再生をする方法を書きましたが、それだけだとiPhoneのアプリとしては設定が不足です。オーディオを扱うアプリでは、AudioSessionというAPIを使って、オーディオに関する情報の取得や設定を行います。SystemSoundServiceなんかのお手軽再生系では無用の様ですが、AudioUnitを使う場合には必須といえるでしょう。 ちなみに、AudioSession系の関数はシミュレータではエラーが出て一切受け付けてくれず、実機にしか効果が及びません。また、デフォルトのオーディオIOのバッファサイズは... read more

iPod touchのInterruption Callback

iPhoneでアラームとか通話とかが割り込んできてアプリのオーディオが停止してしまうときの通知を受け取るにはAudioSessionでInterruption Callbackを登録するって感じなのですが、サンプルソースなどは以下のようなコードになってまして… void rioInterruptionListener(void *inUserData, UInt32 inInterruption) { AudioUnit *remoteIO = (AudioUnit*)inUserData; if (inInterruption == kAudioSessi... read more