<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" version="2.0">

<channel>
	<title>l00oo.oo00l blog</title>
	
	<link>http://l00oo.oo00l.com/blog</link>
	<description />
	<pubDate>Sun, 21 Jun 2009 14:44:12 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/l00oo_oo00l" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="l00oo_oo00l" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>確率でトリガーするMIDIシーケンサー</title>
		<link>http://l00oo.oo00l.com/blog/archives/354</link>
		<comments>http://l00oo.oo00l.com/blog/archives/354#comments</comments>
		<pubDate>Sun, 21 Jun 2009 14:44:12 +0000</pubDate>
		<dc:creator>l00oo.oo00l</dc:creator>
		
		<category><![CDATA[max/msp]]></category>

		<category><![CDATA[midi]]></category>

		<category><![CDATA[sequencer]]></category>

		<guid isPermaLink="false">http://l00oo.oo00l.com/blog/?p=354</guid>
		<description><![CDATA[
たまに音楽制作で使っているMax/MSPで作ったMIDIシーケンサーを、スクリーンキャプチャで動画にしてみました。（ブログ上だと画面が小さいのですが、vimeoのロゴの横のボタンを押すとフルスクリーンで見れます。またvimeoのページに飛んでもらえばHDでも見れます。）

動画ではMax/MSPから、Ableton Liveのサンプラーをトリガーしてます。
簡単に説明すると、32ステップのシーケンサーで、縦のスライダーが各ステップでMIDIをトリガーする確率になります。スライダーがマックスのときは必ずトリガーされ、半分だったら50%の確率でトリガーされます。
そのシーケンサーを左右で2機搭載しており、下のクロスフェーダーで切り替えられます。クロスフェーダーを真ん中にすると、ちょうど中間のパターンになる感じです。例えば、左のスライダーがマックスで、右のスライダーがゼロ、クロスフェーダーが真ん中だと、50％の確率でトリガーされます。このようにクロスフェードすることで、シーケンスのモーフィングみたいな効果が得られます。
メインのパッチは下の画像のようになってます。けっこうスッキリしているのは、ほとんどの計算をmaxのJavaScriptで処理してるためです。

]]></description>
			<content:encoded><![CDATA[<p class="visual"><img class="alignnone size-full wp-image-352" title="morphseq" src="http://l00oo.oo00l.com/blog/wp-content/uploads/2009/06/morphseq.png" alt="morphseq" width="500" height="224" /></p>
<p class="visual">たまに音楽制作で使っているMax/MSPで作ったMIDIシーケンサーを、スクリーンキャプチャで動画にしてみました。（ブログ上だと画面が小さいのですが、vimeoのロゴの横のボタンを押すとフルスクリーンで見れます。また<a href="http://vimeo.com/5185555" target="_blank">vimeoのページ</a>に飛んでもらえばHDでも見れます。）</p>
<p><object width="520" height="325" data="http://vimeo.com/moogaloop.swf?clip_id=5185555&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=ff3366&amp;fullscreen=1" type="application/x-shockwave-flash"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=5185555&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=ff3366&amp;fullscreen=1" /></object></p>
<p class="visual">動画ではMax/MSPから、Ableton Liveのサンプラーをトリガーしてます。<br />
簡単に説明すると、32ステップのシーケンサーで、縦のスライダーが各ステップでMIDIをトリガーする確率になります。スライダーがマックスのときは必ずトリガーされ、半分だったら50%の確率でトリガーされます。<br />
そのシーケンサーを左右で2機搭載しており、下のクロスフェーダーで切り替えられます。クロスフェーダーを真ん中にすると、ちょうど中間のパターンになる感じです。例えば、左のスライダーがマックスで、右のスライダーがゼロ、クロスフェーダーが真ん中だと、50％の確率でトリガーされます。このようにクロスフェードすることで、シーケンスのモーフィングみたいな効果が得られます。</p>
<p class="visual">メインのパッチは下の画像のようになってます。けっこうスッキリしているのは、ほとんどの計算をmaxのJavaScriptで処理してるためです。</p>
<p class="visual"><a href="/blog/wp-content/uploads/2009/06/morphseq3.png" rel="shadowbox[post-354];player=img;"><img class="alignnone size-full wp-image-358" title="morphseq3" src="http://l00oo.oo00l.com/blog/wp-content/uploads/2009/06/morphseq3.png" alt="morphseq3" width="500" height="302" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://l00oo.oo00l.com/blog/archives/354/feed</wfw:commentRss>
		</item>
		<item>
		<title>OpenCV 顔認識</title>
		<link>http://l00oo.oo00l.com/blog/archives/332</link>
		<comments>http://l00oo.oo00l.com/blog/archives/332#comments</comments>
		<pubDate>Sun, 07 Jun 2009 14:01:30 +0000</pubDate>
		<dc:creator>l00oo.oo00l</dc:creator>
		
		<category><![CDATA[processing]]></category>

		<category><![CDATA[curve]]></category>

		<category><![CDATA[opencv]]></category>

		<category><![CDATA[ribbon]]></category>

		<category><![CDATA[spline]]></category>

		<guid isPermaLink="false">http://l00oo.oo00l.com/blog/?p=332</guid>
		<description><![CDATA[
OpenCV のフェイス・トラッキングの実験を Processing でやってみました。
macbook のカメラからリアルタイムに顔を追跡して、曲線が顔を覆います。
線はスプライン曲線を Eric Natzke の Ribbon の要領で太さを持たせ、バネの仕組みで動かしてます。

制作途中、突然動かなくなって焦ったんですが、昼間すごく天気が良くて、逆光で顔を認識できてなかったのが原因でした。(笑)
Vimeo にアップロードしたら再圧縮で汚くなってしまったので、別で Quicktime 版もアップしております。
face_tracking_ribbon.mov
]]></description>
			<content:encoded><![CDATA[<p class="visual"><a href="http://www.flickr.com/photos/l00oo_oo00l/3603278934/" target="_blank"><img src="http://farm4.static.flickr.com/3598/3603278934_4318cfa63e.jpg?v=0" alt="" width="500" height="375" /></a></p>
<p>OpenCV のフェイス・トラッキングの実験を Processing でやってみました。<br />
macbook のカメラからリアルタイムに顔を追跡して、曲線が顔を覆います。<br />
線はスプライン曲線を <a href="http://jot.eriknatzke.com/" target="_blank">Eric Natzke</a> の Ribbon の要領で太さを持たせ、バネの仕組みで動かしてます。</p>
<p><object width="520" height="392" data="http://vimeo.com/moogaloop.swf?clip_id=5041578&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=ff3366&amp;fullscreen=1" type="application/x-shockwave-flash"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=5041578&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=ff3366&amp;fullscreen=1" /></object></p>
<p>制作途中、突然動かなくなって焦ったんですが、昼間すごく天気が良くて、逆光で顔を認識できてなかったのが原因でした。(笑)</p>
<p>Vimeo にアップロードしたら再圧縮で汚くなってしまったので、別で Quicktime 版もアップしております。<br />
<a href="http://l00oo.oo00l.com/movie/face_tracking_ribbon.mov" rel="shadowbox[post-332]" target="_blank">face_tracking_ribbon.mov</a></p>
]]></content:encoded>
			<wfw:commentRss>http://l00oo.oo00l.com/blog/archives/332/feed</wfw:commentRss>
<enclosure url="http://l00oo.oo00l.com/movie/face_tracking_ribbon.mov" length="7802213" type="video/quick" />
		</item>
		<item>
		<title>Catmull-Rom スプライン曲線</title>
		<link>http://l00oo.oo00l.com/blog/archives/264</link>
		<comments>http://l00oo.oo00l.com/blog/archives/264#comments</comments>
		<pubDate>Mon, 23 Mar 2009 16:34:46 +0000</pubDate>
		<dc:creator>l00oo.oo00l</dc:creator>
		
		<category><![CDATA[actionscript]]></category>

		<category><![CDATA[catmull-rom]]></category>

		<category><![CDATA[curve]]></category>

		<category><![CDATA[graphic]]></category>

		<category><![CDATA[spline]]></category>

		<guid isPermaLink="false">http://l00oo.oo00l.com/blog/?p=264</guid>
		<description><![CDATA[
スプライン曲線とは、与えられた複数の点を通る滑らかな曲線のことです。スプライン曲線を描くには、点と点の間を補完していくことになりますが、Catmull-Rom 補完とはその方法の一つになります。
Catmull-Romスプライン曲線
詳しい説明は上記ページに書かれていますが、これを as3 で書くとこうなります。
public function catmullRom(p0:Number,p1:Number,p2:Number,p3:Number,t:Number):Number
{
	var v0:Number = (p2 - p0) * 0.5;
	var v1:Number = (p3 - p1) * 0.5;
	return (2*p1 - 2*p2 + v0 + v1)*t*t*t +
		(-3*p1 + 3*p2 - 2*v0 - v1)*t*t + v0*t + p1;
}
t を 0〜1 に変化させることで、p1〜p2 間が補完されます。実際に曲線を描くには、曲線を分割（サンプルでは20分割）して擬似的な曲線（短い直線の集合）として描いていきます。分割数を1にすれば折れ線になります。
以下のサンプルは、赤い点をドラッグすれば曲線も変化します。
サンプル - Catmull-Rom スプライン曲線

package {
	import __AS3__.vec.Vector;

	import flash.display.Sprite;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.geom.Point;

	[SWF(width="520", height="390", backgroundColor="#ffffff")]
	public [...]]]></description>
			<content:encoded><![CDATA[<p class="visual"><a title="Catmull-Rom スプライン曲線" rel="shadowbox;width=520;height=390" href="/blog/wp-content/uploads/2009/03/spline.swf"><img class="alignnone size-full wp-image-293" title="Catmull-Rom スプライン曲線" src="http://l00oo.oo00l.com/blog/wp-content/uploads/2009/03/spline.png" alt="spline curve" width="500" height="280" /></a></p>
<p>スプライン曲線とは、与えられた複数の点を通る滑らかな曲線のことです。スプライン曲線を描くには、点と点の間を補完していくことになりますが、Catmull-Rom 補完とはその方法の一つになります。</p>
<p><a href="http://markun.cs.shinshu-u.ac.jp/learn/cg/cg3/index5.html" target="_blank">Catmull-Romスプライン曲線</a></p>
<p>詳しい説明は上記ページに書かれていますが、これを as3 で書くとこうなります。</p>
<pre class="prettyprint">public function catmullRom(p0:Number,p1:Number,p2:Number,p3:Number,t:Number):Number
{
	var v0:Number = (p2 - p0) * 0.5;
	var v1:Number = (p3 - p1) * 0.5;
	return (2*p1 - 2*p2 + v0 + v1)*t*t*t +
		(-3*p1 + 3*p2 - 2*v0 - v1)*t*t + v0*t + p1;
}</pre>
<p>t を 0〜1 に変化させることで、p1〜p2 間が補完されます。実際に曲線を描くには、曲線を分割（サンプルでは20分割）して擬似的な曲線（短い直線の集合）として描いていきます。分割数を1にすれば折れ線になります。</p>
<p>以下のサンプルは、赤い点をドラッグすれば曲線も変化します。</p>
<p><a title="Catmull-Rom スプライン曲線" rel="shadowbox;width=520;height=390" href="/blog/wp-content/uploads/2009/03/spline.swf">サンプル - Catmull-Rom スプライン曲線</a></p>
<pre class="prettyprint">
package {
	import __AS3__.vec.Vector;

	import flash.display.Sprite;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.geom.Point;

	[SWF(width="520", height="390", backgroundColor="#ffffff")]
	public class spline extends Sprite
	{
		private var points:Array;

		public function spline()
		{
			if(stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}

		private function init(e:Event=null):void
		{
			stage.scaleMode = StageScaleMode.NO_SCALE;
			stage.align = StageAlign.TOP_LEFT;
			setup();
		}

		private function setup():void
		{
			points = new Array();
			var numPoints:uint = 6;//点の数
			for(var i:uint=0; i&#60;numPoints; i++)
			{
				var point:Sprite = new Sprite();
				point.x = Math.round(Math.random() * stage.stageWidth);
				point.y = Math.round(Math.random() * stage.stageHeight);
				point.graphics.beginFill(0xff3366);
				point.graphics.drawCircle(0, 0, 3);
				point.graphics.endFill();
				point.buttonMode = true;
				point.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownListener);
				addChild(point);
				points.push(point);
			}

			setPoints();
		}

		private function setPoints():void
		{
			var v:Vector.&#60;Point&#62; = new Vector.&#60;Point&#62;();
			for(var i:uint; i&#60;points.length; i++)
			{
				var point:Sprite = Sprite(points[i]);
				v[i] = new Point(point.x, point.y);
			}
			graphics.clear();
			drawSpline(v);
		}

		private function drawSpline(v:Vector.&#60;Point&#62;):void
		{
			if(v.length&#60;2) return;
			v.splice(0,0,v[0]);
			v.push(v[v.length-1]);

			var numSegments:uint = 20;//曲線分割数（補完する数）
			for(var i:uint=0; i&#60;v.length-3; i++)
			{
				var p0:Point = v[i];
				var p1:Point = v[i+1];
				var p2:Point = v[i+2];
				var p3:Point = v[i+3];
				splineTo(p0, p1, p2, p3, numSegments);
			}
		}

		private function splineTo(p0:Point, p1:Point, p2:Point,
			p3:Point, numSegments:uint):void
		{
			graphics.lineStyle(1, 0x666666);
			graphics.moveTo(p1.x, p1.y);
			for(var i:uint=0; i&#60;numSegments; i++)
			{
				var t:Number = (i+1)/numSegments;
				graphics.lineTo(
					catmullRom(p0.x, p1.x, p2.x, p3.x, t),
					catmullRom(p0.y, p1.y, p2.y, p3.y, t)
				);
			}
		}

		public function catmullRom(p0:Number, p1:Number, p2:Number,
			p3:Number, t:Number):Number
		{
		    var v0:Number = (p2 - p0) * 0.5;
		    var v1:Number = (p3 - p1) * 0.5;
		    return (2*p1 - 2*p2 + v0 + v1)*t*t*t +
				(-3*p1 + 3*p2 - 2*v0 - v1)*t*t + v0*t + p1;
		}

		private function mouseDownListener(e:MouseEvent):void
		{
			var point:Sprite = Sprite(e.target);
			point.startDrag();
			point.addEventListener(MouseEvent.MOUSE_UP, mouseUpListener);
			addEventListener(Event.ENTER_FRAME, enterFrameListener);
		}

		private function mouseUpListener(e:MouseEvent):void
		{
			var point:Sprite = Sprite(e.target);
			point.stopDrag();
			point.removeEventListener(MouseEvent.MOUSE_UP, mouseUpListener);
			removeEventListener(Event.ENTER_FRAME, enterFrameListener);
		}

		private function enterFrameListener(e:Event):void
		{
			setPoints();
		}

	}
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://l00oo.oo00l.com/blog/archives/264/feed</wfw:commentRss>
		</item>
		<item>
		<title>[sketch] Paper</title>
		<link>http://l00oo.oo00l.com/blog/archives/257</link>
		<comments>http://l00oo.oo00l.com/blog/archives/257#comments</comments>
		<pubDate>Sun, 22 Mar 2009 11:59:18 +0000</pubDate>
		<dc:creator>l00oo.oo00l</dc:creator>
		
		<category><![CDATA[processing]]></category>

		<category><![CDATA[paper]]></category>

		<category><![CDATA[sketch]]></category>

		<guid isPermaLink="false">http://l00oo.oo00l.com/blog/?p=257</guid>
		<description><![CDATA[
Built with Processing
]]></description>
			<content:encoded><![CDATA[<p class="visual"><a href="http://www.flickr.com/photos/l00oo_oo00l/3375564048/" title="paper by l00oo.oo00l, on Flickr"><img src="http://farm4.static.flickr.com/3424/3375564048_b1d72fd05b.jpg" width="500" height="281" alt="paper" /></a></p>
<p>Built with <a href="http://processing.org" title="Processing.org">Processing</a></p>
]]></content:encoded>
			<wfw:commentRss>http://l00oo.oo00l.com/blog/archives/257/feed</wfw:commentRss>
		</item>
		<item>
		<title>openFrameworks デビュー （windows版）</title>
		<link>http://l00oo.oo00l.com/blog/archives/245</link>
		<comments>http://l00oo.oo00l.com/blog/archives/245#comments</comments>
		<pubDate>Thu, 19 Mar 2009 02:16:23 +0000</pubDate>
		<dc:creator>l00oo.oo00l</dc:creator>
		
		<category><![CDATA[openframeworks]]></category>

		<category><![CDATA[c++]]></category>

		<category><![CDATA[code::blocks]]></category>

		<guid isPermaLink="false">http://l00oo.oo00l.com/blog/?p=245</guid>
		<description><![CDATA[
というわけで windows でもビルドしてみました。
perlinparticle_win
ダウンロードしたら解凍して perlinParticle.exe を実行してみてください。自分のマシンではそこそこ動いてるんですが、スペックによってどれだけ差が出るのとか、そのへんのさじ加減はわかりません。遅すぎ！という人いたら教えてください。
Code::Blocks という開発環境でビルドしたんですが、ソースファイルの追加方法がよくわからず。。。とりあえずビルドはできたんですが、使い方がよくわかってません。違う開発環境で試してみようかな。
]]></description>
			<content:encoded><![CDATA[<p class="visual"><a href="http://www.flickr.com/photos/l00oo_oo00l/3366660411/"><img class="alignnone" title="perlin particle - win" src="http://farm4.static.flickr.com/3453/3366660411_28804b304b.jpg" alt="" width="500" height="397" /></a></p>
<p>というわけで windows でもビルドしてみました。</p>
<p><a href="http://l00oo.oo00l.com/blog/wp-content/uploads/2009/03/perlinparticle_win.zip">perlinparticle_win</a></p>
<p>ダウンロードしたら解凍して perlinParticle.exe を実行してみてください。自分のマシンではそこそこ動いてるんですが、スペックによってどれだけ差が出るのとか、そのへんのさじ加減はわかりません。遅すぎ！という人いたら教えてください。</p>
<p>Code::Blocks という開発環境でビルドしたんですが、ソースファイルの追加方法がよくわからず。。。とりあえずビルドはできたんですが、使い方がよくわかってません。違う開発環境で試してみようかな。</p>
]]></content:encoded>
			<wfw:commentRss>http://l00oo.oo00l.com/blog/archives/245/feed</wfw:commentRss>
		</item>
		<item>
		<title>openFrameworks デビュー</title>
		<link>http://l00oo.oo00l.com/blog/archives/217</link>
		<comments>http://l00oo.oo00l.com/blog/archives/217#comments</comments>
		<pubDate>Wed, 18 Mar 2009 02:19:27 +0000</pubDate>
		<dc:creator>l00oo.oo00l</dc:creator>
		
		<category><![CDATA[openframeworks]]></category>

		<category><![CDATA[c++]]></category>

		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://l00oo.oo00l.com/blog/?p=217</guid>
		<description><![CDATA[openFrameworks を触ってみようと思い、手始めに flash や processing でつくったものを移植してみました。mac osx 用なんで win では動きませんが、mac の方は試してみてください。
perlinparticle.zip
openFrameworks は C++ で processing みたいなことができちゃうライブラリです。最初 windows でトライしたら、どうもコンパイルエラーやら、ライブラリを追加する方法がわからなかったりで、開発環境のトラブルが多くあきらめようかと思ったんですが、mac の Xcode で試したらすんなりできました。mac 最高！
で、c++ ですが、1つのクラス定義するのに .h（ヘッダー）と .cpp（ソース）の2ファイル作んなきゃなんなくて最初戸惑いましたが、ここを参考に進めていっていったらなんとなく感覚はつかめました。
あと肝心のパーリンノイズを出すクラスが標準でなかったので、アドオンでこれを使いました。
processing より全然速そうですね！windows の開発環境が整ったら、win版もアップします。
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.openframeworks.cc/" target="_blank">openFrameworks</a> を触ってみようと思い、手始めに flash や processing でつくったものを移植してみました。mac osx 用なんで win では動きませんが、mac の方は試してみてください。</p>
<p><a href="http://l00oo.oo00l.com/blog/wp-content/uploads/2009/03/perlinparticle.zip">perlinparticle.zip</a></p>
<p>openFrameworks は C++ で processing みたいなことができちゃうライブラリです。最初 windows でトライしたら、どうもコンパイルエラーやら、ライブラリを追加する方法がわからなかったりで、開発環境のトラブルが多くあきらめようかと思ったんですが、mac の Xcode で試したらすんなりできました。mac 最高！</p>
<p>で、c++ ですが、1つのクラス定義するのに .h（ヘッダー）と .cpp（ソース）の2ファイル作んなきゃなんなくて最初戸惑いましたが、<a href="http://wiki.openframeworks.cc/index.php?title=Ooops!_%3D_Object_Oriented_Programming_%2B_Classes" target="_blank">ここ</a>を参考に進めていっていったらなんとなく感覚はつかめました。</p>
<p>あと肝心のパーリンノイズを出すクラスが標準でなかったので、アドオンで<a href="http://ofxmsaof.googlecode.com/svn/trunk/ofxMSANoise/src/" target="_blank">これ</a>を使いました。</p>
<p>processing より全然速そうですね！windows の開発環境が整ったら、win版もアップします。</p>
]]></content:encoded>
			<wfw:commentRss>http://l00oo.oo00l.com/blog/archives/217/feed</wfw:commentRss>
		</item>
		<item>
		<title>processing の color 型</title>
		<link>http://l00oo.oo00l.com/blog/archives/199</link>
		<comments>http://l00oo.oo00l.com/blog/archives/199#comments</comments>
		<pubDate>Mon, 16 Mar 2009 09:08:39 +0000</pubDate>
		<dc:creator>l00oo.oo00l</dc:creator>
		
		<category><![CDATA[processing]]></category>

		<category><![CDATA[型]]></category>

		<category><![CDATA[color]]></category>

		<category><![CDATA[eclipse]]></category>

		<category><![CDATA[int]]></category>

		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://l00oo.oo00l.com/blog/?p=199</guid>
		<description><![CDATA[processing の color 型は、コンパイル時に int 型に変換されてるようです。
なので processing で
color c = #000000;
と書いていたものを Eclipse（Java）で書く場合は
int c = 0xff000000;
になります。32ビットカラーなのも注意。
processing の IDE が pde ファイルを Java に変換するのは、PdePreprocessor.java というクラスでおこなっているようです。color に関してコメントも書かれていました。

color c = #cc0080; should unpack to 0xffcc0080
(the ff at the top is so that the color is opaque),
which is just an int.

ちなみに PApplet クラスのソースコードは PApplet.java のようです。actionscript で使いたいときには、これを元に移植すればいいですね。
]]></description>
			<content:encoded><![CDATA[<p>processing の color 型は、コンパイル時に int 型に変換されてるようです。<br />
なので processing で</p>
<pre class="prettyprint">color c = #000000;</pre>
<p>と書いていたものを Eclipse（Java）で書く場合は</p>
<pre class="prettyprint">int c = 0xff000000;</pre>
<p>になります。32ビットカラーなのも注意。</p>
<p>processing の IDE が pde ファイルを Java に変換するのは、<a href="http://dev.processing.org/source/index.cgi/trunk/processing/app/src/processing/app/preproc/PdePreprocessor.java?view=markup">PdePreprocessor.java</a> というクラスでおこなっているようです。color に関してコメントも書かれていました。</p>
<blockquote>
<pre>color c = #cc0080; should unpack to 0xffcc0080
(the ff at the top is so that the color is opaque),
which is just an int.</pre>
</blockquote>
<p>ちなみに PApplet クラスのソースコードは <a href="http://dev.processing.org/source/index.cgi/trunk/processing/core/src/processing/core/PApplet.java?view=markup">PApplet.java</a> のようです。actionscript で使いたいときには、これを元に移植すればいいですね。</p>
]]></content:encoded>
			<wfw:commentRss>http://l00oo.oo00l.com/blog/archives/199/feed</wfw:commentRss>
		</item>
		<item>
		<title>マイク入力とセキュリティ</title>
		<link>http://l00oo.oo00l.com/blog/archives/153</link>
		<comments>http://l00oo.oo00l.com/blog/archives/153#comments</comments>
		<pubDate>Sun, 15 Mar 2009 16:30:04 +0000</pubDate>
		<dc:creator>l00oo.oo00l</dc:creator>
		
		<category><![CDATA[actionscript]]></category>

		<category><![CDATA[microphone]]></category>

		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://l00oo.oo00l.com/blog/?p=153</guid>
		<description><![CDATA[
UNAGI BALL をマイク入力に対応させました。マイクを接続している方は、ぜひ試してみてください。音量によってモジャモジャ変化します。

以下、マイク入力はセキュリティ・ダイアログでやっかいだったので整理しておきます。
まず、FLASH がマイクを使おうとすると下記のようなダイアログが出ます。

この場合の「録音」の意味って「入力」ってことなんだろうけど、なんだかよくわかならい人は拒否を押したくなるダイアログですね。。。
具体的には、setLoopBack(true) でマイクの音をスピーカーに送るタイミングでダイアログが出ます。
var mic:Microphone = Microphone.getMicrophone();
if(mic != null)
{
	mic.setLoopBack(true); //このタイミングでダイアログが出る
}
ただこれが setLoopBack を実行するたびに毎回出るわけではなくて、マイクに接続しようとした最初の一回だけです。二回目からは最初に選択した状態が保持されます。なので最初に拒否されてしまったら、二回目からは設定を変更しない限りマイクに接続されません。
設定を変更するには下記二つの方法でセキュリティダイアログを開いて変更します。

右クリック &#62; 設定
Security.showSettings(SecurityPanel.PRIVACY);

ただしこれは最初のダイアログと違います。

最初のダイアログでさえ拒否を押しそうですが、この画面はまず拒否か閉じるを押しますよね。。。
なので今回はマイク接続を拒否された場合は、リロードボタンを設置することにしました。リロードすれば設定はリセットされるので、最初のダイアログになります。「このコンテンツはマイク接続の許可が必要です」的なテキストを入れて、「セキュリティパネルを開く」と「リロード」のボタン二つを置くというのも手ですね。
ちなみに UNAGI BALL は、リーロードボタンの画面で「右クリック &#62; 設定」で許可した場合は、コンテンツがスタートするようにしてあります。
]]></description>
			<content:encoded><![CDATA[<p class="visual"><a href="http://www.flickr.com/photos/l00oo_oo00l/3355826663/"><img class="alignnone" title="UNAGI BALL" src="http://farm4.static.flickr.com/3538/3355826663_feb9ef2f85.jpg" alt="" width="500" height="375" /></a></p>
<p><a href="http://l00oo.oo00l.com/#/unagi_ball" target="_blank">UNAGI BALL</a> をマイク入力に対応させました。マイクを接続している方は、ぜひ試してみてください。音量によってモジャモジャ変化します。</p>
<p><a href="http://l00oo.oo00l.com/#/unagi_ball" target="_blank"><br />
</a>以下、マイク入力はセキュリティ・ダイアログでやっかいだったので整理しておきます。<br />
まず、FLASH がマイクを使おうとすると下記のようなダイアログが出ます。</p>
<p><img class="alignnone size-full wp-image-161" title="privacy1" src="http://l00oo.oo00l.com/blog/wp-content/uploads/2009/03/privacy1.png" alt="privacy1" width="213" height="136" /></p>
<p>この場合の「録音」の意味って「入力」ってことなんだろうけど、なんだかよくわかならい人は拒否を押したくなるダイアログですね。。。</p>
<p>具体的には、setLoopBack(true) でマイクの音をスピーカーに送るタイミングでダイアログが出ます。</p>
<pre class="prettyprint">var mic:Microphone = Microphone.getMicrophone();
if(mic != null)
{
	mic.setLoopBack(true); //このタイミングでダイアログが出る
}</pre>
<p>ただこれが setLoopBack を実行するたびに毎回出るわけではなくて、マイクに接続しようとした最初の一回だけです。二回目からは最初に選択した状態が保持されます。なので最初に拒否されてしまったら、二回目からは設定を変更しない限りマイクに接続されません。</p>
<p>設定を変更するには下記二つの方法でセキュリティダイアログを開いて変更します。</p>
<ul>
<li>右クリック &gt; 設定</li>
<li>Security.showSettings(SecurityPanel.PRIVACY);</li>
</ul>
<p>ただしこれは最初のダイアログと違います。</p>
<p><img class="alignnone size-full wp-image-162" title="privacy2" src="http://l00oo.oo00l.com/blog/wp-content/uploads/2009/03/privacy2.png" alt="privacy2" width="213" height="136" /></p>
<p>最初のダイアログでさえ拒否を押しそうですが、この画面はまず拒否か閉じるを押しますよね。。。</p>
<p>なので今回はマイク接続を拒否された場合は、リロードボタンを設置することにしました。リロードすれば設定はリセットされるので、最初のダイアログになります。「このコンテンツはマイク接続の許可が必要です」的なテキストを入れて、「セキュリティパネルを開く」と「リロード」のボタン二つを置くというのも手ですね。</p>
<p>ちなみに<a href="http://l00oo.oo00l.com/#/unagi_ball" target="_blank"> UNAGI BALL</a> は、リーロードボタンの画面で「右クリック &gt; 設定」で許可した場合は、コンテンツがスタートするようにしてあります。</p>
]]></content:encoded>
			<wfw:commentRss>http://l00oo.oo00l.com/blog/archives/153/feed</wfw:commentRss>
		</item>
		<item>
		<title>MouseEvent の target</title>
		<link>http://l00oo.oo00l.com/blog/archives/143</link>
		<comments>http://l00oo.oo00l.com/blog/archives/143#comments</comments>
		<pubDate>Thu, 12 Mar 2009 08:04:10 +0000</pubDate>
		<dc:creator>l00oo.oo00l</dc:creator>
		
		<category><![CDATA[actionscript]]></category>

		<category><![CDATA[mouse]]></category>

		<category><![CDATA[MouseEvent]]></category>

		<guid isPermaLink="false">http://l00oo.oo00l.com/blog/?p=143</guid>
		<description><![CDATA[忘れそうなのでメモ。
container という空の Sprite に circle という Sprite を配置して、container の MouseEvent を取得すると、ターゲットの値が circle になってしまう。
MouseEvent - ActionScript 3.0 コンポーネントリファレンスガイド:
ネストされたノードが関係する場合、マウスイベントは、表示リストで確認できる最も深くネストされたノードをターゲットにします。
このターゲットを container にするには、container の mouseChildren プロパティを fasle に設定すればよい。
mouseChildrenプロパティ
var container:Sprite = new Sprite();
container.name = "container";
addChild(container);

var circle:Sprite = new Sprite();
circle.name = "circle";
circle.graphics.beginFill(0xFFCC00);
circle.graphics.drawCircle(40, 40, 40);

container.addChild(circle);

container.mouseChildren = false;

container.addEventListener(MouseEvent.CLICK, clicked);

function clicked(event:MouseEvent):void
{
	trace(event.target.name); // container
}
container.mouseChildren = false; の行があるかないかで変わってくる。

]]></description>
			<content:encoded><![CDATA[<p>忘れそうなのでメモ。</p>
<p>container という空の Sprite に circle という Sprite を配置して、container の MouseEvent を取得すると、ターゲットの値が circle になってしまう。</p>
<p><a href="http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/flash/events/MouseEvent.html" target="_blank">MouseEvent - ActionScript 3.0 コンポーネントリファレンスガイド:</a></p>
<blockquote><p>ネストされたノードが関係する場合、マウスイベントは、表示リストで確認できる最も深くネストされたノードをターゲットにします。</p></blockquote>
<p>このターゲットを container にするには、container の mouseChildren プロパティを fasle に設定すればよい。</p>
<p><a href="http://help.adobe.com/ja_JP/AS3LCR/Flash_10.0/flash/display/DisplayObjectContainer.html#mouseChildren" target="_blank">mouseChildrenプロパティ</a></p>
<pre class="prettyprint">var container:Sprite = new Sprite();
container.name = "container";
addChild(container);

var circle:Sprite = new Sprite();
circle.name = "circle";
circle.graphics.beginFill(0xFFCC00);
circle.graphics.drawCircle(40, 40, 40);

container.addChild(circle);

container.mouseChildren = false;

container.addEventListener(MouseEvent.CLICK, clicked);

function clicked(event:MouseEvent):void
{
	trace(event.target.name); // container
}</pre>
<p>container.mouseChildren = false; の行があるかないかで変わってくる。<br />
<a href="http://help.adobe.com/ja_JP/AS3LCR/Flash_10.0/flash/display/DisplayObjectContainer.html#mouseChildren" target="_blank"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://l00oo.oo00l.com/blog/archives/143/feed</wfw:commentRss>
		</item>
		<item>
		<title>Eclipse で Processing</title>
		<link>http://l00oo.oo00l.com/blog/archives/95</link>
		<comments>http://l00oo.oo00l.com/blog/archives/95#comments</comments>
		<pubDate>Wed, 11 Mar 2009 16:45:59 +0000</pubDate>
		<dc:creator>l00oo.oo00l</dc:creator>
		
		<category><![CDATA[processing]]></category>

		<category><![CDATA[eclipse]]></category>

		<category><![CDATA[開発環境]]></category>

		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://l00oo.oo00l.com/blog/?p=95</guid>
		<description><![CDATA[Processing 標準の IDE が、コードの補完をしてくれなくて使い辛いので、普段 mac では TextMate を使っていたんだけど、windows でも何かエディターがあれば便利だよなあと思い探してみました。
ざっと調べてみた結果、標準以外で開発する場合は下記の手段がある（まだあるかもしれない）。
mac
・Xcode
・TextMate
・Eclipse
win
・jEdit
・Eclipse
このうち共通するのは Eclipse のみ！ということで、WindowsでのProcessing用エディタ１Eclipse編を参考に思い切って導入してみた。
やってみたら意外と簡単で、Eclipse インストールして、新規で java のプロジェクト作って、ライブラリで processing の lib フォルダに入ってる core.jar を追加するだけのことだった。
ただ、標準と書き方が若干違っていて、
import processing.core.*;

public class HelloP5 extends PApplet
{
	public void setup()
	{
	}

	public void draw()
	{
	}
}
みたいに書くことになる。標準の書き方よりは長くなってしまうけど、個人的には逆にこっちのほうが as3 っぽいのでイイかもしれない。
今まで processing やってきたことは PApplet を拡張した java だったんか！ってのを、実際やってみて改めて気付きました。
あと調べててわかったのは、標準の IDE で複数のタブを使ってクラス書いてたのは、実は一つに結合されていたってこと。
[Processing][仕様].pdeはインナークラス、.javaは別クラス

複数のタブを開いて別のクラスを作っても、そのクラスはスケッチ本体クラスのインナークラスとして結合されるのです。別の言い方をすると、スケッチのディレクトリ直下にある「*.pde」ファイルは、全部結合された後、コンパイルされるということです。
なので、Eclipse で複数クラス作るときは、メインの PApplet を拡張したクラスのインスタンスを渡すか、参照用の静的クラスかシングルトンを作った方がいいかも。
Eclipse 自体は、普段 actionscript で flexbuilder を使っていたので、違和感なく使えそう。
しばらく使ってみて調子良さそうだったら subversion なんかも入れてみます。
]]></description>
			<content:encoded><![CDATA[<p>Processing 標準の IDE が、コードの補完をしてくれなくて使い辛いので、普段 mac では TextMate を使っていたんだけど、windows でも何かエディターがあれば便利だよなあと思い探してみました。</p>
<p>ざっと調べてみた結果、標準以外で開発する場合は下記の手段がある（まだあるかもしれない）。</p>
<p>mac<br />
・<a href="http://www.apple.com/jp/macosx/developer/xcode.html" target="_blank">Xcode</a><br />
・<a href="http://macromates.com/" target="_blank">TextMate</a><br />
・<a href="http://www.eclipse.org/" target="_blank">Eclipse</a></p>
<p>win<br />
・<a href="http://www.jedit.org/" target="_blank">jEdit</a><br />
・<a href="http://www.eclipse.org/" target="_blank">Eclipse</a></p>
<p>このうち共通するのは Eclipse のみ！ということで、<a href="http://labs.karappo.net/interact/index.php?itemid=141" target="_blank">WindowsでのProcessing用エディタ１Eclipse編</a>を参考に思い切って導入してみた。</p>
<p>やってみたら意外と簡単で、Eclipse インストールして、新規で java のプロジェクト作って、ライブラリで processing の lib フォルダに入ってる core.jar を追加するだけのことだった。</p>
<p>ただ、標準と書き方が若干違っていて、</p>
<pre class="prettyprint">import processing.core.*;

public class HelloP5 extends PApplet
{
	public void setup()
	{
	}

	public void draw()
	{
	}
}</pre>
<p>みたいに書くことになる。標準の書き方よりは長くなってしまうけど、個人的には逆にこっちのほうが as3 っぽいのでイイかもしれない。</p>
<p>今まで processing やってきたことは PApplet を拡張した java だったんか！ってのを、実際やってみて改めて気付きました。</p>
<p>あと調べててわかったのは、標準の IDE で複数のタブを使ってクラス書いてたのは、実は一つに結合されていたってこと。</p>
<p><a title="[Processing][仕様].pdeはインナークラス、.javaは別クラス" href="http://labs.uechoco.com/blog/2008/03/processingpdejava.html">[Processing][仕様].pdeはインナークラス、.javaは別クラス<br />
</a></p>
<blockquote><p>複数のタブを開いて別のクラスを作っても、そのクラスは<strong>スケッチ本体クラスのインナークラスとして結合される</strong>のです。別の言い方をすると、スケッチのディレクトリ直下にある<strong>「*.pde」ファイルは、全部結合された後、コンパイルされる</strong>ということです。</p></blockquote>
<p>なので、Eclipse で複数クラス作るときは、メインの PApplet を拡張したクラスのインスタンスを渡すか、参照用の静的クラスかシングルトンを作った方がいいかも。</p>
<p>Eclipse 自体は、普段 actionscript で flexbuilder を使っていたので、違和感なく使えそう。<br />
しばらく使ってみて調子良さそうだったら subversion なんかも入れてみます。</p>
]]></content:encoded>
			<wfw:commentRss>http://l00oo.oo00l.com/blog/archives/95/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
