世界で最初にMML(Music Macro Language)が搭載されたシステム/パソコン/マイコンは何かを調べようとすると、日本だけではなく海外の資料も調べないといけませんし、当時のマイコン上で動いていたソフトウェアならともかく、音楽専用機材に組み込まれたシステムとなると、当時の音楽情報誌なども調べないといけませんから、証拠付きの明確な結論を出すのは難しそうです。
ただ、少なくともPC-6001のPLAY文が初めてというのは誤りなようで、MMLで曲を作れるシステムはPC-6001以前にもあったようです。
PC-6001の発売日は1981年11月10日です。識者の方々の記憶によると、この日よりも前に発売されたMMLが記述できるマイコンとしては、沖電気のif800があったようです。
if800についてWikipediaをみると、1981年11月10日以前に発売されたif800シリーズにはmodel10からmodel60があり、最初のモデルは1980年5月となっています。
ただ、Wikipediaのページにはマシンスペックが書かれていません。なので、他のページ、例えばコンピュータ博物館などを探してみたのですが、「音」に関しては書かれてないのですね。
当時、if800を使っていた方のツイートによると、
- 「・・・高機能で文法もMSっぽかったけどOKIの独自開発だったような」
- 「確証は持てませんが、自分も単音だったと記憶しています。・・・」
ということなので、音は出たけど単音だったようです。
ネットの資料では調べられないとなると、次の手段としては当時の書籍/雑誌を調べるのが手っ取り早いので、別の用事で国会図書館に行ったついでに調べてきました。
“IF800によるBASICテキスト コロナ社/岡田文平 谷中勝 共著”という本に、PLAY文の文法が載っていました。この本では、model20上で動作するOKI-BASICのサンプルプログラムと各命令の使い方が記載されていて、その中にPLAY文の文法も書かれていましたので引用します。本文では各コマンドについて詳しく書かれているのですが、ここでは簡略してあります。
コマンド | 意味 |
---|---|
Tn(速さ) | 曲の速さを指定。値は32から255。デフォルトは120 |
Ln(長さ) | 音の長さの指定。値は1から64。デフォルトは4 |
Nn(音程) | 音程指定。値は1から12。Nnの代わりにAからG、#、+、-でも指定可能。 |
On(オクターブ) | 値は1から5。デフォルトは3。O3の時の音程A(N10)は440Hz |
Pn(休符) | 値の指定方法はLと同じ |
X文字変数(間接指定) | 文字変数にT,L,N,O,Pを代入して指定する事が出来る |
Nn | AからGによる表現 |
---|---|
N1 | C |
N2 | C#、C+、C- |
N3 | D |
N4 | D#、D+、E- |
N5 | E |
N6 | F |
N7 | F#、F+、G- |
N8 | G |
N9 | G#、G+、A- |
N10 | A |
N11 | A#、A+、B- |
N12 | B |
この本にはサンプル曲のプログラムも掲載されていました。せっかくなので資料用にスキャンしたものを。
電子化されている当時の雑誌をざっと見たのですが、model10/20の音周りについて書かれている記事は見つけることができませんでした。アスキー誌には4ページほどにわたってif800の詳細なスペック記事が掲載されているのに、音源やスピーカーの有無については書いてありませんでした。ただ、BASICコマンド一覧にはMUSIC命令が載っています。
他の雑誌(誌名は忘れました)でも、model30のブロック図にスピーカーが書かれてる記事があった程度でした。if800はビジネス用途を主体としていた事と、当時はマイコンを使って音を出すという事が珍しかったので、記事として取り上げるほどではなかったのでしょうね。
[追記] 沖電気研究開発47巻1号にmodel10/20のブロック図が掲載されていてスピーカが書かれていると教えて頂きました。
あと、英語版Wikipedia MMLによると、MZ-80Kの SP-5001 BASICでMMLが使えたって書いてありますけど、ホントですかね?SHARPから配布されているMZ-80KのPDFマニュアルによると、後期のSP-5030 BASICではMUSIC命令が使えたようなのですが、MZ-80Kが最初に発売された時に付属していたSP-5001 BASICでもMUSIC命令が使えたのかな?と。MZに詳しい人教えてください。
MUSIC命令がどのバージョンのBASICから実装されたのか、また、それがいつから配布(付属販売)されたのかがわからないです。この辺のことはガラパゴスの中の人にもわからないようですが。
[追記] コメント欄にてSP-5001の頃からMMLが使えましたという情報を頂きました。
[追記] MZ-80K系のMMLは@gorry5さんのツイートによるとBASICではなくモニタROM内のルーチンだったそうです。
[追記] @Kenzoo6601さんから、日立のベーシックマスター(1978年9月発売)でもMUSIC文で音楽演奏が出来ますよーとTwitterでコメントを頂きました。ただ、MUSIC文がシンプルなようで、それってMMLなの?という、そもそもMMLとは何か?という定義を深めないとMMLの歴史を辿るのは大変そうです。
[追記] 世界初のMMLというブログ記事でコンピュータの歴史と音楽の関係が詳しく説明されています。必読!
今頃気づいたので化石のようなレスでごめんなさい。
MZ-80シリーズの場合、所謂MMLと言われるような演奏用文字譜を
解釈して実際に音に出すのは、BASIC本体ではなくモニタ、今で言う
BIOS相当のプログラムの担当です。BASICは演奏データのポインタを
モニタに渡すぐらいしかしてません。
またMUSIC命令は最初期のバージョンであるSP-5001からサポート
しています。というかモニタに機能があるのにBASICでサポートしない
理由はありませんわな。
というわけで、MZ-80におけるMMLは1978年12月には世に出て
いた、ということになりますね。
Oh!石 さん
コメント承認が遅れてしまい申し訳ありません。
PC-6001どころかif-800よりも更に前からMZではMML記述ができたということですね。
p6erとしてはグヌヌがグヌヌヌになったくらいの気分ですがw、日本のマイコン史としては80年代ところか70年代からMMLが使えるマシンがあったという事実は大きいなーと思います。
とても貴重なコメントをありがとうございます。