(57)【特許請求の範囲】
【請求項１】
波形データが格納されるサウンドバッファと、
音のエンベロープを表すエンベロープ情報と当該エンベロープ情報が適用される波形データの識別情報とを含むトーン属性情報が複数格納されるメインメモリと、
波形データ及び複数のトーン属性情報を光ディスクから読み出し、前記メインメモリを介しての前記サウンドバッファへの、当該波形データの転送と、前記メインメモリへの、当該複数のトーン属性情報の格納とを実行して、トーン属性情報が選択されると、当該選択されたトーン属性情報を前記メインメモリから読み出す第１制御手段と、
前記第１制御手段の指示に応じて、前記第１制御手段により読み出されたトーン属性情報に含まれる識別情報に対応する波形データを前記サウンドバッファから読み出し、当該読み出されたトーン属性情報のエンベロープ情報に基づき当該波形データを再生する第２制御手段と、
を有することを特徴とする音源装置。
【請求項２】
請求項１記載の音源装置であって、
前記メインメモリには、前記光ディスクに格納された波形データを前記サウンドバッファに転送するための、当該波形データよりも容量の小さなチャネルが設けられ、
前記第１制御手段は、前記光ディスクに記憶されている波形データを、前記チャネルの容量以下の容量ずつ読み出して、順次、前記チャネルを介して前記サウンドバッファに転送することを特徴とする音源装置。
【請求項３】
サウンドバッファとメインメモリと第１及び第２制御手段とを有する音源装置の制御方法であって、
前記第１制御手段が、波形データと、音のエンベロープを表すエンベロープ情報及び前記波形データの識別情報を含む複数のトーン属性情報とを、光ディスクから読み出し、前記トーン属性情報を前記メインメモリに格納し、前記波形データを、前記メインメモリを介して前記サウンドバッファに格納する処理と、
前記第１制御手段が、選択されたトーン属性情報を前記メインメモリから読み出し、前記第２制御手段に、前記第１制御手段が読み出したトーン属性情報に含まれる識別情報に対応する波形データを前記サウンドバッファから読み出させ、当該読み出したトーン属性情報のエンベロープ情報に基づき当該波形データを再生させる処理と、
を含むことを特徴とする、音源装置の制御方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、指示された音階、音量等に基づいて音声を発生する音源装置に関し、特に、ビデオゲーム装置あるいは情報処理装置等において、演算結果あるいは使用者の操作に応じて音源装置を制御して効果音、背景音楽（ＢＧＭ）等を発生させるために用いられる音源装置に関する。
【０００２】
【従来の技術】
従来より、ビデオゲーム装置あるいはパーソナルコンピュータ等の情報処理装置においては、ゲームの進行あるいは使用者の操作に応じて楽音、効果音等を発生させることが行なわれている。
【０００３】
このようなビデオゲーム装置あるいはパーソナルコンピュータ等では、例えば基本波とその高調波を合成した波形の周波数を可変することによって音程のある音を発生するいわゆるＦＭ音源、あるいは基本となる基本波の波形データを記憶しておき、指示された音程等に応じて波形データの読み出し周期を可変して音程を発生させるいわゆるＰＣＭ音源等が音声を発生する音源装置として使用されている。
【０００４】
例えばＢＧＭ等の再生においては、発生する音の音程、発音、消音、音色効果等の音楽情報を時間情報と共に時間順に並べた譜面データを予め用意しておき、これらをリアルタイムに解釈しながら、音源装置の音程、発音及び消音レジスタを逐次設定することによって行なわれている。
【０００５】
このように、譜面データの形式でＢＧＭ等のデータを用意することは、プログラムの実行によって逐次音源装置の音程、発音及び消音等を制御する場合等に比較して、再生時に容易に音色、音量、音程等を変化させることができ、使用者の操作に高速に応答するリアルタイム性が重要となるマルチメディアコンピュータ、ゲーム等に適した方法である。
【０００６】
また、このような譜面データに基づく音源装置の制御は、例えば図２１に示すように、演算処理装置（ＣＰＵ）として１つのＣＰＵ２０１のみを備えたビデオゲーム装置では、このＣＰＵ２０１を時分割で使用して、一定時間間隔毎に、譜面データを読み出し、読み出した譜面データに基づいて音源装置２０２の発音タイミング、発音期間、発音音程、音量等を制御してＢＧＭ等を発生させるようになっている。
【０００７】
このように、ＣＰＵ２０１を時分割で使用して譜面データを解釈する方法は、ＣＰＵ２０１の処理能力が十分高ければ、特別な周辺装置等を必要としないためコストも安く、プログラムも作成しやすい。
【０００８】
ところで、このようなビデオゲーム装置において、音源装置２０２として、上述のＰＣＭ音源を使用している場合では、実行されるゲーム毎に、あるいは、再生するＢＧＭ毎に使用する基本波の波形データ等を変更することが望まれている。
【０００９】
このような場合、波形メモリを大きく設定し、複数のＢＧＭで使用する波形データを全て記憶しておき、再生するＢＧＭ等に応じて波形データを変更することが考えられる。
【００１０】
また、あるいは波形データをメモリ２０４上に記憶し、再生するＢＧＭ等に応じて、波形データを光学ディスク装置２０５等から読み出し、メモリ２０４に記憶されている波形データを書き換えることが考えられる。
【００１１】
【発明が解決しようとする課題】
しかしながら、このようにメモリ２０４上に波形データを記憶する場合では、波形データの記憶のためにメモリ２０４に記憶領域を確保する必要があり、ゲームプログラム等を記憶する領域が減少する問題があった。
【００１２】
本発明は、上述のような問題点に鑑みてなされたものであり、主記憶装置の使用可能な領域を減少させることなく、使用する波形データを変更することができる音源装置の提供を目的とする。
【００１３】
本発明は、
波形データが格納されるサウンドバッファと、
トーンに関する情報と当該情報が適用される波形データの識別情報とを含むトーン属性情報が複数格納されるメインメモリと、
選択されたトーン属性情報を前記メインメモリから読み出す第1制御手段と、
前記第１制御手段の指示に応じて、前記第１制御手段が読み出したトーン属性情報に含まれる識別情報に対応する波形データを前記サウンドバッファから読み出して、当該トーン属性情報に基づき当該波形データを再生する第２制御手段と、
有することを特徴とする音源装置を提供する。
また、本発明は、
サウンドバッファとメインメモリと第1及び第２制御手段とを有する音源装置の制御方法であって、
前記第１制御手段が、波形データと、トーンに関する情報及び前記波形データの識別情報を含むトーン属性情報とを補助記憶装置から読み出し、前記トーン属性情報を前記メインメモリに格納し、前記波形データを、前記メインメモリを介して前記サウンドバッファに格納する処理と、
前記第１制御手段が、選択されたトーン属性情報を前記メインメモリから読み出し、前記第２制御手段に、前記第１制御手段が読み出したトーン属性情報に含まれる識別情報に対応する波形データを前記サウンドバッファから読み出させ、当該トーン属性情報に基づき当該波形データを再生させる処理と、
を含むことを特徴とする、音源装置の制御方法を提供する。
【００１６】
【作用】
本発明によれば、サウンドバッファに波形データが格納され、メインメモリに、トーンに関する情報と当該情報が適用される波形データの識別情報とを含むトーン属性情報が複数格納される。そして、前記第１制御手段は、選択されたトーン属性情報を前記メインメモリから読み出し、前記第２制御手段は、前記第１制御手段の指示に応じて、前記第１制御手段が読み出したトーン属性情報に含まれる識別情報に対応する波形データを前記サウンドバッファから読み出して、当該トーン属性情報に基づき当該波形データを再生する。
【００１７】
この音源装置に対して発音要求があると、振幅データとピッチ情報とが指定され、読み出し制御部は、識別情報を参照して指定された振幅データに対応する波形データの読み出しを制御する。ピッチ変換部は、読み出し制御部によってその読み出しが制御された波形データを読み出し、指定されたピッチ情報に基づいてピッチ変換し、振幅調整部は、ピッチ変換部によりピッチ変換された波形データの振幅を指定された振幅データに基づいて調整する。
【００１８】
これにより、指定された振幅データとピッチ情報に応じた音声が発生される。
【００２３】
【実施例】
以下、本発明に係る音源装置を、例えばビデオゲーム装置において、楽音、効果音等を発生する音源として適用した実施例について説明する。
【００２４】
このビデオゲーム装置は、例えば光学ディスク等の補助記憶装置に記憶されているゲームプログラムを読み出して実行することにより、使用者からの指示に応じてゲームを行なうようになっており、図１に示すような構成を有している。
【００２５】
すなわち、このビデオゲーム装置は、中央演算処理装置（ＣＰＵ）及びその周辺装置等からなる制御系５０と、フレームバッファに描画を行なうグラフィックプロセッシングユニット（ＧＰＵ）等からなるグラフィックシステム６０と、楽音、効果音等を発生するサウンドプロセッシングユニット（ＳＰＵ）等からなるサウンドシステム７０と、補助記憶装置である光学ディスクの制御を行なう光学ディスク制御部８０と、使用者からの指示を入力するコントローラからの指示入力及びゲームの設定等を記憶する補助メモリからの入出力を制御する通信制御部９０と、上記制御系５０〜通信制御部９０が接続されているバス１００等を備えている。
【００２６】
上記制御系５０は、ＣＰＵ５１と、割り込み制御、ダイレクトメモリアクセス（ＤＭＡ）転送の制御等を行なう周辺装置制御部５２と、ＲＡＭからなる主記憶装置（メインメモリ）５３と、メインメモリ５３、グラフィックシステム６０、サウンドシステム７０等の管理を行なういわゆるオペレーティングシステム等のプログラムが格納されたＲＯＭ５４とを備えている。
【００２７】
ＣＰＵ５１は、ＲＯＭ５４に記憶されているオペレーティングシステムを実行することにより装置全体の制御を行なう。
【００２８】
上記グラフィックシステム６０は、座標変換等の処理を行なうジオミトリトランスファエンジン（ＧＴＥ）６１と、ＣＰＵ５１からの描画指示に従って描画を行なう画像処理装置（ＧＰＵ）６２と、該ＧＰＵ６２により描画された画像を記憶するフレームバッファ６３と、離散コサイン変換などの直行変換により圧縮されて符号化された画像データを復号化する画像デコーダ６４とを備えている。
【００２９】
ＧＴＥ６１は、例えば複数の演算を並列に実行する並列演算機構を備え、ＣＰＵ５１からの演算要求に応じて。座標変換、光源計算、行列あるいはベクトルの演算を高速に行なうことができるようになっている。
【００３０】
具体的には、このＧＴＥ６１は、１つの三角形状のポリゴンに同じ色で描画するフラットシェーディングを行なう演算の場合では、１秒間に最大１５０万程度のポリゴンの座標演算を行なうことができるようになっており、これによってこのビデオゲーム装置では、ＣＰＵ５１の負荷を低減すると共に、高速な座標演算を行なうことができるようになっている。
【００３１】
ＧＰＵ６２は、ＣＰＵ５１からの描画命令に従って、フレームメモリ６２に対して多角形（ポリゴン）等の描画を行なう。このＧＰＵ６２は、１秒間に最大３６万程度のポリゴンの描画を行なうことができるようになっている。
【００３２】
フレームバッファ６３は、いわゆるデュアルポートＲＡＭからなり、ＧＰＵ６２からの描画あるいはメインメモリからの転送と、表示のための読み出しとを同時に行なうことができるようになっている。
【００３３】
このフレームバッファ６３は、１Ｍバイトの容量を有し、それぞれ１６ビットの横１０２４で縦５１２の画素のマトリックスとして扱われる。
【００３４】
このフレームバッファ６３のうちの任意の領域をビデオ出力として出力することができるようになっている。
【００３５】
また、このフレームバッファ６３には、ビデオ出力として出力される表示領域の他に、ＧＰＵ６２がポリゴン等の描画を行なう際に参照するカラールックアップテーブル（ＣＬＵＴ）が記憶されるＣＬＵＴ領域と、描画時に座標変換されてＧＰＵ６２によって描画されるポリゴン等の中に挿入（マッピング）される素材（テクスチャ）が記憶されるテクスチャ領域が設けられている。これらのＣＬＵＴ領域とテクスチャ領域は表示領域の変更等に従って動的に変更されるようになっている。
【００３６】
なお、上記ＧＰＵ６２は、上述のフラットシェーディングの他にポリゴンの頂点の色から補完してポリゴン内の色を決めるグーローシェーディングと、上記テクスチャ領域に記憶されているテクスチャをポリゴンに張り付けるテクスチャマッピングを行なうことができるようになっている。
【００３７】
これらのグーローシェーディング又はテクスチャマッピングを行なう場合には、上記ＧＴＥ６１は、１秒間に最大５０万程度のポリゴンの座標演算を行なうことができる。
【００３８】
画像デコーダ６４は、上記ＣＰＵ５１からの制御により、メインメモリ５３に記憶されている静止画あるいは動画の画像データを復号化してメインメモリ５３に記憶する。
【００３９】
また、この再生された画像データは、ＧＰＵ６２を介してフレームバッファ６３に記憶することにより、上述のＧＰＵ６２によって描画される画像の背景として使用することができるようになっている。
【００４０】
上記サウンドシステム７０は、ＣＰＵ５１からの指示に基づいて、楽音、効果音等を発生する音声処理装置（ＳＰＵ）７１と、該ＳＰＵ７１により、波形データ等が記録されるサウンドバッファ７２と、ＳＰＵ７１によって発生される楽音、効果音等を出力するスピーカ７３とを備えている。
【００４１】
上記ＳＰＵ７１は、１６ビットの音声データを４ビットの差分信号として適応差分符号化（Adaptive defferential Pulse Code Moduretion ：ＡＤＰＣＭ）された音声データを再生するＡＤＰＣＭ復号機能と、サウンドバッファ７２に記憶されている波形データを再生することにより、効果音等を発生する再生機能と、サウンドバッファ７２に記憶されている波形データを変調させて再生する変調機能等を備えている。
【００４２】
このような機能を備えることによってこのサウンドシステム７０は、ＣＰＵ５１からの指示によってサウンドバッファ７２に記録された波形データに基づいて楽音、効果音等を発生するいわゆるＰＣＭ音源として使用することができるようになっている。
【００４３】
上記光学ディスク制御部８０は、光学ディスクに記録されたプログラム、データ等を再生する光学ディスク装置８１と、例えばエラー訂正（ＥＣＣ）符号化されて記録されているプログラム、データ等を復号するデコーダ８２と、光学ディスク装置８１からの再生データを一時的に記憶することにより、光学ディスクからの読み出しを高速化するバッファ８３とを備えている。
【００４４】
また、光学ディスク装置８１で再生される光学ディスクに記録されている音声データとしては、上述のＡＤＰＣＭデータの他に音声信号をアナログ／デジタル変換したいわゆるＰＣＭデータがある。
【００４５】
ＡＤＰＣＭデータとして、例えば１６ビットのデジタルデータ（ＰＣＭデータ）の差分を４ビットで表わして記録されている音声データは、デコーダ８２で復号化された後、１６ビットのデジタルデータに伸張されて上述のＳＰＵ７１に供給される。
【００４６】
また、ＰＣＭデータとして、例えば１６ビットのデジタルデータとして記録されている音声データは、デコーダ８２で復号化された後、上記ＳＰＵ７１に供給され、あるいは直接スピーカ７３を駆動するために使用される。
【００４７】
また、通信制御部９０は、バス１００を介してＣＰＵ５１との通信の制御を行なう通信制御機９１と、使用者からの指示を入力するコントローラ９２と、ゲームの設定等を記憶するメモリカード９３とを備えている。
【００４８】
コントローラ９２は、使用者からの指示を入力するために、例えば１６個の指示キーを有し、通信制御機９１からの指示に従って、この指示キーの状態を、同期式通信により、通信制御機９１に毎秒６０回程度送信する。そして、通信制御機９１は、コントローラ９２の指示キーの状態をＣＰＵ５１に送信する。
【００４９】
これにより、使用者からの指示がＣＰＵ５１に入力され、ＣＰＵ５１は、実行しているゲームプログラム等に基づいて使用者からの指示に従った処理を行なう。
【００５０】
また、ＣＰＵ５１は、実行しているゲームの設定等を記憶する必要があるときに、該記憶するデータを通信制御機９１に送信し、通信制御機９１はＣＰＵ５１からのデータをメモリカード９３に記憶する。
【００５１】
このメモリカード９３は、通信制御機９１を介してバス１００に接続されており、バス１００から分離されているため、電源を入れた状態で、着脱することができる。これにより、ゲームの設定等を複数のメモリカード９３に記憶することができるようになっている。
【００５２】
また、このビデオゲーム装置は、バス１００に接続されたパラレル入出力（Ｉ／Ｏ）１０１と、シリアル入出力（Ｉ／Ｏ）１０２とを備えている。
【００５３】
そして、パラレルＩ／Ｏ１０１を介して周辺機器との接続を行なうことができるようになっており、また、シリアルＩ／Ｏ１０２を介して他のビデオゲーム装置との通信を行なうことができるようになっている。
【００５４】
ところで、上記メインメモリ５３、ＧＰＵ６２、画像デコーダ６４及びデコーダ８２等の間では、プログラムの読み出し、画像の表示あるいは描画等を行なう際に、大量の画像データを高速に転送する必要がある。
【００５５】
このため、このビデオゲーム装置では、上述のようにＣＰＵ５１を介さずに周辺装置制御部５２からの制御により上記メインメモリ５３、ＧＰＵ６２、画像デコーダ６４及びデコーダ８２等の間で直接データの転送を行なういわゆるＤＭＡ転送を行なうことができるようになっている。
【００５６】
これにより、データ転送によるＣＰＵ５１の負荷を低減させることができ、高速なデータの転送を行なうことができようになっている。
【００５７】
このビデオゲーム装置では、電源が投入されると、ＣＰＵ５１が、ＲＯＭ５４に記憶されているオペレーティングシステムを実行する。
【００５８】
このオペレーティングシステムの実行により、ＣＰＵ５１は、上記グラフィックシステム６０、サウンドシステム７０等の制御を行なう。
【００５９】
また、オペレーティングシステムが実行されると、ＣＰＵ５１は、動作確認等の装置全体の初期化を行なった後、光学ディスク制御部８０を制御して、光学ディスクに記録されているゲーム等のプログラムを実行する。
【００６０】
このゲーム等のプログラムの実行により、ＣＰＵ５１は、使用者からの入力に応じて上記グラフィックシステム６０、サウンドシステム７０等を制御して、
画像の表示、効果音、楽音の発生等を制御するようになっている。
【００６１】
ところで、このビデオゲーム装置は、ゲームの進行あるいは使用者の操作に応じて楽音、効果音等を発生させるために、効果音等の音声を発生する音源及び該音源の制御を行なう音源制御部を備えている。
【００６２】
この音源は、上記ＣＰＵ５１及びＳＰＵ７１によって実現されており、音源制御部は、上記ＣＰＵ５１によって実現されている。
【００６３】
具体的には、上記ＳＰＵ７１は、図２に示すように、ＣＰＵ５１からの指示に応じてサウンドバッファ７２に記録された波形データを読み出し、この読み出した波形データのピッチを変換するピッチ変換部１１１と、クロックを発生するクロックジェネレータ１１２と、該クロックジェネレータ１１２の出力に基づいてノイズを発生するノイズジェネレータ１１３と、ピッチ変換部１１１とノイズジェネレータ１１３との出力を切り換えるスイッチ１１４と、該スイッチ１１４の出力のレベルを調整して、出力波形の振幅を可変し、発生する音の包絡線（エンベロープ）を変換するエンベロープジェネレータ１１５と、発音を行なうか否かを切り換えるミュート処理部１１６と、音量及び左右のチャンネルのバランスを調整する左右のボリューム１１７Ｌ、１１７Ｒを備えている。
【００６４】
サウンドバッファ７２には、予め発音される音を構成する１周期分の波形データがいくつか記憶されている。この波形データは上述の４ビットのＡＤＰＣＭデータとして記憶されており、読み出し時にＳＰＵ７１によって１６ビットのＰＣＭデータに変換された後、上記ピッチ変換部１１１に供給されるようになっている。
【００６５】
このため、ＰＣＭデータをそのまま記憶する場合に比して、波形データを記憶するために要するサウンドバッファ７２内の領域を低減させ、より多くの波形データを記憶することができる。
【００６６】
また、メインメモリ５３には、予めサウンドバッファ７２に記憶された１周期分の波形データに対応する音のエンベロープ、すなわち、音の立ち上がり、立ち下がり等の情報が記録されている。
【００６７】
なお、この図２には、１音声（１ボイス）分の回路構成を示したが、この音源は、合計で２４ボイス分のピッチ変換部１１１〜ボリューム１１７Ｌ、１１７Ｒを備えており、各ボイスのボリューム１１７Ｌ、１１７Ｒの出力が合成されて、左右２チャンネル分の音声出力として出力されるようになっている。
【００６８】
すなわち、この音源は、２４ボイス分の発音を同時に行なうことができるようになっている。
【００６９】
また、各ボイス毎に、上記サウンドバッファ７２に記憶された波形データ、エンベロープ、音量、左右チャンネルのバランス等を独立に設定することができるようになっている。
【００７０】
これにより、この音源は、複数のボイスを使用して、和音の発生あるいは複数の楽器による演奏等を行なうことができるようになっている。
【００７１】
また、この音源は、音声出力に、時間を前後させた音声出力を合成するいわゆるリバーブ処理を行なうことができるようになっている。
【００７２】
すなわち、上記ＳＰＵ７１は、２４ボイス分の音声が合成された音声出力にリバーブ処理を行なうか否かを選択するスイッチ１１８Ｌ、１１８Ｒと、該スイッチ１１８Ｌから供給される音声出力を時間的に前後させるリバーブ処理部１１９と、時間的に前後させた音声出力の音量を調節するボリューム１２０と、該ボリューム１２０の出力を、時間的に前後させる前の音声出力に合成する加算部１２１ｂと、該加算部１２１の出力の音量を調節するマスターボリューム１２２とを備えている。
【００７３】
また、この音源では、上述のように発生した音声出力に上記デコーダ８２から供給される光学ディスクから読み出された音声信号を合成することができるようになっている。
【００７４】
具体的には、上記ＳＰＵ７１は、光学ディスクからの音声信号を上述の音声出力に合成するか否かを選択するスイッチ１２３と、合成する音声信号の音量を調節して加算部１２１ａに供給するミキシングボリューム１２４と、合成する音声信号にリバーブ処理を行なうか否かを選択するスイッチ１２５とを備えている。
【００７５】
なお、上述の図２には、左チャンネルのみについてリバーブ処理部１１９、ボリューム１２０及びミキシングボリューム１２４等の構成を示したが、これらは、右チャンネルについても同様な構成を有する。
【００７６】
ここで、この音源の動作を説明する。
【００７７】
ＣＰＵ５１は、発音する必要が生じたときに、サウンドバッファ７２に記憶された波形データの中から発音する波形データを選択する選択信号と、発音する音の音程とを上記ピッチ変換部１１１に供給すると共に、メインメモリ５３に記憶されたエンベロープの中から発音する波形データに対応するエンベロープを読み出して上記エンベロープジェネレータ１１５に供給する。
【００７８】
ピッチ変換部１１１は、指示された音程にしたがって、波形データの読み出しステップを可変して波形データを読み出す。また、ピッチ変換部１１１は、１周期分の波形データの読み出しが終了すると、発音の指示が供給されている期間中、同一の波形データを最初から繰り返し読み出す。
【００７９】
これにより、発音の指示が供給されている間中、指示された音程に対応した波形データが再生される。このような波形データは、スイッチ１１４を介してエンベロープジェネレータ１１５に供給される。
【００８０】
エンベロープジェネレータ１１５は、ＣＰＵ５１から供給されたエンベロープに基づいて、ピッチ変換部１１１からの波形データの振幅を変換する。
【００８１】
これにより１ボイス分の音声が発生される。同様に残りの２３ボイス分の音声が発生され、各々のボリューム１１７Ｌ、ボリューム１１７Ｒによって音量、左右チャンネルのバランスが調整された後、上述のようにリバーブ処理等の処理が行なわれた後、合成される。
【００８２】
かくして、ＣＰＵ５１からの指示に応じた音声が発生される。
【００８３】
上記各ボイスの音声を形成するための波形データ、エンベロープ等のデータは、いくつかの波形データ、エンベロープ等のデータの設定（プログラム）を集めて１つのファイルとしたバンクとして光学ディスク等に記録されている。そして、このバンク単位で、光学ディスク等からの読み出しが管理される。
【００８４】
このバンクは、例えば図３に示すように、属性情報部（バンクヘッダ）ＶＨと、波形情報部ＶＢとからなり、波形情報部ＶＢは、圧縮された波形データ（ｗａｖｅ）の集合からなり、バンクヘッダＶＨは、圧縮された波形データ（ＶＡＧ）に対応する属性情報（ａｔｔｒｉｂｕｔｅ）の集合からなる。
【００８５】
上記属性情報は、１つの波形データに対して１対１に対応する必要がなく、１つの波形データに対して複数の属性情報を対応させることができる。このため、上述の図３に示すように、属性情報の数の方が多くなる。
【００８６】
具体的には、上記バンクヘッダＶＨは、例えば図４に示すように、ＶＡＢヘッダと、プログラムヘッダと、トーン属性テーブル（ＶＡＧ属性テーブル）と、ＶＡＧオフセットテーブルとからなる。
【００８７】
ＶＡＢヘッダは、ファイルがバンクＶＡＢであることを識別するためのＶＡＢ識別子と、バージョンと、個々のバンクＶＡＢを識別するためのファイルＩＤと、バンクＶＡＢを構成するファイルのサイズを表わすファイルサイズと、バンクＶＡＢに含まれる上記プログラムの数を表わすプログラム数と、バンクに含まれる全ＶＡＧ属性セットの数を示すトーン数と、バンクに含まれるＶＡＧの数を示すＶＡＧ数と、マスタボリューム１２２の設定レベルを示すマスターボリューム（ｍｖｏｌ）と、マスタパンレベルの設定を示すマスタパンレベル（ｐａｎ）等からなる。
【００８８】
プログラムヘッダは、複数の上記プログラムからなり、トーン属性テーブルは、複数のトーン属性からなる。
【００８９】
また、１つのプログラムに対して、複数のトーン属性（ＶＡＧ属性）が、例えば音域毎に割り当てられている。
【００９０】
上記プログラムは、プログラムに含まれるＶＡＧ属性の数を示すトーン（ｔｏｎｅ）と、プログラムのマスターボリューム（ｖｏｌ）と、プログラムの優先度（ｐｒｉｏｒ）と、音源のモード（ｍｏｄｅ）と、プログラムのマスタパンレベル（ｐａｎ）と、プログラムの属性（ａｔｔｒｉｂｕｔｅ）と、アドレス（ａｄｄｒｅｓｓ１、２）等からなる。
【００９１】
また、上記ＶＡＧ属性は、ＶＡＧ属性の優先度（ｐｒｉｏｒ）と、ボリューム（ｖｏｌ）と、パンポット（ｐａｎ）と、発音の中心となる音程であるセンターノート（ｃｒｓｃ）と、ピッチ補正を行なうためのファインチューニング（ｆｉｎｅ）と、発音の最小値及び最大値（ｍｉｎ、ｍａｘ）と、ビブラートの幅及び１周期の時間（ｖｉｂＷ、ｖｉｂＴ）と、ポルタメントの幅及び持続時間（ｐｏｒＷ、ｐｏｒＴ）と、ピッチを変化させるピッチベンドの最小値及び最大値（ｐｂｍｉｎ、ｐｂｍａｘ）と、エンベロープの設定値（ａｄｓｒ１、２）と、当該ＶＡＧ属性が含まれるプログラムの表示（ｐｒｏｇｒａｍ）と、当該ＶＡＧ属性が使用する波形データ（ＶＡＧ）の識別情報（ｖａｇ）とからなる。
【００９２】
上記エンベロープの設定値ａｄｓｒ１、２は、例えば図５に示すように、発生する音のエンベロープの立ち上がり（ａｔｔａｃｋ）、減少（ｄｅｃａｙ）維持（ｓｕｓｔａｉｎ）、立ち下がり（ｒｅｌｅａｓｅ）を示している。
【００９３】
このエンベロープの設定値ａｄｓｒ１、２は、上述のエンベロープジェネレータ１１５によって、ピッチ変換部１１１の出力のレベルを調整するために使用される。
【００９４】
具体的には、上記各ボイスのエンベロープジェネレータ１１５は、図６に示すように、上記エンベロープの設定値ａｄｓｒ１、２を保持するａｄｓｒレジスタ１１５ａ、１１５ｂと、ａｄｓｒレジスタ１１５ａ、１１５ｂに保持されているエンベロープの設定値ａｄｓｒ１、２に基づいてピッチ変換部１１１の出力の振幅レベルを発生するａｄｓｒコントローラ１１５ｃと、ａｄｓｒコントローラ１１５ｃによって発生されたレベルとピッチ変換部１１１の出力との積を求める乗算器１１５ｄ等からなる。
【００９５】
そして、発音を行なう際には、上記ＣＰＵ５１が、選択されたＶＡＧ属性に対応するエンベロープの設定値ａｄｓｒ１、２をメインメモリ５３から読み出して上記各ボイスのａｄｓｒレジスタ１１５ａ、１１５ｂに供給すると共に、選択されたＶＡＧ属性に対応する波形データの読みだしをサウンドバッファ７２に指示する。
【００９６】
サウンドバッファ７２から読み出された波形データは、上述のようにピッチ変換部１１１でピッチ変化された後、スイッチ１１４を介して乗算器１１５ｄに供給される。
【００９７】
一方、ａｄｓｒコントローラ１５ｃは、ａｄｓｒレジスタ１１５ａ、１１５ｂに保持されているエンベロープの設定値ａｄｓｒ１、２に基づいて、例えば上記図５に示すような、エンベロープの値を発生して、乗算器１１５ｄに供給する。
【００９８】
そして、乗算器１１５は、ピッチ変換部１１１の出力と、エンベロープの値との積を求めて出力する。これにより、エンベロープ１１１の出力がエンベロープの値によって振幅変調された音声波形が発生される。このような音声波形が発生が各ボイス毎に行なわれ、各ボイスの発音が行なわれるようになっている。
【００９９】
また、上記ＶＡＧオフセットテーブルは、波形情報部ＶＢ中の個々のＶＡＧの位置を示すｖａｇｏｆｆｓｅｔからなる。このｖａｇｏｆｆｓｅｔは、上述のＶＡＧの識別情報ｖａｇによって指定されるＶＡＧの位置を波形情報部ＶＢの先頭からのオフセットとして表わしたものであり、発音を行なう際に、上記ＣＰＵ５１によって読み出されて上記ＳＰＵ７１に供給される。そして、ＳＰＵ７１は、発音を行なう際に、サウンドバッファ７２のｖａｇｏｆｆｓｅｔにより指定されるアドレスからＶＡＧを読み出すようになっている。
【０１００】
ここで、上述のバンクＶＡＢのデータは、使用に先だって、光学ディスク等から読み出され、メインメモリ５３あるいは、サウンドバッファ７２に記憶される。
【０１０１】
バンクヘッダＶＨは、光学ディスク等から読み出されてメインメモリ５３に記憶され、波形情報部ＶＢは、光学ディスク等から読み出されてメインメモリ５３に記憶された後、サウンドバッファ７２に転送されて記憶される。これらの読み出しあるいは転送はＤＭＡ転送によって行なわれる。
【０１０２】
具体的には、メインメモリ５３には、例えば図７に示すように、バンクヘッダＶＨが記憶されるバンクヘッダ記憶領域５３VHと、波形情報部ＶＢを転送するためのチャンネル領域５３ｃとが設けられている。このチャンネル領域５３ｃは、図７中に波線で示す波形情報部ＶＢのサイズより小さくなっている。
【０１０３】
このため、波形情報部ＶＢは、チャンネル領域５３ｃ以下のサイズに分割されて、順次チャンネル領域５３ｃに記憶された後、サウンドバッファ７２に転送される。
【０１０４】
これにより、波形データの転送に要するメインメモリ５３のチャンネル領域５３ｃを低減することができ、ゲームプログラム等が格納されるメモリ領域を大きく設定することができる。
【０１０５】
また、チャンネル領域５３ｃには波形情報部ＶＢの読み出し、転送が終了すれば、他のゲームプログラム等を記憶することができるため、メインメモリ５３を有効に使用することができる。
【０１０６】
ここで、上述のように発音要求があると、ＣＰＵ５１は、発音要求に応じてメインメモリから属性情報部の情報を読み出して、各ボイスの上記ＶＡＧの選択、ピッチ変換部１１１、エンベロープジェネレータ１１５、ボリューム１１７Ｌ、１１７Ｒ等の設定を行なう。これにより、サウンドバッファに記憶された波形データが読み出され、上述したように各ボイスの音声が発生される。
【０１０７】
この音源では、属性情報と、波形データをメインメモリ５３に、サウンドバッファ７２に各々独立に記憶し、発音要求に応じてメインメモリ５３に記憶されている属性情報を参照して、サウンドバッファ７２に記憶されている波形データを読み出して音声を発生する構成としているため、光学ディスク等から
属性情報及び波形データを読み出してメインメモリ５３及びサウンドバッファ７２に記憶することにより属性情報及び波形情報を変更することができる。
【０１０８】
これにより、再生するＢＧＭ等に対応させて発生する音声を変更することができる。
【０１０９】
上述のような音源の制御を行なう音源制御部は、ＣＰＵ５１が音源制御プログラムを実行することによって実現されている。
【０１１０】
このビデオゲーム装置では、発生させる効果音、背景音楽（ＢＧＭ）等に使用する波形データ、発生する音の音程、発音、消音、音色効果等の音楽情報を時間情報と共に時間順に並べた譜面データを予めメインメモリ５３に記憶しておき、音源制御部は、これらの譜面データを例えば一定時間間隔毎に、逐次読み出して、上記音源の音程、発音及び消音レジスタを逐次設定することによって効果音、ＢＧＭ等を再生するようになっている。
【０１１１】
具体的には、この譜面データは、演奏される単位（シーケンス）の譜面データ毎に１つのファイルとされた単一譜面データあるいは、複数のシーケンスの譜面データが１つのファイルとされた連結譜面データからなる。
【０１１２】
上記単一譜面データは、例えば図８に示すように、１つのファイルヘッダ情報と、１シーケンス分の譜面データとからなり、１シーケンス分の譜面データは、当該譜面データの属性を表わす１つのデータヘッダ情報と、１つのシーケンスデータとからなる。
【０１１３】
ファイルヘッダ情報は、当該ファイルがサウンドデータであることを表わすサウンドＩＤと、バージョン等を表わすバージョン番号とからなる。
【０１１４】
データヘッダ情報は、当該譜面データのシーケンス情報の時間分解能、テンポ及び拍子を示す四分音符の分解能、曲のテンポ、拍子とからなる。
【０１１５】
シーケンスデータは、１つのシーケンス内の楽音を構成する楽音データとからなる。
【０１１６】
また、上記連結譜面データは、例えば図９に示すように、１つのファイルヘッダ情報と、複数のシーケンスの譜面データとからなり、個々のシーケンスの譜面データは、それぞれ、上述の単一譜面データと同様に、当該譜面データの属性を表わす１つのデータヘッダ情報と、１つのシーケンスデータとからなる。
【０１１７】
この連結譜面データの場合、上記データヘッダ情報は、連結譜面データ中の個々の譜面データを識別するための譜面データＩＤと、当該譜面データのシーケンス情報の時間分解能、テンポ及び拍子を示す四分音符の分解能、曲のテンポ、拍子とからなる。
【０１１８】
また、上記単一譜面データ及び連結譜面データの楽曲データは、例えば図１０に示すように、あるボイスの発音を指示するキーオンと、あるボイスの消音を指示するキーオフと、あるボイスの音程を変更するピッチ属性の変更等のデータからなる。これらのデータは、ＣＰＵ５１によって解釈され、上述のようにＣＰＵ５１によって音源の制御が行なわれる。
【０１１９】
上述のような単一譜面データ及び連続譜面データは、例えば図１１に示すように、各シーケンス毎に形成された譜面データから構成される。
【０１２０】
すなわち、例えば譜面データＡ、Ｂにそれぞれ上記ファイルヘッダ情報が付加されて、単一譜面データが構成される。また、譜面データＣ、Ｄ、Ｅにそれぞれ譜面データＩＤとして、Ｐ−１、Ｐ−２、Ｐ−３が付加されて結合され、さらにファイルヘッダ情報が付加されて連結譜面データＰが形成される。このとき、譜面データＩＤは、連結譜面データＰ内の結合順となっている。
【０１２１】
このように形成された単一譜面データ及び連続譜面データは、光学ディスク等に記録されており、再生に先だってメインメモリ５３に読み出される。
【０１２２】
このような単一譜面データ及び結合譜面データは、ＣＰＵ５１によって実行される音源制御プログラムによって実現される音源制御部によって再生される。
【０１２３】
この音源駆動部は、例えば図１２に示す構成を有し、単一譜面データ及び結合譜面データを再生して音源の制御を行なう。
【０１２４】
すなわち、この音源制御部は、上記コントローラ９２等からなるコントローラ１０４と、メインメモリ５３の譜面データ保持部５３ａに保持されている単一譜面データあるいは連続譜面データから、再生する譜面データを選択する譜面データ選択部１０５と、譜面データ選択部１０５で選択された譜面データを取得する譜面データ取得部１０６と、上記サウンドシステム７０等からなる音源を制御する発音／消音情報制御部１０７等を備えている。
【０１２５】
上記譜面データ選択部１０５は、さらに、入力装置１０４からの入力に応じて選択される譜面データの選択情報を管理する譜面データ選択情報管理部１０５ａと、譜面データの状態等を保持する譜面データ選択情報保持部１０５ｂと、譜面データ選択情報保持部１０５ｂに保持されている譜面データの状態等を解析する譜面データ選択情報制御部１０５ｃとからなる。
【０１２６】
ここで、上記単一譜面データＡ、Ｂ及び連結譜面データＰは、例えば図１３に示すように、ファイルヘッダ情報が削除され、各々独立に上記譜面データ保持部５３ａに保持されている。
【０１２７】
これらの単一譜面データＡ、Ｂには、それぞれを識別する譜面ＩＤとして４、５が割り当てられ、この譜面ＩＤにしたがって、そのアドレスが管理されている。
【０１２８】
また、連結譜面データＰの各々の譜面データＣ、Ｄ、Ｅには、それぞれを識別する譜面ＩＤとして１、２、３が割り当てられ、この譜面ＩＤにしたがって、そのアドレスが管理されている。
【０１２９】
具体的には、例えば図１４（ａ）に示すように、メインメモリ５３に、これらの譜面ＩＤに対して譜面データＩＤ、譜面データが記憶されているアドレス、ポインタ等が参照テーブルとして記憶されている。
【０１３０】
この参照テーブルには、例えば単一譜面データＡ、Ｂに対する譜面ＩＤ４、５に対応させて、譜面データＡ、Ｂが記憶されているアドレスＡＤＤＲ１、ＡＤＤＲ２とポインタｐｔ４、ｐｔ５が保持されている。
【０１３１】
また、この参照テーブルには、例えば連結譜面データＰの譜面データＣ、Ｄ、Ｅに対する譜面ＩＤ１、２、３に対応させて、譜面データＣ、Ｄ、Ｅの譜面データＩＤであるＰ−１、Ｐ−２、Ｐ−３と、ポインタｐｔ１、ｐｔ２、ｐｔ３が記憶されている。
【０１３２】
これらの譜面データＩＤを構成する符号Ｐに対しては、メインメモリ５３に、例えば図１４（ｂ）に示すように、この符号Ｐに対応する連結符号データＰが記録されているスタートアドレスＳＡＤＤＲ１がスタートアドレス参照テーブルとして記憶されている。
【０１３３】
また、上記譜面データＩＤであるＰ−１、Ｐ−２、Ｐ−３に対しては、メインメモリ５３に、例えば図１４（ｃ）に示すように、連結譜面データＰのスタートアドレスＳＡＤＤＲ１に対する開始アドレス（オフセットアドレス）がオフセット参照テーブルとして記憶されている。
【０１３４】
具体的には、譜面データＩＤであるＰ−１に対応するオフセットアドレスは、対応する譜面データＣが連結譜面データの最初の譜面データであるために０となり、譜面データＩＤであるＰ−２に対応するオフセットアドレスは、対応する譜面データＤのスタートアドレスＳＡＤＤＲ１に対する開始アドレスＯＡＤＤＲ１となり、譜面データＩＤであるＰ−３に対応するオフセットアドレスは、対応する譜面データＥのスタートアドレスＳＡＤＤＲ１に対する開始アドレスＯＡＤＤＲ２となる。
【０１３５】
すなわち、連結譜面データを構成する譜面データは、参照テーブル、スタートアドレス参照テーブル及びオフセット参照テーブルを参照することによって譜面ＩＤを指定するだけで読み出される。
【０１３６】
これにより、連結譜面データを構成する譜面データの読み出しは、例えば図１５に示すように、上記譜面ＩＤを指定するだけで可能となり、実際のアドレスを指定して読み出す場合に比較してアドレスの指定が容易となる。
【０１３７】
ところで、この音源制御部では、上述の音源の２４ボイスを各譜面データの再生処理に割り当てることにより、複数の譜面データの再生処理を行なうことができるようになっている。
【０１３８】
この複数の譜面データの再生処理は、各々の処理で再生している譜面データに対応する参照テーブル上のポインタに従って、その進行が制御されている。すなわち、このポインタは、各々の譜面データの現在再生されている位置を示していおり、再生が開始されていないときは、譜面データの先頭を示している。
【０１３９】
また、上記譜面データ保持部１０５ｂには、例えば図１６に示すように、譜面ＩＤに対する譜面データの再生状態が譜面データ選択情報属性テーブルとして保持されている。
【０１４０】
この譜面データの再生状態は、上述の入力装置１０４からの入力あるいはゲームの進行等による他のプログラムからの指示によって設定される。
【０１４１】
また、譜面データの再生状態は、例えば再生が開始されていないときはＳｔｏｐとなり、再生中であるときはＰｌａｙとなり、一時停止状態であるときはＰａｕｓｅとなる。
【０１４２】
すなわち、上述の図１６に示す譜面データ選択情報属性テーブルは、譜面ＩＤが１である譜面データが再生中で、譜面ＩＤが２である譜面データが再生が開始されておらず、譜面ＩＤが３である譜面データが一時停止状態で、譜面ＩＤが４である譜面データが再生中で、譜面ＩＤが５である譜面データが開始されていない状態を示している。
【０１４３】
ここで、この再生装置による譜面データの再生動作を、図１７に示すフローチャートを用いて説明する。
【０１４４】
まず、譜面データの再生が開始されると、ステップＳ１に進み、ステップＳ１において、譜面データ選択情報管理部１０５ａは、入力装置１０４からの入力があるか否かを確認し、入力があればステップＳ２に進み、入力がなければステップＳ６に進む。
【０１４５】
ステップＳ２において、譜面データ選択情報制御部１０５ｃは、上記入力が、指示された譜面ＩＤに対する再生の要求か否かを判断し、再生の要求でなければステップＳ４に進み、再生の要求であれば続くステップＳ３に進み、譜面データ選択情報保持部１０５ｂの指示された譜面ＩＤに対応する譜面データの状態をＰｌａｙとした後、ステップＳ６に進む。
【０１４６】
ステップＳ４において、譜面データ選択情報制御部１０５ｃは、上記入力が、指示された譜面ＩＤに対する停止の要求か否かを判断し、停止の要求でなければステップＳ６に進み、停止の要求であれば続くステップＳ５に進み、譜面データ選択情報保持部１０５ｂの指示された譜面ＩＤに対応する譜面データの状態をＳｔｏｐとした後、ステップＳ６に進む。
【０１４７】
ステップＳ６において、譜面データ選択情報制御部１０５ｃは、譜面データ選択情報保持部１０５ｂに保持されている各譜面ＩＤに対応する譜面データの状態を解析し、続くステップＳ７において、再生状態となっている譜面ＩＤが存在するか否かを判定し、再生状態となっている譜面ＩＤがなければ上記ステップＳ１に戻り、入力を待機する。また、このステップＳ７において、再生状態となっている譜面ＩＤがあれば、再生状態となっている譜面ＩＤに対応する各々の譜面データの発音処理を開始して、ステップＳ８に進む。
【０１４８】
なお、このステップＳ８以降の処理は、周辺装置制御部５２によって一定間隔毎に発生されるタイマ割り込みにしたがって各譜面データ毎に行なわれるが、以下の説明では、１つの譜面データについてのみ説明する。
【０１４９】
すなわち、このステップＳ８において、譜面データ取得部１０６は、再生状態となっている譜面ＩＤに対応する譜面データの読み出しを譜面データ保持部５３ａに指示する。
【０１５０】
そして、続くステップＳ９において、譜面データ取得部１０６は、譜面データが終了したか否かを判断し、譜面データが終了していれば発音処理を終了し、譜面データが終了していなければ続くステップＳ１０に進む。
【０１５１】
ステップＳ１０において、譜面データ取得部１０６は、ステップＳ９において読み出された譜面データが、現在の割り込み期間中に再生するデータであるか否かを判断し、現在の割り込み期間中に再生するデータでなければ発音処理を終了し、現在の割り込み期間中に再生するデータであればステップＳ１１に進む。
【０１５２】
ステップＳ１１において、発音／消音情報制御部１０７は、現在の割り込み期間中に再生されるデータが、あるボイスの発音を指示するキーオンであるか否かを判断し、キーオンでなければステップＳ１３に進み、キーオンであれば続くステップＳ１２に進み、指定されたボイスの発音を音源に指示した後、ステップＳ８に戻り、次の割り込みを待機する。
【０１５３】
ステップＳ１３において、発音／消音情報制御部１０７は、現在の割り込み期間中に再生されるデータが、あるボイスの消音を指示するキーオフであるか否かを判断し、キーオフでなければステップＳ８に戻り、次の割り込みを待機する。また、キーオフであれば続くステップＳ１４に進み、指定されたボイスの消音を音源に指示した後、ステップＳ８に戻り、次の割り込みを待機する。
【０１５４】
これにより、上述の譜面データ選択情報属性テーブルに従って、その再生が選択されている譜面ＩＤに対応する譜面データの再生が行なわれる。
【０１５５】
また、この音源制御部では、上述の参照テーブル等を参照することによって譜面ＩＤを指定するだけで譜面データの特定を行なうことができ譜面データの管理が容易となる。
【０１５６】
譜面データ選択情報属性テーブルを変更することによって、各々の譜面ＩＤに対する譜面データの再生状態を独立に設定できるため、他の譜面データの再生状態に関わらず、譜面データの再生を指示することができ、例えば使用者からの入力あるいは、他のプログラムからの要求等に対する応答時間を向上させることができる。
【０１５７】
ところで、上述の図１２に示す音源制御部は、さらに具体的には、例えば図１８に示すような構成を有する。なお、この図１８は、オペレーティングシステム、音源制御プログラム及びゲームプログラム等の実行によって上記ＣＰＵ５１が行なう処理を等価的にブロック図で示したものである。
【０１５８】
この音源制御部は、上記周辺装置制御部５２を制御して所定時間毎にＣＰＵ５１に対するタイマ割り込みを発生させるタイマ割り込み制御部１３０と、周辺装置制御部５２からのタイマ割り込みによって所定時間毎に起動され、上記譜面データに基づいて上記音源の制御を行なうサウンド制御部１４０と、ビデオゲーム装置全体の負荷状態を調べて上記タイマ割り込み制御部１３０に供給するシステム負荷情報制御部１５０と、上記コントローラ９２の状態を調べる入力要求制御部１６０とを有する。
【０１５９】
また、オペレーティングシステム及びゲームプログラムの実行によって上記ＣＰＵ５１で上記サウンド制御部１４０の処理と同時に実行される処理としては、上記グラフィックシステム６０による描画等を制御する描画制御部１７０と、使用者からの入力によって、発生する効果音、楽音等の選択、表示する画像の選択、ゲームの進行の制御等の処理を行なうメインルーチン部１８０とがある。
【０１６０】
上記タイマ割り込み制御部１３０は、タイマ割り込みを発生させる間隔を保持するタイマ割り込み間隔保持部１３１と、タイマ割り込み管理部１３２と、サウンド制御部１４０と上記メインルーチン部１８０との切り換えの制御を行なう制御切り換え管理部１３３とからなる。
【０１６１】
上記サウンド制御部１４０は、上述の譜面データを保持する譜面データ保持部１４１と、譜面データの読み出しを管理するデータ取得管理部１４２と、データ取得管理部１４２の動作を制御する時間情報管理部１４３と、読み出された譜面データに基づいて上記音源の発音／消音等を制御する発音／消音情報制御部１４４と、上記タイマ割り込み間隔保持部１３１からのタイマ割り込み間隔に応じた内部分解能を保持する内部分解能保持部１４５、上述の音源等からなる。
【０１６２】
上記音源は、上述のＳＰＵ７１、サウンドバッファ７２等から構成され、発音／消音情報制御部１４４の制御により、サウンドバッファ７２からなる波形データ保持部１４６に記憶されている波形データを読み出して音声を発生させる発音部１４７と、発生した音声を増幅して音量等を調整する増幅部１４８等からなる。この発音部１４７、増幅部１４８は、上述のようにＳＰＵ７１の一機能として実現されている。
【０１６３】
上記システム負荷情報制御部１５０は、システム負荷情報を取得するシステム負荷情報取得部１５１と、システム負荷を判断するシステム負荷判断部１５２と、システム負荷しきい値を保持するシステム負荷しきい値保持部１５３とからなる。
【０１６４】
入力要求制御部１６０は、上述のコントローラ９２等からなる入力装置１６１と、入力装置１６１からの入力要求を解析する入力要求解析部１６２とからなる。
【０１６５】
上記描画制御部１７０は、上述のＣＰＵ５１、ＧＴＥ６１、ＧＰＵ６２及びフレームバッファ６３等から構成され、ＧＴＥ６１等からなる制御時描画情報保持部１７１と、ＣＰＵ５１等からなる描画情報制御部１７２と、ＧＰＵ６２等からなる描画装置１７３と、フレームバッファ６３等からなる描画情報保持部１７４と、描画装置１７３からのビデオ出力に基づいて画像を表示する表示装置１７５等からなる。
【０１６６】
以下、この音源制御部の動作を説明する。
【０１６７】
この音源制御部では、予め、タイマ割り込み間隔保持部１３１に、システム負荷あるいは、入力要求に応じたタイマ割り込み間隔が保持されている。具体的には、例えばシステム負荷が軽いときのタイマ割り込み間隔として２４０分の１秒が、システム負荷が重いときのタイマ割り込み間隔として、システム負荷が軽いときのタイマ割り込み間隔より長い６０分の１秒が保持されている。
【０１６８】
この音源制御部では、処理が開始されると、ＣＰＵ５１が実行するメインルーチン部１８０によって、入力装置１６１からの入力に応じた描画制御部１７０の制御、サウンド制御部１４０によって発生される楽音等の選択、システム負荷情報制御部１５０等の処理が並列に実行される。
【０１６９】
このとき、システム負荷情報取得部１５１は、ＣＰＵ５１の負荷情報を取得してシステム負荷判断部１５２に供給し、システム負荷判断部１５２は、システム負荷しきい値保持部１５３に保持されているしきい値と比較してシステム負荷を判断し、判断結果をタイマ割り込み間隔保持部１３１に供給する。
【０１７０】
タイマ割り込み間隔保持部１３１は、システム負荷判断部１５２からのシステム負荷判断あるいは入力要求解析部１６２の出力に基づいて、タイマ割り込み間隔を選択してタイマ割り込み管理部１３２及び内部分解能保持部１４５に供給する。
【０１７１】
具体的には、タイマ割り込み間隔保持部１３１は、システム負荷判断部１５２からの判断結果に基づいて、システム負荷が軽いときは、割り込み間隔を２４０分の１秒とし、システム負荷が重いときは、割り込み間隔を６０分の１秒とする。
【０１７２】
タイマ割り込み管理部１３２は、タイマ割り込み間隔保持部１３１から供給されたタイマ割り込み間隔に基づいて周辺装置制御部５２を制御し、一定間隔毎にタイマ割り込みを発生させ、制御切り換え管理部１３３は、タイマ割り込みに基づいて一定間隔毎にメインルーチン部１８０とサウンド制御部１４０の処理とを切り換え、サウンド制御部１４０の処理を開始する。
【０１７３】
制御切り換え管理部１３３の切り換えによって処理が開始されると、サウンド制御部１４０では、時間情報管理部１４３が、内部分解能保持部１４５に保持されている内部分解能すなわちタイマ割り込み間隔に応じて、データ取得管理部１４２を制御して譜面データ保持部１４１に保持されている譜面データからタイマ割り込み間隔分の読み出しを指示し、読み出された譜面データを発音／消音情報制御部１４４に供給する。
【０１７４】
発音／消音情報制御部１４４は、時間情報管理部１４３から供給された譜面データに基づいて、発音部１４７を制御する。これにより、発音部１４７は、波形データ保持部１４６に保持されている波形データに基づいて音声を発生する。
【０１７５】
具体的には、発音／消音情報制御部１４４の実行により、上述の説明と同様に、ＣＰＵ５１がピッチ変換部１１１、エンベロープジェネレータ１１５等を制御することによって音声の発生を制御する。このように発生された音声は、増幅部１４８によってレベルが調整された後、スピーカ７３によって出力される。
【０１７６】
これによりタイマ割り込み間隔保持部１３１から供給されるタイマ割り込み間隔分の譜面データに基づく音声が出力される。
【０１７７】
このサウンド制御部１４０は、上述のようにタイマ割り込み間隔保持部１３１によって設定されたタイマ割り込み間隔毎に起動され、これによって、タイマ割り込み間隔分の譜面データに基づく音声が順次発生される。
【０１７８】
すなわち、タイマ割り込み間隔が２４０分の１秒であるときは、例えば図１９（ａ）に示すように、２４０分の１秒毎に譜面データが再生される。
【０１７９】
このとき、実際のサウンド処理部１４０の処理時間は、２４０分の１秒より短くなっている。
【０１８０】
例えば時刻ｔ１１から時刻ｔ１２まで、時刻ｔ１２から時刻ｔ１３まで、時刻ｔ１２から時刻ｔ１４まで、時刻ｔ１４から時刻ｔ１５までの間に、それぞれ、音符が２つ再生される。すなわち、時刻ｔ１１から時刻ｔ１５までの６０分の１秒間に、音符が２つ再生される。
【０１８１】
また、タイマ割り込み間隔が６０分の１秒であるときは、例えば図１９（ｂ）に示すように、６０分の１秒毎に譜面データが再生される。例えば時刻ｔ２１から時刻ｔ２２までの６０分の１秒間に、音符が８つ再生される。
【０１８２】
すなわち、上述のタイマ割り込み間隔を２４０分の１秒とした場合と同様に６０分の１秒間に音符が８つ再生される。
【０１８３】
これにより、この音源処理装置では、同一の譜面データを用いて、タイマ割り込み間隔を変化させても、この変化させたタイマ割り込み間隔に応じて譜面データの読み出しを制御することにより、所定のテンポで譜面データが再生される。
【０１８４】
上述のようにサウンド制御部１４０を割り込みによって起動して処理を行なった場合、実際のＣＰＵ５１の処理負荷は、タイマ割り込み間隔が２４０分の１秒であるときは、例えば図２０（ａ）に示すように、サウンド制御部１４０の処理がＣＰＵ５１の処理能力の２５％を占めている。また、タイマ割り込み間隔が６０分の１秒であるときは、例えば図２０（ｂ）に示すように、サウンド制御部１４０の処理がＣＰＵ５１の処理能力の１２．５％を占めている。
【０１８５】
すなわち、実際に音源を制御するためのＣＰＵ５１の負荷はタイマ割り込み間隔が短くなってもさほど変化しないが、タイマ割り込み間隔が短くなると、タイマ割り込みが頻繁に発生すると、タイマ割り込みのための処理のオーバーヘッドが大きくなるため、サウンド制御部１４０の処理負荷が増大する。
【０１８６】
上述のように、この音源制御部では、タイマ割り込み間隔保持部１３１によって選択されたタイマ割り込み間隔は、システム負荷が軽いときは、割り込み間隔はサウンド制御部１４０の処理負荷が比較的大きくなる２４０分の１秒とされ、システム負荷が重いときは、サウンド制御部１４０の処理負荷が比較的小さくなる６０分の１秒とされている。
【０１８７】
これにより、この音源制御装置では、何等譜面データを変更することなく、システム負荷に応じてサウンド制御部１４０の処理負荷を可変することができる。このため、システム負荷が重いときは、サウンド制御部１４０の処理負荷が小さくなり、例えば描画等の処理を円滑に行なうことができる。
【０１８８】
なお、上述の実施例では本発明の音源装置をビデオゲーム装置において楽音、効果音等を発生する音源に適用した例について説明したが、振幅データに基づいて波形データの振幅を調整して音声の発生を行なう構成となっていれば、例えば自動演奏装置、パーソナルコンピュータ等の装置にも適用することができ、その他、本発明の技術的思想を逸脱しない範囲であれば適宜変更することができることは勿論である。
【０１８９】
【発明の効果】
本発明に係る音源装置は、波形データと振幅データとを波形バッファと振幅メモリとに記憶し、保持部に振幅データに対応する波形データを識別する識別情報を保持しているため、識別情報を参照して指定された振幅データに対応する波形データの読み出しを制御することができ、波形データと振幅データとを独立に記憶しても発音を行なうことができる。
【図面の簡単な説明】
【図１】本発明に係る音源制御装置を適用したビデオゲーム装置の構成を示すブロック図である。
【図２】上記ビデオゲーム装置を構成するＳＰＵの具体的な構成を示すブロック図である。
【図３】上記ビデオゲーム装置を構成する音源及び音源制御部で使用されるバンクのフォーマットを示す図である。
【図４】上記バンクを構成する属性情報部のフォーマットを示す図である。
【図５】上記属性情報部を構成するエンベロープの設定値を説明するための図である。
【図６】上記音源制御装置を構成するエンベロープジェネレータの構成を示すブロック図である。
【図７】上記属性情報部の具体的な記憶状態を示す図である。
【図８】上記ビデオゲーム装置を構成する音源を制御するための譜面データのフォーマットを示す図である。
【図９】上記ビデオゲーム装置を構成する音源を制御するための譜面データのフォーマットを示す図である。
【図１０】上記譜面データを構成する楽曲データのフォーマットを示す図である。
【図１１】上記譜面データの形成を説明するための図である。
【図１２】上記譜面データに基づいて上記音源を制御する音源制御部の構成を示す図である。
【図１３】上記音源制御部を構成する譜面データ保持部に保持されている譜面データの状態を示す図である。
【図１４】上記譜面データの読み出しに際して参照される参照テーブルの構造を示す図である。
【図１５】上記音源制御部による譜面データの再生動作を説明するための図である。
【図１６】上記音源制御部による譜面データの管理を説明するための図である。
【図１７】上記音源制御部による譜面データの再生動作を説明するためのフローチャートである。
【図１８】上記音源制御部の詳細な構成を示すブロック図である。
【図１９】上記音源制御部を構成するサウンド制御部が、タイマ割り込みによって行なう処理を説明するための図である。
【図２０】上記サウンド制御部の処理と他の処理の負荷に比率を示す図である。
【図２１】従来のビデオゲーム装置の構成を示すブロック図である。
【符号の説明】
５０  制御系
５１  ＣＰＵ
５２  周辺装置制御部
５３  メインメモリ
５３ａ  譜面データ保持部
５３VH  バンクヘッダ記憶領域
５３ｃ  チャンネル領域
５４  ＲＯＭ
６０  グラフィックシステム
６１  ＧＴＥ
６２  ＧＰＵ
６３  フレームバッファ
６４  画像デコーダ
６５  ディスプレイ装置
７０  サウンドシステム
７１  ＳＰＵ
７２  サウンドバッファ
７３  スピーカ
８０  光学ディスク制御部
８１  光学ディスク装置
８２  デコーダ
８３  バッファ
９０  通信制御部
９１  通信制御機
９２  コントローラ
１００  バス
１０４  入力装置
１０５  譜面データ選択部
１０５ａ  譜面データ選択情報管理部
１０５ｂ  譜面データ選択情報保持部
１０５ｃ  譜面データ選択情報制御部
１０６  譜面データ取得部
１０７  発音／消音情報制御部
１１１  ピッチ変換部
１１２  クロックジェネレータ
１１３  ノイズジェネレータ
１１４、１１８Ｌ、１１８Ｒ、１２３、１２５  スイッチ
１１５  エンベロープジェネレータ
１１５ａ、ｂ  ａｄｓｒレジスタ
１１５ｃ  ａｄｓｒコントローラ
１１５ｄ  乗算器
１１６  ミュート処理部
１１７Ｌ、１１７Ｒ、１２０、１２４  ボリューム
１１９  リバーブ処理部
１２１ａ、１２１ｂ  加算部
１２２  マスターボリューム
１２４  ミキシングボリューム
１４０  サウンド制御部
１４１  譜面データ保持部
１４２  データ取得管理部
１４３  時間情報管理部
１４４  発音／消音情報制御部
１４５  内部分解能保持部１４５
１５０  システム負荷情報制御部
１５１  システム負荷情報取得部
１５２  システム負荷判断部
１５３  システム負荷しきい値保持部
１６０  入力要求制御部
１６１  入力装置
１６２  入力要求解析
１７０  描画制御部
１７１  制御時描画情報保持部
１７２  描画情報制御部
１７３  描画装置
１７４  描画情報保持部
１７５  表示装置
【図１】
0003919833.tif 000002
【図２】
0003919833.tif 000003
【図３】
0003919833.tif 000004
【図４】
0003919833.tif 000005
【図５】
0003919833.tif 000006
【図６】
0003919833.tif 000007
【図７】
0003919833.tif 000008
【図８】
0003919833.tif 000009
【図９】
0003919833.tif 000010
【図１０】
0003919833.tif 000011
【図１１】
0003919833.tif 000012
【図１２】
0003919833.tif 000013
【図１３】
0003919833.tif 000014
【図１４】
0003919833.tif 000015
【図１５】
0003919833.tif 000016
【図１６】
0003919833.tif 000017
【図１７】
0003919833.tif 000018
【図１８】
0003919833.tif 000019
【図１９】
0003919833.tif 000020
【図２０】
0003919833.tif 000021
【図２１】
0003919833.tif 000022