Page:  1   2   3  ALL
December 27, 2007

MaxとFlashの連携part2

Written by noriko matsumoto | Flash , Max+Others

MaxMspとflashの連携part2です。
いろいろとほかもあるかなというところで今回の方法はweb周りで解決

その1、phpでの連携

flash→loadvarsでphpへpost→同じphpでpostされたデーターをそのままudp→
MaxMspはOpenSoundControllで受ける。
サーバーのphpも特にphp.iniをいじったりといった設定はないのでレンサバでも一応可能
ただし、phpをレンサバにおいた場合、ポートの問題はあり。
(MaxMsp→php→の場合はphp.iniを一部変更有り)
MaxMspとphpが同じサーバーにあればベスト。

その2 xmlでの連携

flash→loadvarsでphpへpost→phpでxmlを吐き出し→MaxMspはxmlを一定時間でreadする
リロードなのでどうしてもちょっと遅くなるでしょう。
MaxMsp→flashの場合にいいかと。flash側はインターバルで一定時間xmlを読み込みしデータの変化を見る。
あまり、ポートなどに左右されない。
別にxmlじゃなくてもテキストファイルの上書きをするというのでもあり。

その3、db経由で連携

flash→loadvarsでphpへpost→同じphpでpostされたデーターをmysqlへ格納→MaxMspはmysqlを一定時間で監視
送る変数の数が多いとこれがいいとおもいます。
MaxMsp側はmysqlオブジェクトとかを使用、php側にsql文を仕込む
この場合はphpとMaxパッチが同じipになくてもよい。

mysqlの使用するポートが手元からレンサバまで行けるかはそれぞれですが
mysqlが入っているサーバーであれば、レンサバでも可能。

phpにポストされた時点でその1と組み合わせて、簡単な数値(1とか)だけmaxに渡す→それをうけてMaxMsp側はDBを見に行く
というパターンが考えられます。

その1ですが、
http://www.galen.ca/research/streams.phpを参考にすればmacをサーバーにしてる人はサンプルについてくるphpで稼働しますね。(10.4&php5)
*最近、作業環境がwinなのですがサンプルについてくるのphpではwindows2003server+php5+apache2ではなにも表示されませでした。書き換え場所がいくつかあります。

flashからのpostを含めてflash→php→maxmspのためのphp
はこんな感じ
 サーバー環境 windows2003+php5+Apach2+MaxMsp4.6

