概要
8ビット時代の古いパソコン PC-8801 の CMD PLAY
文を、現代の Windows パソコンのコマンドラインで再現するプログラムです。懐かしのCMD PLAY
文の音をそれなりに再現できます。
- 出力音声例1:
cmd_play.exe -stopm "CDEFEDC"
- 出力音声例2:
cmd_play.exe -stopm "@23L8CDE4.DC8R8CDEDCD2" "@30L4CEECCECD"
- 出力音声例3:
cmd_play.exe -stopm #5 "@3L16FDEFDEFDEFDEFDEF" "@7L4DDD" "@34L4DDD" "@58L16CCCCCDDDDD" "@24O6L2EL16ECBAG"
使い方
使い方: cmd_play [オプション] [#n] [文字列1] [文字列2] [文字列3] [文字列4] [文字列5] [文字列6]
オプション:
-D変数名=値 変数に代入。
-save-wav 出力.wav WAVファイルとして保存。
-stopm 音楽を止めて設定をリセット。
-stereo 音をステレオにする(デフォルト)。
-mono 音をモノラルにする。
-voice CH FILE.voi ファイルからチャンネルCHに音色を読み込む。
-voice-copy TONE FILE.voi 音色をファイルにコピーする。
-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に対応します。音源モードは
0
~5
の値で、次のような意味があります。 #0
… 別売のミュージックインタフェースボードのSSG音源を使います。チャンネル1~6がSSG音源を使用します。#1
… 別売のミュージックインタフェースボードのMIDIインタフェースを使います(未対応)。#2
… チャンネル1、2、3がFM音源を、チャンネル4、5、6がSSG音源を使用します。#3
… OPNを効果音モードに切り替えます。CMD PLAY
のY
文によって音を出します。#4
… OPNをCSM(サイン波)モードに切り替えます。CMD PLAY
のY
文によって音を出します。#5
… チャンネル1~6がFM音源を使用します。
cmd_play
では現在、#1
は選択できません。音源モードを省略した場合は、#2
が選択されます。#5
は、スーパーICでなければ選択できません。通常、音源モードは、#0
、#2
、または#5
でお使いください。MIDIとリズム音源はまだ未対応です。
各チャンネルの文字列は、MML (Music Macro Language)といい、次のような意味を持ちます。
文字列 | 意味 | 初期値 |
---|---|---|
Mx (SSG音源のみ) | エンベロープ周期を設定します(1≦x ≦65535)。 | M255 |
Sx (SSG音源のみ) | エンベロープ形状を設定します(0≦x ≦15)。 | S1 |
Vx | 音量を設定します(0≦x ≦15)。 | V8 |
Lx | 音符や休符の既定値の長さを設定します(1≦x ≦64)。 | L4 |
Qx | 音の長さの割合を設定します(1≦x ≦8)。 | Q8 |
Ox | オクターブを設定します(1≦x ≦8)。 | O4 |
> | オクターブを1つ上げます。 | |
< | オクターブを1つ下げます。 | |
Nx | x で指定された高さの音を発生します(0≦x ≦96)。 | |
Tx | テンポを設定します(32≦x ≦255)。 | T120 |
Rx | 休符を演奏します(1≦x ≦64)。x は休符の長さです。 | R4 |
C ~B[+/-][x][.] | 音符を演奏します(1≦x ≦64)。x は音符の長さです。 | |
+ (# ) | 直前の音符を半音上げます。 | |
- | 直前の音符を半音下げます。 | |
. | 直前の音符や休符に符点をつけます。長さが1.5倍になります。 | |
& | 前後の音をつなげます。 | |
{ ... }x | 指定された長さのx 分音符を{ } の中の音符の個数で等分した連符を演奏します。 | |
@x (FM音源のみ) | 音色番号x で指定された音色に切り替えます。FM音源の音色一覧 | @0 |
Yr,d (OPNのみ) | OPNのレジスタr の内容をd にします。 | |
Zd (MIDIのみ) | MIDIにデータd を送ります。 | |
@M (スーパーIC、FM音源のみ) | 出力を左右両側に設定します。 | |
@L (スーパーIC、FM音源のみ) | 出力を左側に設定します。 | |
@R (スーパーIC、FM音源のみ) | 出力を右側に設定します。 | |
@Vx (FM音源とMIDIのみ) | 音量を細かく調整します(0≦x ≦127)。 | @V106 |
@Wx | x で指定された長さだけ状態を維持します(1≦x ≦64)。 | @W4 |
- 音符
CDEFGAB
は「ドレミファソラシ」に対応します。 - 音色番号については、FM音源の音色一覧をご覧ください。
- 【注意】
CMD PLAY
文はCMD拡張命令であり、8801のみで使用できます。CMD PLAY
を使用する前にNEW CMD
を実行する必要があります(無制限モードを除く)。255文字を越える長さの文字列を指定すると、String too long
エラーが発生します(無制限モードを除く)。
ダウンロード
cmd_play-1.9-x86.zip
– Windows用バイナリ(x86) – 742 KB (760,473 バイト)
対応環境
- Windows XP以降。
その他の注意
- BASICの
CMD PLAY
文はカンマ区切りですが、cmd_play
はコマンドラインの都合のため、空白区切りです。 - 今となってはこのようなコマンドを使った音楽制作は時代遅れとなってしまいました(要検証?)。現代的なデジタル音楽制作を楽しみたいのであれば、DTM/DAW のフリーソフトでも探してみてください。とは言っても、当時の遺産が…(以下、臨時駐屯政府の要請で議事録から削除済み)
- 反論。DTMでは素早く音符が打ち込めないし、音符の長さの割合を入力するのが面倒。結論。使いたい奴が使えばいい。
変更履歴
- リリースノートをご覧ください。
使用許諾
- 本ソフトウェアの使用においては、
LICENSE.txt
に記載されている「fmgon ライセンス」の使用条件に従ってください。 - 本ソフトウェアのソースコードは
https://github.com/katahiromz/cmd_play
からダウンロードできます。 - 本ソフトウェアの一部は、
cisc
さん (cisc@retropc.net
) が著作権を所有しています。