« 2008年05月 | メイン | 2008年07月 »

2008年06月18日

早速「Firefox 3」 を導入・・・

firefox 3

「Firefox 3」がリリースされたので一応リスク覚悟で導入してみました。
Safari3.1より高速だと謳っているので・・・

インストール後は、実際思った以上にサクサク動作してます。
とくにグーグルのサービス(GmailやGoogle Reader)を利用していて動作の重さを実感していたので、これに関してはかなり改善しそうです。

ただし、マイナス点としてはこれまで使用していたアドオン(Extension)が使えなくなる可能性があるので「Firefox」で開発環境を作っている人はアドオンの動向を先に探った方が良さそうです。

  • Firebug を使っている人はモジラのアドオンサイトにあるv1.2.0bが動作します。
  • Web Developer日本語版は、v1.1.6が動作します。
  • Flash Switcherは、v2.0.2が使えますので今後FP10と切り替えて使いたい人には便利そうです。
  • Greasemonkey系は大丈夫そうです。
  • Japanizeは、配布サイトでv0.8.11を入れれば動作します
  • その他、グーグル系を便利にするアドオンはオートアップデートで大丈夫そうです。
  • ビデオダウンローダー系は今のところ全滅のようです。
  • このエントリーをdel.icio.usに追加する
  • このエントリをニフティクリップに追加
  • POOKMARK Airlinesへ追加
  • このエントリをLivedoor クリップに追加
  • このエントリーをはてなブックマークする

2008年06月12日

Vector型は50%速い・・・?

Audio Mixer

FP10の新機能をメインにマルチトラックのオーディオミキサーを作ってみました。
(昨日買った本は今のところ何の役にも立ってませんが・・・)

メイン部分がsamplesCallbackイベントでのバイナリ操作になるので従来のSoundクラス、SoundChannelクラス、SoundTransformクラスを使ったオーソドックスなスタイルとは頭の切り替えが必要ですね。

まあ、これはこれとして(笑)、今回は新しい配列型であるVectorを多用してみました。
なぜかというとどこかのブログで従来のArrayと比較して50%程度、速くなると書いてあったからです。
AS2と比べてかなり高速になったはずのAS3ですが、速くなったがゆえに逆に早さを意識してコーディングすると言う変な感じになってます・・・

ところで最新のコードガイドラインでは、if/else 文の命令が1つしかない場合、ブロックで囲わないことが推奨らしく、サンプルなんかで囲みがなくて綺麗にインデントされていないとコードを勘違いするので要注意です。
(囲みが無くなったことでネスト状態も分かりにくい)


if (flag)
doThing1();
//とか
if (flag)
doThing1();
else
doThing2():
//とか
//ネスト状態が分かりにくい
if (!condition1)
return false;
...
if (!condition2)
return false;
...
if (!condition2)
return false;
...
return true;

  • このエントリーをdel.icio.usに追加する
  • このエントリをニフティクリップに追加
  • POOKMARK Airlinesへ追加
  • このエントリをLivedoor クリップに追加
  • このエントリーをはてなブックマークする

2008年06月11日

遅ればせながらAS3に足を踏み入れた・・・

これまで仕事としてのニーズがまったく無かったので巷のActionScripterの盛り上がりとは一歩引いたところで予習程度(又はブログ掲載用の遊び程度)にActionScript 3.0 をやってたんですが、今月に入ってからの仕事でクライアント側から「Flex3での開発/納品指定」だったり、またその内容がByteArrayをバリバリ使うような仕事だったりとちょっと大変なことになってます(笑)

仕事としては、いつものようにオーディオ・音楽系なので例の「popforge」だったり、FP10の新機能だったりと仕事に使えるかどうかも含めていろいろと検証しているところです。

それにしても「popforge」の方はAPIドキュメントすら無いようなのでsvnに同梱されているサンプルとライブラリ自体を読んだりとちょっと面倒くさかったですね。

