(57)【特許請求の範囲】
【請求項１】
ＭＩＤＩコマンドを受信してリングバッファにＭＩＤＩコマンドを格納させる受信部と、
前記ＭＩＤＩコマンドと音源の波形データとに基づいて楽曲演奏用の楽音信号を合成するための第１シンセサイザと、
前記受信部から前記ＭＩＤＩコマンドを受信するとともに、前記楽曲演奏用の波形データの読み出しを指示する第２シンセサイザと、
前記波形データを格納するためのキャッシュ領域と、
前記第２シンセサイザによる読み出し指示により記憶手段に記憶した前記波形データを読み出し、読み出された前記波形データを前記キャッシュ領域へと順次格納させる波形読出スレッドと、
を備え、
前記第１シンセサイザは、
前記リングバッファによって定められた所定数の遅延サンプル分前の前記ＭＩＤＩコマンドを順次読み出すとともに、前記キャッシュ領域から前記波形データを読み出して楽曲演奏用のＰＣＭデータを生成してＰＣＭデータ生成部へ返信し、
前記ＰＣＭデータ生成部は、
前記所定数の前記遅延サンプル分前のＰＣＭデータを生成する指示を前記第１シンセサイザへ送信し、前記第１シンセサイザによる前記ＰＣＭデータの外部シーケンサに対する返信を前記楽曲演奏の進行に間に合うよう制御する
ことを特徴とする音源制御装置。
【請求項２】
請求項１記載の音源制御装置と、
前記音源制御装置の前記ＰＣＭデータ生成部の制御に基づき前記第１シンセサイザにより生成された前記ＰＣＭデータを用いて生成された前記楽曲演奏用のＰＣＭデータの演奏進行で、楽曲の再生と、歌詞テロップの色変えと、を行う楽曲再生手段と、
を備えることを特徴とするカラオケ装置。
【請求項３】
請求項２記載のカラオケ装置において、
前記所定数の前記遅延サンプル分前のＰＣＭデータは、無音データとすること
を特徴とするカラオケ装置。
【請求項４】
請求項２記載のカラオケ装置において、
前記ＰＣＭデータ生成部は、
前記所定数の前記遅延サンプル分前のＰＣＭデータを出力する期間は、前記楽曲再生手段に対し再生を行わない指示を与えることを特徴とするカラオケ装置。
【請求項５】
請求項２乃至請求項４のいずれか１項記載のカラオケ装置において、
前記カラオケ装置は、更に所定数の遅延サンプルの数を設定する入力手段を備え、
前記楽曲再生手段が音の途切れを検出した場合には、音の途切れを検出した時点の前記遅延サンプルの数よりも多い数に前記遅延サンプルの数を設定することを特徴とするカラオケ装置。
【請求項６】
ＭＩＤＩコマンドと音源の波形データとに基づいて楽曲演奏用の楽音信号を合成するための第１シンセサイザと、楽曲演奏進行よりも早く前記波形データの読み出しを行うための第２シンセサイザと、を有し、音源の制御を行う音源制御装置に対し、
ＭＩＤＩコマンドを受信してリングバッファにＭＩＤＩコマンドを格納させる受信手順と、
前記受信手順での前記ＭＩＤＩコマンドの受信後、前記第２シンセサイザに対し駆動指示を送信する制御手順と、
前記駆動指示に対応し、前記受信手順で受信した前記ＭＩＤＩコマンドに応じて、第２シンセサイザにより、前記楽曲演奏用の波形データの読み出しを指示する読出指示手順と、
前記読出指示手順に基づき、記憶手段から前記波形データを読み出し、キャッシュ領域へと順次格納させる格納手順と、
前記第１シンセサイザにより、前記リングバッファによって定められた所定数の遅延サンプル分前の前記ＭＩＤＩコマンドを順次読み出す読出手順と、
前記第１シンセサイザにより、前記格納手順で前記キャッシュ領域に格納された前記波形データを読み出して、楽曲演奏用のＰＣＭデータを生成するデータ生成手順と、
を実行させるための、音源制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＭＩＤＩ（Ｍｕｓｉｃａｌ  Ｉｎｓｔｒｕｍｅｎｔ  Ｄｉｇｉｔａｌ  Ｉｎｔｅｒｆａｃｅ）を用いた音源制御装置、その音源制御装置を用いたカラオケ装置、及びその音源制御装置に用いる音源制御プログラムに関する。
【背景技術】
【０００２】
従来から、カラオケ装置などの音源制御装置には、例えば、外部音源サーバが提供する音源部（以下、「外部音源部」と称する。）の機能が利用可能である場合に、内部の音源制御部（以下、「内部音源部」と称する。）が、ＭＩＤＩデータに従った発音に、内部音源部が有する発音チャンネル及び外部音源部が有する発音チャンネルのうち必要な数の発音チャンネルを割り当て、内部音源部が有する発音チャンネルを割り当てた場合には、ＭＩＤＩデータに割り当てた発音チャンネルの識別情報を付して外部音源サーバに送信することにより、外部音源部の、その識別情報が示す発音チャンネルにおいて、送信したＭＩＤＩデータに従った波形データの生成を行わせることにより、外部音源部においても内部音源部と同様の波形データの生成を行えるようにしたシンセサイザを用いたものが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２５４９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、近年のカラオケ装置に搭載する音源は、物体として存在する音源（例えば、ギター等）を用いたハード音源からソフト音源に推移しつつある。この際、ソフト音源の構成は、エンジン部と波形データ部とに大分けることができる。
【０００５】
この波形データ部とは、実際にある程度の区間（レイヤ）毎ではあるが、音程やベロシティ（音の強弱）毎に楽器を弾いて録音したデータを加工して搭載する音色となるものである。
【０００６】
高品質なソフト音源を搭載する場合、波形データは１０００以上の音色として構成される。このため、全ての音色に対する波形データを記憶するために必要な容量も数十ＧＢとなってしまう。
【０００７】
ここで、上述した容量の問題に加え、同じ音符が連続して指定されても異なる波形を出力するランダマイザ機能や、例えば、カラオケ装置における利用者が任意で設定するキーコントロールを考慮すると、予め使用する波形データを特定することは非常に困難である。
【０００８】
したがって、メモリ容量が十分に搭載されていないと、オンメモリ上で動作させることは現実に厳しいという問題が生じていた。また、使用する波形データを、その都度読み出して使用することも、シリアルＡＴＡ（ＳＡＴＡ）性能や、環境温度などによって読み出し完了迄に予期せぬ時間を待たされてしまい、発音が途切れてしまうという問題も生じていた。
【０００９】
本発明の目的は、限られたメモリリソースで大容量の波形データを扱うことが可能となるうえ、波形データの読み込みが間に合わなくなった場合であっても、発音の途切れ等に起因する違和感が少ない演奏を提供することができる音源制御装置、カラオケ装置、音源制御プログラムを提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、第１の発明の音源制御装置は、ＭＩＤＩコマンドを受信してリングバッファに前記ＭＩＤＩコマンドを格納させる受信部と、前記ＭＩＤＩコマンドと音源の波形データとに基づいて楽曲演奏用の楽音信号を合成するための第１シンセサイザと、前記受信部から前記ＭＩＤＩコマンドを受信するとともに、前記楽曲演奏用の波形データの読み出しを指示する第２シンセサイザと、前記波形データを格納するためのキャッシュ領域と、前記第２シンセサイザによる読み出し指示により記憶手段に記憶した前記波形データを読み出し、読み出された前記波形データを前記キャッシュ領域へと順次格納させる波形読出スレッドと、を備え、前記第１シンセサイザは、前記リングバッファによって定められた所定数の遅延サンプル分前の前記ＭＩＤＩコマンドを順次読み出すとともに、前記キャッシュ領域から前記波形データを読み出して楽曲演奏用のＰＣＭデータを生成してＰＣＭデータ生成部へ返信し、前記ＰＣＭデータ生成部は、前記所定数の前記遅延サンプル分前のＰＣＭデータを生成する指示を前記第１シンセサイザへ送信し、前記第１シンセサイザによる前記ＰＣＭデータの外部シーケンサに対する返信を前記楽曲演奏の進行に間に合うよう制御することを特徴とする。
【００１１】
第１発明の音源制御装置は、内部に第１シンセサイザと第２シンセサイザの２つを有している。第１シンセサイザは、通常のシンセサイザの機能としてリングバッファから受信したＭＩＤＩコマンドに基づいて、そのＭＩＤＩコマンドに対応した音源の波形データにより楽曲演奏用の楽音信号を合成する。第２シンセサイザは、第１シンセサイザよりも先にＭＩＤＩコマンドを受信するとともに、通常のシンセサイザ機能に対して、デジタルシグナルプロセッサ（ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｏｃｅｓｓｏｒ：ＤＳＰ）によるデジタル信号処理（ＤＳＰ処理）は実行せず、第１シンセサイザで読み出すための楽曲演奏用の波形データをキャッシュ領域に格納する指示を波形読出スレッドへ出力している。
【００１２】
また、音源制御装置は、第２シンセサイザによる読み出し指示によりＨＤＤ等の記憶手段に記憶した波形データを読み出すとともに、その読み出した波形データをキャッシュ領域へと順次格納させる波形読出スレッドを備える。
【００１３】
ここで、第１シンセサイザは、リングバッファによって定められた前記所定数の前記遅延サンプル分前のＭＩＤＩコマンドを順次読み出すとともに、キャッシュ領域から波形データを読み出して楽曲演奏用のＰＣＭデータを生成してＰＣＭデータ生成部へと返信する。
【００１４】
すなわち、第１シンセサイザよりも先に第２シンセサイザを用いて波形読出スレッドに対して読み出し指示が出されたことを契機として、ＨＤＤ等の記憶手段に記憶した波形データをキャッシュ領域に格納しておけば、第１シンセサイザによってキャッシュ領域から素早く波形データの読み出しを行うことができる。
【００１５】
外部シーケンサは、ミュージックシーケンサーであって、ＭＩＤＩコマンドを再生することで自動演奏を行うことを目的とした装置であって、例えば、カラオケ装置等の音源再生装置に設けられている。
【００１６】
この外部シーケンサは、本発明の音源制御回路の外側にあって、本発明の音源制御回路を構成するものではない。すなわち、外部シーケンサと音源制御回路とは、音源再生装置の内部において回路で通信を行う。
【００１７】
したがって、外部シーケンサは、ＰＣＭデータ生成指示を、第１シンセサイザが実際に波形データを使用するまでの間に第２シンセサイザへ送信すれば、第１シンセサイザによるＰＣＭデータの返信を楽曲演奏の進行に間に合うように制御することができる。
【００１８】
このように、第１発明の音源制御装置によれば、第２シンセサイザは第１シンセサイザよりも先に受信したＭＩＤＩコマンドの先読みを行って波形データをキャッシュ領域に格納し、第１シンセサイザは、その先読みによって格納した波形データをキャッシュ領域から読み出してＭＩＤＩコマンドと音源の波形データとに基づいて楽曲演奏用の楽音信号を合成する。
【００１９】
これにより、限られたメモリリソースで大容量の波形データを扱うことが可能となるうえ、波形データの読み込みが間に合わなくなった場合であっても、発音の途切れ等に起因する違和感が少ない演奏を提供することが可能となる。
【００２０】
第２発明のカラオケ装置は、このような音源制御装置と、前記ＰＣＭデータ生成部の制御に基づき前記第１シンセサイザにより生成された前記ＰＣＭデータを用いて生成された前記楽曲演奏用のＰＣＭデータの演奏進行で、楽曲の再生と、歌詞テロップの色変えと、を行う楽曲再生手段と、を備えることを特徴とする。
【００２１】
これにより、同音連打時の表現を豊かにするためのランダマイザ機能を備えたり、例えば、キーコントロール用の音色に対応した波形データを備えることによりメモリ容量が増えたとしても、限られたメモリリソースで大容量の波形データを扱うことが可能となるうえ、波形データの読み込みが間に合わなくなった場合であっても、発音の途切れ等に起因する違和感が少ない演奏が行えるカラオケ装置を提供することが可能となる。
【００２２】
さらに、第３発明の音源制御プログラムによれば、ＭＩＤＩコマンドと音源の波形データとに基づいて楽曲演奏用の楽音信号を合成するための第１シンセサイザと、楽曲演奏進行よりも早く前記波形データの読み出しを行うための第２シンセサイザと、を有し、音源の制御を行う音源制御装置に対し、前記ＭＩＤＩコマンドを受信してリングバッファにＭＩＤＩコマンドを格納させる受信手順と、前記受信手順での前記ＭＩＤＩコマンドの受信後、前記第２シンセサイザに対し駆動指示を送信する制御手順と、前記駆動指示に対応し、前記受信手順で受信した前記ＭＩＤＩコマンドに応じて、第２シンセサイザにより、前記楽曲演奏用の波形データの読み出しを指示する読出指示手順と、前記読出指示手順に基づき、記憶手段から前記波形データを読み出し、キャッシュ領域へと順次格納させる格納手順と、前記第１シンセサイザにより、前記リングバッファによって定められた前記所定数の前記遅延サンプル分前の前記ＭＩＤＩコマンドを順次読み出す読出手順と、前記第１シンセサイザにより、前記格納手順で前記キャッシュ領域に格納された前記波形データを読み出して、楽曲演奏用のＰＣＭデータを生成するデータ生成手順と、を実行することができる。なお、リングバッファによって定められた遅延サンプルの数は、カラオケ装置の初期化時に、その所定数を設定することで、決定してもよい。
【発明の効果】
【００２３】
本発明によれば、限られたメモリリソースで大容量の波形データを扱うことが可能となるうえ、波形データの読み込みが間に合わなくなった場合であっても、発音の途切れ等に起因する違和感が少ない演奏を提供することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明に係る音源制御装置を用いたカラオケ装置の主要構成を示す説明図である。
【図２】本発明に係る音源制御装置を用いたカラオケ装置に係る制御装置を示し、（Ａ）は制御装置の前面パネルの説明図、（Ｂ）は制御装置の背面パネルの説明図である。
【図３】本発明に係る音源制御装置を用いたカラオケ装置に係る制御装置の制御系の主要構成を示す機能ブロック図である。
【図４】本発明に係る楽曲データのデータフォーマットの説明図で、（Ａ）はサーバから制御装置に送信される曲データの主要構成を示す説明図、（Ｂ）は曲カウントデータを付加した曲データの主要構成を示す説明図、（Ｃ）は楽曲データに含まれるＭＩＤＩデータの演奏部分の構成を示す説明図である。
【図５】本発明の音源制御装置に係る機能ブロック図である。
【図６】本発明の音源制御装置における処理ルーチンをＭＩＤＩデータごとに時系列で示した説明図である。
【図７】本発明の音源制御装置における外部シーケンサの処理ルーチンのフロー図である。
【発明を実施するための形態】
【００２５】
以下、本発明の一実施の形態について、図面を参照しつつ説明する。本実施形態では、音源制御装置の一例としてのカラオケ装置に本発明を適用した場合を例にとって説明する。
【００２６】
＜主要構成＞
図１に示すように、カラオケ装置１０には、歌詞を示す歌詞テロップ、歌詞テロップの背景に表示する背景映像、選曲番号を示す映像などを表示画面に表示するモニタテレビ（以下、単に「モニタ」と略称する）１１と、歌唱者用のモニタ１２と、一つ以上の楽器音により構成されるカラオケ用の楽曲（以下、適宜「曲」とも略称する）の選曲、及び曲の再生の予約などの選曲制御、選曲された曲の送信要求を示すリクエスト信号のサーバへの送信、及びリクエスト信号により示される曲に対応する曲データ（カラオケ楽曲データ）の受信などの通信制御、受信された曲データに含まれる楽音種類指定情報たるＭＩＤＩデータを受信する制御装置（コマンダ）２０と、を備える。
【００２７】
さらに、カラオケ装置１０には、この例では、マイクロフォン１３，１４から入力される音声信号及び曲の再生信号のミキシング、音声と曲との音量バランス、エコー調整、ディレイ調整、ミキシング信号の増幅、再生される曲の音程制御（キーコントロール）、高音・低音の制御（トーンコントロール）などを行うアンプ１５と、このアンプ１５から出力される増幅信号を音として再生するフロアータイプの１組のスピーカ１６と、天井吊下げ用の１組のスピーカ１７と、制御装置２０を遠隔操作するリモコン６０と、を備える。
【００２８】
＜制御装置の概略＞
上記制御装置２０の装備について図２を参照して説明する。図２（Ａ）に示すように、制御装置２０の前面パネルには、選曲する曲の選曲番号の入力などを行うための０〜９のボタンからなるテンキー２１と、選曲を確定するための選曲ボタン２２とが設けられており、テンキー２１の上には、選曲された曲の選曲番号を６桁の数字でＬＥＤ表示する選曲番号表示体２３が設けられている。
【００２９】
また、選曲番号表示体２３の左には、再生が予約されている曲の数をＬＥＤ表示する予約曲数表示体２４が設けられており、その下には、予約の取り消を行うための取り消しボタン２５と、演奏を停止させる演奏停止ボタン２６と、歌っている途中で最初から歌い直すための歌い直しボタン２７と、予約曲の間に割り込んで予約するための割り込みボタン２８とが設けられている。さらに、前面パネルの左上には、リモコン６０から送信される光信号を受光する受光部３８が設けられており、左下には、制御装置２０の電源を立ち上げる電源ボタン３９が設けられている。
【００３０】
また、テンキー２１の右には、再生する曲のキーを低くコントロールするためのフラットキー２９と、再生する曲のキーを標準にコントロールするための標準キー３０と、再生する曲のキーを高くコントロールするためのシャープキー３１とが設けられており、それらキーの下には、ボーカルのメロディーラインの音量を設定するボーカルボタン３２と、２コーラス目までを再生する２コーラスカットボタン３３と、曲の後奏部分をカットする後奏カットボタン３４とが設けられている。さらに、それらボタンの下には、カラオケとＢＧＭ用とを切り替えるカラオケ切替ボタン３５と、ＬＡＮ回線１８（図１参照）を介して入力されるデータを曲データから有線放送、テレビ放送などに切り替える入力切替ボタン３６と、モニタ１１，１２の表示をカラオケボックスなどが提供しているサービス情報の表示に切り替えるサービスボタン３７とが設けられている。
【００３１】
また、図２（Ｂ）に示すように、制御装置２０の背面パネルには、ＬＡＮ回線１８を接続する通信端子４０が設けられている。この通信端子４０の右方には、アンプ１５の音声入力端子（図示省略）と接続される音声出力端子４１と、モニタ１１の映像入力端子（図示省略）と接続される映像出力端子４２と、モニタ１２の映像入力端子（図示省略）と接続される映像出力端子４３とが設けられている。
【００３２】
＜制御系＞
次に、制御装置２０の制御系の構成について図３を参照して説明する。図３において、制御装置２０には、各種制御をプログラムにしたがって実行するＣＰＵ４４が備えられている。ＣＰＵ４４には、後述するＭＩＤＩデータに対応した波形データを記憶した大容量記憶媒体としてのＨＤＤ４５と、リモコン６０から送信されるデータ、選曲された曲の選曲番号を示す選曲番号データ、予約された曲の選曲番号データなどを一時保存するためのＲＡＭ４６と、ＣＰＵ４４により実行されるプログラムなどが記憶されたＲＯＭ４７とが接続されている。
【００３３】
また、ＣＰＵ４４には、モニタ１１，１２の表示画面に歌詞テロップや各種メッセージ映像を表示するための文字映像データが記憶されたビデオＲＡＭ（Ｖ−ＲＡＭ）４８と、サーバ５８から送信される楽曲データ１００（後述の図４参照）を受信するための受信部としてのＬＡＮボード５０と、このＬＡＮボード５０により受信された楽曲データ１００からＭＩＤＩコマンドを一時保存するためのリングバッファ領域及び波形データのキャッシュ領域として機能するＲＡＭ４９と、が接続されている。なお、ＲＡＭ４９は、リングバッファ領域と波形データのキャッシュ領域とで別々に設けてもよい。
【００３４】
さらに、ＣＰＵ４４には、ＲＡＭ４９から読み出された楽曲データ１００に含まれるＭＩＤＩデータ１１０（後述の図４参照）を入力するとともに、その入力されたＭＩＤＩデータ１１０により指定される音源から音源信号を出力するＭＩＤＩ音源ボード５１が接続されている。また、ＣＰＵ４４には、上記出力された音源信号を入力してアンプ１５により増幅可能な信号に変換する音声制御回路５２と、楽曲データ１００に含まれるジャンルデータ１５０（後述の図４参照）により特定されるジャンルの背景映像を示す背景映像データを読み出すＣＤ−ＲＯＭプレーヤ５３と、が接続されている。
【００３５】
また、ＣＰＵ４４には、ＣＤ−ＲＯＭプレーヤ５３から読み出された背景映像データ、及びＲＡＭ４９から読み出された楽曲データ１００に含まれる歌詞テロップデータ１４０（後述の図４参照）を入力し、モニタ１１の表示画面に表示される背景映像中に歌詞テロップがスーパーインポーズされた映像を作成したり、曲の進行にしたがって歌詞テロップの色を変えたりする映像制御を行う映像制御回路５４が接続されている。
【００３６】
さらに、ＣＰＵ４４には、受光部３８により受光された光信号をデジタル信号に変換する変換回路５５と、制御装置２０の前面パネルに設けられた各種ボタン及びキー（前述のテンキー２１、選曲ボタン２２等）を押したときに点灯するＬＥＤ（前述の選曲番号表示体２３、予約曲数表示体２４等）と、上記ＬＥＤへ表示信号を出力する表示回路５６と、上記各種ボタン及びキーを押したときに発生するスイッチング信号を入力する入力回路５７とが接続されている。
【００３７】
＜曲データ＞
曲データの主要構成について図４（Ａ）及び図４（Ｂ）を参照して説明する。楽曲データ１００は、曲の演奏部分を示すＭＩＤＩデータ１１０、歌詞テロップ（字幕）を示す歌詞テロップデータ１４０、及び曲のジャンルを示すジャンルデータ１５０などから構成されている。ＭＩＤＩデータ１１０の先頭には、図４（Ｂ）に示すように、曲の始まりをカウントするための曲カウントデータ１２０を付加することができる。曲カウントデータ１２０としては、例えば、ドラムの音を出すためのＭＩＤＩ音源を指定するＭＩＤＩデータ♯１（後述の図４（Ｃ）参照）が用いられる。
【００３８】
ＭＩＤＩデータ１１０の構成について図４（Ｃ）を参照して説明する。図４（Ｃ）に示すように、ＭＩＤＩデータ１１０は、この例では、図４（Ｃ）に示すように、電子ドラムの音源を指定するＭＩＤＩデータ♯１、キーボードの音源を指定するＭＩＤＩデータ♯２、エレキベースギターの音源を指定するＭＩＤＩデータ♯３、エレキギターの音源を指定するＭＩＤＩデータ♯４、音源から音源信号を出力させることを指定するノートＯＮデータ１１２、音の強さ（音源信号の出力レベルであるベロシティ）を指定するレベルデータ１１４、及び音源から音源信号を出力させないことを指定するノートＯＦＦデータ１１６などのデータから構成されており、曲データ（原曲）を演奏するときの音高キー（原曲キー）も、曲データの製作時に決められている。
【００３９】
ＣＰＵ４４は、ＭＩＤＩ音源ボード５１に制御信号を出力し、ＭＩＤＩデータに対応した音源信号を、ＭＩＤＩ音源ボード５１から出力させる。ＭＩＤＩ音源ボード５１から出力される音源信号は、音声制御回路５２へ出力されるとともに、アンプ１５により増幅可能な音楽信号に変換され、この変換された音楽信号は、音声出力端子４１からアンプ１５へ出力される。
【００４０】
また、マイクロフォン１３，１４から入力された音声信号は、アンプ１５に内蔵されたミキシング回路１９において音楽信号とミキシングされる。
【００４１】
そのミキシングされた音声信号と音楽信号とのミキシング信号は、アンプ１５に内蔵された図示しない増幅回路により増幅された後に、スピーカ１６及びスピーカ１７に出力され、これらスピーカ１６及びスピーカ１７から発音される。
【００４２】
＜本実施形態の特徴＞
以上の基本構成において、本実施形態の特徴は、カラオケ装置１０での曲の演奏時において、特に、ＭＩＤＩコマンドに基づいてスピーカ１６，１７から発音（音声出力）する際、限られたメモリリソースで大容量の波形データを扱うことを可能とするとともに、波形データの読み込みが間に合わなくなった場合であっても、発音の途切れ等に起因する違和感が少ない演奏を提供することにある。以下、その詳細を順を追って説明する。
【００４３】
図５において、カラオケ装置１０に搭載した音源制御回路７０は、内部に第１シンセサイザ７１と第２シンセサイザ７２の２つを有している。第１シンセサイザ７１は、通常のシンセサイザの機能としてリングバッファ４９Ａから受信したＭＩＤＩコマンドに基づいて、そのＭＩＤＩコマンドに対応した音源の波形データにより楽曲演奏用の楽音信号を合成する。第２シンセサイザ７２は、第１シンセサイザ７１よりも先にＭＩＤＩコマンドを受信するとともに、通常のシンセサイザ機能に対してＤＳＰ処理は実行せず、第１シンセサイザ７１で読み出すための楽曲演奏用の波形データをキャッシュ領域４９Ｂに格納するようになっている。
【００４４】
なお、リングバッファ４９Ａとキャッシュ領域４９Ｂとは、ＲＡＭ４９の一部領域をリングバッファ領域及び波形データのキャッシュ領域としたものである。
【００４５】
また、音源制御回路７０は、第２シンセサイザ７２による読み出し指示によりＨＤＤ４５に記憶した波形データを読み出すとともに、その読み出した波形データをキャッシュ領域４９Ｂへと順次格納させる波形読出スレッド７３を備える。
【００４６】
ここで、第１シンセサイザ７１は、リングバッファ４９Ａによって定められた所定数の遅延サンプル分前のＭＩＤＩコマンドを順次読み出すとともに、キャッシュ領域４９Ｂから波形データを読み出して楽曲演奏用のＰＣＭデータを生成してＰＣＭデータ生成部７４へと返信する。
【００４７】
すなわち、第１シンセサイザ７１よりも先に第２シンセサイザ７２を用いて波形読出スレッド７３に対して読み出し指示が出されたことを契機として、ＨＤＤ４５に記憶した波形データをキャッシュ領域４９Ｂに格納しておけば第１シンセサイザ７１によってキャッシュ領域４９Ｂから素早く波形データの読み出しを行うことができる。
【００４８】
したがって、外部シーケンサはＰＣＭデータ生成部７４に対するＰＣＭデータ生成指示を、第１シンセサイザが実際に波形データを使用する迄に第２シンセサイザ７２へ送信すれば、第１シンセサイザ７１によるＰＣＭデータの返信を外部シーケンサが制御する楽曲演奏の進行に間に合うように制御することができる。
【００４９】
もし、第１シンセサイザが使用する予定の波形データがキャッシュ領域へ格納されていない場合は、該当ノートは発音しない。また、すでに発音中の場合は消音する処理（ノートオフ）を行うことで、演奏と異なる音が継続してしまうことはない。
【００５０】
この際、ＣＰＵ４４は、楽曲演奏用のＰＣＭデータの演奏進行に同期して、歌唱すべきタイミングで歌詞テロップの色変えを行なう指示を、歌詞映像を表示するためのモニタ１１，１２に与える。
【００５１】
以下、図５に基づいて、外部シーケンサ５９から送信されたＭＩＤＩデータをＣＰＵ４４で処理する場合の再生処理ルーチンを説明する。なお、図５においては、以下に示す処理１〜処理１６までの手順を丸付き数字で示すとともに、概略の処理名を付している。
【００５２】
外部シーケンサ５９は、ミュージックシーケンサーであって、ＭＩＤＩコマンドを再生することで自動演奏を行うことを目的とした装置であって、例えば、カラオケ装置１０に設けられている。
【００５３】
この外部シーケンサ５９は、本実施の形態の音源制御回路７０の外側にあり、音源制御回路７０とは、カラオケ装置１０の内部において回路で通信を行う。
【００５４】
したがって、外部シーケンサ５９は、ＰＣＭデータ生成指示を、第１シンセサイザ７１が実際に波形データを使用するまでの間に第２シンセサイザ７２へ送信すれば、第１シンセサイザ７１によるＰＣＭデータの返信を楽曲演奏の進行に間に合うように制御することができる。
【００５５】
処理１：ＣＰＵ４４によって制御される外部シーケンサ５９はＭＩＤＩ楽曲データを楽曲の進行に応じて音源制御回路７０へ送信する。
【００５６】
処理２：ＣＰＵ４４は、音源制御回路７０側が、ＭＩＤＩコマンドを受信すると、そのＭＩＤＩコマンドを、ＭＩＤＩコマンド受信部５０からリングバッファ４９Ａに送信して格納させるとともに、第２シンセサイザ７２に送信する。
【００５７】
処理３：ＣＰＵ４４は、第２シンセサイザ７２がＭＩＤＩコマンドを受信すると、第２シンセサイザ７２から受信に関する応答信号をＭＩＤＩコマンド受信部５０に送信させる。
【００５８】
処理４：ＣＰＵ４４は、ＭＩＤＩコマンド受信部５０が応答を受信すると、ＭＩＤＩコマンド受信部５０から外部シーケンサ５９に応答を返す。なお、この応答は、一つのＭＩＤＩデータに対して行われる、
処理５：ＣＰＵ４４は、外部シーケンサ５９からＰＣＭ生成指示が出力されると、そのＰＣＭ生成指示をＰＣＭデータ生成部７４に送信する。
【００５９】
処理６：ＣＰＵ４４は、ＰＣＭデータ生成部７４がＰＣＭ生成指示を受信すると、ＰＣＭデータ生成部７４から駆動指示信号を第１シンセサイザ７１及び第２シンセサイザ７２に出力させる。
【００６０】
処理７：ＣＰＵ４４は、第２シンセサイザ７２がＰＣＭデータ生成部７４から駆動指示信号を受信すると、第２シンセサイザ７２から波形データ読出指示信号を波形読出スレッド７３に出力させる。
【００６１】
処理８：ＣＰＵ４４は、波形読出スレッド７３が波形データ読出指示信号を受信すると、ＨＤＤ４５に波形読み出し信号を出力させる。
【００６２】
処理９：ＣＰＵ４４は、ＨＤＤ４５が波形データ読出指示信号を受信すると、キャッシュ領域４９Ｂに、例えば、ＭＩＤＩデータ♯１〜♯４の各々に対応するＭＩＤＩコマンドの波形データ（例えば、波形データＡ，波形データＢ・・・波形データｎ）を格納する。ここで、キャッシュ領域４９Ｂは、例えば、ＲＡＭ４９のうちキャッシュ領域４９Ｂとして割り当てた容量（例えば、１００ＭＢ）は外部から指定・変更可能であるが、ＣＰＵ４４は、容量がいっぱいになった場合には、古い順のデータ波形から順次消去する。なお、一度読み出した波形データは消去されない限り、再利用可能である。
【００６３】
処理１０：ＣＰＵ４４は、第１シンセサイザ７１からリングバッファ４９ＡにＭＩＤＩコマンドの取出要求を出力させる。
【００６４】
処理１１：ＣＰＵ４４は、リングバッファ４９Ａが取出要求を受信すると、所定の数（例えば、譜面の１音符に対応したＭＩＤＩデータ♯１〜♯４）のＭＩＤＩコマンドを取り出して第１シンセサイザ７１に出力させる。
【００６５】
処理１２：ＣＰＵ４４は、ＭＩＤＩコマンドを受信すると、第１シンセサイザ７１からキャッシュ領域４９Ｂに波形データ読出要求を出力させる。
【００６６】
処理１３：ＣＰＵ３４４は、キャッシュ領域４９Ｂが波形データ読出要求を受信すると、キャッシュ領域４９ＢからＭＩＤＩコマンドに対応した波形データを第１シンセサイザ７１に出力させる。
【００６７】
処理１４：ＣＰＵ４４は、第１シンセサイザ７１がキャッシュ領域４９Ｂから波形データを受信すると、ＤＳＰ処理を行わせる。
【００６８】
処理１５：ＣＰＵ４４は、第１シンセサイザ７１がＤＳＰ処理を行うと、ＰＣＭデータ生成部７４にＰＣＭデータを出力する。
【００６９】
処理１６：ＣＰＵ４４は、ＰＣＭデータ生成部７４がＰＣＭデータを受信すると、ＰＣＭデータを生成するとともに、外部シーケンサ５９に出力する。
【００７０】
すなわち、図６に示すように、外部シーケンサ５９からのＭＩＤＩ送信（例えば、ＭＩＤＩ送信  Ａ）に対して、音楽データとなるＰＣＭデータ生成部７４からの回答（例えば、ＰＣＭ  Ａ）の関係となる。
【００７１】
そして、ＭＩＤＩ  Ａに対するＰＣＭ  Ａは、所定数の遅延サンプル分前のＭＩＤＩ送信のＭＩＤＩデータ  Ａが反映される。
【００７２】
したがって、最初のＭＩＤＩイベントの内容が反映されたＰＣＭデータが取得できるのが、所定数の遅延サンプル分後のＰＣＭデータとなる。
【００７３】
なお、ＨＤＤ４５の読み出し時間を考慮し、外部シーケンサ５９は所定数の遅延サンプル分の実時間（遅延時間）を遅らせてＰＣＭデータを取得する。また、図６において、ＰＣＭデータに対する最初の３つの回答は、ここでは無効データとして処理する。具体的な処理の一例としては、ＰＣＭデータ生成部が所定数の遅延サンプル分は無音データを出力する。もしくは、ＰＣＭデータ生成部が音声制御回路５２に対して、所定数の遅延サンプル分の期間のＰＣＭデータを出力しない指示を行うことで、無効データは外部に出力させないようにしてもよい。これにより、曲の演奏開始直後に無効データによる雑音が出力されることもない。
【００７４】
次に、外部シーケンサ５９の処理ルーチンを図７に基づいて説明する。
【００７５】
（ステップＳ１）
ステップＳ１において、外部シーケンサ５９は、音源制御回路７０に対して初期化信号を出力したうえで、ＣＰＵ４４から楽曲演奏の演奏要求を受信したか否かを判定する。外部シーケンサ５９は、ＣＰＵ４４から楽曲演奏の演奏要求を受信した場合（Ｙｅｓ）には、ステップＳ２へと移行する。外部シーケンサ５９は、ＣＰＵ４４からから楽曲演奏の演奏要求を受信したと判定しなかった（Ｎｏ）場合には、引き続きこのルーチンを監視する。
【００７６】
（ステップＳ２）
ステップＳ２において、外部シーケンサ５９は、ＨＤＤ４５から楽曲演奏の対象となっているＭＩＤＩデータを受信して、順次、ＭＩＤＩコマンドを音源制御回路７０に送信し（処理１に相当）、ステップＳ３に移行する。
【００７７】
（ステップＳ３）
ステップＳ３において、外部シーケンサ５９は、音源制御回路７０にＰＣＭデータの生成指示を送信し（処理５に相当）、ステップＳ４に移行する。
【００７８】
（ステップＳ４）
ステップＳ４において、外部シーケンサ５９は、音源制御回路７０からＰＣＭデータ受信し（処理１６に相当）、ステップＳ５に移行する。
【００７９】
（ステップＳ５）
ステップＳ５において、外部シーケンサ５９は、ＰＣＭデータを再生し、ステップＳ６に移行する。
【００８０】
（ステップＳ６）
ステップＳ６において、外部シーケンサ５９は、楽曲演奏、すなわち、ステップＳ１でＨＤＤ４５から受信した１楽曲分のＭＩＤＩデータに対するＰＣＭデータの再生が終了したか否かを判定する。外部シーケンサ５９は、１楽曲分のＭＩＤＩデータに対するＰＣＭデータの再生が終了した場合（Ｙｅｓ）には、ステップＳ７へと移行する。外部シーケンサ５９は、１楽曲分のＭＩＤＩデータに対するＰＣＭデータの再生が終了したと判定しなかった（Ｎｏ）場合には、ステップＳ２へとループし、以降、１楽曲分のＭＩＤＩデータに対するＰＣＭデータの再生が終了するまで、ステップＳ２からステップＳ６までのルーチンを繰り返す。
【００８１】
（ステップＳ７）
ステップＳ７において、外部シーケンサ５９は、音源制御回路７０に対して終了信号を出力し、このルーチンを終了する。
【００８２】
このように、音源制御回路７０は、第２シンセサイザ７２が第１シンセサイザ７１よりも先に受信したＭＩＤＩコマンドの先読みを行って波形データをキャッシュ領域４９Ｂに格納させ、第１シンセサイザ７１は、その先読みによって格納した波形データをキャッシュ領域４９Ｂから読み出してリングバッファ４９Ａから読み出したＭＩＤＩコマンドに基づいて楽曲演奏用の楽音信号（ＰＣＭデータ）を合成する。
【００８３】
これにより、限られたメモリリソースで大容量の波形データを扱うことが可能となるうえ、波形データの読み込みが間に合わなくなった場合であっても、発音の途切れ等に起因する違和感が少ない演奏を提供することが可能となる。
【００８４】
また、このような音源制御回路７０を備えたカラオケ装置１０では、第１シンセサイザ７１により生成されたＰＣＭデータを用いて生成された楽曲演奏用のＰＣＭデータの演奏進行で、楽曲の再生と、歌詞テロップの色変えと、を行うことができる。
【００８５】
これにより、通常の（音符通りの）音色に対応した波形データに加え、同音連打時の表現を豊かにするためのランダマイザ機能を備えたり、例えば、キーコントロール用の音色に対応した波形データを備えることによりメモリ容量が増えたとしても、限られたメモリリソースで大容量の波形データを扱うことが可能となるうえ、波形データの読み込みが間に合わなくなった場合であっても、発音の途切れ等に起因する違和感が少ない演奏を提供することが可能となる。
【００８６】
なお、第１シンセサイザ７１が使用する予定の波形データがキャッシュ領域４９Ｂへ格納されていない場合は、該当ノートは発音しない。また、すでに発音中の場合は消音する処理（ノートオフ）を行うことで、演奏と異なる音が継続してしまうことはない。
【００８７】
ここで、ＲＯＭ４７には、上述したように、ＭＩＤＩコマンドと音源の波形データとに基づいて楽曲演奏用の楽音信号を合成するための第１シンセサイザ７１と、楽曲演奏進行よりも早く波形データの読み出しを行うための第２シンセサイザ７２と、を有し、音源の制御を行う音源制御回路７０に対し、ＭＩＤＩコマンドを受信してリングバッファ４９ＡにＭＩＤＩコマンドを格納させる受信手順（処理２）と、この受信手順でのＭＩＤＩコマンドの受信後、第２シンセサイザ７２に対し駆動指示を送信する制御手順（処理６）と、この駆動指示に対応し、受信手順で受信したＭＩＤＩコマンドに応じて、第２シンセサイザ７２により、楽曲演奏用の波形データの読み出しを指示する読出指示手順（処理７）と、読出指示手順に基づき、ＨＤＤ４５から波形データを読み出し、キャッシュ領域４９Ｂへと順次格納させる格納手順（処理９）と、第１シンセサイザ７１により、リングバッファ４９Ａによって定められた所定数の遅延サンプル分前のＭＩＤＩコマンドを順次読み出す読出手順（処理１１）と、第１シンセサイザ７１により、格納手順でキャッシュ領域４９Ｂに格納された波形データを読み出して、楽曲演奏用のＰＣＭデータを生成するデータ生成手順（処理１２〜１５）と、をＣＰＵ４４で実行するための音源制御プログラムが格納されている。
【００８８】
このように、カラオケ装置１０は音源制御回路７０を備え、この音源制御回路７０は、通常の第１シンセサイザ７１と、ＤＳＰ処理を実施しない先読み用の第２シンセサイザ７２とを内部に有している。
【００８９】
そして、ＭＩＤＩコマンドを記憶するリングバッファ４９Ａと、第１シンセサイザ７１によるＤＳＰ処理に先んじてＭＩＤＩコマンドに対応した波形データＡ〜ｎを格納するキャッシュ領域４９Ｂとを備え、第１シンセサイザ７１によるレイテンシー（遅延時間）に先駆けて波形データを先読みする時間を予め設定する。
【００９０】
なお、その設定した時間で波形データの読み込みが間に合わない場合には、破棄する。すなわち、発音中の波形データの読み込みが間に合わなかった場合は、発音をやめ、この後、途中から復帰させることはしないようにしてもよい。
【００９１】
そして、リングバッファ４９Ａに格納したＭＩＤＩコマンドは、第１シンセサイザ７１によりレイテンシーの後（処理サンプル数）にリングバッファ４９ＡからＭＩＤＩコマンドを取り出し、キャッシュ領域４９Ｂから読み出した波形データとでＤＳＰ処理を実行する。
【００９２】
なお、リングバッファ４９Ａによって定められた遅延サンプルの数は、本実施例では３として説明した。しかし、ユーザにおいては、ＨＤＤ４５の読み出し性能を予め特定できない場合がある。このため、ＨＤＤ４５の設置後に、ＨＤＤ４５の読み出し時間に、波形データの読み込みが間に合わなく、発音の途切れ等を、音源制御回路７０からの出力信号としてスピーカ１６から検出することとなる。このため、遅延サンプルの数の変更（当初の数値から大きくする方向）する入力手段（例えば、入力回路５７）を備え、前記発音の途切れを検出した場合には、カラオケ装置１０の初期化時にＣＰＵ４４からの指示でその所定数を発音の途切れを検出したときの遅延サンプルの数より大きい値に設定することで、決定してもよい。
【符号の説明】
【００９３】
１０                カラオケ装置
４４                ＣＰＵ（楽曲再生手段）
４５                ＨＤＤ（記憶手段）
４９Ａ              リングバッファ
４９Ｂ              キャッシュ領域
５０                ＬＡＮボード（受信部）
７０                音源制御回路
７１                第１シンセサイザ
７２                第２シンセサイザ
７３                波形読出スレッド
７４                ＰＣＭデータ生成部
【図１】
0006264660.tif 000002
【図２】
0006264660.tif 000003
【図３】
0006264660.tif 000004
【図４】
0006264660.tif 000005
【図５】
0006264660.tif 000006
【図６】
0006264660.tif 000007
【図７】
0006264660.tif 000008