スポンサード リンク


  • Google
    Web sketch.txt-nifty.com

2009.05.17

FlMML - DPCM変換ツール

 すごく便利だと思うので新しいエントリでご紹介。
 前回のエントリでFlMMLの新機能、ファミコンDPCMを紹介しましたが、その機能を使うための便利なツールが出来ました!

http://www.logicmachine.jp/files/DPCMConverter.swf

 「出来ました」っつっても僕は何もしてないわけですが、上級者向けの機能が中級者向けになるくらい便利なツールだと思います。archeさんありがとう。
 どんな曲ができるのか楽しみだなー。

2009.05.16

FlMML - ファミコンDPCM

 FlMML更新しました。
 前回のarcheさんに引き続き、今度はOffGaoさんがファミコンDPCMを実装してくださいました!
 アルファピコ師の皆さんはすごいな・・・。

 DPCMっていうのは、一言でいうと精度の低いサンプリング音源ですね。
 ファミコンの「スーパーマリオブラザーズ3」で鳴っていた「カラカン!」という軽快な打楽器の音(ティンバレス)が鳴っていたのを覚えているかたも多いんじゃないでしょうか。
 chiptuneらしさを損なわないまま、迫力あるドラム音を鳴らしたりすることができます。
 OffGaoさんがサンプルも作ってくれたので、そのまま使わせていただきますね。

  【動作サンプルはこちら】

 ダウンロードはこちらから。
 使い方については続きをどうぞ。

続きを読む "FlMML - ファミコンDPCM" »

2009.05.03

FlMML - エクスプレッション

 最近FlMMLのことしか書いてないけど今日もFlMMLの更新情報。
 v、@vのベロシティコマンドに続く音量設定コマンド、@x エクスプレッションコマンドを追加しました。
 値は0~127までで、デフォルトは127となっています。

 ベロシティがノートオンのときの強さであるのに対して、エクスプレッションはその楽器の抑揚を表します。
 と、難しいこと言ってますが、2種類の音量設定が使えるようになったってことですね。
 タイで音を伸ばしている最中でも音量を変更できるので、ソフトウェアエンベロープなどにもご活用ください。

 FlMMLのダウンロードはこちらからどうぞ。

2009.04.12

FlMML - 引数つきマクロ

 すっかり更新できない状況が続いてたんですが、ソース公開してるといいことありますね。
 archeさんというかたがFlMMLの機能を拡張してくださいました!
 引数つきマクロの機能です。上級者向けですがこれは便利。

 具体的な使い方は以下のような感じです。
$m{note} = @V100 %note16 @V64 %note16 R8;
$m{C} $m{D} $m{E} $m{F} $m{G}
 これで同じマクロでも%noteの部分を変更しながら使うことができます。
 つまり
 $マクロ名{引数1 ,引数2, ...}=マクロの内容;
 のように、マクロ名につづけて中カッコを書き、その中に引数の名前を書くという形です。
 引数につけられる名前の書式はマクロ名と同じです。アルファベットで始まって、アルファベットまたは数字、+、()、#のいずれかが続くという形です。
 そして引数を使いたいところでは %引数名 と書きます。
 引数は複数使うこともできます。たとえば
$m{vol,note} = @V%vol %note;
 というように書きます。
 実際にマクロを使うときは $マクロ名{引数1, 引数2, ...} のように書きます。
 さっきの例だと
