cmd_play 2.5 – PC88のCMD PLAY文をそれなりに再現

当サイトではアフィリエイト広告を利用しております。

Windowsソフト

概要

8ビット時代の古いパソコン PC-8801 の CMD PLAY文を、現代の Windows パソコンのコマンドラインで再現するプログラムです。懐かしのCMD PLAY 文の音をそれなりに再現できます。

出力音声例

cmd_play.exe -reset "CDEFEDC"

cmd_play.exe -reset "@23L8CDE4.DC8R8CDEDCD2" "@30L4CEECCECD"

cmd_play.exe -reset #5 "@3L16FDEFDEFDEFDEFDEF" "@7L4DDD" "@34L4DDD" "@58L16CCCCCDDDDD" "@24O6L2EL16ECBAG"

cmd_play.exe -reset "T140O4@44 EEE EDC C<BA A>CE AAA AGF FED DEF EFE A-FE EDC C<BA BBB B>C<B A&A&A RRR" -DA$="{A>CE<}" -DB$="[A$][A$][A$]" -DC$="{DFA}" -DD$="[C$][C$][C$]" -DE$="{CDA-}" -DF$="[E$][E$][E$]" -DG$="{CFA}" -DH$="[G$][G$][G$]" "T140O3@12[B$][B$][B$][B$][D$][D$][D$][D$][F$][F$][B$][H$][F$][F$][B$]{CDE}{ADE}A" -DX$="RCC" -DY$="RCC" "T140O5@58[X$][X$][X$][X$][Y$][Y$][Y$][Y$][X$][X$][X$][X$][X$][X$][X$]CCL32CCDDEFGAA4"

使い方

基本的にコマンドプロンプトの黒い画面でコマンドを入力して使います。

