<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Almer/Blank Labs &#187; Actionscript 3.0</title>
	<atom:link href="http://labs.almerblank.com/category/actionscript-3-0/feed/" rel="self" type="application/rss+xml" />
	<link>http://labs.almerblank.com</link>
	<description>Blog of the Talent at Almer/Blank</description>
	<lastBuildDate>Mon, 19 Jul 2010 22:55:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Four New OSMF Adobe Cookbook Recipes</title>
		<link>http://labs.almerblank.com/2010/07/four-new-osmf-adobe-cookbook-recipes/</link>
		<comments>http://labs.almerblank.com/2010/07/four-new-osmf-adobe-cookbook-recipes/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 22:55:23 +0000</pubDate>
		<dc:creator>rblank</dc:creator>
				<category><![CDATA[Actionscript 3.0]]></category>
		<category><![CDATA[Code & Samples]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[actionscript 3]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[flash video]]></category>
		<category><![CDATA[OSMF]]></category>

		<guid isPermaLink="false">http://labs.almerblank.com/?p=1533</guid>
		<description><![CDATA[Evenin&#039; all:
I posted four new OSMF recipes on Adobe&#039;s cookbook site this afternoon, and thought you might care to see &#039;em:
Playing Multiple Pieces of Media, Consecutively, with the OSMF ParallelElement
Playing Multiple Pieces of Media, Concurrently, with the OSMF ParallelElement
Dynamic Streaming with OSMF
HTTP Streaming in OSMF
And, as a reminder along these lines, I&#039;m teaching this year [...]]]></description>
			<content:encoded><![CDATA[<p>Evenin&#039; all:</p>
<p>I posted four new OSMF recipes on Adobe&#039;s cookbook site this afternoon, and thought you might care to see &#039;em:</p>
<p><a href="http://cookbooks.adobe.com/post_Playing_Multiple_Pieces_of_Media__Consecutively__w-17642.html">Playing Multiple Pieces of Media, Consecutively, with the OSMF ParallelElement</a><br />
<a href="http://cookbooks.adobe.com/post_Playing_Multiple_Pieces_of_Media__Concurrently__wi-17640.html">Playing Multiple Pieces of Media, Concurrently, with the OSMF ParallelElement</a><br />
<a href="http://cookbooks.adobe.com/post_Dynamic_Streaming_with_OSMF-17638.html">Dynamic Streaming with OSMF</a><br />
<a href="http://cookbooks.adobe.com/post_HTTP_Streaming_in_OSMF-17636.html">HTTP Streaming in OSMF</a></p>
<p>And, as a reminder along these lines, I&#039;m teaching this year at MAX, as a MAX Master, on &#039;Designing Custom Video Players with OSMF&#039; (you can <a href="http://max.adobe.com/sessions/catalog/" target="_blank">browse the catalog of talks and presentations</a> and then you can <a href="http://max.adobe.com/register" target="_blank">register here</a>).</p>
<p>Share and enjoy!</p>
<p>-r<span id="more-1533"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://labs.almerblank.com/2010/07/four-new-osmf-adobe-cookbook-recipes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android Dev Kit from Adobe</title>
		<link>http://labs.almerblank.com/2010/07/android-dev-kit-from-adobe/</link>
		<comments>http://labs.almerblank.com/2010/07/android-dev-kit-from-adobe/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 21:41:06 +0000</pubDate>
		<dc:creator>Omar Gonzalez</dc:creator>
				<category><![CDATA[Actionscript 3.0]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://labs.almerblank.com/?p=1523</guid>
		<description><![CDATA[Today I received an Android Dev Kit from Adobe! I posted a picture on my Twitter account: http://twitter.com/s9tpepper/status/18376097810
I&#039;ve already got a few ideas and things I want to try on the Nexus One, so guess I know what I&#039;ll be doing for the next week when I get home from work.
]]></description>
			<content:encoded><![CDATA[<p>Today I received an Android Dev Kit from Adobe! I posted a picture on my Twitter account: <a href="http://twitter.com/s9tpepper/status/18376097810" target="_blank">http://twitter.com/s9tpepper/status/18376097810</a></p>
<p>I&#039;ve already got a few ideas and things I want to try on the Nexus One, so guess I know what I&#039;ll be doing for the next week when I get home from work.</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.almerblank.com/2010/07/android-dev-kit-from-adobe/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>OSMF Sample Player Update for 1.0</title>
		<link>http://labs.almerblank.com/2010/07/osmf-sample-player-update-for-1-0/</link>
		<comments>http://labs.almerblank.com/2010/07/osmf-sample-player-update-for-1-0/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 02:31:37 +0000</pubDate>
		<dc:creator>rblank</dc:creator>
				<category><![CDATA[Actionscript 3.0]]></category>
		<category><![CDATA[Code & Samples]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[adob]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[max]]></category>
		<category><![CDATA[OSMF]]></category>

		<guid isPermaLink="false">http://labs.almerblank.com/?p=1518</guid>
		<description><![CDATA[I&#039;ve finally started work on my OSMF lab for MAX, &#039;Designing Custom Video Players with OSMF&#039; (you can browse the catalog of talks and presentations and then you can register here).
As you may know, OSMF 1.0 has been release, so one of the first tasks I set for myself was to test the code I [...]]]></description>
			<content:encoded><![CDATA[<p>I&#039;ve finally started work on my OSMF lab for MAX, &#039;Designing Custom Video Players with OSMF&#039; (you can <a href="http://max.adobe.com/sessions/catalog/" target="_blank">browse the catalog of talks and presentations</a> and then you can <a href="http://max.adobe.com/register" target="_blank">register here</a>).</p>
<p>As you may know, OSMF 1.0 has been release, so one of the first tasks I set for myself was to test the code I wrote in April for OSMF 0.95 (which I posted, along with the screencasts of my talk at FITC, <a href="http://labs.almerblank.com/2010/04/new-intro-to-adobe-osmf-videos/">here</a>). And, lo and behold, all of them worked!</p>
<p>Well, all except one. The final demo file, the <cite>Full Sample Player</cite> was playing, but the video was invisible and all the controls were disabled. So I set out to figure out why. (For those who don&#039;t want to read to the end, you can <a href="http://labs.almerblank.com/wp-content/uploads/2010/07/Full-Basic-Player-Update_20100705.zip">download the updated project file, for Flash CS5, here</a>.)</p>
<p><span id="more-1518"></span>It wasn&#039;t long before I found the culprit. It turns out that the MediaPlayer in OSMF now dispatches the &#039;ready&#039; MediaPlayerStateChangeEvent when the video is ready to play for the first time &#8212; not just when it&#039;s ready to play again. So, the result of my last code sample, with OSMF 1.0, was to hide the video and disable the controls &#8212; at the start of the video playback! Not what I wanted.</p>
<p>So, if we just remove lines 157 and 158 (seen below), from the _onMediaPlayerStateChange function, the player will work.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #b1b100;">case</span> <span style="color: #ff0000;">&quot;ready&quot;</span>:
	_disableControls <span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">&#41;</span> ;
	_cleanUpVideo <span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">&#41;</span> ;
	<span style="color: #b1b100;">break</span>;</pre></div></div>

<p>But now, when our video ends, the video doesn&#039;t get reset (or &#039;cleaned up&#039; or however you want to say it) &#8212; it looks ugly and doesn&#039;t behave how we would expect (because we just removed the code that&#039;s supposed to clean up these videos).</p>
<p>So, how do we clean up at the end of a video? Well, you can now listen for the TimeEvent.COMPLETE event on the MediaPlayer instance &#8212; when it&#039;s fired, the playback of your media is done.</p>
<p>So, if we add this line to the _setupOSMF() function:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">_mediaPlayer.<span style="color: #006600;">addEventListener</span> <span style="color: #66cc66;">&#40;</span> TimeEvent.<span style="color: #006600;">COMPLETE</span> , _onComplete , <span style="color: #000000; font-weight: bold;">false</span> , <span style="color: #cc66cc;">0</span> , <span style="color: #000000; font-weight: bold;">true</span> <span style="color: #66cc66;">&#41;</span> ;</pre></div></div>

<p>&#8230;and then declare the _onComplete function, adding back in those two lines we removed from the _onMediaPlayerStateChange function:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> _onComplete <span style="color: #66cc66;">&#40;</span> evt : TimeEvent <span style="color: #66cc66;">&#41;</span> : <span style="color: #0066CC;">void</span>
<span style="color: #66cc66;">&#123;</span>
	_disableControls <span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">&#41;</span> ;
	_cleanUpVideo <span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">&#41;</span> ;
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>One final note&#8230; Adobe added in string constants for all of the MediaPlayerStateChangeEvent types, grouped in the new MediaPlayerState class. So instead of comparing against the string, &#034;ready&#034;, you can now compare against the string constant of MediaPlayerState.READY. All of them are listed <a href="http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/org/osmf/media/MediaPlayerState.html" target="_blank">here</a> and have been included in the <a href="http://labs.almerblank.com/wp-content/uploads/2010/07/Full-Basic-Player-Update_20100705.zip">updated source files that accompany this post</a>.</p>
<p>See you in October at MAX in LA!</p>
<p>And, as always, share and enjoy!</p>
<p>-r</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.almerblank.com/2010/07/osmf-sample-player-update-for-1-0/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Illustrator CS5 to Flex4, so simple.</title>
		<link>http://labs.almerblank.com/2010/04/illustrator-cs5-to-flex4-so-simple/</link>
		<comments>http://labs.almerblank.com/2010/04/illustrator-cs5-to-flex4-so-simple/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 18:05:11 +0000</pubDate>
		<dc:creator>Omar Gonzalez</dc:creator>
				<category><![CDATA[Actionscript 3.0]]></category>
		<category><![CDATA[Code & Samples]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[cs5]]></category>
		<category><![CDATA[illustrator]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[workflows]]></category>

		<guid isPermaLink="false">http://labs.almerblank.com/?p=1398</guid>
		<description><![CDATA[While I was doing some work this morning on a Flex4 application I found a pretty neat way of integrating Illustrator CS5 assets into Flex 4 with relative ease using FXG 2.0.  I haven&#039;t tested this method using other versions of FXG, but using 2.0 works great.
For my example, I used the tiger SVG [...]]]></description>
			<content:encoded><![CDATA[<p>While I was doing some work this morning on a Flex4 application I found a pretty neat way of integrating Illustrator CS5 assets into Flex 4 with relative ease using FXG 2.0.  I haven&#039;t tested this method using other versions of FXG, but using 2.0 works great.<span id="more-1398"></span></p>
<p>For my example, I used the tiger SVG file that I always see in SVG posts to create some vector art in Illustrator.  After opening the SVG I simply saved it as an FXG 2.0 file using the Save As menu.  In the FXG options I just used the default options.<br />
<img class="alignnone" title="FXG Options" src="http://laflash.org/wp-content/uploads/2010/04/Screen-shot-2010-04-14-at-10.33.55-AM.png" alt="" width="653" height="566" /></p>
<p>After saving the FXG file, I placed the file in my src folders in a Flex 4 project in Flash Builder 4.  I made a skins package to drop the file in.<br />
<img class="alignnone" title="FXG File Placement" src="http://laflash.org/wp-content/uploads/2010/04/Screen-shot-2010-04-14-at-10.51.18-AM.png" alt="" width="292" height="306" /></p>
<p>Once you drop your FXG file into your project, using the file is a breeze.  Just write the tag in!<br />
<img class="alignnone" title="Using FXG in Flex 4" src="http://laflash.org/wp-content/uploads/2010/04/Screen-shot-2010-04-14-at-11.05.41-AM.png" alt="" width="608" height="262" /></p>
<p>It really is as simple as that.  Using this method you can use these FXG files very easily in any of your Spark skins.  Here&#039;s the rendered FXG:<br />
<img class="alignnone" title="FXG rendered in Flex 4" src="http://laflash.org/wp-content/uploads/2010/04/Screen-shot-2010-04-14-at-10.38.57-AM.png" alt="" width="956" height="612" /></p>
<p>Once you have your fxg graphics rendering, you can manipulate the object using width, height, alpha, etc and the graphics will scale as you&#039;d expect from vector graphics.<br />
<img class="alignnone" title="Altered FXG at runtime" src="http://laflash.org/wp-content/uploads/2010/04/Screen-shot-2010-04-14-at-10.39.34-AM.png" alt="" width="1360" height="858" /></p>
<p>Download Flash Builder 4 project file here: <a href="http://laflash.org/wp-content/uploads/2010/04/FXGinFlex4.fxp">Example Source</a></p>
]]></content:encoded>
			<wfw:commentRss>http://labs.almerblank.com/2010/04/illustrator-cs5-to-flex4-so-simple/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dynamic Streaming in OSMF 10</title>
		<link>http://labs.almerblank.com/2010/04/dynamic-streaming-in-osmf-10/</link>
		<comments>http://labs.almerblank.com/2010/04/dynamic-streaming-in-osmf-10/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 00:50:05 +0000</pubDate>
		<dc:creator>rblank</dc:creator>
				<category><![CDATA[Actionscript 3.0]]></category>
		<category><![CDATA[Code & Samples]]></category>
		<category><![CDATA[actionscript 3]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[flash video]]></category>
		<category><![CDATA[OSMF]]></category>

		<guid isPermaLink="false">http://labs.almerblank.com/?p=1394</guid>
		<description><![CDATA[I'm writing some new sample files for OSMF in preparation for my presentation, '<a href="http://www.fitc.ca/events/presentations/presentation.cfm?event=102&#038;presentation_id=1159">Standardize Your Flash with Adobe OSMF</a>,' which I'll be giving on April 27th at <a href="http://fitc.ca/toronto">FITC Toronto</a>.
...
So, since I wrote it as one of the sample files for my talk, I figured I would post the code to run dynamic streaming with OSMF v0.93.

[...]
]]></description>
			<content:encoded><![CDATA[<p>I&#039;m writing some new sample files for OSMF in preparation for my presentation, &#039;<a href="http://www.fitc.ca/events/presentations/presentation.cfm?event=102&#038;presentation_id=1159">Standardize Your Flash with Adobe OSMF</a>,&#039; which I&#039;ll be giving on April 27th at <a href="http://fitc.ca/toronto">FITC Toronto</a>.</p>
<p>Last time I checked (February), OSMF was in Sprint 9 (and I updated my sample files at that time, <a href="http://www.rblank.com/2010/02/04/osmf-0-9-updated-flash-cs4-sample/">posted here</a>). Now, it&#039;s in Sprint 10, specifically version 0.93. And Adobe appears to have done a lot to lock down the API, which is definitely an exciting and positive development.</p>
<p>But, of course, there are some significant changes since the Sprint 9 OSMF framework &#8212; so even the files I posted just two months ago are no longer valid. So, since I wrote it as one of the sample files for my talk, I figured I would post the code to run dynamic streaming with OSMF v0.93.</p>
<p>Here is a Flash CS4 document class, assuming you already have your OSMF SWC in your library path.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">package 
<span style="color: #66cc66;">&#123;</span> 
    <span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">Sprite</span>; 
&nbsp;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">osmf</span>.<span style="color: #006600;">media</span>.<span style="color: #006600;">MediaPlayer</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">osmf</span>.<span style="color: #006600;">containers</span>.<span style="color: #006600;">MediaContainer</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">osmf</span>.<span style="color: #006600;">media</span>.<span style="color: #006600;">URLResource</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">osmf</span>.<span style="color: #006600;">net</span>.<span style="color: #006600;">NetLoader</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">osmf</span>.<span style="color: #006600;">elements</span>.<span style="color: #006600;">VideoElement</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">osmf</span>.<span style="color: #006600;">utils</span>.<span style="color: #0066CC;">URL</span>;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">osmf</span>.<span style="color: #006600;">net</span>.<span style="color: #006600;">DynamicStreamingResource</span> ;
	<span style="color: #0066CC;">import</span> org.<span style="color: #006600;">osmf</span>.<span style="color: #006600;">net</span>.<span style="color: #006600;">DynamicStreamingItem</span> ;
&nbsp;
    <span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> MyPlayer <span style="color: #0066CC;">extends</span> Sprite 
    <span style="color: #66cc66;">&#123;</span> 
&nbsp;
		<span style="color: #0066CC;">private</span> const RTMP_URL : <span style="color: #0066CC;">String</span> = <span style="color: #ff0000;">&quot;rtmp://myhost&quot;</span> ;
&nbsp;
        <span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> MyPlayer<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> 
        <span style="color: #66cc66;">&#123;</span> 
			player = <span style="color: #000000; font-weight: bold;">new</span> MediaPlayer <span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">&#41;</span> ;
			container = <span style="color: #000000; font-weight: bold;">new</span> MediaContainer <span style="color: #66cc66;">&#40;</span> <span style="color: #66cc66;">&#41;</span> ;
			addChild <span style="color: #66cc66;">&#40;</span> container <span style="color: #66cc66;">&#41;</span> ;
			<span style="color: #808080; font-style: italic;">//set the player to play videos only once by default</span>
			player.<span style="color: #006600;">autoRewind</span>=<span style="color: #000000; font-weight: bold;">false</span>;
			<span style="color: #000000; font-weight: bold;">var</span> resource : DynamicStreamingResource = <span style="color: #000000; font-weight: bold;">new</span> DynamicStreamingResource <span style="color: #66cc66;">&#40;</span> RTMP_URL <span style="color: #66cc66;">&#41;</span> ;
			<span style="color: #000000; font-weight: bold;">var</span> vector : Vector.<span style="color: #66cc66;">&lt;</span>DynamicStreamingItem<span style="color: #66cc66;">&gt;</span> = <span style="color: #000000; font-weight: bold;">new</span> Vector.<span style="color: #66cc66;">&lt;</span>DynamicStreamingItem<span style="color: #66cc66;">&gt;</span> <span style="color: #66cc66;">&#40;</span> <span style="color: #cc66cc;">3</span> <span style="color: #66cc66;">&#41;</span> ;
			vector <span style="color: #66cc66;">&#91;</span> <span style="color: #cc66cc;">0</span> <span style="color: #66cc66;">&#93;</span> = <span style="color: #000000; font-weight: bold;">new</span> DynamicStreamingItem <span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;myMovie_high&quot;</span> , <span style="color: #cc66cc;">1500</span> <span style="color: #66cc66;">&#41;</span> ; 
			vector <span style="color: #66cc66;">&#91;</span> <span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">&#93;</span> = <span style="color: #000000; font-weight: bold;">new</span> DynamicStreamingItem <span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;myMovie_low&quot;</span> , <span style="color: #cc66cc;">400</span> <span style="color: #66cc66;">&#41;</span> ; 
			vector <span style="color: #66cc66;">&#91;</span> <span style="color: #cc66cc;">2</span> <span style="color: #66cc66;">&#93;</span> = <span style="color: #000000; font-weight: bold;">new</span> DynamicStreamingItem <span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;myMovie_medium&quot;</span> , <span style="color: #cc66cc;">600</span> <span style="color: #66cc66;">&#41;</span> ; 
			resource.<span style="color: #006600;">streamItems</span> = vector ;
			videoElement = <span style="color: #000000; font-weight: bold;">new</span> VideoElement<span style="color: #66cc66;">&#40;</span> resource <span style="color: #66cc66;">&#41;</span> ;
			player.<span style="color: #006600;">media</span> = videoElement ;
			container.<span style="color: #006600;">addMediaElement</span> <span style="color: #66cc66;">&#40;</span> videoElement <span style="color: #66cc66;">&#41;</span> ;
        <span style="color: #66cc66;">&#125;</span> 
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> player:MediaPlayer;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> container:MediaContainer;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> videoElement : VideoElement ;
&nbsp;
    <span style="color: #66cc66;">&#125;</span> 
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Share and enjoy!</p>
<p>-r</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.almerblank.com/2010/04/dynamic-streaming-in-osmf-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash 10.1 API Updates</title>
		<link>http://labs.almerblank.com/2010/03/flash-10-1-api-updates/</link>
		<comments>http://labs.almerblank.com/2010/03/flash-10-1-api-updates/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 18:47:47 +0000</pubDate>
		<dc:creator>Nolan Butcher</dc:creator>
				<category><![CDATA[Actionscript 3.0]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flash 10.1]]></category>
		<category><![CDATA[Flash API]]></category>

		<guid isPermaLink="false">http://labs.almerblank.com/?p=1358</guid>
		<description><![CDATA[I&#039;ve compiled a quick reference list of all the new classes in the Flash 10.1 API. Some look to be very useful, while others seem to be internal classes that aren&#039;t going to be any use for developers.

&#8212; NEW CLASSES &#8212;
AAAARecord
Accelerometer
AccelerometerEvent
AnimatorFactoryUniversal
AnimatorUniversal
ApplyElementIDOperation
ApplyElementStyleNameOperation
ApplyElementUserStyleOperation
ApplyFormatOperation
ApplyFormatToElementOperation
ApplyLinkOperation
ApplyTCYOperation
ARecord
BackgroundColor
BaselineOffset
BaselineShift
BlockProgression
BreakElement
CameraRoll
CertificateStatus
CharacterUtil
ClearFormatOnElementOperation
ClearFormatOperation
Collator
CollatorMode
ColumnState
CompositeOperation
CompositionAttributeRange
CompositionCompleteEvent
Configuration
ContainerController
ContainerFormattedElement
ConversionType
CopyOperation
CurrencyFormatter
CurrencyParseResult
CutOperation
DamageEvent
DatagramSocket
DatagramSocketDataEvent
DateTimeFormatter
DateTimeNameContext
DateTimeNameStyle
DateTimeStyle
DeleteTextOperation
Direction
DivElement
DNSResolver
DNSResolverEvent
EditingMode
EditManager
ElementRange
FlowComposerBase
FlowDamageType
FlowElement
FlowElementMouseEvent
FlowElementOperation
FlowGroupElement
FlowLeafElement
FlowOperation
FlowOperationEvent
FlowTextOperation
FormatValue
Geolocation
GeolocationEvent
GestureEvent
GesturePhase
GlobalSettings
GroupSpecifier
HTMLSWFCapability
InlineGraphicElement
InlineGraphicElementStatus
InsertInlineGraphicOperation
InsertTextOperation
InterfaceAddress
IPVersion
JustificationRule
KeyboardType
LastOperationStatus
LeadingModel
LineBreak
LinkElement
LinkState
LoadVoucherSetting
LocaleID
ModifyInlineGraphicOperation
Multitouch
MultitouchInputMode
MXRecord
NationalDigitsType
NativeProcess
NativeProcessExitEvent
NativeProcessStartupInfo
NavigationUtil
NetGroup
NetGroupInfo
NetGroupReceiveMode
NetGroupReplicationStrategy
NetGroupSendMode
NetGroupSendResult
NetStreamAppendBytesAction
NetStreamMulticastInfo
NetworkInfo
NetworkInterface
NumberFormatter
NumberParseResult
OverflowPolicy
PaperSize
ParagraphElement
ParagraphFormattedElement
PasteOperation
PlainTextExporter
PressAndTapGestureEvent
PrintMethod
PrintUIOptions
PTRRecord
RedoOperation
ResourceRecord
RSLErrorEvent
RSLEvent
RSLInfo
RSLPreloader
SecureSocket
SecureSocketMonitor
SelectionEvent
SelectionFormat
SelectionManager
SelectionState
ServerSocket
ServerSocketConnectEvent
SpanElement
SpecialCharacterElement
SplitParagraphOperation
SRVRecord
StageAspectRatio
StageOrientation
StageOrientationEvent
StandardFlowComposer
StatusChangeEvent
StorageVolume
StorageVolumeChangeEvent
StorageVolumeInfo
StringTextLineFactory
StringTools
SubParagraphGroupElement
SWZInfo
SystemIdleMode
SystemUpdater
SystemUpdaterType
TabElement
TabStopFormat
TCYElement
TextAlign
TextClipboard
TextContainerManager
TextConverter
TextDecoration
TextFlow
TextFlowLine
TextFlowLineLocation
TextFlowTextLineFactory
TextJustify
TextLayoutEvent
TextLayoutFormat
TextLineFactoryBase
TextLineRecycler
TextRange
TextScrap
TLFTextField
TLFTypographicCase
TouchEvent
TouchscreenType
TransformGestureEvent
TruncationOptions
UncaughtErrorEvent
UncaughtErrorEvents
UndoManager
UndoOperation
UpdateCompleteEvent
URLFilePromise
VerticalAlign
VoucherAccessInfo
WhiteSpaceCollapse
&#8212; NEW INTERFACES &#8212;
IConfiguration
IEditManager
IFilePromise
IFlowComposer
IFormatResolver
IIMEClient
IInteractionEventHandler
IOperation
ISandboxSupport
ISearchableText
ISelectionManager
ISimpleTextSelection
ISWFContext
ITabStopFormat
ITextExporter
ITextImporter
ITextLayoutFormat
ITextLineCreator
IUndoManager
IVerticalJustificationLine
I&#039;m planning on putting together some code examples over the next few [...]]]></description>
			<content:encoded><![CDATA[<p>I&#039;ve compiled a quick reference list of all the new classes in the Flash 10.1 API. Some look to be very useful, while others seem to be internal classes that aren&#039;t going to be any use for developers.</p>
<p><span id="more-1358"></span></p>
<blockquote><p><strong>&#8212; NEW CLASSES &#8212;</strong></p>
<p>AAAARecord<br />
Accelerometer<br />
AccelerometerEvent<br />
AnimatorFactoryUniversal<br />
AnimatorUniversal<br />
ApplyElementIDOperation<br />
ApplyElementStyleNameOperation<br />
ApplyElementUserStyleOperation<br />
ApplyFormatOperation<br />
ApplyFormatToElementOperation<br />
ApplyLinkOperation<br />
ApplyTCYOperation<br />
ARecord<br />
BackgroundColor<br />
BaselineOffset<br />
BaselineShift<br />
BlockProgression<br />
BreakElement<br />
CameraRoll<br />
CertificateStatus<br />
CharacterUtil<br />
ClearFormatOnElementOperation<br />
ClearFormatOperation<br />
Collator<br />
CollatorMode<br />
ColumnState<br />
CompositeOperation<br />
CompositionAttributeRange<br />
CompositionCompleteEvent<br />
Configuration<br />
ContainerController<br />
ContainerFormattedElement<br />
ConversionType<br />
CopyOperation<br />
CurrencyFormatter<br />
CurrencyParseResult<br />
CutOperation<br />
DamageEvent<br />
DatagramSocket<br />
DatagramSocketDataEvent<br />
DateTimeFormatter<br />
DateTimeNameContext<br />
DateTimeNameStyle<br />
DateTimeStyle<br />
DeleteTextOperation<br />
Direction<br />
DivElement<br />
DNSResolver<br />
DNSResolverEvent<br />
EditingMode<br />
EditManager<br />
ElementRange<br />
FlowComposerBase<br />
FlowDamageType<br />
FlowElement<br />
FlowElementMouseEvent<br />
FlowElementOperation<br />
FlowGroupElement<br />
FlowLeafElement<br />
FlowOperation<br />
FlowOperationEvent<br />
FlowTextOperation<br />
FormatValue<br />
Geolocation<br />
GeolocationEvent<br />
GestureEvent<br />
GesturePhase<br />
GlobalSettings<br />
GroupSpecifier<br />
HTMLSWFCapability<br />
InlineGraphicElement<br />
InlineGraphicElementStatus<br />
InsertInlineGraphicOperation<br />
InsertTextOperation<br />
InterfaceAddress<br />
IPVersion<br />
JustificationRule<br />
KeyboardType<br />
LastOperationStatus<br />
LeadingModel<br />
LineBreak<br />
LinkElement<br />
LinkState<br />
LoadVoucherSetting<br />
LocaleID<br />
ModifyInlineGraphicOperation<br />
Multitouch<br />
MultitouchInputMode<br />
MXRecord<br />
NationalDigitsType<br />
NativeProcess<br />
NativeProcessExitEvent<br />
NativeProcessStartupInfo<br />
NavigationUtil<br />
NetGroup<br />
NetGroupInfo<br />
NetGroupReceiveMode<br />
NetGroupReplicationStrategy<br />
NetGroupSendMode<br />
NetGroupSendResult<br />
NetStreamAppendBytesAction<br />
NetStreamMulticastInfo<br />
NetworkInfo<br />
NetworkInterface<br />
NumberFormatter<br />
NumberParseResult<br />
OverflowPolicy<br />
PaperSize<br />
ParagraphElement<br />
ParagraphFormattedElement<br />
PasteOperation<br />
PlainTextExporter<br />
PressAndTapGestureEvent<br />
PrintMethod<br />
PrintUIOptions<br />
PTRRecord<br />
RedoOperation<br />
ResourceRecord<br />
RSLErrorEvent<br />
RSLEvent<br />
RSLInfo<br />
RSLPreloader<br />
SecureSocket<br />
SecureSocketMonitor<br />
SelectionEvent<br />
SelectionFormat<br />
SelectionManager<br />
SelectionState<br />
ServerSocket<br />
ServerSocketConnectEvent<br />
SpanElement<br />
SpecialCharacterElement<br />
SplitParagraphOperation<br />
SRVRecord<br />
StageAspectRatio<br />
StageOrientation<br />
StageOrientationEvent<br />
StandardFlowComposer<br />
StatusChangeEvent<br />
StorageVolume<br />
StorageVolumeChangeEvent<br />
StorageVolumeInfo<br />
StringTextLineFactory<br />
StringTools<br />
SubParagraphGroupElement<br />
SWZInfo<br />
SystemIdleMode<br />
SystemUpdater<br />
SystemUpdaterType<br />
TabElement<br />
TabStopFormat<br />
TCYElement<br />
TextAlign<br />
TextClipboard<br />
TextContainerManager<br />
TextConverter<br />
TextDecoration<br />
TextFlow<br />
TextFlowLine<br />
TextFlowLineLocation<br />
TextFlowTextLineFactory<br />
TextJustify<br />
TextLayoutEvent<br />
TextLayoutFormat<br />
TextLineFactoryBase<br />
TextLineRecycler<br />
TextRange<br />
TextScrap<br />
TLFTextField<br />
TLFTypographicCase<br />
TouchEvent<br />
TouchscreenType<br />
TransformGestureEvent<br />
TruncationOptions<br />
UncaughtErrorEvent<br />
UncaughtErrorEvents<br />
UndoManager<br />
UndoOperation<br />
UpdateCompleteEvent<br />
URLFilePromise<br />
VerticalAlign<br />
VoucherAccessInfo<br />
WhiteSpaceCollapse</p>
<p><strong>&#8212; NEW INTERFACES &#8212;</strong></p>
<p>IConfiguration<br />
IEditManager<br />
IFilePromise<br />
IFlowComposer<br />
IFormatResolver<br />
IIMEClient<br />
IInteractionEventHandler<br />
IOperation<br />
ISandboxSupport<br />
ISearchableText<br />
ISelectionManager<br />
ISimpleTextSelection<br />
ISWFContext<br />
ITabStopFormat<br />
ITextExporter<br />
ITextImporter<br />
ITextLayoutFormat<br />
ITextLineCreator<br />
IUndoManager<br />
IVerticalJustificationLine</p></blockquote>
<p>I&#039;m planning on putting together some code examples over the next few weeks that cover some of the more interesting packages. Let me know if you have a request, and I&#039;ll gladly make an effort to include them&#8230; <img src='http://labs.almerblank.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://labs.almerblank.com/2010/03/flash-10-1-api-updates/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ZamfBrowser 1.2 and ZendAmfServiceBrowser Update</title>
		<link>http://labs.almerblank.com/2010/02/zamfbrowser-1-2-and-zendamfservicebrowser-update/</link>
		<comments>http://labs.almerblank.com/2010/02/zamfbrowser-1-2-and-zendamfservicebrowser-update/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 21:58:42 +0000</pubDate>
		<dc:creator>Omar Gonzalez</dc:creator>
				<category><![CDATA[Actionscript 3.0]]></category>
		<category><![CDATA[Code & Samples]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Zamf]]></category>
		<category><![CDATA[Zend]]></category>
		<category><![CDATA[ZendAMF]]></category>
		<category><![CDATA[ZendAMF Service Browser]]></category>

		<guid isPermaLink="false">http://labs.almerblank.com/?p=1321</guid>
		<description><![CDATA[Over the weekend I updated both the ZamfBrowser application and the ZendAmfServiceBrowser class that gives the ZamfBrowser information about your ZendAMF services set up.  The ZendAmfServiceBrowser class now supports using the Zend_Amf_Server-&#62;addDirectory() method.  I also integrated some optimization suggestions submitted by Marijn Huizendveld.  Thanks for your contributions Marijn!  ZamfBrowser got updates to fix all the [...]]]></description>
			<content:encoded><![CDATA[<p>Over the weekend I updated both the ZamfBrowser application and the ZendAmfServiceBrowser class that gives the ZamfBrowser information about your ZendAMF services set up.  <span id="more-1321"></span>The ZendAmfServiceBrowser class now supports using the Zend_Amf_Server-&gt;addDirectory() method.  I also integrated some optimization suggestions submitted by Marijn Huizendveld.  Thanks for your contributions Marijn!  ZamfBrowser got updates to fix all the currently reported bugs.  You can get more info about what exactly was updated, as well as download the source, at http://zamfbrowser.riaforge.com.  Info on the ZendAmfServiceBrowser class update can be found at http://www.zamfbrowser.org</p>
<p>If you have suggestions for enhancements or more bug fixes please do report them at http://zamfbrowser.riaforge.com  If you don&#039;t want to sign up for RIAForge just send me an email to omar@almerblank.com, I&#039;d really like to hear your suggestions and bug reports!</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.almerblank.com/2010/02/zamfbrowser-1-2-and-zendamfservicebrowser-update/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>OSMF Sample Player Update</title>
		<link>http://labs.almerblank.com/2010/02/osmf-sample-player-update/</link>
		<comments>http://labs.almerblank.com/2010/02/osmf-sample-player-update/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 22:36:05 +0000</pubDate>
		<dc:creator>rblank</dc:creator>
				<category><![CDATA[Actionscript 3.0]]></category>
		<category><![CDATA[Code & Samples]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[OSMF]]></category>
		<category><![CDATA[Video]]></category>

		<guid isPermaLink="false">http://labs.almerblank.com/?p=1317</guid>
		<description><![CDATA[Some of you may have checked out the courses I posted over on the Adobe Developer Connection on building <a href="http://www.adobe.com/devnet/flash/articles/video_osmf.html" target="_blank">progressive</a> and <a href="http://www.adobe.com/devnet/flash/articles/video_osmf_streaming.html" target="_blank">streaming video players</a> with the Adobe Open Source Media Framework (OSMF).

Unfortunately, even those courses are relatively new, the code in them no longer works, because OSMF has advanced a few sprints. We're now at OSMF sprint 9, and the framework continues to shift quite a bit.

Because there are almost no examples on the web of using OSMF with Flash (as opposed to Flex), and I've had several people email me asking if I had time to update the code.

And, so, finally I did. At least for the progressive player. So you can download the <a href="http://www.adobe.com/devnet/flash/articles/video_osmf/osmf9_progressive_players_cs4.zip" target="_blank">Flash CS4 source code to build an OSMF player with the Sprint 9 framework</a> from the <a href="http://www.adobe.com/devnet/flash/articles/video_osmf.html" target="_blank">article on Building progressive video players in Flash with OSMF</a>.

Share and enjoy!

]]></description>
			<content:encoded><![CDATA[<p>Some of you may have checked out the courses I posted over on the Adobe Developer Connection on building <a href="http://www.adobe.com/devnet/flash/articles/video_osmf.html" target="_blank">progressive</a> and <a href="http://www.adobe.com/devnet/flash/articles/video_osmf_streaming.html" target="_blank">streaming video players</a> with the Adobe Open Source Media Framework (OSMF).</p>
<p>Unfortunately, even those courses are relatively new, the code in them no longer works, because OSMF has advanced a few sprints. We&#039;re now at OSMF sprint 9, and the framework continues to shift quite a bit.</p>
<p>Because there are almost no examples on the web of using OSMF with Flash (as opposed to Flex), and I&#039;ve had several people email me asking if I had time to update the code.</p>
<p>And, so, finally I did. At least for the progressive player. So you can download the <a href="http://www.adobe.com/devnet/flash/articles/video_osmf/osmf9_progressive_players_cs4.zip" target="_blank">Flash CS4 source code to build an OSMF player with the Sprint 9 framework</a> from the <a href="http://www.adobe.com/devnet/flash/articles/video_osmf.html" target="_blank">article on Building progressive video players in Flash with OSMF</a>.</p>
<p>Share and enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.almerblank.com/2010/02/osmf-sample-player-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multi-bitrate Streaming in Adobe OSMF</title>
		<link>http://labs.almerblank.com/2009/12/multi-bitrate-streaming-in-adobe-osmf/</link>
		<comments>http://labs.almerblank.com/2009/12/multi-bitrate-streaming-in-adobe-osmf/#comments</comments>
		<pubDate>Mon, 28 Dec 2009 19:31:53 +0000</pubDate>
		<dc:creator>rblank</dc:creator>
				<category><![CDATA[Actionscript 3.0]]></category>
		<category><![CDATA[Code & Samples]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[training]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[flash video]]></category>
		<category><![CDATA[OSMF]]></category>

		<guid isPermaLink="false">http://labs.almerblank.com/?p=1299</guid>
		<description><![CDATA[My new online video course on Dynamic Multi-bitrate Streaming with Adobe Open Source Media Framework (OSMF) has just gone live on Adobe Developer Connection.
It&#039;s 35 minutes across five lessons and takes you through the process of converting the progressive OSMF video player (which we create in the first installment of this course on Building Progressive [...]]]></description>
			<content:encoded><![CDATA[<p>My new online video <a href="http://www.adobe.com/devnet/flash/articles/video_osmf_streaming.html" target="_blank">course on Dynamic Multi-bitrate Streaming with Adobe Open Source Media Framework</a> (OSMF) has just gone live on Adobe Developer Connection.</p>
<p>It&#039;s 35 minutes across five lessons and takes you through the process of converting the progressive OSMF video player (which we create in the first installment of this course on <a href="http://www.adobe.com/devnet/flash/articles/video_osmf.html" target="_blank">Building Progressive Video Players with Adobe OSMF</a>, into a dynamic multi-bitrate streaming player. Multi-bitrate streaming occurs when you program your Flash to deliver the highest quality video a viewer can see (dependent on their bandwidth). *<strong>Dynamic</strong>* multi-bitrate streaming is similar, with the additional feature of having your player constantly meters the bandwidth throughout viewing, to adjust the playback between multiple videos seamlessly, as the viewer&#039;s bandwidth may fluctuate.<span id="more-1299"></span></p>
<blockquote><p><strong>Please note:</strong> that the first course on progressive video players was built with OSMF Sprint 5. The second course on streaming with OSMF was built with OSMF Sprint 7. I spend the first lesson of the new course updating the progressive player to work with Sprint 7, and I wrote a few notes about <a href="http://www.rblank.com/2009/11/10/quick-note-on-osmf-0-7/" target="_blank">the major differences between OSMF 0.5 and 0.7 in a post on my personal blog</a> last month. Also note that, by the time the course was published by Adobe, OSMF had already moved forward to Spring 8.</p></blockquote>
<p>When I wrote the first course on building a progressive video player with OSMF, I was struck by two things:<br />
1) OSMF is clean &#8212; really clean &#8212; and it just works well in ways that the AS3 video API does not &#8212; for instance, with OSMF setting volume is a matter of talking to the volume property of the MediaPlayer<br />
2) OSMF felt like a bit of overkill &#8212; you need a lot of imports and classes (a MediaPlayer, a MediaElement, a NetLoader and a URLResource) just to build the simplest of progressive video players &#8212; that would be simple enough, requiring seven lines of code with raw AS3 if you knew it</p>
<p>But, I had a hunch that #2 above was due to the fact that I was using approximately 0.05% of this powerful framework &#8212; like trying to use a nuclear bomb when a shovel would do just fine.</p>
<p>Well, when I started learning how to write the code to build dynamic multi-bitrate streaming player, I quickly learned that my hunch was right. The benefits of OSMF really kick in once you do anything beyond the most basic video player.</p>
<p>In the case of streaming, to convert your progressive OSMF video player to a streaming OSMF video player, all you do is change the URL! Seriously, that&#039;s it. OSMF is smart enough to know that when you try to load a video from an RTMP server, you&#039;re trying to stream &#8212; and it takes care of the rest.</p>
<p>That was pretty neat. But the benefits really kicked in when I beefed my regular streaming OSMF video player to one that supports dynamic multi-bitrate streaming. All it took was just a few extra lines of code to turn my regular video player into one that supports dynamic multi-bitrate streaming. If you want to learn those lines of code, I&#039;d recommend checking out the course.</p>
<p>As I say, I&#039;m still just barely cracking the surface of OSMF, and I&#039;m really looking forward to digging deeper into its support for layouts, playlists and monetization. But, even with this second course, the massive time, workflow and standardization features of OSMF are already revealing themselves.</p>
<p>Share and enjoy!</p>
<p>-r</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.almerblank.com/2009/12/multi-bitrate-streaming-in-adobe-osmf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Flash to Turn Pictures into Music</title>
		<link>http://labs.almerblank.com/2009/12/using-flash-to-turn-pictures-into-music/</link>
		<comments>http://labs.almerblank.com/2009/12/using-flash-to-turn-pictures-into-music/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 01:06:07 +0000</pubDate>
		<dc:creator>rblank</dc:creator>
				<category><![CDATA[Actionscript 3.0]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[ludi]]></category>

		<guid isPermaLink="false">http://labs.almerblank.com/?p=1291</guid>
		<description><![CDATA[I&#039;ve just publicly released the first available output from the Synesthesizer &#8212; a side-project, executed in Flash, that translates pictures into music. The Synesthesizer is the first tangible product of Project Ludi, an internal skunkworks project here at Almer/Blank, the goal of which is to translate any type of media into any other type of [...]]]></description>
			<content:encoded><![CDATA[<p>I&#039;ve just publicly released the first available output from the Synesthesizer &#8212; a side-project, executed in Flash, that translates pictures into music. The Synesthesizer is the first tangible product of Project Ludi, an internal skunkworks project here at Almer/Blank, the goal of which is to translate any type of media into any other type of media.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="430" height="260" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.rblank.com/wp-content/uploads/2009/12/synesthesizer_output1_demo1.swf" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="430" height="260" src="http://www.rblank.com/wp-content/uploads/2009/12/synesthesizer_output1_demo1.swf" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>The Synesthesizer is a Flash 10 musical synthesizer that relies on <a href="http://en.wikipedia.org/wiki/Synesthesia" target="_blank">synesthesia</a>-inspired translation metaphors.</p>
<p><span id="more-1291"></span>I&#039;m only a few short months into what is a very long-term endeavor, and I&#039;ve had precious few hours to spend on the project in that time, but I always set the benchmark definition of version 1.0 of the synesthesizer as &#039;a system that produces something approximating music&#039;, and even though I haven&#039;t invested nearly the amount of time as I&#039;d like, I believe that the current Synesthesizer meets this definition. And thus, I feel I have Synesthesizer 1.0.</p>
<p>The Synesthesizer is a Flash 10 application that translates pictures into music in real-time. What I&#039;ve included with this post is a rendering of the output of the application &#8212; not the Synesthesizer itself. I&#039;ll let you judge the quality for yourself &#8212; and please feel free to let me know what you think.</p>
<p>Now, of course, there is far more to do here, but what I found most amazing about this process was how easy it was to get to a point of generating &#039;music&#039; instead of &#039;sound&#039;. In effect, I apply something along the order of six rules to get to this point. The addition of each rule to the Synesthesizer brings us closer to the generation of music, instead of raw sound.</p>
<p><a href="http://www.rblank.com/wp-content/uploads/2009/12/hearingPictures_20091129_b.001.png"><img class="alignnone size-medium wp-image-798" style="margin-right: 10px;margin-bottom: 10px;" title="Hearing Pictures" src="http://www.rblank.com/wp-content/uploads/2009/12/hearingPictures_20091129_b.001-300x225.png" alt="Hearing Pictures" width="300" height="225" align="left" /></a>To get a bit more insight into the Synesthesizer, you should check out my talk, <em>Hearing Pictures</em>, which I&#039;ll be presenting <a href="http://www.fitc.ca/events/presentations/presentation.cfm?event=101&amp;presentation_id=1103" target="_blank">at FITC Amsterdam in February</a> and <a href="http://www.fitc.ca/events/presentations/presentation.cfm?event=102&amp;presentation_id=1108" target="_blank"> at FITC Toronto in April</a>.</p>
<p>In this talk, I describe the process I followed to get the Synesthesizer to this point. Using the 1943 Hermann Hesse novel, <a href="http://en.wikipedia.org/wiki/The_Glass_Bead_Game" target="_blank"><em>The Glass Bead Game</em></a> (also published under the title <em>Magister Ludi</em>, the protagonist of the novel, from whom Project Ludi derives its name), as a starting point, and proceeding through a discussion of <a href="http://en.wikipedia.org/wiki/Synesthesia" target="_blank">synesthesia</a>, the <a href="http://deutsch.ucsd.edu/" target="_blank">aural illusions of Professor Diana Deutsch</a>, the <a href="http://artsites.ucsc.edu/faculty/cope/experiments.htm" target="_blank">Experiments in Musical Intelligence by Professor David Cope</a>, the <a href="http://www.npr.org/templates/story/story.php?storyId=112444869" target="_blank">music of Tamarin Monkeys</a>, and many other stepping points, I walk through the thought process required to assume an odd endeavor such as the cross-modal translation of pictures into music.</p>
<p>Share and enjoy!</p>
<p>-r</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.almerblank.com/2009/12/using-flash-to-turn-pictures-into-music/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