$m{vol,note} = @V%vol %note;
$m{100, CDE}
となりますね。
 例が悪いのでピンとこないかもしれませんが、使いかた次第で面白いことができそうです。

 もとはニコニコ大百科のcryptさんのユーザ記事( http://dic.nicovideo.jp/u/316188 )で見かけた機能とのことです。
 ここに書いてある他の要望機能も参考になりますね。

 archeさん、cryptさんありがとう~~!!

2009.03.21

FlMML - 再生時間表示

 FlMML、久し振りの更新ですが地味な機能追加です。
 総再生時間と現在の再生時間が表示できるようになりました。
 それから、マクロ展開時のバグが修正されています。



 一時停止から再開したときにちょっと微妙なことになるんですが、どうにも対処しきれませんでした。
 Dynamic Sound Generation使用時はpositionを巻き戻しても上手くレジュームできないようなんですよねぇ。
 それほど致命的な不具合ではないかなと思って公開してしまいました。

 ソースの取得はこちらからどうぞ

2009.02.01

FlMML - GB波形メモリ音源

 FlMML更新しました。
 前回はゲームボーイノイズを実装したので、今回はGB波形メモリ音源です。
 最近まで知らなかったんですが、GBには1チャンネルだけ波形メモリ音源がついてたそうなので、なんとなくの知識で実装してみました。
 もし何か間違ってたら、しれっと修正するかもしれないのでお気をつけください。

  【動作サンプルはこちら】

 サンプルでは数種類の音色でドレミを鳴らしたあと、応用例として高速トレモロを鳴らしています。
 LFOにも使えるのは案外便利じゃないかなーと思ったりしています。

 FlMMLのダウンロードはこちら
 前回のエントリのとき(Rev.27840)より全体的に高速化もされてます。
 今回のリビジョンは29203です。

 機能の説明は続きをどうぞ。


続きを読む "FlMML - GB波形メモリ音源" »

2009.01.05

FlMML - バッファリング・ファミコン音源・ゲームボーイ ノイズ

 あけましておめでとうございます。

 FlMML更新しました。今回の目玉はファミコン音源と安定性の向上です。

 サンプルでは ちょっとしたBGMと効果音が2回ずつながれます。
 最初に今までの音源でファミコンを真似したもの。
 次に新機能で再現したものが鳴ります。

The Flash movie is here. JavaScript enabled please.


 どうでしょうか。
 2度目のほうが より墓穴を掘りそうだし、2度目のほうが より いてつきそうな感じしませんか?
 微妙といえば微妙な差なんですけどね。

 FlMMLのダウンロードはこちら
 機能の説明は続きをどうぞ。


続きを読む "FlMML - バッファリング・ファミコン音源・ゲームボーイ ノイズ" »

2008.12.01

ファミコン三角波

 ファミコン三角波について調べてみました。

 普通のシンセサイザーが出す三角波はこんな波形です。

普通の三角波
 ところがファミコンの音源は解像度が荒いので、これに16段階のギザギザがつきます。
 ファミコンの絵がカクカクしたドット絵なのと一緒ですね。
 これが、ファミコンサウンド独特の“味”になっています。

 と、ここまでは知ってたんですが…。

続きを読む "ファミコン三角波" »

2008.11.26

FlMML - Flash 10対応(Vistaも音が途切れない!)

 FlMMLを Flash 10に対応させました。
 Flash 10の新機能、Dynamic sound generationを使用しています。
 PopforgeにはVistaで安定した再生が出来ないという問題があったんですが、これで Vistaでもブツブツ途切れずに再生できるようになりました。たぶん。
 持ってないので確認できてませんが…。
 どなたか報告いただけたら嬉しいです。

 今までありがとう Popforge!!

2008.11.15

SiOPM

 FlMMLのFM音源機能をリリースしてから知ったんですが、SiOPMなんていうのが発表されてたんですねー。
 これは強力なライバル。というか既に負けてる気がしますが、まあ、ちゃんとしたTSSCPが出来てくれるのはきっといいことですよね。
 こっちはこっちで独自に進化しようっと。

2008.11.13

FlMML - FM変調(FM音源)

 えらく時間がかかってしまいましたが、ようやくFM変調(FM音源)が出来ました!
 FM音源というのはデジタルシンセサイザーの一種で、金属的な音、キラキラした音が得意だと言われてます。
 昔のPCのゲームとか、携帯電話の着メロなんかにも使われてますね。

 というわけで、本当は昔のゲームみたいなサンプルを用意しようと思ってたんですが、こんな時期だからこそベッタベタの小室進行にしてしまいました。あんまりFM音源らしい音じゃなくてゴメンナサイ。

The Flash movie is here. JavaScript enabled please.


 DXベースみたいのが作れたら良かったんですけどね。どうにも難しくて。
 ベースはサイン波をサイン波で変調。リフはパルス波をパルス波で変調したらこんな音になりました。

続きを読む "FlMML - FM変調(FM音源)" »

2008.10.10

FlMML - バグ修正と予告

 なんか忙しくて仕方ないのでバグ修正の告知と予告だけ。

 マクロ中で未定義のマクロ(自分自身)を使ったときにハングしてしまっていたバグを修正しました。

 あと、要望見てると機能追加よりライブラリとしての基本的な機能を充実させたほうがいいのかなぁなんて思うのですが、次の更新は多分FM音源です。
 でも、こういうとこに要望版があるといろいろ挙げてもらえて嬉しいですねー。

2008.09.15

FlMML - ゲートタイム絶対指定

 ピコカキコでリクエストされていたようなので

 絶対Q
 qで指定されたゲートタイムら全音符のx/192の長さを引いたゲートタイムにする。
 記法 @q[n]

 ってのを実装してみました。
 危うく元の q と関係ない実装にしてしまうとこだったんですが、偽TCPのマニュアル読んだらこう書いてあったので、たぶんこれでいいのかな?
 味もそっけもないデモですが、どぞ。

The Flash movie is here. JavaScript enabled please.

2008.09.06

FlMML - ノートシフト

 FlMMLがニコニコ大百科(仮)ピコカキコ機能にも採用してもらえました。
 わー。

 こういう正式サービスなところで採用してもらうとドキドキしますね。
 迂闊に仕様変更できないなーって意味でもドキドキしますが、でも嬉しいです。

 早速追加機能のリクエストが来てたので、とりあえず簡単なやつを実装してみました。
 ノートシフト、あるいはトランスポーズ、あるいは移調です。
 nsにつづけて数字を書くと、その後に書いた音名を移調して演奏します。

The Flash movie is here. JavaScript enabled please.


 今日は以上~。

2008.07.06

FlMML - 非線形音量モード

 ようやく、音量モードの変更を実装しました!
 何のことだか分からないひとにはサッパリだと思いますが、分かる人には「今更か!」と怒られるような機能ですよね、これ。

 ま、とにかく いつものようにサンプルを。
 最初に x1(非線形モード)、続いて今までの x0(線形モード)で音が流れます。

The Flash movie is here. JavaScript enabled please.


 後のほうが全体的にベタっとした感じなのが分かりますか?
 アタック部分が潰れちゃってるし、後半はフェードインしてるのにあまり音量が変わらない感じになっちゃってます。

 音というのは空気の振動であって、振幅が大きいほど音量が大きくなる…っていうのはご存知のかたが多いかと思います。
 ただ、人間の耳というのは、振幅が2倍になったからって音量が倍になったように聞こえるわけじゃないんですよね。
 そこで、人間の耳に適正に聞こえるような音量モードをつけてみたと。

 もう x1 がデフォルトでもいいんじゃないかって気もするんですが、互換性なくなっちゃいますからね。すみませんが毎度毎度 x1 って書いてください。
 一応、x0のほうが 少~しだけ動作が軽いと思います。

 追記:ダウンロードはこちら。書き忘れてました…。

2008.06.29

FlMML - LPFとHPF

 フィルタ仮対応の記事から早1ヶ月以上。
 処理速度を取るか品質を取るかで悩んでたんですが、結局両方入れちゃいました。
 荒い音だけど動作の軽いフィルタと、重いけど品質のよいフィルタが選べます。
 とりあえず軽いほうを聴いてみて下さい。

The Flash movie is here. JavaScript enabled please.


 バスドラムの音もレゾナンスの自己発振で作ってあります。
 MMLが鳴らす音らしからぬ、荒削りな音がかえって面白いと思います。
 使い方は以下の通り。

続きを読む "FlMML - LPFとHPF" »

2008.06.14

FlMML - フォルマントフィルタのバグ修正と一時停止

 更新できないでいる間に FlashPlayer10の新機能が発表されてたみたいですね。もう popforge要らんのか? とか思ったりもしましたが、皆がすぐにバージョンアップするわけじゃないからしばらくこれでいいのかな。

 で、FlMML。
 前回フィルタを付けかけたんですが、どうにもまだ仕様を決めかねてます。
 今回はとりあえずバグ修正だけでもと思ってコミットしました。

 http://coderepos.org/share/wiki/FlMML

 フォルマントフィルタを複数チャンネルにかけると酷い音が出ちゃってたバグに対処しました。長らく放置してしまってすみません。
 それから、一時停止にも対応してみました。FlMMLはデフォルトのバッファサイズが大きいので、再生再開ポイントがちょっと後ろにずれてしまうんですが、とりあえず仕様とさせてください。

2008.05.12

FlMML - フィルタ仮対応

 やまだかつてないPerfumeっていうのがデビューしたりしませんかね。しないですね。

 今日は久しぶりにFlMMLに機能追加。フィルタ(VCF)を搭載してみました。
 一般的にはFM音源を期待されてたと思うんですが、減算方式のシンセが載ったMMLっていうのも珍しくて面白いかと。
 とりあえず、期待しないで音を聴いてみてください。

The Flash movie is here. JavaScript enabled please.


 どうでしょ。レゾナンスつき、24dbのLPF(Low Pass Filter)です。ミョンミョンです。

 が、重いんですよねぇ…。ちょっとこのままじゃ使えないので、今回ソースを公開してません。仕様が変わる可能性がかなり高いので。
 それでもいいから遊んでみたい、と思ってくださるナイスガイは以下の説明をご覧の上、こちらの直接リンクでお楽しみください。

続きを読む "FlMML - フィルタ仮対応" »

2008.03.23

FlMML - swfobject2.0対応

 3ヶ月ぶりの更新ですが、やる気をなくしたわけじゃないんですよ!

 とは言え、これだけ間が空くと色々忘れてるもので。
 リハビリということで、とりあえず swfobject 2.0 に対応してみました。
 まあ、FlMMLをblogに貼り付けてる人なんて見たことないので あんまり需要はないんでしょうけど、IE7も標準になっちゃいましたしね。

The Flash movie is here. JavaScript enabled please.


 ちなみに、今回からビルド環境が Flex 3 SDK になりました。
 ダウンロードはこちらから。使い方は続きをどうぞ。

続きを読む "FlMML - swfobject2.0対応" »

2007.12.22

FlMML - LFOと不等号反転

 すっかり間が空いてしまいました。
 それというのもWiiフィットが毎日30分も貴重な時間を奪うせいだ!…ていうのもあるんですが、今回は随分悩んだんですよね。
 悩んだ末に、こんな仕様でLFOを追加しました。

The Flash movie is here. JavaScript enabled please.


 簡単にテンポと同期できるってのがFlMMLのLFO機能の特徴です。
 それから、NECファン待望の(?)不等号反転機能を追加しました。
 使い方は続きをどうぞ。

続きを読む "FlMML - LFOと不等号反転" »

2007.12.03

FlMML - コメント

 今日もマイナーバージョンアップ。
 FlMMLにコメント機能を追加しました。
 /* と */ で囲んだ部分を無視します。
 
CD /*EF */ G

 と書いてあったら「ドレソ」と演奏するってことですね。
 
/* BASS */

 とか書いてMMLを見やすくするのに使ってください。
 従来どおり、2バイト文字(全角文字)も無視します。

 以下日記。

 Wii Fit が届いたのでしばらく遊んでました。
 面白いなーこれ! コントローラーでやったらサッパリ面白くなさそうなゲームも、身体動かすと妙にニヤけてしまうんですよね。
 ずるいなぁ。バランスボードも Flash で使えるようにならないかな。


2007.11.30

FlMML - マクロ・繰り返しのバグ修正

 FlMMLの公式サイトは http://coderepos.org/share/wiki/FlMML
 はてなダイアリー内出張所(作者のつぶやき)は http://d.hatena.ne.jp/tekisuke/ です。

 今日は超マイナーバージョンアップ。以下のバグを修正しました。

  • マクロA、マクロBの順に定義した場合でもマクロAの中でマクロBが使えてしまう。
  • MML中でマクロを再定義した場合の動作がおかしい。
  • 繰り返しが連続したときに後の繰り返しが効かなくなることがある。


  •  告知だけだと寂しいので一言日記を。  Crayon Physics がすごい。いいなぁ。こういうのが作りたいです。

    2007.11.26

    FlMML - テンポトラックの独立と SWFObject 対応

     FlMMLの公式サイトは http://coderepos.org/share/wiki/FlMML
     はてなダイアリー内出張所(作者のつぶやき)は http://d.hatena.ne.jp/tekisuke/ になってます。
     今までちゃんと告知したことがなかった気がするので、改めて書いてみました。
     アップデートのお知らせは今までどおりココログ(ここ)でやっていくつもりです。もし はてなでも簡単にflashが貼れるようになったら引っ越すかも。

     さて、今日はLFOを待っている皆の期待を軽やかにスルーして地味目な更新です。
     テンポトラックの独立とswfobjectへの対応。それからid:Ikehonさんに指摘していただいたマクロのバグ修正です。

    The Flash movie is here. JavaScript enabled please.


     詳細は以下の通り。

    続きを読む "FlMML - テンポトラックの独立と SWFObject 対応" »

    2007.11.11

    FlMML - PAN(ステレオ)とデチューン

     約2週間ぶりの更新です。
     思ってたよりフォルマントフィルタの反響が少なくてガッカリしてたとか、そういうわけじゃないですよ! まあちょっとはあるけど!

     今回はPAN(ステレオ)とデチューンに対応してみました。
     2回同じフレーズが鳴りますが、音色の違いに注意して聴いてみて下さい。


     2度目のほうが音の広がりがあったでしょ? これがPANとデチューンの組み合わせによるコーラス効果です。
     その他、付点音符の計算が直ってたり、問題のある書式の場合に一部警告が出るようになってます。EventDispatcherも理解しましたよ!
     ただ今回はテンポトラック独立の件が間に合いませんでした。ごめんなさいkampさん。
     次はきっと。たぶん。

    続きを読む "FlMML - PAN(ステレオ)とデチューン" »

    2007.10.26

    FlMML - Flashでも初音

     最近の人気エントリーとかを見てるともう、猫も杓子も初音ミク初音ミクって!
     羨ましいのでFlMMLにも歌わせてみました。
     まあ、まずは広い気持ちで聞いてくだされ。
     発声練習あーえーいーおーうー♪



     聞こえました?
     こんなの作る前にやることあるだろって気もしますが、作りたかったんだから仕方ないよね。
     初音ミクには程遠いんですが、これはこれで笑えると思います。
     母音しか発声できない子ですが はてなミクとでも何とでも好きに呼んで可愛がってやってください。

     使い方などは続きをどうぞ。



    続きを読む "FlMML - Flashでも初音" »

    2007.10.21

    FlMML -マクロ、HTML出力など

     10/24追記:繰り返し指定のバグを修正してこちらにコミットしました。

     TSSCPの仕様を眺めながら思わず変な声を出しそうになりました。
    「制御文は仕様をあわせるつもりだったのに、手遅れじゃん!」
     繰り返しの使い方は取り違えてるし、大文字小文字を区別しないからマクロも同じにできないし、申し訳ないこと山の如しです。
     まあこの際仕方がないんで、独自のマクロ機能を実装してみました。結構いいと思うんですけど、どうですかね?



    ※Signalを出す機能にまだバグがありまして、今回のバージョンは該当機能を無効にしてあります。
     直り次第修正版を出す予定でいますが未定です。すんません。

     追記:とりあえずハングしないようになりました(バージョン062)。Timerを使ってnミリ秒後にイベントを起こし、Dateを見て誤差を修正する形です。Timerの更新間隔が本体のswfのフレームレートに引き摺られてしまうのを無理やり誤魔化してるんですが、なんかもっと巧いやり方ありませんかねぇ。

     さて、ソースはこちらです。使い方は続きをどうぞ。

    続きを読む "FlMML -マクロ、HTML出力など" »

    2007.10.08

    ActionScript日記 - サウンドのリアルタイム生成(5)

     FlMML関連記事をまとめて読む

     追記:早速バグがあったので修正&機能追加しました。(バージョン051)
     追記2:MML初心者の方は、第3回の記事をご覧ください。慣れてる方はこの記事の続きをどうぞ。

     予想外の反響に吃驚中のFlMML。
     というかJSMMLのおかげで一気に広まった感がありますね。
     ブログに貼り付けられるようにっていうのは自分も考えてたんですけれども、「JavaScriptで音が出る」ってインパクトが大きかったんでしょうね。これは思いつかなかった。
     早速スーパーマリオのテーマを打ち込むひとが現れたりしてスゴイ面白いです。

     それから 1-click Award『オマケクリック』で使ってもらったのも大きいですね。
     ビジュアルとの同期についてコメントをもらったので、今回はその辺を拡張してみました。



     だいたい合ってますよね?
     処理の高速化と機能追加もしましたよ。



     ソース、使い方が見たい方は続きをどうぞ。

    続きを読む "ActionScript日記 - サウンドのリアルタイム生成(5)" »

    2007.09.22

    ActionScript日記 - サウンドのリアルタイム生成(4)

     第1回第2回第3回|第4回|第5回

     前回のエントリが割と好評だったので、調子にのって続きを。
     予告どおり popforge に対応して、対応コマンドも少し増やしてみました。これで少しは曲のバリエーションが増えるかな?



     次は HTML から Flash に MML を渡す部分を作るか、それともLPFでも付けようかなぁ。繰り返し記号にも対応しないとマズイですよね。既に処理が重いのはどうしよう。

     まあとりあえず、新しく対応したコマンドとソースファイルが見たい方は続きをどうぞ。

    続きを読む "ActionScript日記 - サウンドのリアルタイム生成(4)" »

    2007.09.02

    ActionScript日記 - サウンドのリアルタイム生成(3)

     第1回第2回|第3回|第4回第5回

     また1ヶ月近く間が空いてしまいましたが、モタモタしてたら popforge なんてものが発表されちゃってるんですね。既に時代遅れですか! そうなんですか!?
     まあ新しいものには乗っかりたいので、いま作ってるこれも popforge対応にしたいと思います。
     そんなわけで、とりあえず現段階のものをリリース。
     MMLを入力するとメロディを奏でる、FlMMLです。



    続きを読む "ActionScript日記 - サウンドのリアルタイム生成(3)" »

    2007.08.05

    ActionScript日記 - サウンドのリアルタイム生成(2)

     第1回|第2回|第3回第4回第5回

     完全にプログラマ向けのエントリです。

     また物凄く間が空いてしまいましたが、前回の続き。
     まだまだ使い物になるレベルじゃないんですが、一応音楽らしきものが鳴らせるようになったので公開してみたいと思います。5%ルールってとこですか。

      トルコ行進曲(2小節)

     一応プログラム中でメロディを記述することは出来るんですが、このままじゃアレなんで、次はMMLに対応してみたいと思います。
     プチノイズも何とかしたいし、対応してない機能もどうにかしたいですねぇ。

     ソースは続きをどうぞ。

    続きを読む "ActionScript日記 - サウンドのリアルタイム生成(2)" »

    2007.05.31

    ActionScript日記 - サウンドのリアルタイム生成(1)

     第1回|第2回第3回第4回第5回

     迷走しつつあるActionScript日記ですが、今日のテーマはサウンド生成です。
     この分野はあんまり資料がないんですよね。日本語だとOnegameさんのこのページくらいなんじゃないでしょうか?  誰かもう少し音楽的にしたものを作ってくれないかなーと思い続けてたんですが誰もやらないみたいなんで自分でやってみることにしました。
     まだ触りだけですが、とりあえず成果。画面は何もでないんですが、シンセサイズして「ドレミ」と鳴ります。

    ドレミ

     反響があったら解説を書くかもしれませんが、とりあえずソースは以下の通り。

    続きを読む "ActionScript日記 - サウンドのリアルタイム生成(1)" »