使い方: cmd_play [オプション] [#n] [文字列1] [文字列2] [文字列3] [文字列4] [文字列5] [文字列6]

オプション:
  -D変数名=値                変数に代入。
  -save-wav 出力.wav         WAVファイルとして保存(MIDI音源を除く)。
  -save-mid 出力.mid         MIDファイルとして保存(MIDI音源のみ)。
  -reset                     音楽を止めて設定をリセット。
  -stopm                     音色を変えない以外は -reset と同じ。
  -stereo                    音をステレオにする(デフォルト)。
  -mono                      音をモノラルにする。
  -voice CH FILE.voi         ファイルからチャンネルCHに音色を読み込む(FM音源)。
  -voice CH "CSV"            配列からチャンネルCHに音色を読み込む(FM音源)。
  -voice-copy TONE FILE.voi  音色をファイルにコピーする(FM音源)。
  -bgm 0                     演奏が終わるまで待つ。
  -bgm 1                     演奏が終わるまで待たない(デフォルト)。
  -help                      このメッセージを表示する。
  -version                   バージョン情報を表示する。

数値変数は、「L=数値変数名;」のように等号とセミコロンではさめば指定できます。
文字列変数は「[A$]」のように [ ] で囲えば展開できます。

ダウンロード

安心安全のベクターからダウンロードできます。

CMD PLAY文 (8801のみ) (CMD拡張)

  • 【機能】 音楽を演奏します。
  • 【語源】 Command play
  • 【書式】 CMD PLAY [#音源モード,] [ 文字列1 ][, 文字列2 ][, 文字列3 ][, 文字列4 ][, 文字列5 ][, 文字列6 ]
  • 【文例】 CMD PLAY "CDE" ⇒ ドレミを演奏
  • 【説明】 6和音まで演奏できます。文字列1文字列2文字列3はチャンネル1、2、3に、文字列4文字列5文字列6はチャンネル4、5、6に対応します。

音源モード05の値で、次のような意味があります。

  • #0 … 外付けのSSG音源を使います。チャンネル1~6がSSG音源を使用します。
  • #1 … 外付けのMIDI音源を使います。チャンネル1~6がMIDI音源を使用します。
  • #2 … チャンネル1~3がFM音源を、チャンネル4~6がSSG音源を使用します。
  • #3 … OPNを効果音モードに切り替えます。CMD PLAYY文によって音を出します。
  • #4 … OPNをCSM(サイン波)モードに切り替えます。CMD PLAYY文によって音を出します。
  • #5 … FM音源を使います。チャンネル1~6がFM音源を使用します。

音源モードを省略した場合は、#2が選択されます。#5は、サウンドボード2でなければ選択できません。通常、音源モードは、#0#1#2、または#5でお使いください。リズム音源はまだ未対応です。

各チャンネルの文字列は、MML (Music Macro Language)といい、次のような意味を持ちます。

文字列意味初期値
Mx (SSGのみ)エンベロープ周期を設定します(1≦x≦65535)。xは省略可。M255
Sx (SSGのみ)エンベロープ形状を設定します(0≦x≦15)。xは省略可。S1
Vx音量を設定します(0≦x≦15)。xは省略可。V8
Lx音符や休符の既定値の長さを設定します(1≦x≦64)。xは省略可。L4
Qx音の長さの割合を設定します(1≦x≦8)。xは省略可。Q8
Oxオクターブを設定します(1≦x≦8)。xは省略可。O4
>オクターブを1つ上げます。
<オクターブを1つ下げます。
Nxxで指定された高さの音を発生します(0≦x≦96)。xは省略不可。
Txテンポを設定します(32≦x≦255)。xは省略可。T120
Rx休符を演奏します(1≦x≦64)。xは休符の長さです。xは省略可。R4
CB[+/-][x][.]音符を演奏します(1≦x≦64)。xは音符の長さです。xは省略可。音符CDEFGABは「ドレミファソラシ」に対応します。
+ (#)直前の音符を半音上げます。
-直前の音符を半音下げます。
.直前の音符や休符に符点をつけます。長さが1.5倍になります。
&前後の音をつなげます。
{ ... }x指定された長さのx分音符を{ }の中の音符の個数で等分した連符を演奏します。xは省略可。
@x (FM/MIDIのみ)音色番号xで指定された音色に切り替えます。xは省略不可。@0
Yr,d (OPNのみ)OPNのレジスタrの内容をdにします(0≦r≦178 かつ 0≦d≦255)。
Zd (MIDIのみ)MIDIに1バイトのデータdを送ります(0≦d≦255)。
@M (サウンドボード2、FM/MIDIのみ)出力を左右両側に設定します。
@L (サウンドボード2、FM/MIDIのみ)出力を左側に設定します。
@R (サウンドボード2、FM/MIDIのみ)出力を右側に設定します。
@Vx (FM/MIDIのみ)音量を細かく調整します(0≦x≦127)。xは省略不可。@V106
@Wxxで指定された長さだけ状態を維持します(1≦x≦64)。xは省略可でLの値に。@W4
  • 音色番号については、FM音源の音色一覧MIDI音源の音色一覧 をご覧ください。
  • 実機のMIDIでは @xは指定できません。代わりにZdを複数回使ってプログラムチェンジしてください。
  • 実機のMIDIでは@M@L@R は指定できません。代わりにZdを複数回使ってパンを設定してください。
  • MIDIの詳細については、WikipediaのMIDIのページ や MIDI のリファレンスマニュアルを参照してください。
  • いくつかの機種では@V設定後はVの設定よりも@Vが優先されます。
  • CMD PLAY文はCMD拡張命令であり、8801のみで使用できます。CMD PLAYを使用する前にNEW CMDを実行する必要があります(無制限モードを除く)。255文字を越える長さの文字列を指定すると、String too longエラーが発生します(無制限モードを除く)。

対応環境

  • Windows XP以降。

その他の注意

  • BASICのCMD PLAY文はカンマ区切りですが、cmd_playはコマンドラインの都合のため、空白区切りです。
  • 現代的なデジタル音楽制作を楽しみたいのであれば、DTM のフリーソフトでも探してみてください。とは言っても、DTMでは音符入力が面倒臭いし、当時の遺産が…(以下略)

変更履歴

使用許諾

  • 本ソフトウェアの使用においては、LICENSE.txtに記載されている「fmgon ライセンス」の使用条件に従ってください。
  • 本ソフトウェアのソースコードは https://github.com/katahiromz/cmd_play からダウンロードできます。
  • 本ソフトウェアの一部は、cisc さん (cisc@retropc.net) が著作権を所有しています。

連絡先

開発に関するお問い合わせは GitHubのkatahiromz/cmd_playで受け付けています。協力者歓迎!

タイトルとURLをコピーしました
inserted by FC2 system