「FM-PAC」の版間の差分

重複・項目の主体と無関係な記述の除去、脚注の整理・本文化
(重複・項目の主体と無関係な記述の除去、脚注の整理・本文化)
{{試聴|ファイル名=Msx_music_drums(org).ogg|タイトル=BASICでのドラム演奏例|説明文=|フォーマット=[[Ogg]]}}
{{試聴|ファイル名=Msx_music_drums(plus_noise).ogg|タイトル=BASICでのドラム演奏例(ノイズを重ねた例)|説明文=|フォーマット=[[Ogg]]}}
 
 
'''FM-PAC'''(えふえむぱっく)は、[[パナソニック|松下電器産業(現:パナソニック)]]より[[1988年]]に発売された日本の[[パーソナルコンピュータ]]、[[MSX]]シリーズ用の[[拡張カード|拡張カートリッジ]]であり、正式名称は「FM Pana Amusement Cartridge」。[[YM-2413]]を搭載し、MSXに9重和音、もしくは6重和音 + [[ドラムセット]]5音の演奏環境を追加拡張するほか、一部のゲームなどに対応した[[バッテリーバックアップ]]メモリも内蔵している。[[希望小売価格]]は7800円。
 
== 概要 ==
FM-PACは「FM Pana Amusement Cartridge」を省略した呼び方である。そのほか、「FM PAC」または「FM P.A.C.」と略される<ref name=fmongaku-p4>『FM音楽館』p4</ref>。
 
カートリッジの形態を取り、MSXの[[拡張スロット]]に挿入することで、従来[[Programmable Sound Generator|PSG]]が(1988年当時は標準的なスペックであった)33[[チャンネル]]のみと貧弱なサウンド機能しか持っていなかったMSX[[YAMAHA]]のFM音源機能]]搭載する拡張カートリッジである。使用されていできFM音源チップは[[YM2413]]。2オペレータ、モノフォニック、9和音または6和音+リズム5和音と言った機の発音が可となっている
カートリッジの形態を取り、MSXの[[拡張スロット]]に挿入することで、[[FM音源]]を使用できる。一般的なMSXはスロットが2本あるため、同時に挿入することで、ROMカートリッジで供給させるゲームにも利用可能である。この[[規格]]は「MSX-MUSIC」と呼ばれ、MSX2+の事実上の標準搭載機能となり<ref>『FM音楽館』によれば、「FS-A1FX」という機種以外のMSX2+には全て搭載されている。</ref>、後にMSXturboRにて正式に標準機能となった。使用するにはMSX本体の[[RAM]]が32KiB以上必要である<ref>『FM音楽館』 p4</ref>。
 
複数のスロットを備えたMSXで同時に挿入することで、ROMカートリッジで供給させるゲームにも利用可能である。この[[規格]]は「MSX-MUSIC」と呼ばれる。
また、ゲームソフトなどのセーブデータを保存するために8[[KB]]の[[Static Random Access Memory|SRAM]]を搭載しており、[[パナアミューズメントカートリッジ]]と同等の機能を持つ。この機能は対応ソフトウェアでしか使用できず、従来の保存方法である[[フロッピーディスク]]や[[データレコーダ]]の代替とはなりえない。
 
また、ゲームソフトなどのセーブデータを保存するために8[[KB]]の[[Static Random Access Memory|SRAM]]を搭載しており、[[パナアミューズメントカートリッジ]]と同等の機能を持つ。この機能は対応ソフトウェア以外しか使用できず、従来の保存方法である[[フロッピーディスク]]や[[データレコーダ]]の代替とはなりえない。
従来[[Programmable Sound Generator|PSG]]が(1988年当時は標準的なスペックであった)3[[チャンネル]]のみと貧弱なサウンド機能しか持っていなかったMSXに[[YAMAHA]]のFM音源機能を搭載する拡張カートリッジである。使用されているFM音源チップは[[YM2413]]。2オペレータ、モノフォニック、9和音または6和音+リズム5和音と言った機能となっている。
 
一般的なMSX用カートリッジに比べて、やや背高のサイズとなっている。FM音源はMSX本体の内部を通り、本体の音声出力端子から、PSGとミックスされた音が出力される。カートリッジ上部にスライドスイッチがあり、FM音源のボリュームは3段階に切り替え可能である<ref>『FM音楽館』 p5</ref>、本体内蔵のPSG音源との音量バランスを調整できる
 