まあ、現時点の「popforge」は、例の”SOUND_COMPLETE”問題で根本が揺らいでいるので選択肢から外す可能性が大です・・・「popforge」の動作原理は、かなりハック的要素が強いので今後、核となる部分をFP10の新機能に置き換えてパワーアップしたものが登場するんじゃないでしょうか。

なにせ、AdobeのFlash Player担当プログラマーが”SOUND_COMPLETE”は今後も改善しないかもっと悪くなると明言しているので・・・これは、「popforge」を使う、使わない、にかかわらずシビアなレベルではこのイベントに期待するのは厳しいと言うことです。(特にFP9以降+Windows Vista)

FP10が正式リリースされて以降は、FP10のサウンド機能を拡張するためのフレームワークが数多く登場して、これまでになく音楽ジャンルが盛り上がるんじゃないかと密かに期待してます。

そう言えば、Adobe Labs.にCS4のベータ版がいくつか登場してますが、Flash CS4のベター版もまもなくじゃないでしょうか・・・YoutubeにはFlash CS4 スニークプレビュー版のビデオがいくつもアップされてるので・・・

  • このエントリーをdel.icio.usに追加する
  • このエントリをニフティクリップに追加
  • POOKMARK Airlinesへ追加
  • このエントリをLivedoor クリップに追加
  • このエントリーをはてなブックマークする

2008年06月05日

ビート(タイム)テーブルを作ってみる

前回は、ピッチテーブルを作りましたが今回は音楽ソフトウエアに欠かせないテンポ値から計算するビート(1拍)テーブルです。つまり一拍ごとの時間値の配列(タイムテーブル)です。

■ 引数に必要な要素は:(下記サンプルコードの場合)


  • tempo(テンポ)テンポ120なら、120.0

  • beat(一小節の拍数)4拍子では、4

  • bars(小節数)例えば8小節なら、8

  • _offset(オフセット)音楽的な1小節1拍目が「0」のときは、0.0


offset値は、オーディオデータとシンク(同期)する場合などの時に音楽的な曲頭とオーディオデータの時間軸の頭が一致しない場合にオフセット値を設定します。

下記サンプルの場合、Math.round()で整数に丸めていますが小数点以下も欲しい場合は外してください。

function create_beat_array(tempo:Number, beat:int, bars:int, _offset:Number):Array {
	var interval_time:Number = Math.round (60 * 1000 / tempo);
	var total_beats:int = beat * bars;
	var beat_array:Array = [];
	for (var i:int= 0; i < total_beats; i ++) {
		beat_array [i] = _offset + (interval_time * i);
	}
	return beat_array;
}
  • このエントリーをdel.icio.usに追加する
  • このエントリをニフティクリップに追加
  • POOKMARK Airlinesへ追加
  • このエントリをLivedoor クリップに追加
  • このエントリーをはてなブックマークする

2008年06月02日

FP10-サウンド関連のリンクをまとめてみる(メモ)

ここ数年は、オーディオ、音楽関係のプログラミングを中心に仕事をしているのでFlash Player 10(Astro)での進化はかなり気になるところです。

これまで外部ドライバ(DLL等)に頼っていた部分が、今後の展開によってはFlash(SWF)のみで完結できるかもしれません・・・あくまで期待と願望ですが・・・やっぱ、MIDIも欲しいよなあ・・・

現在のFlash Player 10(Astro)がまだベータ版の段階なので公式/非公式を含めてそれほど情報やサンプル等が多くないのでとりあえず現時点で気になるエントリをリンクとしてまとめてみました。

■ サウンド関連(FP10)

■ サウンド関連(FP9)

■ サウンド関連フレームワーク(FP9)

オーディオ関連のフレームワークは、公式なドキュメントが無い(?)ようなので、使っている皆さんはコードを読んでいるでしょうか?(私が見つけられてないだけ?)

もし、上記以外に「これは良いよ・・・」というのがあれば教えてちょ・・・

■ フォーマットについて(追記)

  • このエントリーをdel.icio.usに追加する
  • このエントリをニフティクリップに追加
  • POOKMARK Airlinesへ追加
  • このエントリをLivedoor クリップに追加
  • このエントリーをはてなブックマークする