ラベル gainer の投稿を表示しています。 すべての投稿を表示
ラベル gainer の投稿を表示しています。 すべての投稿を表示

日曜日, 11月 04, 2007

gnu.io.PortInUseException: Unknown Application

gainer使うのに一苦労してしまった。
まずファームウェアとライブラリのバージョンが合ってなかったのと、シリアルを使う際のこのエラー。

答えはfaqにあった。
Serial \ Libraries \ Processing 1.0 (BETA) \ Processing 1.0 (BETA)

Processing/libraries/serialフォルダ内のmacosx_setup.commandをダブルクリックすると、terminalが起動する。シリアルを使えるようにするプロンプトが出て、Do you want to continue?と聞かれるので、yを入力してエンター。アカウントのパスワードを入力して、そのままOSを再起動。無事使えるようになった。

さらによく見てみると、Gainer公式サイトにしっかり載ってました。
GAINER.cc | Tutorial / Processingで使う

慣れたつもりでやってると痛い目見るので注意が必要ですね。

木曜日, 8月 02, 2007

average.js


Max/MSPで受け取る値の平均をとるjavascript書きました。Maxでのjavascriptって何か慣れなくて、すぐ忘れてしまう。できたと思ったら思いっきりgainerの公式サイトにありました。今まで何回もノイズだったり急激な数値の変化に悩まされてきたもんなー。
GAINER.cc | Cookbook / 移動平均法によるスムージング

これよりかはちょっと柔軟になってて、setメッセージで配列の長さを可変にしてあります。デフォルトは100。resetを送ると配列の中身を全て0にします。

こういうインタラクティブインスタレーションなどでよく使うメソッドはもっと共有されるべきだと思う。
averagejs.zip

木曜日, 6月 14, 2007

gainer digital in


gainerでdigital inからmaxに値を送るとこで一瞬はまったので書いとく。d.inからはmetroで指定した時間間隔で毎回0なり1を出力し続けてる。なのでそのままだとsfplay~がちゃんと使えない。toggleの見た目的にはずっと1になってていけてそうだが、実際は毎回頭出しされてることになる。なので、togedgeを使って0から1、もしくは1から0になった時だけメッセージを送るようにしてあげればよい。togedgeはインタラクティブ系ではすげーお世話になるので覚えておくと便利。画像はd.inからのメッセージが1の場合と0の場合で別の音源を鳴らすデモのために作ったパッチの一部。
record~オブジェクトで1の間だけ録音したい場合もこれで対応できる。これやっとかないと一瞬録音されてまた次の1が来た時にbuffer~の内容が書き換えられてしまう。append 1メッセージを送れば一応togedge使わなくても回避できるけど、挙動が違ってくるので目的に応じて変えるべき。

土曜日, 3月 10, 2007

gainer with python

pythonでgainerを制御してみる。
シリアル通信を行うにはPySerialが必要なので、ダウンロード

ダウンロードしたらterminalからpyserial-2.2フォルダに移動。
2.3.5で動かしたいので、

/usr/bin/python setup.py install

とする。

フォルダの内容を表示するlsコマンドと検索のgrepコマンドをpipeして

ls /dev/ | grep cu

とすればcu.usbserial-A30010IAというのが見つかるので、それがデバイス名。

pythonを起動してPySerialをimport。デバイス名などを入力。
>>> import serial
>>> ser = serial.Serial('/dev/cu.usbserial-A30010IA', 38400, timeout=1)

コンフィギュレーションを指定
>>> ser.write('KONFIGURATION_1*')

gainerにくっついてるledを点灯
>>> ser.write('h*')

消灯
>>> ser.write('l*')

これでpysndobj使ってlivecoding + wiringができる!?する!?

参考になりました。
PySerial READMEの和訳
pythonでgainerを制御する