ーーーーーーーーーーーーーーーーーーーーー
//flashからポストを受けとる。
$toMax=$_POST["toMax1"];
$toMaxMsptext="maxstartflg_0";
//udpポートへ送信
//IPの設定 MaxMspが稼働しているマシンのIP
$ip = "localhost";
//ポートの設定
$port = 5500;
//ソケットの作成
$fp = fsockopen("udp://$ip", $port);
//配列に格納
$header = array("name" =>$toMax, "vol1" =>$toMaxMsptext);
//配列の要素分繰り返す
foreach($header as $key => $value) {
$NewString = "$key $value";
print "$NewString";
if ($value){
$messege = strlen($NewString);
$r = 4 - $messege % 4;
for($i = 0; $i < $r; $i++){
$NewString = "$NewString?0";
}
fwrite($fp, "$NewString");
}
// ソケットをクローズ
fclose($fp);
//メッセージの設定
$fromphp_mess="ok sent to max";
//flash側へメッセージを返す
print "&val=true";
print "&fromphp=".$fromphp_mess;
ーーーーーーーーーーーーーーーーーーーーー

flash側

SendData = new LoadVars();
SendData.toMax1 = "00000";
SendData.sendAndLoad("@@@@.php",SendData);

SendData.onLoad = function() {
if(this.val){
trace(this.fromphp);
}
};

ーーーーーーーーーーーーーーーーーーーーー

max側
udp.png

phpからのname とvol1を受信しています。
その2と3はそのうち。
ではでは。

続きがあります "MaxとFlashの連携part2"

XMLsocet AS3:Flashserver fun!

Written by noriko matsumoto | Flash , Max+Others

MaxMspとFlashとの連携でターミナルからserverを起動させる必要もないし、
さくっとすてきなのがFlashserverオブジェクトなんですが。
as3のが欲しかったので、Flashserverで活用できるXMLSocket classをポスト。
sendはpublicなのでほかからよんでみると楽しいかも。
*下記はloadの時に2008をMaxMsp側におくる所がはいっています。

FlashserverFun.as
package {

import flash.display.Sprite;
import flash.events.*;

import flash.net.XMLSocket;

public class FlashserverFun extends Sprite {
//ポート番号 MaxMsp flashserverオブジェクトの動いているマシンIP
private var hostName:String = "localhost";
//ポートは flashserverオブジェクトと合わせる
private var port:uint = 5000;

//ソケットを作成
private var socket:XMLSocket;
//送りたい数値
private var val:String="2008";
//マックスで受け取る変数名を指定
private var header:String="val";

//okurude = symbol + " " + value + ";"

public function FlashserverFun() {

socket = new XMLSocket();
configureListeners(socket);
socket.connect(hostName, port);
//MaxMspへの送信メッセージ ; は必ず必要

var sendheader=header+" "+val+";"
//trace(sendheader);
send(sendheader);


}

public function send(data:Object):void {
//センド命令関数

trace("send "+data);
socket.send(data);

}

private function configureListeners(dispatcher:IEventDispatcher):void {

dispatcher.addEventListener(Event.CLOSE, closeHandler);
dispatcher.addEventListener(Event.CONNECT, connectHandler);
dispatcher.addEventListener(DataEvent.DATA, dataHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);

}

private function closeHandler(event:Event):void {

trace("closed: ");

}

private function connectHandler(event:Event):void {
//つながったらこれ
trace("connectOK: ");


}

private function dataHandler(event:DataEvent):void {
trace("data: ");
}

private function ioErrorHandler(event:IOErrorEvent):void {
trace("ioError: ");
}

private function progressHandler(event:ProgressEvent):void {
trace("progress:");
}

private function securityErrorHandler(event:SecurityErrorEvent):void {

trace("securityError: ");
}
}
}

-----------

This is a christmas present for nocchi!
Cheers!

続きがあります "XMLsocet AS3:Flashserver fun!"
July 03, 2007

AS3用のfloscクラス

Written by Satoshi HORII | Flash , Max+Others

FLASHでOSC(OpenSoundControl)を可能にするfloscのAS3用のクラスが作成されてます。

Flosc AS3 Classes

実際に使ってみた感じとしては、

66、67行目
dispatchEvent(new OSCConnectionEvent(OSCConnectionEvent.ON_CONNECT,null));
mConnected = true;
を、
mConnected = true;
dispatchEvent(new OSCConnectionEvent(OSCConnectionEvent.ON_CONNECT,null));
逆に。

110行目あたりの、
//string
if (type=="s") {
data.push(child.attributes.VALUE);
}
の後に、
//int
if (type=="i") {
data.push(child.attributes.VALUE);
}

を挿入すると、よいかと思った。

November 15, 2006

GAINERワークショップ@カフェ・パルル

Written by Katsuhiko Harada | Device , Max+Others , info

GAINERワークショップの情報を転載します。ご興味のある方は、是非。
  申し込み先着順らしいので、お早めに!!  11月24日までです。


「GAINERワークショップ @カフェ・パルル」
  フィジカル・コンピューティングへの招待

 マウス、キーボード、ディスプレイといった、標準的な PCの入出力デバイスでは完結しない作品を作ろうとすると、「どこからはじめたらよいのだろう?」と迷ってしまうことがあるかもしれません。例えば、 LEDを1個点灯させてみようというだけでも、いざやろうとするとなかなか大変なものです。また光や温度、接触などを感知するさまざまなセンサー類を制作に応用しようとする場合も、どうやればPCとの間で橋渡しが出来るのか、難しそうであきらめてはいませんか?
 IAMAS のPDP(プログラマブル・デバイス・プロジェクト)のメンバーが中心となって開発した「GAINER」は、この要望にこたえてくれる、安価で多機能なUSB対応 I/Oモジュールです。
 このワークショップでは、電子回路の簡単な説明に始まり、「GAINER」キットを組み立て、PC に「GAINER」と何種類かの入出力デバイスを接続し、実際に動かしてみるところまでを実習します。使用するソフトウェアはCycling '74社のMax/MSPです。
 今回は開発者の小林茂氏をお招きして名古屋で初めて行う一般ワークショップとなります。この機会にPCの一歩外側に踏み出して、みなさんの制作の幅をひろげてみませんか?

【日時】12月2日(土)/3日(日) 2日連続。両日とも13:00 - 18:00。
※ワークショップは2日間連続で受講して下さい。1日だけの参加はできません。
【会場】カフェ・パルル(旧カノーヴァン)2F  名古屋市中区新栄2-2-19
http://www.parlwr.net/cat6123459/index.html
【講師】小林茂(IAMAS)
【定員】10名(申し込み先着順)
【参加費】12,000円
※参加費にはGAINERキット本体および実習用パーツ(ブレッドボード、LED、センサーなど)が含まれます。
※参加費はワークショップ初日(12月2日)に全額現金でお支払いいただきます。2日目を欠席された場合でも返金はできませんのであらかじめご了承下さい。

【参加条件】
※参加申し込みが5名に満たない場合、開催しない場合があります。
※2日間連続で参加して下さい。1日だけの参加はできません。
※ワークショップには以下のものをご持参下さい
 ●コンピュータ(OSはMac OS X、Windows XP。事前にMax/MSP 4.5以降をインストールして下さい。)
 Max/MSPをお持ちでない方は以下のサイトから30日間無償トライアル版がダウンロードできます。
  http://www.cycling74.com/downloads/maxmsp
 ●ニッパ、ハンダごて、こて台(数セットは用意いたしますが、お持ちの場合には持参して下さい)

【申し込み方法】以下の内容を申し込み期限(11/24)までに電子メールで送信して下さい
<件名> GAINERワークショップ参加申し込み
<宛先> sakonda[at]nifty.com
<本文>
ご氏名:
ご住所:
電話番号:
ご持参いただくコンピュータ(機種・OS・OSバージョン):
Max/MSP使用経験の有・無:
ニッパ、ハンダごて、こて台持参の有・無:

【申し込み期限】2006年11月24日(金)

【参考情報】
「GAINER」とは?
http://gainer.cc/wiki/index.php?title=What_is_GAINER%3F/ja
今回のワークショップの参考資料
http://gainer.cc/wiki/index.php?title=Tutorial/Basic/Common/00/ja
http://gainer.cc/wiki/index.php?title=Tutorial/Basic/Common/01/ja
http://gainer.cc/wiki/index.php?title=Tutorial/Basic/Common/02/ja
http://gainer.cc/wiki/index.php?title=Tutorial/Basic/MaxMSP/01/ja
http://gainer.cc/wiki/index.php?title=Tutorial/Basic/MaxMSP/02/ja
http://gainer.cc/wiki/index.php?title=Tutorial/Basic/MaxMSP/03/ja
過去の展示
http://gainer.cc/wiki/index.php?title=Exhibitions/ICC
過去のワークショプの例
http://www.iamas.ac.jp/~mayfair/archives/2006/03/iamas.html
http://gainer.cc/wiki/index.php?title=Workshops/PCW2006

【講師プロフィール】
小林茂。国際情報科学芸術アカデミー講師(DSPコース担当)。1993年より電子楽器メーカーに技術者として勤務した後、2004年7月より IAMASでフィジカル・コンピューティング等のレクチャーを担当。主な興味は電子楽器を含むユーザー・インタフェース。最近の主な研究は今回のワークショップでも使用する『GAINER』。

【問い合わせ先】
佐近田展康 sakonda[at]nifty.com

企画:佐近田展康(名古屋学芸大学)
協力:IAMAS、名古屋学芸大学

続きがあります "GAINERワークショップ@カフェ・パルル"
July 03, 2006

GAINERを使う:GAINER v.1

Written by Katsuhiko Harada | Device , Max+Others , processing

はじめまして。原田克彦と申します。
以前のエントリにもあがっていましたが、I/Oモジュール"GAINER"についてです。

Content
■GAINERとは
■GAINERを使用した例「Haohao_table」
■GAINERを体験!!


■GAINERとは

GAINERは、iamasのPDP(Programable Device Project)GAINER v1.0 開発チームによって開発されています。GAINERはPCとUSB接続で、センサからの値を取得したり、LEDやモータなどのアクチュエータを制御するI/Oモジュールです。マウス、キーボード以外からの入力、音と映像以外での出力などを行いたいときに、比較的簡単に取り扱うことができます。
体験してみないと得られない感覚やインタラクションを含むシステムなどをすばやく試作することで、頭の中で考えていても消えてしまいやすい動的なアイデアを具現化する手助けをしてくれます。このような環境をアーティストやデザイナーなど、より多くの人に利用してもらうことが目的です。


    GAINER v.1










これも以前に書かれていたことですが、この様なI/O Module,Unitは、様々なものがあります。その中でGAINERと他のI/O Module との違う特徴を示すことで、GAINERの説明としたいと思います。I/O Module??という方は、前のエントリの「I/O Board,Module,Unit」でセンサーを使うを参照してください。

GAINERの特徴
•ユーザは自分自身のモジュールを部品レベルから組み立てて理解を深めることができる
•モジュール製作後は、部品やリード線を差すだけで回路が組み立てられるブレッドボードに   装着して利用できる
•ユーザは複数のコンフィグレーションの中から目的にあったものを選択できる
   -アプリケーションによってアナログ入力、デジタル入力、デジタル出力、PWM出力の数の   割合を用意されているパターンから選ぶことができます-
•プログラマブル•ゲインアンプにより、アプリケーション側から出力電圧の小さなセンサなど  の信号を増幅させることができる
•ソフトウェア&ハードウェアがオープンソースで公開
   -ソフトウェアライブラリは、Mac osXとWindows XPの両プラットフォームでMax/msp,   Processing,Flashが用意されています-


    GAINER Parts

    Max/msp ソフトウェアライブラリ









詳しくは、http://gainer.cc/にて。



■GAINERを使用した例「Haohao_table」

GAINERを使用した製作例として「Haohao_table」を製作しました。Haohao_tableは、丸テーブルに近づく人々の距離によってテーブル上に一枚の絵が生成される作品です。テーブルの中心にあるプランタには距離センサが六方向に内蔵しており、人やテーブル上のモノの距離によって生命体haohaoが発生します。haohaoには、オス•メスが存在し両性の関係が痕跡としてテーブル上に残ります。この作品は描画にProcessing、距離センサの入力にGAINERを使用しています。


    Haohao_table

    Haohao_table
    Takanori ENDO, Ichitaro MASUDA,
    Katsuhiko HARADA












ここでGAINERが使用している機能としては、6つの超音波センサが出力する距離に比例する電圧をアナログで入力し数値化しています。また、一度にすべての超音波センサを使用すると超音波が干渉し正確な値が採れないため、3つのデジタル出力によって対角線上のセンサだけが動くように制御しています(ポーリング制御)。ここでのGAINERからの値の取得・制御、テーブルに投影するイメージの描画にはProcessingを使用しました。

    Haohao_table SYSTEM











    Planter

    Inside Planter














■GAINERを体験!!

「Haohao_table」を含めるGAINERは現在、初台にあるNTTインターコミュニケーション・センター(ICC)のオープン・スペース研究開発エリアに展示されています。また、Max/msp,ProcessingによるGAINER体験コーナー、これまでのワークショップの映像、GAINERキットが展示されています。ショップでは、GAINERキットも販売しています。(オンラインでも購入できますが、お近くの方はどんなものなのか、ICCで体験してから購入することをおすすめします。)
研究開発エリアを含めた常設展示は無料なので、近くにお寄りの際は是非足をお運びください。


    GAINER ICC















    GAINER体験コーナー

    GAINER体験コーナー











なんか、最後は宣伝じみてしまいましたが、今後もデバイス、ハードウェア的なトピックがあったら、書きたいと思っています。よろしく。

(写真資料提供:ICC)


続きがあります "GAINERを使う:GAINER v.1"
Page:  1   2   3  ALL