OSGS(Old Sound Generator Sequencer)とは、PSGやYM2413などの古めのサウンドチップを
扱う、C言語で書かれたMMLドライバ・コンパイラです。
専用のMMLで音楽をごりごり書いていき、MMLコンパイラで曲データを生成します。
曲データは、「.osg」形式のバイナリになります。
OFGSのちょっと進化形のような感じ。
OFGSには「トラック」という、音源1チャンネル分の再生処理をするものが複数あります。
曲を再生する際、このトラックを複数使って再生されます。
たとえば、メロディを音源1でトラック0に、ベースを音源3でトラック1に、
サブメロディを音源2でトラック2に、と配分する感じです。
もし、1つの音源チャンネルに複数のトラックがまたがっていた場合、
若い番号のトラック優先で、音が鳴っているトラックが再生されます。
そのため、実際のゲームに組み込んで効果音も鳴らす場合は、
効果音をトラック0〜3に、BGMをトラック4以降で使うといった配分がいいでしょう。
…「効果音」や「ドラム音」だって立派な「曲データ」ですよ。
複数トラックがまたがった場合の音源出力を、図で表すとこんな感じです。
実際の出力トラック | (なし) | 0 | 1 | 0 | 2 | 0 | 1 | 0 |
トラック0 | ♪ | ♪ | ♪ | ♪ | ||||
トラック1 | ♪ | ♪ | ♪ | ♪ | ||||
トラック2 | ♪ | ♪ | ♪ | ♪ |