(57)【要約】【課題】本発明は、発音情報のＭＩＤＩコマンドを受けて音声信号を発生する音源装置を提供する。【解決手段】外部から供給される発音制御用データの発音、又は消音命令を受けて、発音を担う複数のボイスのうち該当するボイスに前記各命令の割り当てを行うボイスアサイナ回路１０と、前記ボイスアサイナ回路により割り当てられた前記該当するボイスの発音データの出力、又は前記出力中止を行う発音回路２０とよりなる音源装置において、前記各ボイスが消音状態か発音中かを表示するレジスタを前記各ボイスに対応させて前記発音回路に夫々設け、前記ボイスアサイナ回路は、前記消音状態表示の前記レジスタに対応するボイスに新しく前記発音命令の割り当てを行い、装置の回路規模を縮小した。【選択図】      図４
2004151294.tif 000002
【特許請求の範囲】
【請求項１】
外部から供給される発音制御用データの発音、または消音命令を受けて、発音を担う複数のボイスのうち該当するボイスに前記各命令の割り当てを行うボイスアサイナ回路と、前記ボイスアサイナ回路により割り当てられた前記該当するボイスの発音データの出力、または前記出力の中止を行う発音回路とよりなる音源装置において、
前記各ボイスが消音状態か発音中かを表示するレジスタを前記各ボイスに対応させて前記発音回路に夫々設け、
前記ボイスアサイナ回路は、前記消音状態を表示している前記レジスタに対応するボイスに新しく前記発音命令の割り当てを行うようにしたことを特徴とする音源装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、発音情報のＭＩＤＩ（Ｍｕｓｉｃａｌ    Ｉｎｓｔｒｕｍｅｎｔ    Ｄｉｇｉｔａｌ  Ｉｎｔｅｒｆａｃｅ）の発音命令を受けて発音データを出力する音源装置に関するものである。
【０００２】
【従来の技術】
通信カラオケ、電子楽器等は発音制御用データ（以下ＭＩＤＩコマンド）によって発音動作を行う。
ＭＩＤＩコマンドは、発音を行うための制御命令である。
例えば発音させるための制御命令はノートオン、消音させるための制御命令はノートオフである。
【０００３】
音源装置は、外部からＭＩＤＩコマンドのノートオンを受け取ると、音源装置内の発音可能なボイス（特定の単音の処理回路）を調べて発音を行う。
またＭＩＤＩコマンドのノートオフを受け取ると、発音中のボイスからノートオフに対応するボイスを検索して消音を行う。
発音命令ならびに消音命令に対するボイスの割り当てや検索は、音源装置内のアサイナ回路により行われる。
【０００４】
通常、アサイナ回路は、ＣＰＵ、ＲＡＭ、及びＲＯＭから構成されている。アサイナ回路は、ＭＩＤＩコマンドのノートオンが来た時、音源装置内の空きボイスの検索を行い、発音可能なボイスを選び、後段の発音回路にその選んだボイスの情報を送る（例えば特許文献１参照）。
【０００５】
【特許文献１】
特開平８−１７９７６６号公報
【０００６】
図５に従来の音源装置の一例のブロック構成を示す。その音源装置はアサイナ回路４０と発音回路６０とで構成されている。
アサイナ回路４０は、ＣＰＵ５０、ＭＩＤＩインターフェース７１、ＲＯＭ７２、及びＲＡＭ７３によって構成される。
ＲＡＭ７３はデータの一時的な保持を行い、ＲＯＭ７２は演算ブロック５２で演算する演算プログラムならびにその演算係数の記憶を行う。
そしてＣＰＵ５０は、空きボイス（消音ボイス）の検出、確認を行う消音検出ブロック５１、検出ボイスの消音までの時間の計算や消音まで行かなくとも使用して問題のないボイスはどれかの計算等を行う演算ブロック５２、及びボイスの割り当てを行うボイス割り当てブロック５３で構成される。
【０００７】
発音回路６０は、インターフェースブロック６１、波形生成のタイミングを調整するタイミングブロック６３、発音の波形を生成する波形生成ブロック６４、及びボイスに関するデータを保管するボイスデータ管理ブロック６２で構成される。
ここで、発音回路６０のうちインターフェースブロック６１を除いたブロック６２〜６３は特定の単音を発生（発音）するボイスを構成している。
ＭＩＤＩコマンドはＭＩＤＩインターフェースブロック７１を通して入力される。入力されたＭＩＤＩコマンドは、一時的にＲＡＭ７３で保持される。ＣＰＵ５０はＲＯＭ７２のデータを元に入力したＭＩＤＩコマンドの処理を行う。
【０００８】
ＣＰＵ５０は発音命令時に、消音検出ブロック５１で空きボイスの状態確認を行い、割り当てブロック５３でボイスの割り当てを行って、発音回路６０にその割り当ての発音命令を送る。
【０００９】
発音回路６０は、前記発音命令をインターフェースブロック６１で取り込み、割り当てられたボイスに関する発音情報を元に、各単音の波形データを記憶しているＲＯＭ７４より、割り当てられたボイスに関係するＲＯＭデータの読み出しを行い、波形生成ブロック６４で発音データの生成を行い、その発音データを出力しているものである。
【００１０】
図１は、発音したボイスが消音命令により発音収束時間を経て消音するまでのボイスの発音レベルの変化を示す。
消音は、発音中のボイスが、消音命令を受けてからある一定の発音収束時間をかけて行われる。このため消音命令直後のボイスは、発音を終了していない。
従って、新たな発音命令を消音収束中のボイスに割り振ると、発音データに不具合が生じる。このためアサイナ回路４０は、発音命令を行う時、各ボイスの状態（消音か発音中か）を消音検出ブロック５１で確認する。その結果を元にボイス割り当てブロック５３でボイスへ発音命令の割り当てを行う。
【００１１】
従来の空きボイスの確認方法は、消音命令後の収束時間を元にＣＰＵ５０を使って消音までの時間や、消音まで行かなくとも強制的に消音しても実際に使用して問題が生じない時間を演算ブロック５２で計算して、確認対象のボイスが現在消音か発音中かを消音検出ブロック５１で確認していた。
この結果、アサイナ回路で４０でアサイナ機能を実現するためにＣＰＵ５０を中心としたシステムを構成してソフト処理を行っていた。
【００１２】
【発明が解決しようとする問題点】
このために音源発生装置をＬＳＩ回路で実現するためにはＣＰＵ５０をＬＳＩ回路内部に搭載する必要があった。
ところが、ＬＳＩ回路内部にＣＰＵ５０を搭載するとゲート規模が増加してしまい、ＬＳＩ回路内部の消費電力が増加してしまうのが課題であった。
【００１３】
そこで上記の課題に鑑みてなされたものが本発明であり、ＣＰＵを中心としたシステムでのソフト処理を省いて、ゲート規模を増加させずに内部消費電力も増加させないようにして、最大ボイス数を越える演奏情報が供給されても、ＣＰＵを使用しないで、発音データを出力、又はその出力を中止する音源装置を提供することを目的としたものである。
【００１４】
【問題点を解決するための手段】
上記課題を解決するために、
請求項１に記載された発明は、
外部から供給される発音制御用データの発音、または消音命令を受けて、発音を担う複数のボイスのうち該当するボイスに前記各命令の割り当てを行うボイスアサイナ回路１０と、前記ボイスアサイナ回路により割り当てられた前記該当するボイスの発音データの出力、または前記出力の中止を行う発音回路２０とよりなる音源装置において、
前記各ボイスが消音状態か発音中かを表示するレジスタを前記各ボイスに対応させて前記発音回路２０に夫々設け、
前記ボイスアサイナ回路１０は、前記消音状態を表示している前記レジスタ２２に対応するボイスに新しく前記発音命令の割り当てを行うようにしたことを特徴とする音源装置を提供するものである。
【００１５】
【発明の実施の形態】
本発明の音源装置の実施の形態につき、好ましい実施例により、以下に図と共に説明する。
本発明の音源装置の一実施例の概略ブロック構成を図２に示す。
前段のボイスアサイナ回路１０は、外部から供給される発音制御用データであるＭＩＤＩコマンドの発音命令（ノートオン）ならびに消音命令（ノートオフ）を受け取り、音源装置内の複数のボイスのうちの該当するボイス（発音回路２０の中の特定の単音の処理回路（後述する図４のブロック２３〜２５））に対して割り当てを行う。
【００１６】
後段の発音回路２０は、ボイスアサイナ回路１０からボイスの発音命令ならびに消音命令を受け取り、該当するボイスの発音データの生成と発音データ生成の中止を行う。
さらに発音回路２０内に設けられた発音収束完了レジスタ（レジスタ）２２は、ボイスからデータを得てボイスが消音か発音中かを示す表示（例えば、ボイス発音中は「０」を、消音になると「１」）をするレジスタである。
【００１７】
前段のボイスアサイナ回路１０は、発音命令によるボイスの割り当てを行う時、発音収束完了レジスタ２２を確認（ボイス発音中は「０」を、消音して空きボイスになると「１」）して、空きボイスになって「１」を示している発音収束完了レジスタ２２に対応している空きボイスを選択するだけでよいので、発音中のボイス（ボイス発音中は「０」）に誤って発音命令の割り当てが行われることを防止している。
【００１８】
次に、図３に前記音源装置が発音命令（ノートオン）の入力を受けてから発音命令の割り当てを出力するまでのフローチャートを示す。
【００１９】
ノートオンがボイスアサイナ回路１０に入力されると（ステップ（ＳＴ）１）、初めに発音回路２０の発音収束完了レジスタ２２を読み込む（ステップ２）。
次に読み込んだ情報を元にその中に消音状態のボイス（空きボイスになって「１」を示している発音収束完了レジスタ２２に対応しているボイス）がないかを調べる（ステップ３）。
【００２０】
消音状態のボイスがあった場合（ステップ３のＹｅｓ）は、直ちに発音回路２０内の対応するボイスの発音収束完了レジスタ２２に発音命令を書き込み（ステップ４）、
発音データを出力する。
【００２１】
なお、読み込んだ発音収束レジスタ２２のボイスが消音状態でない場合（空きボイスになって「１」を示している発音収束完了レジスタ２２に対応したボイスがなく、発音収束完了レジスタ２２が「０」を示している場合）（ステップ３のＮｏ）は、次のボイスの発音収束完了レジスタを発音回路２０から読み込み、確認を行う（ステップ５）。
【００２２】
全てのボイスの発音収束完了レジスタ２２に消音したものがない場合は、ノートオンは無効となりその発音データは出力しない。
【００２３】
次に、本発明の音源装置の一実施例についての詳細なブロックの説明を図と共に行う。
図４は本発明の音源装置の一実施例を示したもので、前段のアサイナ回路１０は外部から供給される発音制御用データであるＭＩＤＩコマンドを受け取るインターフェースブロック１１、ボイスの割り当てを管理するボイス割り当てブロック１２、ＭＩＤＩコマンドを判別（ノートオン、ノートオフ、または他の命令かの判別）するためのＭＩＤＩコマンド判別ブロック１３、そしてボイス割り当てに関する演算処理を行う演算処理ブロック１４で構成される。
【００２４】
後段の発音回路２０は、インターフェースブロック２１、波形生成のタイミングを調整するタイミングブロック２３、発音の波形を生成する波形生成ブロック２５、ボイスに関するデータを保管するボイスデータ管理ブロック２４、そしてボイスが発音中か消音中かを表示する発音収束完了レジスタ２２で構成される。この発音回路２０のうちインターフェースブロック２１、発音収束完了レジスタ２２を除くブロック２３〜２５は単音を処理するボイスを構成している。
【００２５】
アサイナ回路１０は、ＭＩＤＩコマンドを受けた後、コマンド別に処理内容の判別をＭＩＤＩコマンド判別ブロック１３にて行う。
ＭＩＤＩコマンドが供給されて、そのコマンドにより演算が必要になる場合はその演算を演算ブロック１４で行う。
【００２６】
判別を行った後、ＲＡＭ１６に一時的に処理データを保持する。ＭＩＤＩコマンドで発音命令（ノートオン）が入力されると発音回路２０の発音収束完了レジスタ２２を確認して、その結果を元にボイス割り当てブロック１２にて、空きボイスとなって、図２で説明したように例えば消音して「１」を表示している発音収束完了レジスタ２２に対応するボイスを選択して、ボイスの割り当てを行う。
割り当てられたボイスならびにそのボイスに関する発音（消音）命令情報は発音回路２０に送られる。
【００２７】
発音回路２０は、アサイナ回路１０よりの発音命令をインターフェースブロック２１で取り込み、割り当てられたボイスに関する発音情報を元にＲＯＭ２６よりＲＯＭデータの読み出しを行い、波形生成ブロック２５で発音データの生成と発音データの出力を行う。
【００２８】
本実施例においては、ボイスが消音状態にあることを表示している発音収束完了レジスタ２２を確認するだけで、例えば消音の「１」を表示している発音収束完了レジスタ２２に対応するボイスを選択出来、ボイスの割り当てを誤動作なく確実に、容易に行うことが出来る。
【００２９】
また、本実施例においては、消音のボイスのみを選択の対象にして、消音命令後発音途中にあるボイスは選択の対象にしないので、収束途中のボイスに関する演算の必要はなく、ＣＰＵを搭載せずに、消音しているボイスを表示している発音収束完了レジスタ２２を確認するだけでボイスを選択出来るので、装置の回路構成が簡単に出来、消費電力も少なく出来る。
【００３０】
【発明の効果】
本発明の音源装置によると、ボイスアサイナ回路は、発音回路に設けた発音収束レジスタを参照することによって空きボイスの状態を確認でき、このため発音命令時の誤動作（発音が未終了のボイスを選択）が防止出来る。
【００３１】
また、本発明の音源装置によると、アサイナ機能をボイスアサイナ回路としてＣＰＵを使用せずにハードウェアの回路により構成しているため、特にＣＰＵを搭載したＬＳＩ回路構成のものと比較すると、回路規模ならびに消費電力の削減を行うことが出来る。
【図面の簡単な説明】
【図１】発音中のボイスが消音命令を受けてから消音するまでの発音レベルの変化を示した図である。
【図２】本発明の音源装置の一実施例の概略ブロック構成を示した図である。
【図３】本発明の一実施例のボイスアサイナ回路がノートオンの入力を受けてから発音命令を出力するまでのフローチャートを示したものである。
【図４】本発明の音源装置の一実施例の詳細なブロック構成を示した図である。
【図５】従来の音源装置の一例のブロック構成を示した図である。
【符号の説明】
１０  ボイスアサイナ回路
１１  インターフェースブロック
１２  ボイス割り当てブロック
１３  ＭＩＤＩコマンド判別ブロック
１４  演算ブロック
１５  インターフェースブロック
１６  ＲＡＭ
１７  ＲＯＭ
２０  発音回路
２１  インターフェースブロック
２２  発音収束完了レジスタ（レジスタ）
２３  タイミングブロック
２４  ボイスデータ管理ブロック
２５  波形生成ブロック
２６  ＲＯＭ（波形データ）
【図１】
2004151294.tif 000003
【図２】
2004151294.tif 000004
【図３】
2004151294.tif 000005
【図４】
2004151294.tif 000006
【図５】
2004151294.tif 000007