Mac

AudioConverter

pcm_sourceにAudioConverterを組み込んで、サンプリングレートの変換を実装しました。 今日の差分 AUConverterというAudioConverterのラッパーAudioUnitがるので、本当はこれを使いたかったのですが、これを繋ぐと入力コールバックを設定できなくなるので使…

Mac版pcm_source

rresize()のバグで激しくメモリを壊していたので修正しました。 circular_buffer.hppの差分 メモリ破壊の結果、スレッドの管理情報を壊していて、pthread_join()やpthread_cond_wait()がおかしな動きをしていました。 gdbで特定のアドレスが書き換わったらブ…

framework

BBv2のdarwinツールセットで-frameworkオプションを使いたい場合、 exe hoge : hoge.cpp : <framework>/System/Library/Frameworks/AudioUnit.framework ;のようにフレームワークのディレクトリを指定するみたいです。 ベース名が-frameworkオプションに、ディレクトリ</framework>…

AudioUnit

昨日はCoreAudioの低レベルAPIであるAudio Hardware Abstraction Layerを使うことを検討していたんですが、 ネイティブエンディアン32ビット浮動小数点数フォーマットしか使えない サンプリングレートを変更するとシステム全体に影響する(っぽい) 入力と出力…

kAudioFormatFlagIsNonInterleaved

CoreAudioを弄って音を出すところまで試しました。(というか出したつもり) SourceForge.jpのコンパイラファームで試しているんですが、リモートからsshでログインしてオーディオデバイスがオープンできてしまいました。 これっていいんでしょうかね。データ…

CoreAudio

Hamigaki.AudioをOSXでも動かせないものかと思ってCoreAudioについて調べてみました。 ざっと見た限り、ASIOのインタフェースに良く似ていて、コールバック関数でバッファを埋める形式のようです。 これならasio_sink/asio_sourceのコードを流用できそうです…

Darwinのスレッドキャンセルポイント

Darwin(OSX)でHamigaki.Coroutineが動かない件を調査しました。 Darwinには<ucontext.h>ヘッダは存在するものの、getcontext()等の関数はないため、(とりあえずは)pthreadによるエミュレーションモードを使うことになります。 で、そのpthread版が動かなかったわけですが</ucontext.h>…

OSX(PowerPC)に対応

SourceForge.jpコンパイルファームのPowerPCマシンのOSがMac OSX Tigerになりました。 gccのバージョンを確認すると4.0.1になっていて、これでようやくBoostが動かせます。 /dev/dspはないのでHamigaki.Audioは動きませんが、他は概ね動くようです。 Hamigak…

MWCPPC

今日はエンディアンがらみでMac関連の情報を漁っていました。 Macの本体は持っていないのですが、CodeWarrior8.3 for Winを持っていて、これにMac用のシステムヘッダが含まれていることに気付きました。 ヘッダを眺めていたらコンパイルもしたくなったので、…