2013年8月29日木曜日

JK flip-flop on Pd(PURE DATA)

This article indicates examples of how to make JK flip-flop on Pd(PURE DATA),
without any DSP objects[~] and [expr].

JK flip-flop - Wikipedia(en)

The following circuit is a JK-FF circuit consists only of
arithmetic product, logical NOT, and basic PD objects [trigger] and [f].


This circuit simulates continuous feedback loops of logic circuit,
so a proper accuracy is expected.
Its logic context is pretty honest, and leaves the possibility of make more better.
Just do it as you like.
jkff1.pd

リアルタイムクォンタイザ

ボタン入力時に,効果音が自動的に16分音符に矯正されたリズムで発音される機能です.
これまでの設計の流れを継承しているので,当然シャッフル(リズムのヨレ)にも対応.
リズムよりわずかでも遅れると次のタイミングの入力と見なされてしまうのを防ぐため,
ボタンの入力に猶予をもたせる機構をつけてあり,これに少し手こずりました.
Pdでは,波形を作って任意のタイミングの値を読み出してANDをとるなど,
DSP出力をスカラの次元に持ってくる計算は途端にパフォーマンスが低下するので,
今回は全てスカラ値の計算でやりくりしたところがコダワリ.あとexprも不使用.

autoqnt.mp3

JKフリップフロップ的な構造になったので,いっそJKFFのモジュールも作って公開しようかな.
Pdはそこそこにして,ぼちぼちAndroid SDKのほうに移らないと(汗

2013年8月27日火曜日

OS X Tiger(10.4.11)でのPd-extended

Pdのワークショップや勉強会,ミーティングみたいなものが
国内でもたびたび開催されているらしく,勉強と情報収集も兼ねて
近々行きたいなあと思ったりしはじめました.

当然ながら,そういう場では自前でPdが動く端末を持参することが前提.
私はラップトップPCを持っていないので,どうしたものかと考えてたのですが…

いや,持ってなくはなかったです.
iBook G4の初期型を眠らせていたんでした.2003年発売なので10年前です(!)

2013年8月26日月曜日

簡易サンプラー作成

昨日のごちゃごちゃパッチのサンプラー部分をモジュール化.

課題として挙げていた,「[soundfiler]が"$0"を受け付けないのでローカル変数を使えない」問題はここを参照して解決しました.
PURE DATA forum~ / what is an abstraction, and why use $0, $1 etc ?? 

"$0"がMessageではローカル定数(?)とは解釈されないのが問題なので,一旦"$0"の実体を数値で出力したものをMessageに変換すればよいという話。
というか全く同じ用途(サンプル読み込み機能のある外部パッチを複数作りたい時)の話題が展開されてました.
[f $0]にbangを入れてやると,floatとして"$0"の実体が吐き出されてくるので,
あとはそれを[pack]に入れるなりして対象の形式に合わせてやればいいという事ですね.

というわけで
・Gain
・Pitch
・Gate
の3機能のみ備えた簡易サンプラーを作って外部パッチ化してみました.



twosamples_20130826.zip

2013年8月25日日曜日

Pdでシーケンス生成

楽しくて一日中Pdいじってました. 

昨日のデータを修正して,課題だった
・Shuffleを数値の足し引きではなく,偶数ステップにディレイをつける考え方に変更
・トリッキーな算術モジュール[expr]を使わず[+ ] [/ ]等の通常の算術Objectで計算
を済ませて,この過程で入力のHot/Coldの概念の理解も進んだ.

とりあえず次は再生ピッチ関連の機能だなということで作り進めて,
任意の波形をエンベロープ入力源としたピッチ制御を組み込み.
ついでに既存の波形だけじゃなくオシレータまわりの勉強もしとこうと思い,
16分刻みでミョコミョコ鳴るだけのシンセも入れてみました.

あと,freeverb(オープンソースのReverbですな)が入ってたのでとりあえず挟んでみました.


shufflertest20130824.zip

2013年8月23日金曜日

Pure Data(Pd)ことはじめ

サウンド系アプリを作ってみようと思ったきっかけは,libpdを知ったことにあります.

libpdは,音声処理向けのビジュアルプログラミング言語である
Pure Data(以下Pd)で作ったパッチ(≒キット,システム)を,CやJava等のコードに
組み込むためのライブラリです.

サウンド系アプリはその性質上,オーディオ系の機能に関する要求は
相応にリッチなものが必要になるんだろうなと想像してます.

AVDのconfig.ini

AVD上でメニューキーを押してApps一覧を開くと
「Unfortunately, Launcher has stopped.」
とかいって落ちる件.

特に,仮想のDeviceとしてNexus 7を選択した時に起きるという報告がよくされている模様.

Deviceは特定機種を仕様を想定した各種設定値のプリセットにすぎないので,
この問題はNexus 7固有のものってわけじゃないはず.

解決策としては,AVDのconfig.iniをテキストエディタで開いて
設定値を手でいじるというのが出回ってます.
config.iniの場所は以下.
~/.android/avd/{avd_name}/config.ini
というかAVDのイメージとかスナップショットとかもこのドットディレクトリの中に入ってるんですが.
重いバイナリをローカルにしれっと隠さないでくれよなー頼むよー(懇願)

で,以下の2項目を更新します.

2013年8月22日木曜日

Android仮想デバイスが重すぎて仰天


iOS SDKを入れてみて触ったiPhone Simulatorは
サクサクで快適なテスト環境だったんですが,
Android SDKのAndroid Virtual Deviceに同じものを期待していたら
どっこいはるかに重くて戦慄…
はっきりいって使い物にならんですな.

この規格外な遅さのストレス,なんか昔にあったような…と思ったら,
G4でVirtual PCを動かした時の,あのとてつもない苛立ち。あれだ.


そんなこんなで,みなさん速い仮想マシンを使おうと苦心されているようです。
一番メジャーなのは,ARMではなくx86の仮想マシンを立てて
x86ハードウェアでサポートされてる仮想化支援機能を効かせるという手法のようです.

2013年8月21日水曜日

Get started

最近、実現してみたいゲームを脳内で温めてるんですが,
たたき台でも自分で組み立てられないと,人を巻き込むこともできないなーという所で
しぶしぶ(?)手を動かし始めることにします.

タッチスクリーンタイプのデバイス上で組むことを想定しているんですが,
人を巻き込みたいという前提があると,実機のデバッグ環境がいちいち年会費制になるiOSは
なにかと不便だなあという印象を持ちました.
というわけで,まずはプラットホームとしてAndroidを選んでみたのですが,
当然Androidでのアプリケーション開発を勉強しなければならないわけで…