(57)【特許請求の範囲】
【請求項１】
複数のコマンドで構成された演奏情報に基づいて演奏を行う楽曲演奏装置であって、
演奏情報の演奏に使用する波形情報を記憶する第１記憶手段と、
演奏情報中のコマンドを先読みするコマンド先読み処理と、
先読みしたコマンドの音高に対応する波形情報を、第１記憶手段から第２記憶手段に読み出す波形読み出し処理と、
入力手段からの入力に基づき、キー変更を受け付けるキー変更受付処理と、
キー変更の受け付け時点で既に先読みし、かつ、まだ発音していないコマンドについて、キー変更前に第２記憶手段に読み出した波形情報を使用し、当該波形情報がキー変更後の音高となるように音高変換して演奏を行う演奏処理と、を実行可能とする制御手段と、を備えたことを特徴とする
楽曲演奏装置。
【請求項２】
演奏処理は、キー変更を受け付けた時点で既に先読みし、かつ、発音中の波形情報について、当該波形情報がキー変更後の音高となるように音高変換して演奏を行う
請求項１に記載の楽曲演奏装置。
【請求項３】
波形読み出し処理は、キー変更の受付後、受け付けたキー変更が適用された音高に対応する波形情報を第１記憶手段から第２記憶手段に読み出す
請求項１または請求項２に記載の楽曲演奏装置。
【請求項４】
複数のコマンドで構成された演奏情報に基づいて演奏を行う楽曲演奏用プログラムであって、
演奏情報中のコマンドを先読みし、コマンドの音高に対応する波形情報を、第１記憶手段から第２記憶手段に読み出す波形読み出し処理と、
入力手段からの入力に基づき、キー変更を受け付けるキー変更受付処理と、
キー変更の受け付け時点で既に先読みし、かつ、まだ発音していないコマンドについて、キー変更前に第２記憶手段に読み出した波形情報を使用し、当該波形情報がキー変更後の音高となるように音高変換して演奏を行う演奏処理と、をコンピュータに実行させることを特徴とする
楽曲演奏用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演奏情報を再生することで楽曲の演奏を行う楽曲演奏装置及び楽曲演奏用プログラムに関する。
【背景技術】
【０００２】
近年パーソナルコンピュータは、ＣＰＵやメモリの性能が向上するとともに価格が下がり広く普及している。これに伴ってパーソナルコンピュータで使用される各種ソフトウェアが多数開発され、機能および性能が向上している。ソフトウェア音源もその一つであり、ＣＰＵにより楽音を合成する技術およびその合成された楽音に効果を付与する技術が改良され、良質な楽音を形成できるようになっている。
【０００３】
特許文献１には、ソフトウェア音源の処理負荷が大きかったことを課題として、ＣＰＵにかかる負荷が所定の値より大きい場合、ＣＰＵに代え代替音源で楽音を合成する楽音合成装置が開示されている。このような楽音合成装置を使用することで、ＣＰＵにかかる負荷が大きい場合であっても、代替音源を使用することで、楽音の発生開始の遅れや、楽音の合成の途切れといった不具合を解消することが可能となっている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２８３７７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
現在、ＣＰＵの処理能力の向上、メモリの大容量化に伴い、パーソナルコンピュータなどの各種情報処理装置の能力は、ソフトウェア音源を十分に扱うことのできるまでになっている。従来、カラオケ装置では、ハードウェア音源を使用することが主流であったが、このような処理能力の向上により、ソフトウェア音源を搭載することが検討されている。ソフトウェア音源は、良質な楽音を提供できるため、顧客誘引の要素として音質が求められるカラオケ装置には好適な機能である。また、ソフトウェア音源は、ソフトウェアのバージョンを上げることで、バグの修正、機能の追加などに対応可能であるため、各種メンテナンスの面においても好適な機能といえる。
【０００６】
ところで、従来のハードウェア音源では、音の形成に使用する波形情報を、ハードウェア音源内の専用ＲＯＭに記憶して使用する。ハードウェア音源を制御するＣＰＵは、この専用ＲＯＭに直接アクセスして波形情報を読み出し、演奏を実行する。一方、ソフトウェア音源では、音の形成に使用する波形情報をハードディスク等、汎用の二次記憶手段に記憶して使用している。このような構成により、ソフトウェア音源では波形情報の追加、更新を容易に行うことが可能であり、良質な楽音を形成することが可能である。しかしながら、転送速度の遅いハードディスク等の二次記憶種では、ＣＰＵから直接アクセスして波形情報を読み出すことができない。よって、コマンドに対応する波形情報を、二次記憶手段からＣＰＵが直接アクセス可能な一次記憶手段に事前に読み出しておく必要がある。ＣＰＵは、コマンドを先読みし、コマンドに対応する波形情報を二次記憶手段から一次記憶手段に読み出しておき、コマンドに対応する波形情報を一次記憶手段から直接読み出すことで、楽曲の演奏を実行する。
【０００７】
カラオケ装置の機能として、楽曲の音程を上下させるキー変更機能が知られている。歌唱するユーザは、キー変更機能を使用して自分の音域に合うようにキー変更することで歌唱し易くすることが可能である。歌唱に慣れたユーザであれば、楽曲の再生前に自己の音域に合うようにキー変更することが可能であるが、歌唱に不慣れなユーザの場合、歌いながら自己の音域に適切となるようにキー調整を行うことがある。上述したようにソフトウェア音源では、波形情報を一次記憶手段に事前に読み出して演奏に使用するため、キー変更前に読み出した波形情報は、キー変更後に必要な波形情報と異なる場合がある。したがって、キー変更を行った場合には、キー変更後に必要な波形情報を二次記憶手段から一時記憶手段に読み出すため、楽曲の演奏が一時的に停止することとなる。
【課題を解決するための手段】
【０００８】
本発明は、このような課題を解決することを目的とし、ソフトウェア音源を使用するカラオケ装置において、演奏中にキー変更を指示した場合にも、演奏を停止させることなく、スムースなキー変更を行うため、以下の構成を採用する。
複数のコマンドで構成された演奏情報に基づいて演奏を行う楽曲演奏装置であって、
演奏情報の演奏に使用する波形情報を記憶する第１記憶手段と、
演奏情報中のコマンドを先読みするコマンド先読み処理と、
先読みしたコマンドの音高に対応する波形情報を、第１記憶手段から第２記憶手段に読み出す波形読み出し処理と、
入力手段からの入力に基づき、キー変更を受け付けるキー変更受付処理と、
キー変更の受け付け時点で既に先読みし、かつ、まだ発音していないコマンドについて、キー変更前に第２記憶手段に読み出した波形情報を使用し、当該波形情報がキー変更後の音高となるように音高変換して演奏を行う演奏処理と、を実行可能とする制御手段と、を備えたことを特徴とする。
【０００９】
さらに本発明に係る楽曲演奏装置において、
演奏処理は、キー変更を受け付けた時点で既に先読みし、かつ、発音中の波形情報について、当該波形情報がキー変更後の音高となるように音高変換して演奏を行う。
【００１０】
さらに本発明に係る楽曲演奏装置において、
波形読み出し処理は、キー変更の受付後、受け付けたキー変更が適用された音高に対応する波形情報を第１記憶手段から第２記憶手段に読み出す。
【００１１】
また本発明に係る楽曲演奏用プログラムは、
複数のコマンドで構成された演奏情報に基づいて演奏を行う楽曲演奏用プログラムであって、
演奏情報中のコマンドを先読みし、コマンドの音高に対応する波形情報を、第１記憶手段から第２記憶手段に読み出す波形読み出し処理と、
入力手段からの入力に基づき、キー変更を受け付けるキー変更受付処理と、
キー変更の受け付け時点で既に先読みし、かつ、まだ発音していないコマンドについて、キー変更前に第２記憶手段に読み出した波形情報を使用し、当該波形情報がキー変更後の音高となるように音高変換して演奏を行う演奏処理と、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、コマンドを先読みし、コマンドの音高に対応する波形情報を第２記憶手段に読み出す構成を採用する楽曲演奏装置、または、楽曲演奏プログラムにおいて、演奏中にキー変更が指示されても、演奏を停止させること無く、スムースにキー変更を行うことが可能となる。
【００１３】
さらに本発明に係る楽曲再生装置、または、楽曲再生用プログラムによれば、キー変更指示されたときに発音中の波形情報についても、キー変更の対象とするため、違和感の無い演奏を行うことが可能となる。
【００１４】
さらに本発明に係る楽曲再生装置、または、楽曲再生用プログラムによれば、キー変更の受付後は、受け付けたキー変更が適用された音高に対応する波形情報が第２記憶手段に格納されるため、この波形情報を使用して演奏することで、自然な演奏に復帰させることが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本実施形態のカラオケシステムの構成を示す図
【図２】本実施形態の楽曲情報のデータ構成を示す図
【図３】本実施形態のソフトウェア音源構成を示すブロック図
【図４】本実施形態の波形情報の分類例を示す図
【図５】本実施形態のメイン処理を示すフロー図
【図６】本実施形態のＰＣＭ生成処理を示すフロー図
【図７】波形情報に基づくＰＣＭ情報形成を説明するための図
【図８】キー変更操作タイミングの違いによるキー変更例を説明するための図
【図９】キー変更操作タイミングの違いによるキー変更例を説明するための図
【発明を実施するための形態】
【００１６】
本実施形態の楽曲演奏装置について、カラオケ装置２を例にとって説明する。図１は、本発明の実施形態に係るカラオケシステムの構成を示す図である。本実施形態におけるカラオケシステムは、カラオケ装置２（コマンダ）と、リモコン装置１を含んで構成されている。なお、図１に示す例では、１台のカラオケ装置２に対して、リモコン装置１ａとリモコン装置１ｂ、２台のリモコン装置１が使用されている例である。これらリモコン装置１ａ、１ｂの構成は同一であるため、リモコン装置１として説明を行う。カラオケ装置２とリモコン装置１は、ＬＡＮ１００及びアクセスポイント１１０を利用してネットワークを形成するように接続されている。
【００１７】
カラオケボックスなどの店舗に設置されるカラオケ装置２は、楽曲情報を再生することで歌唱の伴奏を行う装置である。カラオケ装置２は、各構成を統括して制御するためのＣＰＵ３０、各種プログラムを実行するにあたって必要となる情報を一時記憶するためのメモリ２７を備えている。本実施形態のカラオケ装置２は、ハードウェア音源ではなく、ＣＰＵ３０上で動作するソフトウェア音源を使用して楽曲の演奏を行う形態となっている。ＣＰＵ３０は、ハードディスク３２等の記憶手段に記憶されている波形を読み出して、ＰＣＭ情報を合成し、音響制御部２５に出力する。音響制御部２５では、合成されたＰＣＭ情報と、マイクロホン４４ａ、４４ｂから入力される歌唱音声情報とを加算してスピーカ４２に出力する。
【００１８】
カラオケ装置２は、ユーザからの各種入力を受け付ける操作部２１を備える。カラオケ装置２は、操作部２１からの入力を解釈してＣＰＵ３０に伝達する操作処理部２２を備える。また、カラオケ装置２は、各種情報を記憶する記憶部としてのハードディスク３２を備える。カラオケ装置２は、ＬＡＮ１００に接続してネットワークに加入する通信手段としてのＬＡＮ通信部２４を備えている。
【００１９】
また、カラオケ装置２は、モニタ４１に対して歌詞映像、背景映像を表示させる映像再生手段を備える。この映像再生手段は、映像情報に基づいて映像を再生する映像再生部２９、再生する映像を一時的に蓄積するビデオＲＡＭ２８、再生された映像に対する歌詞テロップの重畳、映像効果を付与する映像制御部３１を備えて構成される。
【００２０】
さらに、このカラオケ装置２では、外部に接続されるモニタ４１以外に、タッチパネルモニタ３３に対して各種情報を表示することを可能としている。タッチパネルモニタ３３は映像制御部３１から入力された映像情報を表示する表示部３５と、タッチ入力された位置を操作処理部２２に出力するタッチパネル３４が重畳されて構成されている。このタッチパネルモニタ３３は、カラオケ装置２の操作部、あるいは、リモコン装置１のタッチパネルモニタ１１などと同様、入力部として機能する。ユーザは、タッチパネルモニタ３３にて楽曲を選択することで、直接、カラオケ装置２に予約をさせるなど、カラオケ装置２に対する各種操作を行うことが可能である。
【００２１】
このような構成にてカラオケ装置２は、各種処理を実行することとなるが、カラオケ装置２の主な機能として、楽曲予約処理、楽曲再生処理などを実行可能としている。楽曲予約処理は、ユーザからの指定に基づいて楽曲を指定、予約するための処理であってリモコン装置１と連携して実行される。ユーザの操作により、リモコン装置１などの入力部で指定された予約情報をメモリ２７中の予約テーブルに登録する。楽曲再生処理は、予約された楽曲を再生させる処理であって、演奏処理と歌詞再生処理とが同期して実行される処理である。
【００２２】
演奏処理は、楽曲情報に含まれる演奏情報に基づいて演奏を行う処理である。本実施形態では、ＣＰＵ３０、メモリ２７等の制御手段を使用して演奏を行うソフトウェア音源の形態を採用している。なお、ソフトウェア音源に対し、波形合成の専用チップを使用するような形態の音源は、ハードウェア音源と呼ばれる。ソフトウェア音源としての制御手段で合成されたＰＣＭ情報は、音響制御部２５で合成され、マイクロホン４４ａ、４４ｂから入力される歌唱音声と一緒にスピーカ４２から放音される。歌詞再生処理は、楽曲情報に含まれる歌詞情報をモニタ４１に表示させることで歌唱補助を行う処理である。この歌詞再生処理で表示される歌詞に、背景映像を重畳させて表示させる背景映像表示処理を実行することとしてもよい。
【００２３】
一方、リモコン装置１は、歌唱する楽曲を選択する選曲処理を実行可能とし、予約情報などカラオケ装置２に対して各種指示を送信可能としている。また、リモコン装置１は、カラオケ装置２あるいはインターネット上に接続されたサーバ装置５から各種情報を受信し、ユーザに対して各種情報を提供することも可能である。本実施形態では、ユーザから各種指示を受け付けるユーザインターフェイスとして、操作部１７と、タッチパネルモニタ１１を備えている。タッチパネルモニタ１１は、表示部１１ａとタッチパネル１１ｂを有して構成され、表示部１１ａに各種インターフェイスを表示するとともに、ユーザからのタッチ入力を受付可能としている。
【００２４】
さらにリモコン装置１は、楽曲検索に必要とされるデータベース、各種プログラム、並びに、プログラム実行に伴って発生する各種情報を記憶する記憶部として、メモリ１４、そして、これら構成を統括して制御するためのリモコン側制御部を備えて構成される。リモコン側制御部には、ＣＰＵ１５、タッチパネルモニタ１１に対して表示する映像を形成する映像制御部１３、表示する映像情報を一時的に蓄えるビデオＲＡＭ１２、タッチパネルモニタ１１あるいは操作部１７からの入力を解釈してＣＰＵ１５に伝える操作処理部１８が含まれている。
【００２５】
また、リモコン装置１は、無線ＬＡＮ通信部１６によって、アクセスポイント１１０と無線接続されることで、ＬＡＮ１００によって構成されるネットワークに接続される。なお、各リモコン装置１は、特定のカラオケ装置２に対して事前に対応付けされている。リモコン装置１から出力される各種命令は、対応付けされたカラオケ装置２にて受信される。
【００２６】
このようなリモコン装置１の構成により、ユーザからの各種入力をタッチパネルモニタ１１、あるいは、操作部１７から受付けるとともに、映像情報をタッチパネルモニタ１１に表示することで、カラオケ装置２に対して楽曲予約などの各種指示を行うことが可能とされている。
【００２７】
図２は、カラオケ装置２で使用する楽曲情報のデータ構成を示す図である。楽曲情報は、楽曲情報に関連する各種情報であるメタ情報と、演奏等、各種処理を実行する実情報を含んで構成される。メタ情報には、楽曲情報を識別するための楽曲識別情報（楽曲ＩＤ）、楽曲名、歌手名などの楽曲関連情報が含まれている。
【００２８】
楽曲情報の実情報には、演奏情報、歌詞情報が含まれている。演奏情報は、ＭＩＤＩ規格に基づいて音源を制御する制御情報を含んで構成された、カラオケの伴奏音を演奏するための情報である。歌詞情報は、歌唱補助のため、演奏情報に同期して表示される情報であり、演奏に同期して表示された歌詞の色替えを行うように構成することも可能である。
【００２９】
では、本実施形態のカラオケ装置２で使用するソフトウェア音源について、その構成、及び、演奏処理について説明する。図３は、本実施形態のソフトウェア音源構成を示すブロック図である。ソフトウェア音源は、図１で説明したカラオケ装置２中のＣＰＵ３００、メモリ２７等の制御手段、そして、ソフトウェア音源を実現するためのプログラムを使用して実現される。
【００３０】
ＣＰＵ３００は、シーケンサ３０１、ＭＩＤＩコマンド受信手段３０２、シンセサイザ３０４、波形読み出しスレッド３０５といった機能を受け持つ。シーケンサ３０１は、演奏情報を構成するＭＩＤＩコマンドをハードディスク３２から読み出し、合成波形としてのＰＣＭ情報を音響制御部２５に出力する機能を有する。ＭＩＤＩコマンドに応じて生成されたＰＣＭ情報は、音響制御部２５からスピーカ４２へ出力することで演奏情報は演奏音となって楽曲情報が再生されることとなる。このシーケンサ３０１は、ＭＩＤＩコマンドの入力を管理するＭＩＤＩ管理手段３０１ａと、ＰＣＭ情報の出力を管理するＰＣＭ管理手段３０１ｂ、ＰＣＭ情報を蓄積するバッファ２７ｃを有して構成される。なお、紙面の都合上、バッファ２７ｃはＣＰＵ３００内に位置しているが、メモリ２７など、ＣＰＵ３００の外部に設けられた記憶手段を使用することが一般的である。バッファ２７ｃは、蓄積しているＰＣＭ情報を、所定のサンプリングレートに従って、音響制御部２５に出力する。ＰＣＭ管理手段３０１ｂは、バッファ２７ｃ内のＰＣＭ情報の蓄積量を監視し、ＰＣＭ情報が必要になった場合、シンセサイザ３０４にＰＣＭ生成指示を出力する（丸４）。
【００３１】
ＭＩＤＩコマンド受信手段３０２は、シーケンサ３０１から送信（丸１）されたＭＩＤＩコマンドを受信し、受信したＭＩＤＩコマンドをメモリ２７内の一部領域を使用して形成されたリングバッファ２７ａに格納する（丸２）。なお、ＭＩＤＩコマンド受信手段３０２は、ＭＩＤＩコマンドを受信した場合、確認の意を有する応答信号をＭＩＤＩ管理手段３０１ａに返信する（丸３）。また、ＭＩＤＩコマンド受信手段３０２は、リングバッファ２７ａに記憶させるＭＩＤＩコマンドが、ノートオンのような発音開始指示の場合、波形読み出しスレッド３０５に対し、発音に必要となる波形情報を、二次記憶手段としてのハードディスク３２から、一次記憶手段としてのキャッシュ２７ｂに読み出させる。ＣＰＵ３００は、直接アクセス可能なキャッシュ２７ｂから、事前に記憶させた波形情報を読み出して、シンセサイザ３０４にてＰＣＭ情報を生成することが可能となる。
【００３２】
シンセサイザ３０４は、リングバッファ２７ａに記憶されたＭＩＤＩコマンドに記述されたイベントデータＥＶをデルタタイムＤＴに基づいて取り出し（丸７）、キャッシュ２７ｂに蓄積した波形情報を読み出してＰＣＭ情報を合成し（丸８）、ＰＣＭ情報を出力する（丸１０）機能を有する。また、シンセサイザ３０４は、ＤＳＰ機能を有しており、波形情報に対して各種音響効果を付与する（丸９）ことが可能である。
【００３３】
カラオケ装置２では、歌唱者が歌い易いように自分の音域に合わせてキー変更することがよく知られている。本実施形態のカラオケ装置２も、歌唱者等のユーザの操作に応じて、キー変更を行うことが可能である。キー変更は、カラオケ装置２の操作部２１やタッチパネルモニタ３３、あるいは、リモコン装置１の操作部１７やタッチパネルモニタ１１等、各種入力手段を操作することで行われる。これら入力手段から入力されたキー変更指示は、シーケンサ３０１に伝達され、シーケンサ３０１はＭＩＤＩコマンドにキー変更を反映すると共に、ＭＩＤＩコマンド受信手段３０２と、シンセサイザ３０４内にキー情報を格納する。
【００３４】
シーケンサ３０１によるＭＩＤＩコマンドにキー変更の反映について、キー変更指示により、シーケンサ３０１のＭＩＤＩ管理手段３０１ａから、ＭＩＤＩコマンド受信手段３０２（キー情報３０２ａ）にキー情報が格納される。そして、ＭＩＤＩコマンド受信手段３０２は、シーケンサ３０１からＭＩＤＩ送信されたＭＩＤＩコマンドをメモリ２７内の一部領域を使用して形成されたリングバッファ２７ａに格納するときに、キー情報３０２ａを用いて、キー情報を反映したＭＩＤＩコマンド（キー情報を付帯したＭＩＤＩコマンド）を新たに挿入して格納する（丸２）。本実施形態では、シーケンサ３０１は、キー変更指示に基づくキー情報をＭＩＤＩコマンドに反映させた上で、リングバッファ２７ａに書き込む形態を採用しているが、このような形態に代え、シーケンサ３０１は、キー変更指示に基づくキー情報をＭＩＤＩコマンドに反映させず、ＭＩＤＩコマンドにキー情報を付帯させてリングバッファ２７ａに書き込む形態を採用することも可能である。この場合、シンセサイザ３０４にて、ＭＩＤＩコマンドにキー情報を反映させて、ＰＣＭ情報の形成が行われる。
【００３５】
なお、キー変更が行われていないときのキー情報は「０」である。ＭＩＤＩコマンド受信手段３０２は、波形読み出しスレッド３０５に対して、格納したキー情報が反映されたＭＩＤＩコマンドに対応する波形情報をハードディスク３２からキャッシュ２７ｂに読み出させる。一方、シンセサイザ３０４は、格納したキー情報を使用して、リングバッファ２７ａから読み出したＭＩＤＩコマンドに対応するＰＣＭ情報を形成する。
【００３６】
図４は、本実施形態の波形情報の分類例を示す図であって、音色「ピアノ１」についての波形情報の分類例を示す図である。ＭＩＤＩコマンドで指定される音高は「０」から「１２７」であって、この例では「０」〜「４」、「５」〜「９」を所定の区切りとして扱い、各区切りには、「０」〜「１２７」の大きさを割り当てたベロシティが割り当てられている。このベロシティに対応して波形情報が割り当てられている。波形読み出しスレッド３０５にて、波形情報を読み出す場合、この分類を参照し、ＭＩＤＩコマンド中の音高、ベロシティに対応する波形情報が読み出される。例えば、音高「１」、ベロシティ「３」の場合、波形情報Ｂが読み出されることになる。また、各波形情報には、基準音高が割り当てられており、この例では、音高の区切り毎に基準音高が規定されている。音高中、斜線で示す箇所が基準音高に該当し、例えば、音高「０」〜「４」の区切りについてみると、この区切り内に属する波形情報Ａ〜波形情報Ｃは、基準音高「２」が規定されている。また、音高「５」〜「９」の区切りに対応する波形情報Ｄ〜波形情報Ｆには、基準音高「７」が規定されている。
【００３７】
この基準音高は、波形情報をシンセサイザ３０４でそのまま（音高変換することなく）ＰＣＭ情報を形成したときの音高である。図７（Ａ）には、ＰＣＭ情報形成を説明するための図が記載されている。例えば、ＭＩＤＩコマンド中の音高「１」、ベロシティ「３」の場合、波形情報Ｂを使用することになるが、波形情報Ｂの基準音高は「２」であるため、波形情報Ｂに対して「−１」の音高変換を行うことで、ＭＩＤＩコマンドの音高「１」に対応したＰＣＭ情報を形成する。このように、１の波形情報を使用して複数の音高を形成できるため、使用する波形情報の数を少なくし、記憶容量の削減が図られている。なお、音高と波形情報を１対１の関係にすることも可能である。
【００３８】
次に、本実施形態のカラオケ装置２で実行する楽曲再生処理について、その詳細を説明する。楽曲再生処理は、シーケンサ３０１で実行するシーケンス処理と、シンセサイザ３０４にて実行するＰＣＭ生成処理を含んで構成される。図５は、楽曲再生処理のメイン処理を示すフロー図である。図１のカラオケシステムにおいて、リモコン装置１から送信された予約情報は、カラオケ装置２のメモリ２７で管理する予約テーブルに順次記憶される。カラオケ装置２は、予約テーブルのチェックを行い（Ｓ１０１）、次に再生すべき再生の楽曲があると判定された場合（Ｓ１０２：Ｙｅｓ）、ハードディスク３２から、予約情報中に規定された楽曲情報についてＭＩＤＩコマンドの読み出しを開始する（Ｓ１０３）。楽曲情報中の演奏情報に規定されるＭＩＤＩコマンドが、リングバッファ２７ａに読み出される。その際、波形読み出しスレッド３０５は、当該ＭＩＤＩコマンドに対応する波形情報をハードディスク３２からキャッシュ２７ｂに読み出す。ＭＩＤＩコマンドに対応する波形情報は、図４で説明した分類によって判定される。
【００３９】
楽曲の再生開始後、ユーザからの操作入力に基づき、キー変更指示があった場合（Ｓ１０４：Ｙｅｓ）、シーケンサ３０１内のＭＩＤＩ管理手段３０１ａは、ＭＩＤＩコマンド受信手段３０２とシンセサイザ３０４内のキー情報３０２ａ、３０４ａを指示されたキー情報に書き換える。本実施形態では、キー情報３０２ａ、３０４ａは、ＭＩＤＩコマンド受信手段３０２、シンセサイザ３０４それぞれに記憶されるが、１つのキー情報の記憶領域（具体的にはメモリ）を用意し、ＭＩＤＩコマンド受信手段３０２、シンセサイザ３０４それぞれが、共通のキー情報の記憶領域をアクセスしてもよい。以後、ＭＩＤＩコマンド受信手段は、書き換えられたキー情報３０２ａに基づいて、波形情報の読み出しを行い、シンセサイザ３０４は、書き換えられたキー情報３０４ａに基づいてＰＣＭ情報の形成を行う。各処理の詳細については、後で詳しく説明を行う。
【００４０】
シーケンサ３０１は、所定量（ここでは１ｔｉｃｋ分）のＭＩＤＩコマンドを読み出しの終了を判定し（Ｓ１０６）、読み出しが終了した場合（Ｓ１０６：Ｙｅｓ）には、シンセサイザ３０４に対してＰＣＭ情報の形成指示を出力する（Ｓ１１１、図１の丸４）。一方、読み出しが終了していない場合（Ｓ１０６：Ｎｏ）には、ハードディスク３２からＭＩＤＩコマンドの読み出しを行う（Ｓ１０７）。そして、ＭＩＤＩコマンドがノートオン、ノートオフ等、音高に関する指示の場合（Ｓ１０８：Ｙｅｓ）、ＭＩＤＩコマンドにキー情報を反映させる（Ｓ１０９）。例えば、ＭＩＤＩコマンド中の音高が「４」、キー情報が「＋３」の場合、キー情報の反映されたＭＩＤＩコマンドの音高は「７」となる。キー情報の反映されたＭＩＤＩコマンドは、ＭＩＤＩコマンド受信手段３０２に送信（Ｓ１１０）され、リングバッファ２７ａに書き込まれる。なお、本実施形態では、ＭＩＤＩコマンドには、キー情報も付帯されてリングバッファ２７ａに書き込まれる。
【００４１】
メイン処理では、Ｓ１０４〜Ｓ１１１を、楽曲再生が終了する（Ｓ１１２：Ｙｅｓ）まで実行する。楽曲再生が終了した場合（Ｓ１１３：Ｙｅｓ）には、シーケンス処理の先頭に戻り、次に予約された楽曲に対する楽曲再生を開始する。
【００４２】
図６には、本実施形態のＰＣＭ生成処理を示すフロー図が示されている。このＰＣＭ生成処理は、シンセサイザ３０４によって実行される処理であって、リングバッファ２７ａから読み出したＭＩＤＩコマンド（ノートオン時のキー情報）と、キャッシュ２７ｂに事前に格納した波形情報と、現在のキー情報３０４ａを使用して実行される。ＰＣＭ生成処理では、まず、発音に必要なＭＩＤＩコマンド、キー情報、波形情報を示す発音情報の確認を行う（Ｓ１２０）。本実施形態では、確認対象となる発音情報のＭＩＤＩコマンドは、リングバッファ２７ａから読み出したＭＩＤＩコマンド、すなわち、これから発音開始するＭＩＤＩコマンドのみならず、現在、発音中のＭＩＤＩコマンドも対象としている。このように、現在、発音中のＭＩＤＩコマンドを確認の対象とすることで、発音中の楽音（ＰＣＭ情報）に対してもキー変更を行い、違和感の無い楽音を形成することが可能となっている。
【００４３】
Ｓ１２０の発音情報の確認では、これから発音開始するＭＩＤＩコマンド、そして、現在、発音中の波形情報を用いたＭＩＤＩコマンドについて、それに付帯しているキー情報と、シンセサイザ３０４に記憶しているキー情報３０４ａとを比較する。一致している場合（Ｓ１２１：Ｙｅｓ）、すなわち、ＭＩＤＩコマンドがリングバッファ２７ａ内にあるときに、キー変更指示が発生していない場合には、ＭＩＤＩコマンドの音高を使用して波形情報からＰＣＭ情報を形成する。例えば、図７（Ａ）で説明したように、ＭＩＤＩコマンド中の音高「１」、ベロシティ「３」の場合、波形情報Ｂを使用することになるが、波形情報Ｂの基準音高は「２」であるため、波形情報Ｂに対して「−１」の音高変換を行うことで、ＭＩＤＩコマンドの音高「１」に対応したＰＣＭ情報を形成する。この処理は、図４で説明した波形情報の分類を使用して行われる
【００４４】
一方、一致していない場合（Ｓ１２１：Ｎｏ）には、図４で説明した波形情報の分類とキー情報を使用して音高変換量の算出（Ｓ１２３）が行われる。これは、ＭＩＤＩコマンドの音高と、キャッシュ２７ｂに読み込んだ波形情報の関係が、キー変更が行われることで異なるために行われる処理である。図７（Ａ）について、キー変更指示があった場合を考えてみる。この例では、ＭＩＤＩコマンド中の音高「１」、ベロシティ「３」であり、キャッシュ２７ｂには、波形情報Ｂが読み込まれている。波形情報Ｂの読み込み後、「＋５」のキー変更指示を受けた場合、本来、図７（Ｃ）に示すように、音高「６（１＋５）」、ベロシティ「３」に対応する波形情報Ｅを使用して、「−１」の音高変換をかけることで、楽音が形成される。しかしながら、この場合、キャッシュ２７ｂに波形情報Ｅを新たに読み込む必要があり、波形情報Ｅが読み込まれるまでの期間、ＰＣＭ情報の形成が停止する、すなわち、楽音の進行が停止することになる。
【００４５】
本実施形態では、このような状況を避けるため、キー変更が行われた場合であっても、先に読み込んだ波形情報を使用してＰＣＭ情報を形成することとしている（Ｓ１２４）。図７（Ｂ）は、図７（Ａ）と同じ状況で、「＋５」のキー変更指示を受けた場合の例が示されている。図７（Ａ）と同様、キー変更後の音高は「６」となるが、先に読み込んだ波形情報Ｂを使用するため、波形情報Ｂの基準音高は「２」であるため、音高変換量は「＋４」と算出される。波形情報Ｂを算出した音高変換量「＋４」音高変換することで、キー変更後の音高「６」のＰＣＭ情報が形成される。キー変更指示が無い図７（Ｃ）の場合と比較して、音高変換量は大きくなるものの、楽音の進行を停止させることなくキー変更を行うことが可能となる。
【００４６】
図８、図９は、キー変更操作タイミングの違いによるキー変更例を説明するための図である。何れもＭＩＤＩコマンドは、発音開始を示すノートオンと発音終了を示すノートオフとで規定され、キー変更前の初期値は、音高「４」、ベロシティ「１２７」、音色「ピアノ１」である。この場合、図４の波形情報の分類上、波形情報Ｃが対応することになる。図８（Ａ）は、キー変更が行われない時の状況を示す図である。上にコマンドの先読み状況、下にＰＣＭ出力状況を示しており、右方向が時間の進行を示している。先読みしたＭＩＤＩコマンドは、リングバッファ２７ａに蓄積されることなどを理由として、ＰＣＭ情報として出力されるまでに遅延を有することになる。破線はＭＩＤＩコマンドの対応関係を示している。図８（Ａ）の場合、キー変更は行われていないため、ＭＩＤＩコマンドの先読み時にキャッシュに読み込んだ波形情報Ｃを使用して、音高「４」のＰＣＭ情報が形成される。
【００４７】
図８（Ｂ）は、ＭＩＤＩコマンドの先読み後、ＰＣＭ出力前にキー変更指示「＋３」が行われた場合の例である。発音時の音高は「７」となり、本来であれば、波形情報Ｆを使用するところ、シンセサイザ３０４は、キャッシュ２７ｂに読み込んだ波形情報Ｃをそのまま使用して、音高「７」、ベロシティ「１２７」のＰＣＭ情報を形成する。したがって、ＭＩＤＩコマンドに先読み後にキー変更指示が行われた場合であっても、楽曲の進行を停止させること無く、楽曲の進行を継続しつつキー変更を実行することが可能となる。
【００４８】
図９（Ｃ）は、ＭＩＤＩコマンドの先読み後、ＰＣＭ情報の出力期間中にキー変更指示「＋３」が行われた場合の例である。キー変更が行われるまでの期間は、キャッシュ２７ｂに読み込んだ波形情報Ｃを使用して、先読み時の音高「４」を有するＰＣＭ情報を形成する。キー変更が行われた後は、波形情報Ｃをそのまま使用して、キー変更後の音高「７」となるように音高変換してＰＣＭ情報を形成する。このように本実施形態では、発音中のＰＣＭ情報についても、波形情報を変更することなく、音高変換を行うことでキー変更に対処することで、楽曲の進行を継続しつつキー変更を実行することが可能である。
【００４９】
図９（Ｄ）は、ＭＩＤＩコマンドの先読み前にキー変更指示「＋３」が行われた場合の例である。この場合、ＭＩＤＩコマンド受信手段３０２は、キー変更指示に基づくキー情報が反映されたＭＩＤＩコマンドをリングバッファ２７ａに書き込む。また、波形読み出しスレッドは、キー情報が反映されたＭＩＤＩコマンドに対応する波形情報をハードディスク３２からキャッシュ２７ｂに読み込む。この場合、キー情報が反映されたＭＩＤＩコマンドは、音高「７」、ベロシティ「１２７」であるため、図４を参照し、波形情報Ｅがキャッシュ２７ｂに読み込まれる。シンセサイザ３０４は、波形情報Ｅに基づいて、音高「７」、ベロシティ「１２７」のＰＣＭ情報を形成する。この場合、図４の波形情報の分類に従って選択された波形情報Ｅに基づいてＰＣＭ情報が形成されるため、良好な演奏を行うことが可能となる。
【００５０】
なお、本実施形態の楽曲演奏装置は、カラオケ装置２のみならず、電子楽器など他の装置に適用することが可能である。あるいは、パソコン、スマートホンなどの携帯端末、ゲーム機などの各種コンピュータで実行可能な楽曲演奏用プログラムとして提供することも可能である。
【符号の説明】
【００５１】
１（１ａ、１ｂ）：リモコン装置             ２８：ビデオＲＡＭ
２：カラオケ装置                           ２９：映像再生部
５：サーバ装置                             ３０：ＣＰＵ
１１：タッチパネルモニタ                   ３１：映像制御部
１１ａ：表示部                             ３２：ハードディスク
１１ｂ：タッチパネル                       ３３：タッチパネルモニタ
１２：ビデオＲＡＭ                         ３４：タッチパネル
１３：映像制御部                           ３５：表示部
１４：メモリ                               ４１：モニタ
１５：ＣＰＵ                               ４２：スピーカ
１６：無線ＬＡＮ通信部                     ４４ａ、４４ｂ：マイクロホン
１７：操作部                               １１０：アクセスポイント
１８：操作処理部                           ３００：ＣＰＵ
２１：操作部                               ３０１：シーケンサ
２２：操作処理部                           ３０１ａ：ＭＩＤＩ管理手段
２４：ＬＡＮ通信部                         ３０１ｂ：ＰＣＭ管理手段
２５：音響制御部                           ３０２：ＭＩＤＩコマンド受信手段
２７：メモリ                               ３０２ａ：キー情報
２７ａ：リングバッファ                     ３０４：シンセサイザ
２７ｂ：キャッシュ                         ３０４ａ：キー情報
２７ｃ：バッファ                           ３０５：波形読み出しスレッド
【図１】
0006558077.tif 000002
【図２】
0006558077.tif 000003
【図３】
0006558077.tif 000004
【図４】
0006558077.tif 000005
【図５】
0006558077.tif 000006
【図６】
0006558077.tif 000007
【図７】
0006558077.tif 000008
【図８】
0006558077.tif 000009
【図９】
0006558077.tif 000010