月別アーカイブ: 2008年7月

24ビット

24bitのオーディオデータを作ったり読みこもうとしてもObjective-C(というかC言語)では24bitの型がありませんので、符号付き32bit整数の上位24bit分を使うというのが簡単な方法ではないかと思います。 ただこの場合、32bitの下位8bitは単純に切り捨てられますので、音にこだわるのであればディザをかけたりしたほうが良いのかもしれませんが、とりあえず今回は無視します。 32bit領域のAlignedHighなデータとして渡したりするのであれば何もしなくてもいいですが、32bit領域でAlignedLowな24bitのデータにしなくちゃいけないなんて時があったりしたら、 S... read more

リサージュ波形を表示する

オシロスコープで表示できるようなリサージュ波形を描画するには、 x = sin(右チャンネルのオーディオデータ);y = sin(左チャンネルのオーディオデータ); という感じでサンプルごとに座標を求めて、線で繋ぐ。 NSViewのサブクラスでこのようなインスタンス変数があるとして、 NSUInteger length; //オーディオデータのサンプル数 float *lPtr; //左チャンネルのオーディオデータ float *rPtr; //右チャンネルのオーディオデータ 以下のようにdrawRectメソッドを記述する。(※2008/7/... read more