<?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>Hi-farm blog &#187; astro</title>
	<atom:link href="http://blog.hi-farm.net/category/flash/astro/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.hi-farm.net</link>
	<description>ActionScript 3.0 , AIR , FLEXからCocoa, OpenGL</description>
	<lastBuildDate>Sun, 05 Sep 2010 20:05:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Spark 勉強会 #5で話して来ました。</title>
		<link>http://blog.hi-farm.net/2008/11/29/spark-%e5%8b%89%e5%bc%b7%e4%bc%9a-5%e3%81%a7%e8%a9%b1%e3%81%97%e3%81%a6%e6%9d%a5%e3%81%be%e3%81%97%e3%81%9f%e3%80%82/</link>
		<comments>http://blog.hi-farm.net/2008/11/29/spark-%e5%8b%89%e5%bc%b7%e4%bc%9a-5%e3%81%a7%e8%a9%b1%e3%81%97%e3%81%a6%e6%9d%a5%e3%81%be%e3%81%97%e3%81%9f%e3%80%82/#comments</comments>
		<pubDate>Sat, 29 Nov 2008 14:45:41 +0000</pubDate>
		<dc:creator>hi-farm.net</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[Actionscript3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[astro]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[dynamic sound generation]]></category>
		<category><![CDATA[effect]]></category>
		<category><![CDATA[fourier transform]]></category>

		<guid isPermaLink="false">http://blog.hi-farm.net/?p=84</guid>
		<description><![CDATA[本当にものすごく久々の投稿になってしまいました。
先日、11/26に行われた、Spark勉強会で、Dynamic Sound Generationの発表をしてきたので、その資料をアップします。
（※再生には音楽ファイルを [...]]]></description>
			<content:encoded><![CDATA[<p>本当にものすごく久々の投稿になってしまいました。</p>
<p>先日、11/26に行われた、Spark勉強会で、Dynamic Sound Generationの発表をしてきたので、その資料をアップします。</p>
<p>（※再生には音楽ファイルを必要なので、各自用意して下さい。）</p>
<p><a title="ソース一式" href="http://www.hi-farm.net/works/spark5/SoundGeneration_spark.zip" target="_blank">ソース一式</a></p>
<p><a title="発表スライド" href="http://www.hi-farm.net/works/spark5/presentation.pdf" target="_blank">PDF</a></p>
<p>「フーリエ変換を使わない、エフェクトのかけかた」というタイトル通り、信号処理には本来フーリエ変換は欠かせないものですが、フーリエ変換の話しになると一気に敷居が高くなる（というか自分が今勉強している状態なので、この様な発表になりました。</p>
<p> </p>
<p>ただ、やはりフーリエ変換を使えていない＆勉強途中での発表になってしまったので、波形が途切れてしまっているところがあるようで、ぷつぷつと途切れる音が結構聴こえてしまいます。。。</p>
<p>あくまでご参考程度にしていただければと思います。</p>
<p> </p>
<p> </p>
<p>［ファイル構成について］</p>
<p> </p>
<p>SoundGeneration.mxml：ラジオボタンやスライダーがついているView + 実際に音を鳴らすファイル</p>
<p>model/SoundObj.as：Dynamic Sound Generationを使って音楽を再生したり、エフェクトをかけたりするスクリプトを記述しているファイル。</p>
<p> </p>
<p>SoundObj.asに関しては、mxmlでも使いやすいように、IMXMLObjectインターフェイスを実装しています。</p>
<p> </p>
<p>［SoundObj.asの仕組み］</p>
<p>_currentEffectというプロパティを切り替えて、どのエフェクトをかけるのかを選択します。</p>
<p> </p>
<p>extractメソッドを呼び出すたびに、bufferプロパティにデータを蓄えています。</p>
<p>これを使って、ディレイや逆再生を実現しています。</p>
<p> </p>
<p>なお、逆再生に関しては、こちらが大変参考になります。</p>
<div>次は、フーリエ変換からめてしっかりとエフェクトをかけられるようになりたいなあ。</div>
<div>フーリエ変換とエフェクトの掛け方を勉強できる機会があれば、是非参加したいです。</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.hi-farm.net/2008/11/29/spark-%e5%8b%89%e5%bc%b7%e4%bc%9a-5%e3%81%a7%e8%a9%b1%e3%81%97%e3%81%a6%e6%9d%a5%e3%81%be%e3%81%97%e3%81%9f%e3%80%82/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[astro filereference] astroでのFileReference</title>
		<link>http://blog.hi-farm.net/2008/06/26/astro-filereference-astro%e3%81%a7%e3%81%aefilereference/</link>
		<comments>http://blog.hi-farm.net/2008/06/26/astro-filereference-astro%e3%81%a7%e3%81%aefilereference/#comments</comments>
		<pubDate>Wed, 25 Jun 2008 18:41:03 +0000</pubDate>
		<dc:creator>hi-farm.net</dc:creator>
				<category><![CDATA[Actionscript3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[astro]]></category>
		<category><![CDATA[filereference]]></category>

		<guid isPermaLink="false">http://blog.hi-farm.net/?p=76</guid>
		<description><![CDATA[いやーすごいですね！astro！
ローカルへのファイル保存が可能だなんて！
実際は、FileReferenceはローカルファイルを読み込んで直接操作できるみたいですが、ひとまず今回は保存です。
 
サンプルはこちら。
（ [...]]]></description>
			<content:encoded><![CDATA[<p>いやーすごいですね！astro！</p>
<p>ローカルへのファイル保存が可能だなんて！</p>
<p>実際は、FileReferenceはローカルファイルを読み込んで直接操作できるみたいですが、ひとまず今回は保存です。</p>
<p> </p>
<p><em>サンプルはこちら。</em></p>
<p><em>（Flashサンプル。赤丸をクリックすると、保存ダイアログが現れて、適当な名前を入力してボタンを押すと、保存。）</em></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.hi-farm.net/astro/filesave.swf" /><embed type="application/x-shockwave-flash" width="400" height="400" src="http://www.hi-farm.net/astro/filesave.swf"></embed></object></p>
<p>注意点としては、同じファイル名で上書き保存しようとすると例外をはくらしいです。</p>
<p>（これはもしかすると僕のサンプルが悪いだけかもです。。）</p>
<p>corelibのJPGEncoderを使って、stageを画像として保存しています。</p>
<p>ようは、FileReferenceにsaveというメソッドができて、それを使うと保存できるよ、ということです。</p>
<p>ちなみに、保存できる形式は、</p>
<p>String, XML, ByteArrayらしいです。</p>
<p>今回のサンプルは、ByteArrayを使って保存しています。</p>
<p> </p>
<p>ちなみにソースはこんなのです。</p>
<p> </p>
<div style="padding-left: 30px;">package</div>
<div style="padding-left: 30px;"><em>{</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>import com.adobe.images.*;</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>import flash.display.*;</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>import flash.events.*;</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>import flash.net.*;</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>import flash.utils.ByteArray;</em></div>
<div style="padding-left: 30px;"><span><em> </em></span></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>public class main extends MovieClip</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>{</em></div>
<div style="padding-left: 30px;"><span><em> </em></span></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>private var jpg:JPGEncoder = new JPGEncoder(100);</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>private var container:Sprite;</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>private var bmpdata:BitmapData;</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>private var btn:Sprite;</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>private var fr:FileReference;</em></div>
<div style="padding-left: 30px;"><span><em> </em></span></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>public function main()</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>{</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>init();</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>}</em></div>
<div style="padding-left: 30px;"><em><br />
</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>private function init():void</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>{</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>//保存ダイアログを出すためのボタン。</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>btn = new Sprite();</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>btn.graphics.beginFill(0xff0000, 1);</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>btn.graphics.drawCircle( 0, 0, 10);</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>btn.graphics.endFill();</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>addChild(btn);</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>btn.width = btn.height = 10;</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>btn.x = btn.y = 320;</em></div>
<div style="padding-left: 30px;"><span><em> </em></span></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>btn.addEventListener(MouseEvent.CLICK, onSave);</em></div>
<div style="padding-left: 30px;"><span><em> </em></span></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>fr = new FileReference();</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>}</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>private function onSave(e:MouseEvent):void</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>{</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>bmpdata = new BitmapData(400, 400, true);</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>bmpdata.draw(stage);</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>var ba:ByteArray = new ByteArray();</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>// stageをBitmap化したものを、ByteArrayに変換。</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>ba = jpg.encode(bmpdata);</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>// 保存ダイアログを出す。</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>fr.save(ba, &#8220;astroSavedFile.jpg&#8221;);</em></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>}</em></div>
<div style="padding-left: 30px;"><span><em> </em></span></div>
<div style="padding-left: 30px;"><span><em> </em></span><em>}</em></div>
<div style="padding-left: 30px;"><em>}</em></div>
<div style="padding-left: 30px;"></div>
<div>いや、ほんとにastroはDynamic Sound Generationといい、すごい進化してますね。</div>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hi-farm.net/2008/06/26/astro-filereference-astro%e3%81%a7%e3%81%aefilereference/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[astro Dynamic Sound Generation] マウスで音程を変えるサンプル</title>
		<link>http://blog.hi-farm.net/2008/06/25/astro-dynamic-sound-generation-%e3%83%9e%e3%82%a6%e3%82%b9%e3%81%a7%e9%9f%b3%e7%a8%8b%e3%82%92%e5%a4%89%e3%81%88%e3%82%8b%e3%82%b5%e3%83%b3%e3%83%97%e3%83%ab/</link>
		<comments>http://blog.hi-farm.net/2008/06/25/astro-dynamic-sound-generation-%e3%83%9e%e3%82%a6%e3%82%b9%e3%81%a7%e9%9f%b3%e7%a8%8b%e3%82%92%e5%a4%89%e3%81%88%e3%82%8b%e3%82%b5%e3%83%b3%e3%83%97%e3%83%ab/#comments</comments>
		<pubDate>Wed, 25 Jun 2008 00:11:25 +0000</pubDate>
		<dc:creator>hi-farm.net</dc:creator>
				<category><![CDATA[Actionscript3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[astro]]></category>
		<category><![CDATA[dynamic sound generation]]></category>

		<guid isPermaLink="false">http://blog.hi-farm.net/?p=75</guid>
		<description><![CDATA[またまたDynamic Sound Generationです。
これは、mouseXの値をもとに、音程を変えるというサンプルです。
ちなみに、音のもとになるのはぜんかいのと同じ矩形波を使っています。
ソースは後ほど。
サ [...]]]></description>
			<content:encoded><![CDATA[<p>またまたDynamic Sound Generationです。</p>
<p>これは、mouseXの値をもとに、音程を変えるというサンプルです。</p>
<p>ちなみに、音のもとになるのはぜんかいのと同じ矩形波を使っています。</p>
<p>ソースは後ほど。</p>
<p><a href="http://www.hi-farm.net/astro/sound.swf" target="_blank">サンプル（音が鳴り、そしてボリューム等の調整はできないです）。</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hi-farm.net/2008/06/25/astro-dynamic-sound-generation-%e3%83%9e%e3%82%a6%e3%82%b9%e3%81%a7%e9%9f%b3%e7%a8%8b%e3%82%92%e5%a4%89%e3%81%88%e3%82%8b%e3%82%b5%e3%83%b3%e3%83%97%e3%83%ab/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[astro Dynamic Sound Genration] 矩形波で遊んでみた。</title>
		<link>http://blog.hi-farm.net/2008/06/23/astro-dynamic-sound-genration-%e7%9f%a9%e5%bd%a2%e6%b3%a2%e3%81%a7%e9%81%8a%e3%82%93%e3%81%a7%e3%81%bf%e3%81%9f%e3%80%82/</link>
		<comments>http://blog.hi-farm.net/2008/06/23/astro-dynamic-sound-genration-%e7%9f%a9%e5%bd%a2%e6%b3%a2%e3%81%a7%e9%81%8a%e3%82%93%e3%81%a7%e3%81%bf%e3%81%9f%e3%80%82/#comments</comments>
		<pubDate>Sun, 22 Jun 2008 18:25:10 +0000</pubDate>
		<dc:creator>hi-farm.net</dc:creator>
				<category><![CDATA[Actionscript3]]></category>
		<category><![CDATA[astro]]></category>
		<category><![CDATA[未分類]]></category>
		<category><![CDATA[dynamic sound generation]]></category>

		<guid isPermaLink="false">http://blog.hi-farm.net/?p=74</guid>
		<description><![CDATA[今回は色々とサンプルをつくってみながら書いてみます。
波形には色々とあるようですが、今回は、矩形波をいじってみました。
基本的なのは、これ。
ちなみに、512ってのはおまじないと思って下さい。
※サンプルFlash（音が [...]]]></description>
			<content:encoded><![CDATA[<p>今回は色々とサンプルをつくってみながら書いてみます。</p>
<p>波形には色々とあるようですが、今回は、矩形波をいじってみました。</p>
<p>基本的なのは、これ。</p>
<p>ちなみに、512ってのはおまじないと思って下さい。</p>
<p><a href="http://www.hi-farm.net/astro/delim1.swf" target="_blank">※サンプルFlash（音がなります。しかも制御できません。）</a></p>
<p><img style="vertical-align: middle; margin-top: 5px; margin-bottom: 5px;" src="http://www.hi-farm.net/astro/rect1.gif" alt="基本的な矩形波" width="295" height="145" /></p>
<p> </p>
<p>で、矩形の周期を半分にすると、こうなります。</p>
<p><a href="http://www.hi-farm.net/astro/delim2.swf" target="_blank">※サンプルFlash（こちらも音がなります。もちろん制御はできないです。）</a></p>
<p><img style="vertical-align: middle; margin-top: 5px; margin-bottom: 5px;" src="http://www.hi-farm.net/astro/rect2.gif" alt="半分周期の矩形波" width="295" height="145" /></p>
<p> </p>
<p>二つを聴き比べると、二つ目（周期が短い方）が音が高いですよね。</p>
<p>どうやら、周期が短いほど音が高くなる、という仕組みらしいです。</p>
<p> </p>
<p>と、いうことは、この周期を徐々に短くしていくと、どうなるんでしょう？</p>
<p><a href="http://www.hi-farm.net/astro/movedelim.swf" target="_blank">※サンプルFlash（音がなり、制御不能。今までと同様ですね。）</a></p>
<h3>一応、「徐々に音が高く」なりましたよね？</h3>
<p> </p>
<p>うんうん。</p>
<p>ということは、これらをうにょうにょすると、宇宙っぽくできるかな？Perfumeっぽい音が出せるかな？○タヤスタカ的な音をasだけで出す事ができるのかな？</p>
<p> </p>
<p>次は他のタイプの波形をいじってみようと思います。</p>
<p> </p>
<p>あ、それぞれのサンプルASも.txtとしてリンク貼っておくのでよかったらいじって下さいね。（ごめんなさい。コメントつけれてないです）</p>
<ol>
<li><a title="普通の矩形波" href="http://www.hi-farm.net/astro/delim1.txt" target="_blank">サンプル１（普通の矩形波）</a></li>
<li><a title="半分周期の矩形波" href="http://www.hi-farm.net/astro/delim2.txt" target="_blank">サンプル２（半分の矩形波）</a></li>
<li><a title="矩形波の周期が短くなる" href="http://www.hi-farm.net/astro/movedelim.txt" target="_blank">サンプル３（周期を動かしたやつ）</a></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.hi-farm.net/2008/06/23/astro-dynamic-sound-genration-%e7%9f%a9%e5%bd%a2%e6%b3%a2%e3%81%a7%e9%81%8a%e3%82%93%e3%81%a7%e3%81%bf%e3%81%9f%e3%80%82/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[flash astro]Dynamic Sound Generation 2.</title>
		<link>http://blog.hi-farm.net/2008/06/13/flash-astrodynamic-sound-generation-2/</link>
		<comments>http://blog.hi-farm.net/2008/06/13/flash-astrodynamic-sound-generation-2/#comments</comments>
		<pubDate>Thu, 12 Jun 2008 18:23:46 +0000</pubDate>
		<dc:creator>hi-farm.net</dc:creator>
				<category><![CDATA[Actionscript3]]></category>
		<category><![CDATA[astro]]></category>
		<category><![CDATA[actionscript3]]></category>
		<category><![CDATA[dynamic sound generation]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[sound]]></category>

		<guid isPermaLink="false">http://blog.hi-farm.net/?p=73</guid>
		<description><![CDATA[またまたですが、Flash Player10 astroのDynamic Sound Generationです。
ボタンを押すと、音が流れます。
パルス波の長さを時間で変えています。
注意：音を止める方法がないので、音を消したい場合はリロードして下さい。

 
これがasだけでできるってのが素晴らしい！！
今、個人的にはこの辺の機能が楽しいなあ。
 
コードはこんなです。
main.as
&#60;code&#62;
package
{
 
 import flash.net.*;
 import flash.display.*;
 import flash.media.*;
 import flash.events.*;
 
 [SWF(backgroundColor="0xeeeeee", frameRate="50", stageHeight="200")]
 public class main extends Sprite
 {
 private var snd:Sound;
 private var square:Sprite;
 private var sh:Number = 200;
 
 private var btn1:Sprite;
 private var btn2:Sprite;
 private var btn3:Sprite;
 private var btn4:Sprite;
 private var btn5:Sprite;
 private var btn6:Sprite;
 
 [...]]]></description>
			<content:encoded><![CDATA[<p>またまたですが、Flash Player10 astroのDynamic Sound Generationです。</p>
<p>ボタンを押すと、音が流れます。</p>
<p>パルス波の長さを時間で変えています。</p>
<p><span style="color: #ff0000;"><strong>注意：音を止める方法がないので、音を消したい場合はリロードして下さい。</strong></span></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="200" height="100" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.hi-farm.net/astro/dynamicsound2.swf" /><embed type="application/x-shockwave-flash" width="200" height="100" src="http://www.hi-farm.net/astro/dynamicsound2.swf"></embed></object></p>
<p> </p>
<p>これがasだけでできるってのが素晴らしい！！</p>
<p>今、個人的にはこの辺の機能が楽しいなあ。</p>
<p> </p>
<p>コードはこんなです。</p>
<p>main.as</p>
<p>&lt;code&gt;</p>
<div>package</div>
<div>{</div>
<div><span> </span></div>
<div><span> </span>import flash.net.*;</div>
<div><span> </span>import flash.display.*;</div>
<div><span> </span>import flash.media.*;</div>
<div><span> </span>import flash.events.*;</div>
<div><span> </span></div>
<div><span> </span>[SWF(backgroundColor="0xeeeeee", frameRate="50", stageHeight="200")]</div>
<div><span> </span>public class main extends Sprite</div>
<div><span> </span>{</div>
<div><span> </span>private var snd:Sound;</div>
<div><span> </span>private var square:Sprite;</div>
<div><span> </span>private var sh:Number = 200;</div>
<div><span> </span></div>
<div><span> </span>private var btn1:Sprite;</div>
<div><span> </span>private var btn2:Sprite;</div>
<div><span> </span>private var btn3:Sprite;</div>
<div><span> </span>private var btn4:Sprite;</div>
<div><span> </span>private var btn5:Sprite;</div>
<div><span> </span>private var btn6:Sprite;</div>
<div><span> </span></div>
<div><span> </span>public function main()</div>
<div><span> </span>{</div>
<div><span> </span>initBtn();</div>
<div><span> </span>}</div>
<div><span> </span>private function initBtn():void</div>
<div><span> </span>{</div>
<div><span> </span>btn = new Sprite();</div>
<div><span> </span></div>
<div><span> </span>drawBtn(btn);</div>
<div><span> </span>btn.buttonMode = true;</div>
<div><span> </span>addChild(btn);</div>
<div><span> </span>btn.width = btn.height = 20;</div>
<div><span> </span>btn.x = 0;</div>
<div><span> </span>btn.y = 0;</div>
<div><span> </span>btn.addEventListener(MouseEvent.CLICK, click1);</div>
<div><span> </span>}</div>
<div><span> </span>private function drawBtn(sp:Sprite):void</div>
<div><span> </span>{</div>
<div><span> </span>sp.graphics.beginFill(0xff0000,1);</div>
<div><span> </span>sp.graphics.drawRect(0, 0, 20, 20);</div>
<div><span> </span>sp.graphics.endFill();</div>
<div><span> </span>}</div>
<div><span> </span>private function click1(e:MouseEvent):void</div>
<div><span> </span>{</div>
<div><span> </span>init();</div>
<div><span> </span>doSamplesCallbackHandler(1);</div>
<div><span> </span>}</div>
<div><span> </span>private function init():void</div>
<div><span> </span>{</div>
<div><span> </span>snd = new Sound();</div>
<div><span> </span>if( snd.hasEventListener(&#8221;samplesCallback&#8221;))<span> </span>snd.removeEventListener(&#8221;samplesCallback&#8221;, samplesCallbackHandler);</div>
<div><span> </span>snd.addEventListener(&#8221;samplesCallback&#8221;, samplesCallbackHandler);</div>
<div><span> </span>snd.play();</div>
<div><span> </span>}</div>
<div><span> </span></div>
<div><span> </span>private function samplesCallbackHandler(e:SamplesCallbackEvent):void</div>
<div><span> </span>{</div>
<div><span> </span>doSamplesCallbackHandler(1);</div>
<div><span> </span>}</div>
<div><span> </span>private var rate:Number = 44100;</div>
<div><span> </span>private var freq:Number = 440;</div>
<div><span> </span>private var phase:Number = 0;</div>
<div><span> </span>private var count:Number = 1;</div>
<div><span> </span></div>
<div><span> </span>/**</div>
<div><span> </span> * generate wave data.</div>
<div><span> </span> */</div>
<div><span> </span>private function doSamplesCallbackHandler(type:int):void</div>
<div><span> </span>{</div>
<div><span> </span>//Voice.beep1();</div>
<div><span> </span>var freq:Number = 220;</div>
<div><span> </span>for( var i:uint=0; i &lt; 512; i++ )</div>
<div><span> </span>{</div>
<div><span> </span></div>
<div><span> </span>phase += freq/(rate);</div>
<div><span> </span></div>
<div><span> </span>var arrange:Number = 1;</div>
<div><span> </span>var a:Number = 1;</div>
<div><span> </span>if( i%2==0 )<span> </span>a = 1;</div>
<div><span> </span>arrange = a*count;</div>
<div><span> </span>var phaseAngle:Number = phase * arrange;</div>
<div><span> </span>var sample:Number = Math.sin(phaseAngle);</div>
<div><span> </span></div>
<div><span> </span>//ここで波形をつくってます。</div>
<div><span> </span>sample = beep1(i);</div>
<div><span> </span></div>
<div><span> </span>//左右チャンネルともに同じ波形。</div>
<div><span> </span>snd.samplesCallbackData.writeFloat(sample);</div>
<div><span> </span>snd.samplesCallbackData.writeFloat(sample);</div>
<div><span> </span>}</div>
<div><span> </span>delim++;</div>
<div><span> </span>if( delim &gt; 256 )<span> </span>delim = 0;</div>
<div><span> </span>}</div>
<div><span> </span></div>
<div><span> </span>private var delim:Number = 0;</div>
<div><span> </span>/**</div>
<div><span> </span> * generate beep1</div>
<div><span> </span> * @param i:uint wave counter.</div>
<div><span> </span> * @return Number</div>
<div><span> </span> */</div>
<div><span> </span>private function beep1(i:uint):Number</div>
<div><span> </span>{</div>
<div><span> </span>var res:Number =0;</div>
<div><span> </span>//delim++;</div>
<div><span> </span>//if( delim &gt; 256 )<span> </span>delim = 0;</div>
<div><span> </span></div>
<div><span> </span>//if( i &lt; 256 )<span> </span>res = 50;</div>
<div><span> </span>//else<span> </span>res = 0;</div>
<div><span> </span>if( i &lt; delim ) res = 50;</div>
<div><span> </span>else<span> </span>res = 0;</div>
<div><span> </span>return res;</div>
<div><span> </span>}</div>
<div><span> </span>}</div>
<div>}</div>
<p>&lt;/code&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hi-farm.net/2008/06/13/flash-astrodynamic-sound-generation-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[astro] dynamic sound generationやってみたよ。</title>
		<link>http://blog.hi-farm.net/2008/06/10/astro-dynamic-sound-generation%e3%82%84%e3%81%a3%e3%81%a6%e3%81%bf%e3%81%9f%e3%82%88%e3%80%82/</link>
		<comments>http://blog.hi-farm.net/2008/06/10/astro-dynamic-sound-generation%e3%82%84%e3%81%a3%e3%81%a6%e3%81%bf%e3%81%9f%e3%82%88%e3%80%82/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 16:05:51 +0000</pubDate>
		<dc:creator>hi-farm.net</dc:creator>
				<category><![CDATA[Actionscript3]]></category>
		<category><![CDATA[astro]]></category>
		<category><![CDATA[actionscript3]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.hi-farm.net/wp/?p=71</guid>
		<description><![CDATA[えっと、ほんとは今日はパラグライダーで空を飛ぶ予定でしたが、天候により中止。
で、代わりにastroのdynamic sound generationやってました。
参考サイトはこちら：
http://www.kaour [...]]]></description>
			<content:encoded><![CDATA[<p>えっと、ほんとは今日はパラグライダーで空を飛ぶ予定でしたが、天候により中止。</p>
<p>で、代わりにastroのdynamic sound generationやってました。<br />
参考サイトはこちら：<br />
<a href="http://www.kaourantin.net/2008/05/adobe-is-making-some-noise-part-3.html" target="_blank">http://www.kaourantin.net/2008/05/adobe-is-making-some-noise-part-3.html</a><br />
<a href="http://memo.kappa-lab.com/2008/06/astroflash10_singing_do-re-mi--.html" target="_blank">http://memo.kappa-lab.com/2008/06/astroflash10_singing_do-re-mi&#8211;.html</a></p>
<p>取りあえずソースは後ほどということで、サンプルだけ。</p>
<p><a href="http://www.hi-farm.net/astro/dynamicsound1.swf" target="_blank">http://www.hi-farm.net/astro/dynamicsound1.swf</a></p>
<p>つまらないやつですが、マウスを押している間、音が高くなっていきます。<br />
マウスを放すと、音が低くなります。</p>
<p>これをasのみでできるのは楽しいですね。<br />
デジタルシンセとか作れそう。</p>
<p>もうちょっとソース整理したら改めて書きます！</p>
<p>あー、デジタルシンセってか、サイン波の音とか、色々勉強したい事がふえるなあ。</p>
<p>2008年6月9日00:53</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hi-farm.net/2008/06/10/astro-dynamic-sound-generation%e3%82%84%e3%81%a3%e3%81%a6%e3%81%bf%e3%81%9f%e3%82%88%e3%80%82/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>astro練習</title>
		<link>http://blog.hi-farm.net/2008/06/10/astro%e7%b7%b4%e7%bf%92/</link>
		<comments>http://blog.hi-farm.net/2008/06/10/astro%e7%b7%b4%e7%bf%92/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 16:04:16 +0000</pubDate>
		<dc:creator>hi-farm.net</dc:creator>
				<category><![CDATA[Actionscript3]]></category>
		<category><![CDATA[astro]]></category>
		<category><![CDATA[actionscript3]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.hi-farm.net/wp/?p=69</guid>
		<description><![CDATA[取りあえず、flash player10 astroの練習をしてみました。
標準で3Dの機能がついたので、ひとまずちょっとしたサンプルを作成しました．
http://www.hi-farm.net/astro/main.swf
処理がかるくなるのかな？と思ってたのですが、Macのアクティビティモニタで見てみると、
今までの様にPapervision3Dを作った時と、重さがあまりかわらない気がしたんですけど、どうなんでしょう？
ソースはこれ。
main.as&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-
package
{
import flash.events.*;
import flash.display.*;
import flash.ui.*;
[SWF(backgroundColor="0x000000", frameRate="50")]
public class main extends MovieClip
{
private var container:Sprite;
private var rect_vc:Vector.&#60;Rect&#62;;
private var len:uint = 6;
private var radius:Number = 100;
private var container_vc:Vector.&#60;Sprite&#62;;
private var innerLen:uint=15;
public function main ()
{
init();
}
private function init():void
{
container_vc = new Vector.&#60;Sprite&#62;();
container = new Sprite();
container.x = 150;
container.y = 10;
addChild(container);
rect_vc = new Vector.&#60;Rect&#62;();
for( var i:uint=0; i &#60; innerLen; i++ )
{
container_vc[i] = genCircle(0, 30*i+10,15*i);
container_vc[i].rotationY [...]]]></description>
			<content:encoded><![CDATA[<p>取りあえず、flash player10 astroの練習をしてみました。<br />
標準で3Dの機能がついたので、ひとまずちょっとしたサンプルを作成しました．</p>
<p><a href="http://www.hi-farm.net/astro/main.swf" target="_blank">http://www.hi-farm.net/astro/main.swf</a></p>
<p>処理がかるくなるのかな？と思ってたのですが、Macのアクティビティモニタで見てみると、<br />
今までの様にPapervision3Dを作った時と、重さがあまりかわらない気がしたんですけど、どうなんでしょう？</p>
<p>ソースはこれ。</p>
<p>main.as&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>package<br />
{</p>
<p>import flash.events.*;<br />
import flash.display.*;<br />
import flash.ui.*;</p>
<p>[SWF(backgroundColor="0x000000", frameRate="50")]<br />
public class main extends MovieClip<br />
{</p>
<p>private var container:Sprite;<br />
private var rect_vc:Vector.&lt;Rect&gt;;<br />
private var len:uint = 6;<br />
private var radius:Number = 100;<br />
private var container_vc:Vector.&lt;Sprite&gt;;<br />
private var innerLen:uint=15;</p>
<p>public function main ()<br />
{<br />
init();<br />
}</p>
<p>private function init():void<br />
{<br />
container_vc = new Vector.&lt;Sprite&gt;();</p>
<p>container = new Sprite();<br />
container.x = 150;<br />
container.y = 10;</p>
<p>addChild(container);<br />
rect_vc = new Vector.&lt;Rect&gt;();<br />
for( var i:uint=0; i &lt; innerLen; i++ )<br />
{<br />
container_vc[i] = genCircle(0, 30*i+10,15*i);<br />
container_vc[i].rotationY = 30 * i;<br />
}<br />
addEventListener(Event.ENTER_FRAME, enterframeHandler);<br />
}</p>
<p>private function genCircle(cX:Number, cY:Number, ra:Number):Sprite<br />
{<br />
var innerContainer:Sprite = new Sprite();</p>
<p>for( var i:uint=0; i &lt; len; i++ )<br />
{<br />
var rect:Rect = new Rect(0xffffff, 10, 10);<br />
innerContainer.addChild(rect);</p>
<p>var rad:Number = (Math.PI/180) * ( (360/len)*i);<br />
rect.x = (Math.cos(rad) &#8211; Math.sin(rad)) * ra;<br />
rect.y = 0;<br />
rect.z = (Math.sin(rad) + Math.cos(rad)) * ra;<br />
rect_vc[i] = rect;<br />
}</p>
<p>innerContainer.x = 0;<br />
innerContainer.y = 0;</p>
<p>innerContainer.x = cX;<br />
innerContainer.y = cY;</p>
<p>container.addChild(innerContainer);</p>
<p>return innerContainer;<br />
}</p>
<p>private function enterframeHandler(e:Event):void<br />
{<br />
for( var i:uint=0; i &lt; innerLen; i++ )<br />
{<br />
container_vc[i].rotationY++;<br />
}<br />
}<br />
}<br />
}</p>
<p>Rect.as&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>package<br />
{<br />
import flash.display.*;<br />
import flash.events.*;</p>
<p>public class Rect extends Sprite<br />
{<br />
function Rect(col:uint, w:Number, h:Number)<br />
{<br />
this.graphics.beginFill( 0xffffff, 1);<br />
this.graphics.drawRect( 0, 0, w, h);<br />
this.graphics.endFill();<br />
}<br />
}<br />
}</p>
<p>2008年6月1日02:36</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hi-farm.net/2008/06/10/astro%e7%b7%b4%e7%bf%92/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
