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