全般 - Mac

さらに今更ながら、ASCII.jpさんの「マルチコア時代の新機軸! Snow LeopardのGCD」に、わりと一般向けの説明から始まって、コードを使用したプログラマ向けの説明までしているページがあ…  
いまさらながら、GCDのサンプルソースはMac Dev Centerにもいろいろありますので参考に。中でもDispatch_Samplesなんかはシンプルなサンプルがたくさん集まってますので、最初に…  
ディスパッチまだまだ続きます。でも、処理の高速化ってことを考えると、GCDよりOpenCLのほうが効果的なんじゃないかって気がしてきました。まあ、Airでしか試してないからだと思いますけど。 ディス…  
前回紹介したdispatch_applyはブロックの処理が終わるまで待ってくれていましたが、dispatch_asyncは別スレッドで処理されてしまうので、どの順番で処理されるのかも分からない状態で…  
前回のコードのように同じ処理をforループでキューに渡すようなとき、それ専用の関数がディスパッチには既に用意されています。dispatch_applyです。 void dispatch_apply(…  
Queueを作る ディスパッチの基本的な使い方は、処理したいコードをブロックや関数で用意しておいて、キューにそのブロックや関数を渡すという流れになります。 ディスパッチのキューには2種類あります。ア…  
Grand Central Dispatchについて日本語で丁寧に詳しく説明してくれるサイトはないかなぁと待っていたのですが、待っている間にひととおり自分なりに調べ終えてしまったので、まとめて書いて…  
iPodのクリックホイールのように、グルグルと円を描いて値を増減させる例です。NSViewのサブクラスで以下のような感じに。1周まわすと1.0増減します。 //// YKJogWheelView.h…  

for文の宣言

以前、Objective-Cのメソッド内で、 for (int i = 0; i みたいにfor文の中で宣言をするとエラーが出ていましたが、いつの間にか使えるようになってました。c99対応ってこと…  

24ビット

24bitのオーディオデータを作ったり読みこもうとしてもObjective-C(というかC言語)では24bitの型がありませんので、符号付き32bit整数の上位24bit分を使うというのが簡単な方法で…  
オシロスコープで表示できるようなリサージュ波形を描画するには、 x = sin(右チャンネルのオーディオデータ);y = sin(左チャンネルのオーディオデータ); という感じでサンプルごとに座標を求…  
テンポラリのディレクトリの中のテンポラリのファイル名を取得するサンプル。 NSTemporaryDirectory()でテンポラリフォルダを取得。mkstempsでテンポラリファイル名が取得できるが、…  
NSInvocationOperationとか使っていて、NSInvocationの作り方が良くわからなかったので、自分で作る方法を調べてみました。以下のコードがNSInvocationを使ってtes…  
オーディオとは直接関係ありませんが、CoreAnimationでCALayerを動かし続けたい時の方法です。プロパティ変更での暗黙的なアニメーションだといろいろと不都合なので、CABasicAnim…  
iPodとかQuickTimePlayerのような、再生する位置を表示・変更できるようなスライダーを使いたいと思って、NSSliderにジャカジャカ位置を送っていたら、うまいことクリックして変更できな…  
NSOperationってCoreAnimationみたいな派手な機能と違って、あまり解説されていない気がするので、使い方を書いておきます。オーディオのアプリケーションでも、読み込んだオーディオファイ…  
0.0 = -inf dB、1.0 = 0dBとした場合。 リニア値からdBへ変換するには、 dBVolume = 20.0*log10(linearVolume); dBからリニア値へ変換するには、…  
Panの設定値をL=0.0、R=1.0としたとき、Lchのボリュームはcos()に、Rchのボリュームはsin()にpan*π/2を渡す。 float lVolume = cos(pan*M_PI_2…