2016年9月23日金曜日

Small Basic で MML to MID (mml2mid.exe) を使用した music 作成

Small BasicではSound.PlayMusicコマンドで音楽演奏できるが、できる機能が限られている。 特に和音(chord)が難しい。
オールトの雲 さんのHPを見るとSmall BasicのSound.PlayMusicについて以下のように書いてあります。
http://ooltcloud.at.webry.info/201007/article_4.html

QBasic互換のMMLがどのようなものが使えるのかが不明ですが、とりあえず確認できた使えるコマンドは以下。
 R … 休符
 C,D,E,F,G,A,B … 音(音名)
 C+ … Cは音名。♯ (シャープ, 半音階上げる)
 C- … Cは音名。♭ (フラット, 半音階下げる)
 Cn … Cは音名。nは音の長さ。 例) 1:全音符 / 2:二分音符 / 4:四分音符 …
 Cn. … Cは音名。nは音の長さ。"."は付点。"C2."は付点二分音符で長さが二分音符+四分音符。
 Ln … デフォルトの音の長さ。L4とすると、音名の横に数字を書かない場合、Lnの長さになる。
 On … オクターブ。デフォルトは4。いわゆる 「ドレミファソラシド」 は 「O4 CDEFGAB O5 C」
 > … オクターブを一つ上げる。上記の 「O4 CDEFGAB O5 C」 は 「O4 CDEFGAB>C」 でも 同じ。
 < … オクターブを一つ下げる。

  逆に確認できていないのは以下。
 テンポ … Tn で指定できそうだが無視された。
 音色 … とりあえず音色ひとつだけ? @nは無視された。
 ペダルオフ? … ないのかなあ?
 和音 … 当面ないんだろうな。
そこで和音が作りやすくSmall Basicからアクセスできるフリーのmml関連プログラムは無いか探したところ、mml2mid.exeがみつかりました。
(  mml2mid.exe is  made by  Akito Monden, Hideki Fujii,  Hisayasu Kuroda and  Naoyuki Nide   See    http://hpc.jp/~mml2mid/index-e.html )

これはmmlが記述されたファイルをmidファイルに変換するプログラムです。

今回 Small Basic でmmlを記述し、LDProcess,Startでmml2mid.exeに渡してmidファイルを生成し、LDControls.MediaPlayerでそのmidファイルを再生演奏するというプログラムを作りました。  VMS075  

mml2mid.exeで使用するmmlの仕様は、Daikoku Manabuさんの詳細な
説明書(以下のHP)を参照しています。 
http://tutorial.jp/music/mml/mmlman.pdf#search=%27mml2mid+%E8%A7%A3%E8%AA%AC%27
' < Usage >
' Folder ....   mml file names are list up  in the Listbox 
' Click  .... You can  select  a mml file and its data is shown in the textbox. mml file path is shown in the textbox.
' save .....   Edited mml data is saved (doesnt play)
' save&Play.... mml data is saved and  changed to mid file and  played.(LDmediaplayer)
' stop ..... stop player
以下は パッヒェルベルのカノンの出だし部分です。 Canon in D (Pachelbel) 
A o3 l1 t180
A c0g <g0>d <a0>e <e0b  f0>c <c0>c <f0>c <g0>d
1A o4 l1
1A e <b >c <g f0a e0>c <f0a g0b
この様に和音を作ることができます。



0 件のコメント:

コメントを投稿