(57)【特許請求の範囲】
【請求項１】
各発音子毎のイベントデータと複数の発音子間で共有されるイベントデータとからなるイベントデータ及び時間管理データで構成される楽曲シーケンスデータに基づいて楽音を生成する、ソフトウェア処理手段と音源ハードウエア手段とで構成される楽音生成装置であって、
前記ソフトウェア処理手段は、前記楽曲シーケンスデータ中の前記イベントデータを逐次解釈し、イベントデータに対応する制御データと該制御データを記憶すべき音源制御レジスタのアドレスを示すインデックス情報とで構成される音源制御レジスタライトデータに変換して、前記楽曲シーケンスデータを前記時間管理データと前記音源制御レジスタライトデータとで構成される音源ハードウエア制御データに変換するものであり、
前記音源ハードウエア手段は、
複数の発音子と、各発音子毎に設定すべき制御データと複数の発音子間で共有される制御データとを分離して記憶する音源制御レジスタとを有する音源装置と、
前記ソフトウェア処理手段に対して前記音源ハードウエア制御データの転送を要求するとともに転送された音源ハードウエア制御データを記憶するＦＩＦＯ手段と、
該ＦＩＦＯ手段から与えられる前記音源ハードウエア制御データに基づいて前記音源制御レジスタに前記制御データを書き込むシーケンサ手段であって、前記時間管理データに従うタイミングで、対応するインデックス情報により指定される前記音源制御レジスタのアドレスに、対応する制御データを書き込むシーケンサ手段とを有し、
前記各発音子は、前記音源制御レジスタに分離して記憶されている各発音子毎に設定される制御データと複数の発音子間で共有される制御データの両者に対応して楽音を発生するように構成されていることを特徴とする楽音生成装置。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は、ポリフォニック発音を行うことのできる楽音生成装置に関する。
【０００２】
【従来の技術】
従来のハードウェア楽音生成装置の構成例を図１１に示す。図１１において、ＣＰＵ（Central Processing Unit）１１０は、ＳＭＦ（Standard MIDI File）データやＳＭＡＦ（Synthetic Music Mobile Application Format）データ等の楽曲シーケンスデータからなる音楽コンテンツデータ１１１を音源ハードウェア１１５に供給する。音源ハードウェア１１５には、複数の発音子を有し、複数のボイス（発音チャンネルともいう）の楽音を発生することのできる音源部１３３と、前記楽曲シーケンスデータを解釈し、音源部１３３に固有の制御データを所定のタイミングで供給するシーケンサ１３２とが備えられている。シーケンサ１３２は、ＳＭＦデータやＳＭＡＦデータを音源部１３３に固有の制御データ（前記複数の発音子に供給する発音制御パラメータなど）に変換するハードウェア固有制御データ変換部１３２ａと、制御データ中の時間管理情報に従って、楽音の発音を制御する時間管理部１３２ｂとを有している。
【０００３】
このように構成されたハードウェア楽音生成装置においては、楽音を再生する際に、楽曲シーケンスデータ中に含まれているイベントとイベントの時間間隔を示すインターバルデータや発音期間を示すゲートタイムデータに基づくタイミングにおいて、時間管理部１３２ｂがハードウェア固有制御データ変換部１３２ａにデータ出力の指示を与えている。これを受けて、ハードウェア固有制御データ変換部１３２ａは、変換したハードウェア固有制御データを音源部１３３に出力する。音源部１３３では、供給されたハードウェア固有制御データに基づいて前記複数の発音子がそれぞれのボイスの楽音を生成して出力する。これにより、前記楽曲シーケンスデータに基づいた楽曲が再生される。
【０００４】
図１２は、従来の楽音生成装置の他の構成例を示す図である。この図に示す楽音生成装置は、前述したハードウェア楽音生成装置において音源ハードウェア１１５中に設けられていたシーケンサ１３２をＣＰＵによるソフトウェア処理により実現するようにしたものである。
図１２において、音源ハードウェア２１５は前述の音源部１３３と同様の複数の発音子を有する音源部２３３を備えている。また、シーケンサ機能手段２３２は、ＣＰＵ２１０がシーケンサプログラムを実行することにより実現されるものであり、ハードウェア固有制御データ変換手段２１０ａと、時間管理手段２１０ｂとからなっている。ハードウェア固有制御データ変換手段２１０ａは、ＳＭＦデータやＳＭＡＦデータなどの楽曲シーケンスデータ２１１を音源ハードウェア２１５に固有の制御データに変換する手段であり、時間管理手段２１０ｂは、データ中の時間管理情報に従って、楽音を発音するタイミングを制御する手段である。楽曲シーケンスデータはイベント間の時間間隔を示す時間情報とイベント情報の組の系列で構成されている。前記ハードウェア固有制御データ変換手段２１０ａは、前記音源部２３３における発音子に関するパラメータなどの音源部２３３に固有の情報を参照して、前記楽曲シーケンスデータ２１１中のイベント情報に基づき音源部２３３に固有のハードウェア固有制御データを生成し、前記時間管理手段２１０ｂの制御のもとに前記時間情報により決定されるタイミングで該ハードウェア固有制御データを音源部２３３に出力する。音源部２３３では、前記ＣＰＵ２１０より送られたハードウェア固有制御データを各発音子対応にパラメータを記憶する音源制御レジスタに書き込み、該音源制御レジスタの記憶内容に基づいて、前記各発音子がそれぞれのボイスの楽音を生成する。
【０００５】
通常、複数のボイスを有し複数の音色を同時に出力することのできる音源においては、チャンネル（パート）に対し、空いている発音子を動的に割り当てるＤＶＡ（dynamic voice allocation）方式が採用されている。すなわち、どの発音子がどのチャンネル（パート）の楽音を発生するかは固定されていない。前記ハードウェア固有制御データ変換手段２１０ａは、前記イベント情報をそれに対応するハードウェア固有制御データに変換するとき、チャンネルと音色との対応関係を記憶する音色テーブルと、音源部２３３内の各発音子（ボイス）の使用状況を記憶したボイスアサインテーブルとを用い、前記イベント情報に応じてこれらテーブルを参照して、音源部２３３を制御するハードウェア固有制御データを作成し、前記時間管理手段２１０ｂにより指示されたタイミングで前記音源部２３３に送出する。ここで、前記ハードウェア固有制御データは、前記各発音子に対する発音制御パラメータであり、前記音源部２３３の各発音子は、ハードウェア固有制御データにより直接制御され、対応するボイスの楽音が生成される。
【０００６】
【発明が解決しようとする課題】
前記図１１に示したようなハードウェア楽音生成装置においては、ＣＰＵ１１０は、楽曲再生時に、ただ単に楽曲シーケンスデータ１１１を音源ハードウェア１１５に送出する処理を実行するだけでよいためその処理負担は小さいが、シーケンサ１３２が音楽コンテンツデータの変換および時間管理を行っていることから、シーケンサ１３２の構成が複雑となってしまうことになる。これにより、シーケンサ１３２の回路規模が大きくなりコストアップになるという問題点があった。また、新しいフォーマットの音楽コンテンツデータが提案された場合、それに対応することが困難であるという問題点もある。
一方、前記図１２に示したようなシーケンサ機能をソフトウェアで実現する楽音生成装置においては、ＣＰＵ２１０が音楽コンテンツデータの変換および時間管理を行っていることから、楽曲再生のためのＣＰＵ２１０の処理負担が大きくなってしまうことになる。例えば、あるチャンネルの楽音のボリュームを変更するようなイベントがあった場合には、そのチャンネルの楽音を発生している全ての発音子に対し、それぞれ制御データを作成して送出することとなり、音源に対し多くの制御データを作成し送出することが必要となってしまう。したがって、より高速なＣＰＵが要求され、特に、ＣＰＵが通信制御等の重要度の高い他の処理をメインに行うものである場合には、シーケンサ処理を行うために高価な高速のＣＰＵが必要になるという問題点があった。
【０００７】
そこで、本発明は、新規なフォーマットの音楽コンテンツデータにも対応することができるとともに、音源ハードウエアを制御するためのソフトウェア負荷が小さく、制御するデータ量も少なくて済み、かつ、ハードウエア量も大きくならない楽音生成装置を提供することを目的としている。
【０００９】
【課題を解決するための手段】
上記目的を達成するために、本発明の楽音生成装置は、各発音子毎のイベントデータと複数の発音子間で共有されるイベントデータとからなるイベントデータ及び時間管理データで構成される楽曲シーケンスデータに基づいて楽音を生成する、ソフトウェア処理手段と音源ハードウエア手段とで構成される楽音生成装置であって、前記ソフトウェア処理手段は、前記楽曲シーケンスデータ中の前記イベントデータを逐次解釈し、イベントデータに対応する制御データと該制御データを記憶すべき音源制御レジスタのアドレスを示すインデックス情報とで構成される音源制御レジスタライトデータに変換して、前記楽曲シーケンスデータを前記時間管理データと前記音源制御レジスタライトデータとで構成される音源ハードウエア制御データに変換するものであり、前記音源ハードウエア手段は、複数の発音子と、各発音子毎に設定すべき制御データと複数の発音子間で共有される制御データとを分離して記憶する音源制御レジスタとを有する音源装置と、前記ソフトウェア処理手段に対して前記音源ハードウエア制御データの転送を要求するとともに転送された音源ハードウエア制御データを記憶するＦＩＦＯ手段と、該ＦＩＦＯ手段から与えられる前記音源ハードウエア制御データに基づいて前記音源制御レジスタに前記制御データを書き込むシーケンサ手段であって、前記時間管理データに従うタイミングで、対応するインデックス情報により指定される前記音源制御レジスタのアドレスに、対応する制御データを書き込むシーケンサ手段とを有し、前記各発音子は、前記音源制御レジスタに分離して記憶されている各発音子毎に設定される制御データと複数の発音子間で共有される制御データの両者に対応して楽音を発生するように構成されているものである。
【００１０】
このような本発明の楽音発生装置によれば、各発音子の発音に関するパラメータを各発音子毎に設定されるパラメータと複数の発音子間で共有されるパラメータとに分離して記憶するパラメータ記憶部（音源制御レジスタ）を設け、各発音子が前記各発音子毎に設定されるパラメータと複数の発音子間で共有されるパラメータの両者に対応して楽音を発生するように構成されているため、シーケンサ手段から音源装置に供給する場合に複数の発音子間で共有されるパラメータについては、各発音子毎の制御パラメータとして供給することなく複数の発音子間で共有されるパラメータとしてそのまま供給するだけでよい。したがって、シーケンサ手段における楽曲シーケンスデータから音源装置に供給する制御データへの変換処理が簡略になるとともに、シーケンサ手段から音源装置に供給する制御パラメータの量を低減することができる。これにより、シーケンサ処理の処理負担を軽減することが可能となる。また、新規なフォーマットにも容易に対応することが可能であり、音源装置のハードウェア量の増加も抑えることができる。
【００１１】
【発明の実施の形態】
本発明の楽音生成装置は、様々な機器に適用することができるものであるが、ここでは、本発明の楽音生成装置を携帯端末装置（例えば、携帯電話機）に適用した実施の形態について説明する。
図１は、本発明の楽音生成装置を搭載した携帯電話機の一構成例を示す図である。この図において、携帯電話機１は、一般にリトラクタブルとされたアンテナ２５を備えており、基地局２と無線回線により接続可能とされている。アンテナ２５は変調・復調機能を有する通信部１３に接続されている。中央処理装置（ＣＰＵ）１０は、電話機能プログラムを実行することにより携帯電話機１の各部の動作を制御するシステム制御部であり、動作時の経過時間を示したり、特定の時間間隔でタイマ割込を発生するタイマを備えている。また、ＣＰＵ１０は後述するデータ変換処理等の楽音生成関連処理を行う。ＲＡＭ１１は基地局２を介して接続したダウンロードセンター等からダウンロードされた音楽コンテンツデータの格納エリアや該音楽コンテンツデータを変換した音源ハードウェア制御データの格納エリア、および、ＣＰＵ１０のワークエリア等が設定されるＲＡＭ（Random Access Memory）である。ＲＯＭ１２はＣＰＵ１０が実行する送信や着信の各種電話機能プログラムや楽音生成関連処理プログラム等の各種プログラム、および、プリセットされた音源ハードウェア制御データ等の各種データが格納されているＲＯＭ（Read Only Memory）である。
【００１２】
また、通信部１３は、アンテナ２５で受信された信号の復調を行うと共に、送信する信号を変調してアンテナ２５に供給している。通信部１３で復調された受話信号は、音声処理部（コーダ／デコーダ）１４において復号され、マイク２１から入力された通話信号は音声処理部１４において圧縮符号化される。音声処理部１４は、音声を高能率圧縮符号化／復号化しており、例えばＣＥＬＰ（Code Excited LPC ）系やＡＤＰＣＭ（適応差分ＰＣＭ符号化）方式のコーダ／デコーダとされている。音源ハードウェア１５は、音声処理部１４からの受話信号を受話用スピーカ２２から放音したり、変換された音源ハードウェア制御データを再生することにより着信メロディや保留音などの楽音を生成して出力することができる。なお、着信メロディは着信用スピーカ２３から放音され、保留音は受話信号とミキシングされて受話用スピーカ２２から放音される。
【００１３】
さらに、インターフェース（Ｉ／Ｆ）１６は、パーソナルコンピュータ等の外部機器２０から音楽コンテンツデータ等を読み込むためのインターフェースである。入力部１７は携帯電話機１に備えられた「０」から「９」のダイヤルボタンや各種ボタンから構成される入力手段である。表示部１８は電話機能のメニューや、ダイヤルボタン等のボタンの操作に応じた表示がされる表示器である。バイブレータ１９は、着信時に着信音に代えて携帯電話機１の本体を振動させることにより、着信をユーザに知らせるバイブレータである。なお、各機能ブロックはバス２４を介してデータ等の授受を行っている。
【００１４】
図２は、このような携帯電話機に適用された本発明の楽音生成装置の機能ブロック図である。
この図に示すように、本発明の楽音生成装置においては、ＣＰＵ１０中にデータ読出書込制御手段１０ａと音源ハードウェア制御データ変換手段１０ｂ（いずれも、ソフトウェアにより実現されている）が設けられており、音源ハードウェア１５中にシーケンサ３２と音源部３３が設けられている。すなわち、本発明の楽音生成装置においては、ＣＰＵ１０におけるソフトウェア処理による音源ハードウェア制御データ変換手段１０ｂにより、シーケンサ機能の一部であるハードウェア固有制御データ変換が実現されている。そして、音源ハードウェア１５中のシーケンサ３２はシーケンサ機能の内の時間管理を担当している。
また、本発明の音源ハードウェア１５中に設けられた音源部３３は、各発音子に対する制御パラメータを記憶する音源制御レジスタ３４中に、各発音子毎にそれに対する制御パラメータを記憶するボイスパラメータ領域３４ａと、各チャンネル（パート）対応にそのパートの楽音を制御するための制御パラメータを記憶するチャンネルパラメータ領域３４ｂの２つの領域が設けられている。そして、本発明における各発音子は、前記ボイスパラメータ領域３４ａに設定された制御パラメータと前記チャンネルパラメータ領域３４ｂに設定された制御パラメータの両者に応じてそのボイスを生成する。
【００１５】
以下、図２に示した楽音生成装置の構成および動作について詳細に説明する。なお、この図においては、前記受話用スピーカ２２，着信用スピーカ２３およびそれに関連する構成を省略して示している。また、図中のＣＰＵ１０と音源ハードウェア１５あるいはＲＡＭ１１とはバス２４を介してデータの授受を行っている。
図２において、ＲＡＭ１１には、ＳＭＦデータやＳＭＡＦデータなどの楽曲シーケンスデータを格納する楽曲ファイル記憶領域１１ａ、ＣＰＵ１０の音源ハードウェア制御データ変換手段１０ｂにより前記楽曲シーケンスデータから変換された音源ハードウェア制御データを記憶する音源ハードウェア制御データ記憶領域１１ｂが設けられている。また、楽曲を再生するときには、チャンネル（ＳＭＦの場合にはＭＩＤＩチャンネル、ＳＭＡＦの場合にはパート）と音色との対応関係を記憶する音色テーブル１１ｃおよび音源部３３内の各発音子の使用状況を管理するボイスアサインテーブル１１ｄが記憶されることとなる。
【００１６】
ＣＰＵ１０は、処理に余裕があったり空き時間等があるとき、あるいは音楽コンテンツデータの再生指示があった場合に、ＲＡＭ１１の楽曲ファイル記憶領域１１ａから音楽コンテンツデータを読み出して音源ハードウェア制御データに変換する変換処理を実行し、変換後の音源ハードウェア制御データをＲＡＭ１１の音源ハードウェア制御データ記憶領域１１ｂに格納している。音楽コンテンツデータを音源ハードウェア制御データに変換する際には、データ読出書込制御手段１０ａがＲＡＭ１１の楽曲ファイル記憶領域１１ａから変換すべき音楽コンテンツデータを先頭から順次読み出して、音源ハードウェア制御データ変換手段１０ｂに供給する。音源ハードウェア制御データ変換手段１０ｂは、供給された音楽コンテンツデータを解釈して逐次音源ハードウェア制御データに変換する。変換された音源ハードウェア制御データは、データ読出書込制御手段１０ａがＲＡＭ１１の音源ハードウェア制御データ記憶領域１１ｂに順次書き込む。これにより、ＣＰＵ１０は音楽コンテンツデータを音源ハードウェア制御データに変換することができる。なお、ＣＰＵ１０によるデータ変換処理を行いながら楽音の再生を行う場合は、データ読出書込制御手段１０ａは音源ハードウェア１５のＦＩＦＯ（First-In First-Out）バッファ３１に変換された音源ハードウェア制御データｆを書き込むようにする。
【００１７】
図３を参照して、前記音源ハードウェア制御データ変換部１０ｂによるデータ変換処理について説明する。前記ＳＭＦデータあるいはＳＭＡＦデータは、イベントとイベントの間の時間間隔を示すデュレーションデータとイベントデータの組がシーケンス順に配置された形式となっている。すなわち、図３に示すように、前のイベントとイベント１との間の時間間隔を示すデュレーション１（イベント１は先頭イベントであるので、デュレーション１は値０とされている。）とイベント１、イベント１とイベント２の間の時間間隔を示すデュレーション２とイベント２、イベント２とイベント３の時間間隔を示すデュレーション３とイベント３、…というように、各イベント間の時間間隔を示すデュレーション情報とイベント情報の組が発生順に配置されている。
前記音源ハードウェア制御データ変換部１０ｂでは、前記デュレーション情報（デュレーション１、デュレーション２、…）に基づいて各デュレーション情報に対応する時間管理情報（Timer）を生成する。また、前記イベント情報（イベント１、イベント２、…）から、各イベントに対応する音源制御レジスタライトデータを生成する。この音源制御レジスタライトデータは、そのイベント情報に対応する制御データを記憶すべき音源制御レジスタのアドレスを示すインデックス情報（Index）とその制御データ（Data）とからなっている。そして、これらのデータを結合して１つのパケットデータを作成する。すなわち、デュレーション情報とイベント情報の組から１つのパケットデータである音源ハードウェア制御データを作成する。
【００１８】
前述のように、音源部３３内の音源制御レジスタ３４は、各発音子毎に設定される発音制御パラメータを記憶するボイスパラメータ領域３４ａとチャンネル（パート）毎に設定されるパラメータを記憶するチャンネルパラメータ領域３４ｂとに分離されている。前記インデックス情報は、制御データを書き込むべき前記音源制御レジスタ３４のアドレスを示すものであり、このインデックス情報により、各発音子に対する制御パラメータはボイスパラメータ領域３４ａ内のその発音子の制御パラメータ記憶領域に書き込まれ、チャンネルに対する発音制御パラメータはチャンネルパラメータ領域３４ｂのそのチャンネルに対応する記憶領域に書き込まれることとなる。後述するように、１つのチャンネルの楽音を複数の発音子で発音させているときには、チャンネルパラメータ領域３４ｂに制御パラメータを書き込むことにより、そのチャンネルに属する全ての発音子に対してその制御パラメータを供給することができる。
【００１９】
図４は、ＳＭＦデータやＳＭＡＦデータなどの楽曲シーケンスデータに含まれている各種イベント情報の例を示す図である。前記イベント情報としては、楽音の発生／停止を指示するキーオン／キーオフイベント、各チャンネル（パート）の音色を変更するプログラム変更イベント、各チャンネルの楽音を制御するチャンネルボリューム変更イベント、パンポット変更イベント、ビブラート変更イベント、ピッチベンド変更イベントなどの各種コントロール変更イベントがある。図４に示すように、キーオンイベントは、イベント種類（キーオンイベント）を示すブロック、そのイベントのチャンネル番号（＃CH）を示すブロック、その音高を示すキーコード（KCD）が格納されているデータブロック、および、その強度を示すベロシティ（Velocity）が格納されているデータブロックから構成されている。また、キーオフイベントは、そのイベント種類（キーオフ）を示すブロック、チャンネル番号（＃CH）を示すブロックおよびキーコードが格納されたデータブロックからなる。
コントロール変更イベントには、チャンネルボリューム変更イベント、パンポット変更イベント、ビブラート変更イベント、ピッチベンド変更イベントなどがある。図示するように、これらのイベントは、いずれも、そのイベントの種類を示す情報、チャンネル（＃CH）を示す情報、および、その内容（変更量）を示すデータから構成されている。
また、プログラムチェンジイベントは、音色を変更するイベントであり、そのイベントの種類を示す情報、チャンネルを示す情報およびその音色を示す音色番号からなるデータから構成されている。このプログラムチェンジイベントにより、音色テーブルが書き換えられることとなる。
【００２０】
前記図１２に示した従来技術においては、前記ハードウェア固有制御データ変換手段２１０ａ（図１２）において、各チャンネルの楽音を制御するコントロール変更イベントをハードウェア固有制御データに変換するときに、そのイベントにより指定されたチャンネルの楽音を発生している１又は複数の発音子を特定し、該発音子それぞれに対してハードウェア固有制御データを作成するようにしていた。これに対し本発明においては、音源制御レジスタ３４にボイスパラメータ領域３４ａとチャンネルパラメータ領域３４ｂとが別個に設けられているため、各チャンネルの楽音を制御するコントロール変更イベント（チャンネルボリューム変更イベント、パンポット変更イベント、ビブラート変更イベント、ピッチベンド変更イベントなど）については、そのイベントに対応する制御パラメータを作成し、それを前記チャンネルパラメータ領域３４ｂに送出するようにすればよい。したがって、音源ハードウェア制御データ変換処理が簡略になるとともに、音源ハードウェア１５に対して送出する制御データ量も少なくすることができる。
【００２１】
このようにして変換された音源ハードウェア制御データ（パケットデータとなっている）は、楽音再生時に、データ読出書込制御手段１０ａにより音源ハードウェア１５に供給される。
図２に示すように、音源ハードウェア１５は、ＣＰＵ１０から供給される音源ハードウェア制御データを格納するＦＩＦＯバッファ３１を備え、シーケンサ３２はこのＦＩＦＯバッファ３１から順次音源ハードウェア制御データを読み出している。ＦＩＦＯバッファ３１は音源ハードウェア制御データを所定量格納できる先入れ先出し方式の記憶手段であり、先に書き込まれた音源ハードウェア制御データから順次読み出されるようにされている。また、ＦＩＦＯバッファ３１から音源ハードウェア制御データが読み出されて所定量の空きエリアがＦＩＦＯバッファ３１に発生した際には、ＦＩＦＯバッファ３１はＦＩＦＯデータリクエスト信号ｅをＣＰＵ１０のデータ読出書込制御手段１０ａに送り、続く音源ハードウェア制御データｆをＦＩＦＯバッファ３１に転送するように要求している。これにより、小さい容量のＦＩＦＯバッファ３１を用いても大きなデータ量とされる音源ハードウェア制御データの楽曲を再生することができる。
【００２２】
音源ハードウェア１５におけるシーケンサ３２は、データデコード回路３２ｂを備え、データデコード回路３２ｂはＦＩＦＯバッファ３１から読み出した音源ハードウェア制御データパケットを、時間管理情報と音源制御レジスタライトデータとに分離している。音源制御レジスタライトデータｃはインデックス情報（Index）と制御データ（Data）で構成されており、楽音生成用のパラメータである制御データ（Data）は、レジスタライトコントローラ３２ｃの制御の基で、音源部３３の音源制御レジスタ３４のインデックス情報（Index）により指定されるアドレスに書き込まれる。レジスタライトコントローラ３２ｃは、レジスタライト許可信号ｄが出力されたタイミングで制御データ（Data）を音源制御レジスタ３４に書き込むが、レジスタライト許可信号ｄは、時間管理情報のデュレーションの値やゲートタイムの値とカウンタ（タイマー）３２ａのカウント値が一致したタイミングで出力される。
【００２３】
シーケンサ３２におけるカウンタ３２ａは基準時間（例えば、１ｍｓ）毎に出力されるクロックを計数しており、この計数はＣＰＵ１０から出力されるシーケンサスタート信号ｇが印加された際に開始される。これにより、シーケンサ３２はシーケンサ処理をスタートし、カウンタ３２ａが計数を開始すると、カウンタ３２ａはデータデコードスタート信号ａをデータデコード回路３２ｂに印加する。これを受けて、データデコード回路３２ｂはＦＩＦＯバッファ３１から音源ハードウェア制御データパケットを読み出して、時間管理情報（Timer）を分離する。分離された時間管理情報ｂはカウンタ３２ａへ送られる。そして、カウンタ３２ａにおいてカウント値が時間管理情報ｂ以上となった際に、カウンタ３２ａはレジスタライト許可信号ｄをレジスタライトコントローラ３２ｃに印加して、データデコード回路３２ｂで分離された制御データ（Data）を音源制御レジスタ３４のインデックス情報（Index）により指定されるアドレスに書き込む。これにより、音源部３３においてその制御データ（Data）に基づく楽音が生成されて出力されるようになる。ここで、前記インデックス情報（Index）が前記チャンネルパラメータ領域３４ｂ内のアドレスであるときは、その制御データ（Data）は、そのチャンネルに属する全ての発音子に供給されることとなる。
次いで、データデコード回路３２ｂはＦＩＦＯバッファ３１から次の音源ハードウェア制御データパケットを読み出す。
【００２４】
そして、データデコード回路３２ｂはＦＩＦＯバッファ３１から読み出した次の音源ハードウェア制御データパケットから次の時間管理情報を分離して、上述した処理と同様の処理を繰り返し行う。すなわち、カウンタ３２ａにおいてカウント値が次の時間管理情報ｂ以上となった際に、カウンタ３２ａはレジスタライト許可信号ｄをレジスタライトコントローラ３２ｃに印加して、データデコード回路３２ｂで分離された次の音源制御レジスタライトデータのうちの制御データ（Data）を音源制御レジスタ３４のインデックス情報（Index）により指定されるアドレスに書き込む。これにより、音源部３３において次の音源制御レジスタライトデータに基づく楽音が生成されて出力される。次いでデータデコード回路３２ｂは、ＦＩＦＯバッファ３１から次の次の音源ハードウェア制御データを読み出す。このようにＦＩＦＯバッファ３１から順次音源ハードウェア制御データを読み出していくことにより、音源部３３において楽音が再生されていくようになる。
【００２５】
図２に示すように、本発明のこの実施の形態における音源部３３中には、前述した音源制御レジスタ３４、ＦＭ音源部３５、波形メモリ音源部（ＷＴ音源部）３６および音色メモリ３７などが設けられている。なお、ここでは、ＦＭ音源部３５とＷＴ音源部３６をともに有するものとしたが、いずれか一方のみを有するものとしてもよく、同時発音数（ポリフォニック数）も下に例示する数に限られることはない。
図５は、前記音源部３３中に設けられているＦＭ音源部３５およびＷＴ音源部３６の要部構成を示す図である。この図に示した例では、ＦＭ音源部３５は、１６音を同時に発生することができるポリフォニックＦＭ音源であり、図示するように同時発音数に対応する数の発音子を有している。また、ＷＴ音源部３６は８音を同時に発生することができるＰＣＭ方式あるいはＡＤＰＣＭ方式の波形テーブル音源であり、８個の発音子を有している。図示するように、ＦＭ音源部３５およびＷＴ音源部３６のいずれにおいても、各発音子において生成された楽音出力は、ミュート、ボイスボリューム、チャンネルボリュームの各パラメータに対応する係数を乗算する増幅器によりそれぞれ対応する係数を乗算され、右チャンネル、左チャンネルの各チャンネルに分離された後、パンポットパラメータに対応する係数をそれぞれ乗算された後、合成されて出力される。各音源部３５、３６からの左右チャンネルの出力はさらに合成され、図示しないＤ／Ａ変換部でアナログ信号に変換され、図示しないスピーカから出力されることとなる。
【００２６】
図６は、前記音源制御レジスタ３４の一構成例を示す図である。この図に示した例では、音源制御レジスタ３４のアドレス＃０〜＃１４３の１４４ワード（１ワードはＤ０〜Ｄ６の７ビット）は前記ボイスパラメータ領域３４ａとされており、アドレス＃１４４〜＃２２３の８０ワードは前記チャンネルパラメータ領域３４ｂとされている。前記ボイスパラメータ領域３４ａは、ＦＭのボイス＃０〜＃１５の１６音、ＷＴのボイス＃０〜＃７の８音の各ボイスそれぞれに対して６ワードずつのデータとされており、各ボイスにおける第１番目と第２番目のワードは、そのボイス（発音子）に割り当てられた音色を示すパラメータ、すなわち、その音色の音色データの音色メモリ３７におけるアドレスが記憶される。また、第３番目のワードにはそのボイスに設定される音量を示すボイスボリューム（VoVol）パラメータ（５ビット）が記憶される。第４番目のワードには、そのボイスの１オクターブ分の周波数情報を示すＦナンバの上位３ビット（FNUM(H)）とその発音音程のオクターブを指定するブロックパラメータ（BLOCK、３ビット）が記憶され、第５番目のワードには、Ｆナンバの下位７ビット（FNUM(L)）が記憶される。さらに、第６番目のワードには、値が”１”でキーオン、”０”でキーオフを示す１ビットのキーオンパラメータ（KeyOn）、値が”１”でミュート、”０”でスルーを示すミュートボリューム設定用のミュートパラメータ（Mute）、値が”１”でエンベロープジェネレータをリセット、”０”で通常状態を示すリセットパラメータ（RST）、および、そのボイスに関連付けるチャンネルパラメータ番号を指定する４ビットのチャンネルパラメータ（#CH）が記憶される。以上の各ボイスパラメータは、ＦＭ、ＷＴいずれのボイスについても同様である。
【００２７】
また、前記チャンネルパラメータ領域３４ｂのアドレス＃１４４〜＃１５９には、チャンネル毎に設定する音量を指定するチャンネルボリュームパラメータ（ChVol、５ビット）が、各チャンネルにつき１ワードずつ使用して１６チャンネル分記憶される。
さらに、前記チャンネルパラメータ領域３４ｂのアドレス＃１６０〜＃１７５には、チャンネル毎に設定する左右バランスを指定するパンポットパラメータ（Panpot、５ビット）が、各チャンネルにつき１ワードずつ使用して１６チャンネル分記憶される。
さらにまた、前記チャンネルパラメータ領域３４ｂのアドレス＃１７６〜＃１９１には、チャンネル毎に設定するビブラート変調の変更を示すビブラート変調パラメータ（XVB、３ビット）が、各チャンネルにつき１ワードずつ使用して１６チャンネル分記憶される。
さらにまた、前記チャンネルパラメータ領域３４ｂのアドレス＃１９２〜＃２２３には、チャンネル毎に発音周波数を何倍するかを設定するピッチベンドパラメータ（BEND）が各チャンネルにつき２ワードずつ使用して１６チャンネル分記憶される。ここで、第１番目のワードには、当該倍数の整数部（INT、２ビット）と、小数部の上位３ビット（FRAC(H)）が記憶され、第２番目のワードに小数部の下位６ビット（FRAC(L)）が記憶される。
【００２８】
次に、音源部３３において前記音源制御レジスタ３４（ボイスパラメータ領域３４ａとチャンネルパラメータ３４ｂ）および音色メモリ３７を用いて前記ＦＭ音源３５あるいは前記ＷＴ音源３６の発音子により楽音が発生される様子について図７を参照して説明する。
この図において、３７は音色メモリであり、ＲＯＭ（プリセット音色用）あるいはＲＡＭあるいはその両方により構成されている。この音色メモリ３７には、各音色の音色データが記憶されている。音色データは、各音色毎に特有のものであり、波形パラメータとその他のデータとからなっている。波形パラメータは、楽音波形を指示するものであり、ＦＭ音源の場合にはＦＭ演算のアルゴリズムを指示するパラメータ、ＷＴ音源の場合には音色波形データのスタートアドレス、ループスタートアドレス、エンドアドレスなどである。また、その他のデータとしては、アタックレート、ディケイレート、サスティンレベル、リリースレートなどを指定するエンベロープパラメータ、ビブラートやトレモロの深さや速さを指定する変調パラメータ、リバーブ、コーラス、バリエーションなどのエフェクトを指定するエフェクトパラメータなどが含まれている。
【００２９】
ここでは、チャンネル＃１に所定のＦＭ音色が割り当てられており、ＦＭ音源の２つの発音子ＦＭ０とＦＭ１５とにそのチャンネルの楽音の発生が割り当てられているものとする。
図７に示すように、発音子ＦＭ０およびＦＭ１５には、前記音源制御レジスタ３４中のボイスパラメータ領域３４ａのそれぞれに対応する記憶領域から、キーオン（KeyOn）、ブロック（Block）及びＦナンバ（Fnum）、リセット（RST）の各パラメータが供給され、また、音色メモリ３７の前記ボイスアドレス（Voice adr）により指定されるアドレスから読み出される音色データが供給されている。そして、前記チャンネル番号（#ch）パラメータにより参照される前記チャンネルパラメータ領域３４ｂのそのチャンネルのピッチベンドパラメータ（BEND）とビブラートパラメータ（XVB）が供給されている。KeyOnが１のときには、これにより、前記音色メモリ３７から読み出された音色データに対応した音色で、前記BlockとFNumにより規定された音高を有する楽音がそれぞれの発音子において生成される。また、前記ピッチベンドパラメータ（BEND）と前記ビブラートパラメータ（XVB）については両発音子に対し同一のパラメータが供給され、そのパラメータに対応した楽音が出力される。そして、各発音子（ＦＭ０およびＦＭ１５）から出力された楽音は、それぞれ、増幅器において前記ボイスパラメータ領域３４ａのそれぞれの記憶領域におけるMute,VoVol領域に記憶されているMute,VoVolパラメータに応じた係数を乗算され、さらに、前記チャンネルパラメータ領域３４ｂの両発音子共通のチャンネルボリューム（ChVol）パラメータを乗算され、ステレオの左右チャンネルに分離された後、前記チャンネルパラメータ領域のパンパラメータ（Pan）に対応した係数がそれぞれのチャンネルに乗算される。
【００３０】
このように、本発明においては、音源レジスタ３４にボイスパラメータ領域３４ａとチャンネルパラメータ領域３４ｂを分離して設け、ボイスパラメータ領域３４ａ中にそのボイスの属するチャンネル番号を記憶し、該チャンネル番号でチャンネルパラメータ領域３４ｂを参照させることにより、あるチャンネルに属するボイスに対して共通のパラメータはチャンネルパラメータ領域３４ｂから各ボイス（発音子）に供給するようにしている。したがって、前記ＣＰＵ１０が音源ハードウェア制御データを作成するときに、チャンネルに共通のパラメータについては、各ボイス毎に音源ハードウェア制御データを作成することが不要となり、また、音源制御レジスタ３４に書き込むデータ量を少なくすることができる。
【００３１】
次に、前記音源ハードウェア制御データ変換手段１０ｂがＳＭＦデータやＳＭＡＦデータなどの楽曲シーケンスデータから音源ハードウェア制御データを作成する様子について説明する。
まず、ＤＶＡ方式により楽音を発生させるために用いられる各チャンネルと音色との対応関係を記憶する音色テーブルと音源部内の発音子（ボイス）の使用状況を管理するボイスアサインテーブルについて図８を参照して説明する。
図８の（ａ）は、音色テーブル１１ｃの構成を示す図である。この音色テーブルは、楽音生成時に前記ＲＡＭ１１内に設けられ、各チャンネル対応に、その音色番号およびその音色データの前記音色メモリ３７における記憶アドレス（Voice Adr）を記憶する。なお、ここでは、音色番号に対応してその音色がＦＭ音色であるかＷＴ音色であるかが予め定められているものとする。この音色テーブルは、前記プログラム変更イベントにより書き換えられる。
図８の（ｂ）は、前記ボイスアサインテーブル１１ｄの構成を示す図である。このボイスアサインテーブルも、楽音生成時に前記ＲＡＭ１１内に設けられる。図示するように、ボイスアサインテーブル１１ｄは、各ボイス（発音子）毎に、そのボイスが現在発音中（キーオン）であるか否かを示す情報、発音中であるときのそのキーコード（音高）、そのボイスが割り当てられているチャンネル番号および何らかのトランケートのためのパラメータ（例えば、キーオン（キーオフ）からの経過時間など）が記憶されている。キーオンイベントが発生したときに、このボイスアサインテーブル１１ｄを参照して空いているボイスが割り当てられる。
【００３２】
図９と図１０を参照して、前記ＣＰＵ１０における音源ハードウェア制御データ変換手段１０ｂの処理の流れについて説明する。なお、ここでは、楽曲ファイルに含まれているデュレーション情報とイベント情報の１つの組から１つの音源ハードウェア制御データパケットを生成する処理を示す。この処理を楽曲データファイル中の全てのデュレーション情報とイベント情報の組について繰り返すことにより、その楽曲データファイルに対応した音源ハードウェア制御データを得ることができる。
まず、Ｓ１で前記楽曲ファイルからデュレーション情報を読み出し、これに基づいて、音源ハードウェア制御データの時間管理情報を生成する。
次に、イベント情報を取得する（Ｓ２）。
そして、このイベント情報がキーオンイベントであるか否かを判定し（Ｓ３）、キーオンイベントであるときは、そのキーオンイベントに含まれているチャンネル番号（ch#）に基づいて前記音色テーブル１１ｃを参照し、そのチャンネルに割り当てられている音色がＦＭ音源３５を使用するＦＭ音色か、ＷＴ音源３６により生成されるＷＴ音色かを判定するとともに、そのボイスアドレス（Voice adr）を取得する（Ｓ４）。
そして、前記ボイスアサインテーブル１１ｄを参照し、判定された音色のボイスのうち空いている（すなわち、キーオン領域に０が書き込まれている）ボイスを検出して、発音を割り当てるボイス（発音子）番号を決定する（Ｓ５およびＳ６あるいはＳ７）。このとき、決定されたボイス番号に基づき、インデックス情報（Index）が決定され、図示するように、前記時間管理情報にインデックス情報を付加する。
【００３３】
そして、Ｓ８で、ボイスアサインテーブル１１ｄの決定されたボイスに対する領域を更新する。すなわち、前記ボイスアサインテーブル１１ｄのそのボイスに対応するエントリのキーオンに１を、キーコード（KCD）にそのキーオンイベントのキーコードを、チャンネル番号（ch）にそのチャンネル番号を書き込む。
これにより、前記時間管理情報（Timer）およびインデックス（Index）に前記ステップＳ４で取得したそのボイスのボイスアドレス（Voice adr）を付加することができる（Ｓ９）。
次に、そのキーオンイベントに含まれているベロシティ情報に基づいてボイスボリューム（VoVol）を決定し（Ｓ１０）、キーコード情報（KCD）に基づいてブロック情報（Block）とＦナンバ（FNum）を決定し（Ｓ１１）、これらの情報をパケットに付加する。そして、KeyOn＝１とチャンネル番号（ch）を付加して（Ｓ１２）、キーオンパケットを完成させ、それを前記ＲＡＭ１１中の前記音源ハードウェア制御データ記憶領域１１ｂに保存する。
【００３４】
取得したイベント情報がキーオフイベントの場合には（Ｓ１４の判定結果がＹＥＳ）、ステップＳ１５で、前記ボイスアサインテーブル１１ｄを参照し、発音を解除するボイス番号を決定する。すなわち、そのキーオフイベントに含まれているチャンネルの発音を行っているボイスを検出する。これにより、前記時間管理情報にそのボイスのインデックスを付加することができる。そして、Ｓ１６でボイスアサインテーブル１１ｄを更新する（そのボイスのKeyOn＝０とする）。次に、前記パケットにKeyOn＝０を付加し（Ｓ１７）、完成したキーオフパケットを保存する（Ｓ１８）。
【００３５】
取得したイベント情報がチャンネルボリューム変更イベントであるとき（Ｓ１９がＹＥＳ）は、そのイベントに含まれているチャンネル番号に対応したインデックス情報を取得する（Ｓ２０）。このインデックスは、前記チャンネルパラメータ領域３４ｂにおけるチャンネルボリュームに対応する領域のそのチャンネル番号に対応したアドレスとなる（前記図７に示した例では、＃１４４〜＃１５９のうちのいずれかとなる）。これで、前記パケットにインデックス情報（Index）を付加することができる。
そして、チャンネルボリューム変更イベントに含まれているデータ値に基づいてチャンネルボリューム値（ChVol）を決定し、それを前記パケットに付加し（Ｓ２１）、完成したパケットを前述と同様に、前記ＲＡＭ１１中に保存する（Ｓ２２）。
【００３６】
パンポット変更イベント、ビブラート変更イベント、ピッチ変更イベントなどの同一チャンネルに属する全てのボイスに作用するコントロール変更イベントについても同様に、チャンネルパラメータ領域３４ｂ内のアドレスをインデックスとするパケットを生成することができる（Ｓ２３）。なお、コントロール変更イベントの場合には、前記音色テーブル１１ｃを更新するのみである。
以上のようにして、デュレーション情報とイベント情報の１つの組についてパケットを生成することができる。これを、１つの楽曲ファイルに含まれる全てのデュレーション情報とイベント情報の組について行うことにより、その楽曲に対する音源ハードウェア制御データを完成させることができる。
【００３７】
なお、上記においては、前記音源ハードウェア制御データ変換手段１０ｂにおいて、デュレーション情報とイベント情報の組に対して、時間管理情報とインデックス情報と制御データからなる１つのパケットを作成するようにしていたが、これに限られることはなく、デュレーション情報とイベント情報の複数組に対応するパケットを作成するようにしてもよい。すなわち、１つのパケットに複数の時間管理情報、インデックス情報および制御データを含ませるようにしてもよい。この場合は、パケットの先頭にそのパケットに含まれるデータ数あるいはパケット長を示すヘッダ部を付加するようにすればよい。
また、本発明の楽音生成装置は、携帯端末装置である上記した携帯電話機のみに適用されるものではなく、楽音を出力可能な携帯情報機器や、楽音を出力可能な携帯型パーソナルコンピュータ等に適用することができる。
【００３８】
【発明の効果】
以上説明したように、本発明によれば、前記音源部３３において発音子に対する発音制御パラメータを記憶する音源制御レジスタ３４に、各発音子毎の制御パラメータを記憶するボイスパラメータ領域３４ａと各チャンネルに対応する制御パラメータを記憶するチャンネルパラメータ領域３４ｂとが分離して設けられており、各発音子は、前記両方の領域３４ａおよび３４ｂに記憶された制御パラメータにしたがって楽音を生成するように構成されているので、同一チャンネルに属する全てのボイスに作用するコントロール変更イベントについては、各発音子毎の制御パラメータ（音源ハードウェア制御データ）に変換することなく複数のチャンネルに共通の制御パラメータとして音源部に供給することが可能となる。したがって、処理負担を軽減することができる。
また、ソフトウェアにより変換処理を行っているため、新しいフォーマットの楽曲シーケンスデータに対しても容易に対応することができる。
さらに、音源ハードウェア１５内に設けられるシーケンサ３２は、カウンタによる時間管理を行うだけでよく、必要とされるハードウェア量も少なくて済む。
【図面の簡単な説明】
【図１】  本発明の楽音生成装置を携帯電話機に適用した場合の実施の形態の構成例を示す図である。
【図２】  本発明の実施の形態にかかる楽音生成装置の構成例を示す図である。
【図３】  音源ハードウェア制御データについて説明するための図である。
【図４】  イベント情報について説明するための図である。
【図５】  ＦＭ音源部とＷＴ音源部の内部構成を示す図である。
【図６】  音源制御レジスタの構成例を示す図である。
【図７】  音源部３３において楽音が生成される様子を説明するための図である。
【図８】  音色テーブルとボイスアサインテーブルについて説明するための図である。
【図９】  音源ハードウェア制御データ変換処理の流れを説明するための図である。
【図１０】  図９に後続する音源ハードウェア制御データ変換処理の流れを説明するための図である。
【図１１】  従来のハードウェアで構成した楽音生成装置の構成を示す図である。
【図１２】  シーケンサ機能をソフトウェアで構成した従来の楽音生成装置の構成を示す図である。
【符号の説明】
１  携帯電話機、１０  ＣＰＵ、１０ａ  データ読出書込制御手段、１０ｂ  音源ハードウェア制御データ変換手段、１１  ＲＡＭ、１１ａ  楽曲ファイル記憶領域、１１ｂ  音源ハードウェア制御データ記憶領域、１１ｃ  音色テーブル、１１ｄ  ボイスアサインテーブル、１２  ＲＯＭ、１３  通信部、１４  音声処理部、１５  音源ハードウェア、１６  インターフェース、１７  入力部、１８表示部、１９  バイブレータ、２０  外部機器、２１  マイク、２２  受話用スピーカ、２３  着信用スピーカ、２４  バス、２５  アンテナ、３１  ＦＩＦＯバッファ、３２  シーケンサ、３２ａ  カウンタ、３２ｂ  データデコード回路、３２ｃ  レジスタライトコントローラ、３３  音源部、３４  音源制御レジスタ、３４ａ  ボイスパラメータ領域、３４ｂ  チャンネルパラメータ領域、３５  ＦＭ音源、３６  ＷＴ音源、３７音色メモリ
【図１】
0003722015.tif 000002
【図２】
0003722015.tif 000003
【図３】
0003722015.tif 000004
【図４】
0003722015.tif 000005
【図５】
0003722015.tif 000006
【図６】
0003722015.tif 000007
【図７】
0003722015.tif 000008
【図８】
0003722015.tif 000009
【図９】
0003722015.tif 000010
【図１０】
0003722015.tif 000011
【図１１】
0003722015.tif 000012
【図１２】
0003722015.tif 000013