== サンプル曲 ==
カートリッジには高品位なサンプル曲が全5曲収録されている。マニュアルに記載された内容によると、サンプル曲1,21・2を[[浅倉大介]]が、3~5をK.OZAWAが作曲したとされている。浅倉大介担当の1,2について1・2それぞれ、[[松下電器産業]]発売・[[T&E SOFT]]開発による[[MSX]]用ゲームソフト「[[アシュギーネ 虚空の牙城]]」のステージ1(サンプル曲1)1、オープニングデモ(サンプル2)のをFM音源アレンジしたものとなっていである。ただし、[[DAIVA]]等で楽曲を共作し、FM-PACのファームウエアの仕様を設計した[[冨田茂]]によると、FM-PACサンプル曲のうち1曲は富田担当との事である<ref>[http://www.horae.dti.ne.jp/~stomita/music/albumn.html 富田HPサイト、「TOMMYs'HomePage」]</ref>。
 
== MSX-MUSIC ==
MSXの標準音源規格として本来は[[MSX-AUDIO]]が準備されていたが、MSXのオプション機器として製品化されたFS-CA1が34,800円と高価でほとんど普及しなかったため、低コスト版として開発された<ref> 「早すぎた迷オプション MSX-AUDIO」『MSX MAGAZINE 永久保存版 2』アスキー書籍編集部編著、アスキー、2003年、pp.148-151。</ref>。1989年11月に発売されたMSX-AUDIO規格と比べて『[[マイコンBASICマガジン]]』の別冊である『MSX/MSX2/MSX2+ ゲーム・ミュージFM音源チク・ログラム大全集』では、多くに廉価なもゲーム対応したため爆発的なヒットを記録し使用され他機種ADPCM用ゲームをRAM含め不要になっヒットチャートでベスト3入りを記録しマイ大幅なストダウBASICマガジン誌上の音楽プログラム投稿コーナーへの投稿の8割達成されている。なお、MSX-MUSIC用AUDIOデータで占められた基本定義音色されてYM2413の内蔵音色とは聴感上かなりの違があ<ref>『MSX/MSX2/MSX2+ ゲーム・ミュージック・プログラム大全集』p.218</ref>
基本性能については、前述の通りである。なお当時の一般的なパソコンである[[PC-8801]]シリーズでは[[YM2203]](OPN)を搭載し、4オペレータ、モノフォニック、FM3チャンネル、PSG3チャンネルというものであった。
MSXの標準音源規格として本来は[[MSX-AUDIO]]が準備されていたが、MSXのオプション機器として製品化されたFS-CA1が34,800円と高価でほとんど普及しなかったため、低コスト版として開発された<ref> 「早すぎた迷オプション MSX-AUDIO」『MSX MAGAZINE 永久保存版 2』アスキー書籍編集部編著、アスキー、2003年、pp.148-151。</ref>。1989年11月に発売された、『[[マイコンBASICマガジン]]』の別冊である『MSX/MSX2/MSX2+ ゲーム・ミュージック・プログラム大全集』では、多くのゲームが対応したため爆発的なヒットを記録し、他機種のゲームをも含めたヒットチャートでベスト3入りを記録した上、マイコンBASICマガジン誌上の音楽プログラム投稿コーナーへの投稿の8割がMSX-MUSIC用のデータで占められたとされている<ref>『MSX/MSX2/MSX2+ ゲーム・ミュージック・プログラム大全集』p.218</ref>。
 
1989年11月に発売された、『[[マイコンBASICマガジン]]』の別冊である『MSX/MSX2/MSX2+ ゲーム・ミュージック・プログラム大全集』では、多くの使用曲が収録された。
MSX-AUDIO規格と比べて、FM音源チップに廉価なものが使用されているため、大幅なコストダウンが達成されている(ADPCM用のRAMも不要になった)。なお、MSX-AUDIOの基本定義音色とYM2413の内蔵音色とは聴感上かなりの違いがある。
 
FM-PACは爆発的なヒットを記録し、他機種のゲームをも含めたヒットチャートでベスト3入りを記録した上、マイコンBASICマガジン誌上の音楽プログラム投稿コーナーへの投稿の8割がMSX-MUSIC用のデータで占められたとされている<ref>『MSX/MSX2/MSX2+ ゲーム・ミュージック・プログラム大全集』p.218</ref>。
MSX-MUSICは、FM-PACの形で商品化された後にMSX2+ではオプション規格となり、MSXturboRからはMSXの標準音源となった。FM-PAC発売後にはMSX2でも対応ソフトの多くが対応された。
 
MSX2+ではオプション規格となった。MSX-MUSIC を搭載しなかった機種は松下「FS-A1FX」などごく限られており<!-- 三洋のFDD無し2+も非搭載です -->、事実上の標準搭載機能となった。FM-PAC発売以降のMSX2でも対応ソフトの多くが対応している。
後にMSXturboRにて正式に標準機能となった。使用するにはMSX本体の[[RAM]]が32KiB以上必要である<ref name=fmongaku-p4 />。
 
== パナアミューズメントカートリッジとして ==
8KBのSRAMにソフトウェアの状態保存などを行う。「パックコマンダー」というデータ管理用[[ユーティリティソフト]]がROMに内蔵されており演奏機能などのおまけ機能もついていた)、[[BASIC]]上から「CALL FMPAC」と命令する事で、起動が可能である。通常、SRAMはFM-PACのROMの裏側に隠れているが、特定アドレスに特定値を書き込むことで、その領域がSRAMに切り替わり、読み書きが可能となる。当時MSX用の[[フロッピーディスクドライブ|FDD]]は高価であり、又、ちょうどFDD内蔵MSX2への切り替わりの時期に相当したため、ロムカートリッジで供給されたゲームの中には(例外的にFDで供給されたにもかかわらず保存をFDに行えないゲームも存在した)、高価なFDDには対応せずにPACにのみ対応したタイトルが少なからず存在しており、数年後FDDを内蔵したMSX2やMSX2+の普及した時期には逆に、FM-PACを持っていないとデータを保存できない問題も発生した
 
通常、SRAMはFM-PACのROMの裏側に隠れており、特定アドレスに特定値を書き込むことで、その領域がSRAMに切り替わり、読み書きが可能となる。当時MSX用の[[フロッピーディスクドライブ|FDD]]は高価であり、また、ちょうどFDD内蔵MSX2への切り替わりの時期に相当したため、ロムカートリッジで供給されたゲームの中には、高価なFDDには対応せずにPACにのみ対応したタイトルが少なからず存在している。また、例外的にFDで供給されたにもかかわらず保存をFDに行えないゲームも存在した。数年後、FDDを内蔵したMSX2やMSX2+の普及した時期には逆に、FM-PACを持っていないとデータを保存できない問題も発生した。
 
== BASICからのMSX-MUSICの使用 ==
:FM音源の各チャンネルに音色を設定する。チップ内蔵の15の音色以外は自作音色扱いとなり、1セットしかない自作音色用レジスタを占有してしまうため、同時に1種類しか使用できない。BASICの各命令の実行と、音源の演奏は標準設定では同期しておらず、このコマンドは主に演奏開始前に使用され、曲中での音色変更には通常、[[Music Macro Language|MML]]の@コマンドを用いる。
;CALL TEMPER(9)
:[[音律]]を設定できる。これは当時の日本の他の[[パーソナルコンピューター]]においてでは、メーカー純正のMML規格には存在していないものだった{{要出典}}。この例ではデフォルトである完全[[平均律]]を指定している。
;CALL VOICE COPY(@63, tone%)
:音色データエリアと任意の配列変数間でデータをコピーする。データサイズは32[[byte]]。[[MSX-BASIC]]では[[整数型]]が2byteであるので、dim tone%(15) と定義されるのが一般的であった。上記の例では音色番号63に配列変数tone%の内容をコピーしているが、逆の動作なども可能である。MSX-MUSICでは@0から@62まではプリセットの音色があり、慣例的に自作音色は63から使用されることが多かった。一般的には音色設定は以下のように行われる。
DIM TONE%(15):FOR I=0 TO 15:READ A$:TONE%(I) = VAL("&H" + A$):NEXT
DATA 0000,0000,0000,0000
CALL VOICE COPY(TONE%, @63)
:曲中で複数の音色を使用する時は、PLAY文の合間に CALL VOICE COPY 文を挟むことで行う。
:音色設定にはFM音源のパラメータを直接(人間にとって自然に)表記して上記の32バイト配列にコンバートする手法や、FM音源チップのレジスタに直接値を書き込むコマンドの「Yコマンド」をMML中に用いる手法もあっだしそ。前者の変換プログラムは比較的に複雑なものになる<ref>『MSX/MSX2/MSX2+ ゲーム・ミュージック・プログラム大全集』p.224</ref>)手法や、FM音源チップのレジスタに直接値を書き込むコマンドの「Yコマンド」をMML中に用いる手法もあった。後者では演奏中に臨機応変に音色を変化させることができる。
;PLAY #2, "C", "D", A$
:MMLに従い演奏を行う。従来の「PLAY」文が拡張されたものである。上記の右端の例の通り文字列変数も使用可能であり、むしろその方が一般的である。どの桁がFM/PSGのどのチャンネルを演奏するかは、CALL MUSICでの設定による。従来のPLAY文と違い、32分音符もある程度ズレなく演奏させることができる。標準設定では演奏はBASICの実行とは非同期に(自動的に)演奏される。なお、1度のPLAY分で流し込めるMMLの長さはMSX-BASICにより制限される。第1パラメータから順に、FM音源チャンネル(0~6個)、リズムチャンネル(0~1個)、PSGチャンネル(3個)となっている。
 
== MML ==
一般的な[[Music Macro Language|MML]]は一般的なものと大差ない内容である。MSX-MUSICでの[[方言]]や特徴として以下のようなものがある。
*オクターブ変更は > で上昇、 < で下降当時としては一般的な記法である
*{ } で音譜を括る事で[[連符]]となる。
*@Vコマンドで[[音量]]を128段階に細かく設定できる実際は内部では16段階に変換されるが、変数を持ち込む処理などで有益である
*Qコマンドを用いることで[[スタッカート]]や[[レガート]]を表現できる。8段階で調整可能同様の表現を行うのに2000年代現在の[[デスクトップミュージック]](DTM)では[[ゲートタイム]]と呼ばれることが多い
*Tコマンドでテンポが設定されるが、MSXの[[割り込み#CPUの割り込み|タイマ割り込み]]は1/60秒単位でしか発生しないため、音の長さが n(整数)/60秒 で表せない時には、テンポにずれが生じる。[[Music Macro Language#システム上の制約と対策]]も参照されたし<ref>計算上、14400÷テンポ÷使用したい音譜(1-64)の解が整数であれば、問題はない。テンポが30の倍数の場合は、比較的好ましい結果になる場合が多い{{要出典}}。</ref>[[Music Macro Language#システム上の制約と対策]]も参照されたし
 
最も大きな点は、リズム音源演奏専用MMLの存在である。これは一般的なMMLとは全く異なり、例えば典型的な[[8ビート]]であれば、
B!H8H8SH8H8 B!H8BH8SH8H8
となる。B:[[バスドラム]] S:[[スネアドラム]] H:[[ハイハット]] M:[[タムタム]] C:[[シンバル]] となっており、可読性に難はあるものの、1まとまりのMMLで複数の打楽器を鳴らせる仕様となっている。なお、!はアクセントとして、音量を通常のものとは異なる値に変化させる修飾コマンドである必ずしも音量が上がるわけではない
 
== BASICでの演奏の限界 ==
BASICでの演奏では[[ポルタメント]]が行えない、[[ビブラート]]が再現できない、という問題があった。前者は実際は非常に煩雑ながらYコマンドで実現可能だが、非常に煩雑でMMLの可読性を著しく損なう)、[[ビブラート]]が再現できない(。後者もやはりYコマンドを用いれば実現は可能で、当時は[[LFO]]と呼ばれることが多かった)、という問題があった。
 
さらにMSXには[[SCC]]とFM-PACに劣らぬほど知名度のあった音源チップが存在し、これとの同時演奏も望まれた。そのため、''MuSICA''<ref>「MSXディスク通信」に収録されたグラフィカルな音色エディタ搭載の[[テキストエディタ]]を含めたMML統合環境。グラフィカルな音色エディタ搭載。「MSXディスク通信」に収録。</ref>やである''MGSDRVMuSICA''<ref>や、Ain.という人物が制作した[[MSX-DOS]]上で動作する[[フリーソフト]]であるBGM演奏ドライバおよびMML[[コンパイラ]]。[[フリーソフト]]。制作はAin.氏。</ref>の''MGSDRV''など、BASIC以外での演奏環境が発生するに至った。
 
MSX-MUSICのドラムパートのうちスネアドラムは未加工の状態で音程が一定で、かつ高め(PSGPSG音源の"<code>O4C</code>"に相当する高めの音だったため、「リズム音源の[[スネアドラム]]がポコポコでダサすぎる」という意見が多かった{{要出典}}。スネアドラムの音色を加工する方法としてPSGのノイズを重ねる、Yコマンドで直接パラメータをいじる、ドラムをPSGに任せる、などの工夫が広く行われ、後には「音階が存在しなかった[[タムタム]]」をYコマンドで変化させ、更にBASIC上でFM音源BIOSの[[ワークエリア]]に直接値を書き込み、[[コーラス (音響機器)|コーラス]](周波数のわずかに異なる2音を重ね音を透き通った感覚にする技法。当時は[[コーラス (音響機器)|デチューンと呼ばれるのが一般的であった)]]をかける方法が発見された<ref>電波新聞社刊、「MSX2/2+ ゲーム・ミュージックプログラム大全集」(1989(1989)及)および「MSX2/2+ ゲーム・ミュージックプログラム大全集II」では実際に、掲載されているほとんどのFM-PAC対応演奏プログラムで、ドラムスの演奏にこのような工夫が見られる</ref>
 
なお、PSGパートにおいては、タイマ割り込みとPSGのレジスタの直接変更(MSXの場合はBIOSで容易に行える)を用いたビブラート、コーラス、[[ADSR|ソフトウェアエンベロープ]]、[[ドラムセット#バリエーション#エレクトリックドラム|シンセタム]]などの技法は比較的古くから行われている。
また、PSG制御レジスタはBIOSレベルで書き込みだけでなく読み込みも可能であるので、PSGの拡張制御は比較的容易に実装できたが、
OPLLのレジスタはライトオンリーであり、それ故タイマ割り込みによる音程や音量の制御は比較的困難だった。
当時、DTMの総本山的扱いであった[[マイコンBASICマガジン]]、及およびその[[ムック (出版)|ムック]]誌上においても、割り込みによってOPLLを拡張した例はほとんど見られなかった<!-- 発見された方は追記願います --><ref>前述のコーラスの様にRAM上のワークエリアを参照することによって理論上は可能であっ出来た可能性があるが、少なくともMSX-BASIC上の演奏プログラムにおいては一般的ではなかった。</ref>
 
== チップ内蔵音色 ==
音色用レジスタを占有する音色も含めると、MSX-MUSICでは63種の音色が用意されているが、割愛する。以下のものは制限無く使えるチップ内蔵音色である。ほとんどのMSX-MUSIC用演奏データはそのほとんどの部分がこの15種の音色だけで演奏されている。
 
* @0 [[ピアノ]]1 (デフォルト)
* @9 [[オルガン]]
* @10 [[ギター]]
* @12 [[エレキベース]] (YM2413(YM2413のアプリケーションマニュアルでは「Electric Guitar」とされている)
* @14 [[ハープシコード]]
* @16 [[ビブラフォン]]
* 1 [[中全音律|ミーントーン]]
* 2 [[ウェル・テンペラメント|ヴェルクマイスター]]
* 3 ヴェルクマイスター(修正)
* 4 ヴェルクマイスター()
* 5 [[キルンベルガー第3法|キルンベルガー]]
* 6 キルンベルガー(修正)
* 7 ヴァロッティ・ヤング
* 8 [[ジャン=フィリップ・ラモー|ラモー]]
*21 純正律 h M (gis m)
 
== MSX用のその他の音源関係オプション ==
* [[MSX-AUDIO]] - 先発の規格であるが、高価であったためか、前述の通り全く普及しなかった。
* FM Sound Synthesizer Unit II - SFG-05 [[YAMAHA]]から発売された拡張音源ユニット。[[YM2151]](OPM)を搭載し、[[MIDI]]端子も装備。希望小売価格29,800円。ただし通常のカートリッジスロットとは異なる独自の形式を持ち、YAMAHA社や[[ビクター]]社製のMSX以外では別売のアダプターが必要だった。[[ミュージックシーケンサー]]や拡張BASICも供給された。[[MSX]]の項目も参照。
* MIDIサウルス - [[BIT2]]より発売された、MIDIインターフェイス。SCREEN6を使用したミュージックシーケンサーがFDで付属<ref>screen6は。メインRAM64KB+VRAM128KBしかないMSXでワークエリアを多く取るために、同時発色数が少ないためVRAMに空きができる。その空いたスペースscreen6ワークエリアとして使用していた。メインRAM64KB+VRAM128KBしかないMSXでの苦肉の策である。当時はこの手の、言わば無理矢理なメモリ活用はMSXに限らず広く一般に用いられていた{{要出典}}。</ref>。希望小売価格19800円。[[MSX]]の項目も参照。
 
== 脚注 ==
*[[パナアミューズメントカートリッジ]]
*[[内蔵音源]]
*[[マイクロキャビン]] - MSX版の[[ファイナルファンタジー]]、[[サーク]]などでの、リッチな音使いが話題になった。ただし通常のMSXにとっては、処理量はかなりの負担であった。
 
== 外部リンク ==
匿名利用者