本実施形態の楽曲演奏装置について、カラオケ装置2を例にとって説明する。図1は、本発明の実施形態に係るカラオケシステムの構成を示す図である。本実施形態におけるカラオケシステムは、カラオケ装置2(コマンダ)と、リモコン装置1を含んで構成されている。なお、図1に示す例では、1台のカラオケ装置2に対して、リモコン装置1aとリモコン装置1b、2台のリモコン装置1が使用されている例である。これらリモコン装置1a、1bの構成は同一であるため、リモコン装置1として説明を行う。カラオケ装置2とリモコン装置1は、LAN100及びアクセスポイント110を利用してネットワークを形成するように接続されている。
カラオケボックスなどの店舗に設置されるカラオケ装置2は、楽曲情報を再生することで歌唱の伴奏を行う装置である。カラオケ装置2は、各構成を統括して制御するためのCPU30、各種プログラムを実行するにあたって必要となる情報を一時記憶するためのメモリ27を備えている。本実施形態のカラオケ装置2は、ハードウェア音源ではなく、CPU30上で動作するソフトウェア音源を使用して楽曲の演奏を行う形態となっている。CPU30は、ハードディスク32等の記憶手段に記憶されている波形を読み出して、PCM情報を合成し、音響制御部25に出力する。音響制御部25では、合成されたPCM情報と、マイクロホン44a、44bから入力される歌唱音声情報とを加算してスピーカー42に出力する。
カラオケ装置2は、ユーザーからの各種入力を受け付ける操作部21を備える。カラオケ装置2は、操作部21からの入力を解釈してCPU30に伝達する操作処理部22を備える。また、カラオケ装置2は、各種情報を記憶する記憶部としてのハードディスク32(第1記憶手段)を備える。カラオケ装置2は、LAN100に接続してネットワークに加入する通信手段としてのLAN通信部24を備えている。
また、カラオケ装置2は、モニタ41に対して歌詞映像、背景映像を表示させる映像再生手段を備える。この映像再生手段は、映像情報に基づいて映像を再生する映像再生部29、再生する映像を一時的に蓄積するビデオRAM28、再生された映像に対する歌詞テロップの重畳、映像効果を付与する映像制御部31を備えて構成される。
さらに、このカラオケ装置2では、外部に接続されるモニタ41以外に、タッチパネルモニタ33に対して各種情報を表示することを可能としている。タッチパネルモニタ33は映像制御部31から入力された映像情報を表示する表示部35と、タッチ入力された位置を操作処理部22に出力するタッチパネル34が重畳されて構成されている。このタッチパネルモニタ33は、カラオケ装置2の操作部、あるいは、リモコン装置1のタッチパネルモニタ11などと同様、入力部として機能する。ユーザーは、タッチパネルモニタ33にて楽曲を選択することで、直接、カラオケ装置2に予約をさせるなど、カラオケ装置2に対する各種操作を行うことが可能である。
このような構成にてカラオケ装置2は、各種処理を実行することとなるが、カラオケ装置2の主な機能として、楽曲予約処理、楽曲再生処理などを実行可能としている。楽曲予約処理は、ユーザーからの指定に基づいて楽曲を指定、予約するための処理であってリモコン装置1と連携して実行される。ユーザーの操作により、リモコン装置1などの入力部で指定された予約情報をメモリ27中の予約テーブルに登録する。楽曲再生処理は、予約された楽曲を再生させる処理であって、演奏処理と歌詞再生処理とが同期して実行される処理である。
演奏処理は、楽曲情報に含まれる演奏情報に基づいて演奏を行う処理である。本実施形態では、CPU30、メモリ27等の制御手段を使用して演奏を行うソフトウェア音源の形態を採用している。なお、ソフトウェア音源に対し、波形合成の専用チップを使用するような形態の音源はハードウェア音源と呼ばれる。ソフトウェア音源としての制御手段で合成されたPCM情報は、音響制御部25で合成され、マイクロホン44a、44bから入力される歌唱音声と一緒にスピーカー42から放音される。歌詞再生処理は、楽曲情報に含まれる歌詞情報をモニタ41に表示させることで歌唱補助を行う処理である。この歌詞再生処理で表示される歌詞に、背景映像を重畳させて表示させる背景映像表示処理を実行することとしてもよい。
一方、リモコン装置1は、歌唱する楽曲を選択する選曲処理を実行可能とし、予約情報などカラオケ装置2に対して各種指示を送信可能としている。また、リモコン装置1は、カラオケ装置2あるいはインターネット上に接続されたサーバー装置5から各種情報を受信し、ユーザーに対して各種情報を提供することも可能である。本実施形態では、ユーザーから各種指示を受け付けるユーザインターフェイスとして、操作部17と、タッチパネルモニタ11を備えている。タッチパネルモニタ11は、表示部11aとタッチパネル11bを有して構成され、表示部11aに各種インターフェイスを表示するとともに、ユーザーからのタッチ入力を受付可能としている。
さらにリモコン装置1は、楽曲検索に必要とされるデータベース、各種プログラム、並びに、プログラム実行に伴って発生する各種情報を記憶する記憶部として、メモリ14、そして、これら構成を統括して制御するためのリモコン側制御部を備えて構成される。リモコン側制御部には、CPU15、タッチパネルモニタ11に対して表示する映像を形成する映像制御部13、表示する映像情報を一時的に蓄えるビデオRAM12、タッチパネルモニタ11あるいは操作部17からの入力を解釈してCPU15に伝える操作処理部18が含まれている。
また、リモコン装置1は、無線LAN通信部16によって、アクセスポイント110と無線接続されることで、LAN100によって構成されるネットワークに接続される。なお、各リモコン装置1は、特定のカラオケ装置2に対して事前に対応付けされている。リモコン装置1から出力される各種命令は、対応付けされたカラオケ装置2にて受信される。
このようなリモコン装置1の構成により、ユーザーからの各種入力をタッチパネルモニタ11、あるいは、操作部17から受付けるとともに、映像情報をタッチパネルモニタ11に表示することで、カラオケ装置2に対して楽曲予約などの各種指示を行うことが可能とされている。
図2は、カラオケ装置2で使用する各種データ構成を示す図である。図2(A)に示される楽曲情報は、楽曲情報に関連する各種情報であるメタ情報と、演奏等、各種処理を実行する実情報を含んで構成される。メタ情報には、楽曲情報を識別するための楽曲識別情報(楽曲ID)、楽曲名、歌手名などの楽曲関連情報が含まれている。
楽曲情報の実情報には、演奏情報、歌詞情報が含まれている。演奏情報は、MIDI規格に基づいて音源を制御する制御情報を含んで構成された、カラオケの伴奏音を演奏するための情報である。歌詞情報は、歌唱補助のため、演奏情報に同期して表示される情報であり、演奏に同期して表示された歌詞の色替えを行うように構成することも可能である。
図2(B)は、演奏に使用する波形情報のデータ構成を示す図である。本実施形態の波形情報は、楽曲ID等、波形情報に関する情報からなるメタ情報と、実際に音を形成するための実情報である圧縮波形情報を含んで構成されている。波形IDは、音色IDと音質フラグの組み合わせで構成されている。本実施形態では2種類の音質を使用することとしており、「0」は低音質、「1」は高音質の圧縮波形情報であることを規定している。図3は、同じ音色であって音質の異なる波形情報のデータ構成例を説明する図である。図2(a)、図2(b)どちらも同じ音色(ピアノ)の波形情報であって、図2(a)は、低音質波形情報のデータ構成であり、図2(b)は、高音質波形情報のデータ構成である。図中、圧縮波形情報の横方向の長さは、情報量の大きさに対応しており、高音質波形情報の情報量は、低音質波形情報の情報量よりも大きくなっている。これは、圧縮方式、サンプリングレート、ビットレートの違い等に基づくものである。
本実施形態のカラオケ装置2は、全ての音色について、低音質波形情報をハードディスク32に予め記憶しておくことで、楽曲の演奏に対応することを可能としている。また、高音質波形情報はサーバー装置5(本発明の「外部装置」に相当)の記憶部51に記憶しておく。カラオケ装置2は、高音質波形情報が楽曲演奏に必要と判断した場合、サーバー装置5から高音質波形情報を受信し、低音質波形情報に差し替えて演奏を行う。このような構成により、カラオケ装置2のハードディスク32には、比較的情報量の少ない低音質波形情報を記憶しておくことで足りるため、ハードディスク32での波形情報の使用容量を抑えることを可能としている。
また、波形情報のメタ情報には、音圧情報が規定されている。音圧情報は圧縮波形情報を再生したときの音圧を示す指標値である。演奏情報に基づく演奏では、演奏情報中、音量を指定するコマンド(ベロシティ)によって音圧は変化するため、音圧情報とベロシティを演算(乗算)することで、演奏時の音圧(演奏時音圧)が算出される。
図4は、本実施形態の予約処理を示すフロー図である。ここではリモコン装置1を使用した予約処理について説明を行う。なお、予約処理は、カラオケ装置2側のタッチパネルモニタ33を使用してカラオケ装置2で行うことも可能である。リモコン装置1を使用した予約処理では、タッチパネルモニタ11を使用してユーザーによる選曲を受け付ける(S101)。ユーザーが歌唱したい1の楽曲を選択した場合、タッチパネルモニタ11には、楽曲確認画面が表示される(S102)。
図5は、本実施形態の楽曲確認画面を示した図である。本実施形態のカラオケシステムは、事前登録したユーザーがログインして使用することが可能となっている。タッチパネルモニタ11の情報には、カラオケシステムにログインしているユーザーの分身像103a〜103e(本実施形態では顔部分)が表示される。またログインユーザー欄103中、右端に背景がハイライト(白色)で示されるユーザーは、アクティブユーザー103e(この例ではAさん)であって、アクティブユーザー103eに対するサービス、すなわち、アクティブユーザー103eのユーザー情報を利用したサービスが実行されている状態となっている。アクティブユーザーの切り替えは、ユーザー切り替えボタン101を操作することで行うことが可能である。また、ユーザー登録していないユーザーは、ゲストボタン102を操作することで、ゲストユーザーとしてカラオケシステムを使用することが可能である。
楽曲確認画面には、歌手名、曲名、歌い出し等の楽曲関連情報が表示されており、ユーザーはこれら楽曲関連情報を参照して、自分が歌唱したい楽曲に間違いないか否かを確認することができる。また、この楽曲確認画面には、音程設定欄107が設けられており、ユーザーは音程設定欄107の右下に表示されている「変更」ボタンを操作することで、演奏時の音程を変更することが可能となっている。ユーザーは歌唱したい楽曲の確認、また、音程設定欄107を使用した音程設定を行った後、予約ボタン106を操作する(S103:Yes)ことでカラオケ装置2に楽曲を予約する(S103)。その際、リモコン装置1は、カラオケ装置2に対して予約情報を送信する(S104)。予約情報は、予約する楽曲を識別するための楽曲ID、予約を行ったユーザー(アクティブユーザー)を識別するためのユーザーID、音程設定欄107で設定された音程値等を含んで構成されている。
カラオケ装置2は、受信した予約情報を予約テーブルに登録し、楽曲再生処理を実行する。楽曲の予約後、カラオケ装置2は予約された楽曲について、サーバー装置5から高音質波形情報を受信する波形取得処理を実行する。図3で説明したように、本実施形態のカラオケ装置2は、低音質波形情報を記憶しており、必要とされる高音質波形情報をサーバー装置5から受信して使用することとしている。楽曲の演奏時、全ての波形情報を高音質波形情報とすることで、演奏の音圧は向上するものの、カラオケ装置2のハードディスク32を切迫させることになる。また、必要とされる全ての高音質波形情報をサーバー装置5から受信する場合には、受信に時間がかかることになり、楽曲の演奏開始が遅れることが考えられる。本実施形態の波形取得処理では、演奏時、大きい音圧の音が、人間の聴感上際立って聞こえることに着目し、演奏時の音圧の大きさに基づいて、高音質波形情報をサーバー装置5から受信することとしている。
図6は、本実施形態の波形取得処理を示すフロー図である。波形取得処理では、まず、予約された楽曲で使用する全ての波形情報について演奏時音圧を算出する(S201)。本実施形態では、波形情報に規定されている音圧情報と、演奏情報中、音量を規定するコマンド(ベロシティ)を演算(乗算)することで、演奏時の音圧(演奏時音圧)を算出している。なお、演奏中には、異なる音量で複数回、波形情報を使用することが考えられるが、本実施形態では、楽曲情報中、各波形情報に対する最大音量(最も大きいベロシティ値)を使用して演奏時音圧を演算している。なお、演奏時音圧の演算に使用する音量は、このように最大音量を使用する形態に代え、各波形情報に対する音量を積算した上で、演奏時間長で正規化したものを使用する等、各種形態を採用することが可能である。
演奏時音圧の演算に基づいて、演奏時に使用する波形情報について差し替え優先度を決定する(S202)。図7は、演奏時音圧の演算、並びに、演算に基づいて決定された差し替え優先度を規定した差し替え優先度テーブルである。差し替え優先度テーブル中、理解を容易にするため、波形情報IDは音色名(楽器名)で記載している。各波形情報IDについて、音圧情報と音量(ベロシティ)を使用した演奏時音圧が算出される。この演奏時音圧の大きい順に付与されるのが差し替え優先度である。本実施形態の波形取得処理では、高音質波形情報を、差し替え優先度に従ってサーバー装置5から受信する。
サーバー装置5から高波形情報を受信するにあたって、まず、受信対象となる差し替え優先度を示すカウンタ値iを初期化(1に設定)する(S203)。例えば、図7の差し替え優先度テーブルでは、波形情報ID(ピアノ)の高音質波形情報が受信対象として指定されることになる。ところで、この高音質波形情報は、前に演奏した楽曲で既に受信済みとなっている場合がある。ハードディスク32内にこの高音質波形情報がある場合(S204:Yes)には、カウンタ値iを1だけインクリメントして、受信対象とする高音質波形情報を変更する。一方、ハードディスク32内に高音質波形情報が無い場合(S204:No)には、サーバー装置5に対して受信対象(差し替え優先度がi番目)となっている高音質波形情報を要求する(S205)。
要求した高音質波形情報が受信完了した場合、カウンタ値iを1だけインクリメントして、受信対象とする高音質波形情報を変更する。また、本実施形態の波形取得処理は、次の3条件の何れかが満たされたことを条件として処理を終了する。この3条件とは、(
)ハードディスク32が記憶容量不足となったこと(S206:Yes)、(2)予約楽曲の演奏開始タイミングが到来したこと(S207:Yes)、(3)受信対象となる高音質波形情報を全て受信したこと(S209:Yes)である。(2)の条件で規定されるように、本実施形態の波形取得処理では、予約楽曲が演奏開始されるまで、必要な高音質波形情報の取得を行うことが可能となっている。
本実施形態では、演奏開始されるまで差し替え優先度の順に高音質波形情報をサーバー装置5から受信する形態としているが、高音質波形情報の受信順は各種形態を採用することが可能である。例えば、差し替え優先度が高い所定数の高音質波形情報を受信対象としてもよい。この場合、対象となる高音質波形情報の受信順は、必ずしも差し替え優先度に従う必要は無く、例えば、高音質波形情報の容量が小さい順に行うこととしてもよい。その際、図6の波形取得処理のように、演奏開始タイミングが到来したことを条件として波形取得処理を中断することとしてもよいし、受信対象となる高音質波形情報を全て受信したことを条件として演奏を開始することとしてもよい。
では、本実施形態のカラオケ装置2において波形情報を使用した演奏を行うソフトウェア音源について、その構成、及び、演奏処理について説明する。図8は、本実施形態のソフトウェア音源構成を示すブロック図である。ソフトウェア音源は、図1で説明したカラオケ装置2中のCPU300、メモリ27等の制御手段、そして、ソフトウェア音源を実現するためのプログラムを使用して実現される。
CPU300は、シーケンサ301、MIDIコマンド受信手段302、シンセサイザ304、波形読み出しスレッド305といった機能を受け持つ。シーケンサ301は、演奏情報を構成するMIDIコマンドをハードディスク32から読み出し、合成波形としてのPCM情報を音響制御部25に出力する機能を有する。MIDIコマンドに応じて生成されたPCM情報は、音響制御部25からスピーカー42へ出力することで演奏情報は演奏音となって楽曲情報が再生されることとなる。このシーケンサ301は、MIDIコマンドの入力を管理するMIDI管理手段301aと、PCM情報の出力を管理するPCM管理手段301b、PCM情報を蓄積するバッファ27cを有して構成される。なお、紙面の都合上、バッファ27cはCPU300内に位置しているが、メモリ27など、CPU300の外部に設けられた記憶手段を使用することが一般的である。バッファ27cは、蓄積しているPCM情報を、所定のサンプリングレートに従って、音響制御部25に出力する。PCM管理手段301bは、バッファ27c内のPCM情報の蓄積量を監視し、PCM情報が必要になった場合、シンセサイザ304にPCM生成指示を出力する(丸4)。
MIDIコマンド受信手段302は、シーケンサ301から送信(丸1)されたMIDIコマンドを受信し、受信したMIDIコマンドをメモリ27内の一部領域を使用して形成されたリングバッファ27a(一時記憶手段)に格納する格納処理を実行する(丸2)。なお、MIDIコマンド受信手段302は、MIDIコマンドを受信した場合、確認の意を有する応答信号をMIDI管理手段301aに返信する(丸3)。
また、MIDIコマンド受信手段302は、リングバッファ27aに記憶させるMIDIコマンドが、ノートオンのような発音開始指示の場合、波形読み出しスレッド305に対し、発音に必要となる波形情報を、二次記憶手段としてのハードディスク32(第1記憶手段)から、一次記憶手段としてのキャッシュ27b(第2記憶手段)に読み出させる。本実施形態では、同じ音色について、高音質波形情報と低音質波形情報の2種類があり、両方、ハードディスク32に記憶されている場合があるが、その場合には、高音質波形情報が優先してキャッシュ27bに読み出される。CPU300は、直接アクセス可能なキャッシュ27bから、事前に記憶させた波形情報を読み出して、シンセサイザ304にてPCM情報を生成することが可能となる。
シンセサイザ304は、リングバッファ27aに記憶されたMIDIコマンドに記述されたイベントデータEVをデルタタイムDTに基づいて取り出し(丸7)、キャッシュ27bに蓄積した波形情報を読み出してPCM情報を合成し(丸8)、PCM情報を出力する(丸10)機能を有する。また、シンセサイザ304は、DSP機能を有しており、波形情報に対して各種音響効果を付与する(丸9)ことが可能である。
図5の楽曲確認画面で説明したように、カラオケ装置2では、歌唱者が歌い易いように自分の音域に合わせて音程設定(キー変更)すること可能である。本実施形態のカラオケ装置2も、歌唱者等のユーザーの操作に応じてキー変更を行うことが可能である。キー変更は、楽曲確認画面での設定のみならず、演奏中、カラオケ装置2の操作部21やタッチパネルモニタ33、あるいは、リモコン装置1の操作部17やタッチパネルモニタ11等、各種入力手段を操作することで行うことも可能である。これら入力手段から入力されたキー変更指示は、シーケンサ301に伝達され、シーケンサ301はMIDIコマンドにキー変更を反映すると共に、MIDIコマンド受信手段302と、シンセサイザ304内にキー情報を格納する。
シーケンサ301によるMIDIコマンドにキー変更の反映について、キー変更指示により、シーケンサ301のMIDI管理手段301aから、MIDIコマンド受信手段302(キー情報302a)にキー情報が格納される。そして、MIDIコマンド受信手段302は、シーケンサ301からMIDI送信されたMIDIコマンドをメモリ27内の一部領域を使用して形成されたリングバッファ27aに格納するときに、キー情報302aを用いて、キー情報を反映したMIDIコマンドを格納する(丸2)。
次に、本実施形態のカラオケ装置2で実行する楽曲再生処理について、その詳細を説明する。楽曲再生処理は、シーケンサ301で実行するシーケンス処理と、シンセサイザ304にて実行するPCM生成処理を含んで構成される。図9は、楽曲再生時のシーケンス処理を示すフロー図である。図1のカラオケシステムにおいて、リモコン装置1から送信された予約情報は、カラオケ装置2のメモリ27で管理する予約テーブルに順次記憶される。カラオケ装置2は、予約テーブルのチェックを行い(S301)、次に再生すべき再生の楽曲があると判定された場合(S302:Yes)、ハードディスク32から、予約情報中に規定された楽曲情報についてMIDIコマンドの読み出しを開始する(S303)。楽曲情報中の演奏情報に規定されるMIDIコマンドが、リングバッファ27aに読み出される。その際、波形読み出しスレッド305は、当該MIDIコマンドに対応する音色の波形情報をハードディスク32からキャッシュ27bに読み出す。
楽曲の再生開始後、ユーザーからの操作入力に基づき、キー変更指示があった場合(S304:Yes)、シーケンサ301内のMIDI管理手段301aは、MIDIコマンド受信手段302とシンセサイザ304内のキー情報302a、304aを指示されたキー情報に書き換える。本実施形態では、キー情報302a、304aは、MIDIコマンド受信手段302、シンセサイザ304それぞれに記憶されるが、1つのキー情報の記憶領域(具体的にはメモリ)を用意し、MIDIコマンド受信手段302、シンセサイザ304それぞれが、共通のキー情報の記憶領域をアクセスしてもよい。以後、MIDIコマンド受信手段は、書き換えられたキー情報302aに基づいて、波形情報の読み出しを行い、シンセサイザ304は、書き換えられたキー情報304aに基づいてPCM情報の形成を行う。各処理の詳細については、後で詳しく説明を行う。
シーケンサ301は、所定量(ここでは1tick分)のMIDIコマンドを読み出しの終了を判定し(S306)、読み出しが終了した場合(S306:Yes)には、シンセサイザ304に対してPCM情報の形成指示を出力する(S311、図8の丸4)。一方、読み出しが終了していない場合(S306:No)には、ハードディスク32からMIDIコマンドの読み出しを行う(S307)。そして、MIDIコマンドがノートオン、ノートオフ等、音高に関する指示の場合(S308:Yes)、MIDIコマンドにキー情報を反映させる(S309)。例えば、MIDIコマンド中の音高が「4」、キー情報が「+3」の場合、キー情報の反映されたMIDIコマンドの音高は「7」となる。キー情報の反映されたMIDIコマンドは、MIDIコマンド受信手段302に送信(S310)され、リングバッファ27aに書き込まれる。
シーケンス処理では、S304〜S311を、楽曲再生が終了する(S312:Yes)まで実行する。楽曲再生が終了した場合(S313:Yes)には、シーケンス処理の先頭に戻り、次に予約された楽曲に対する楽曲再生を開始する。
以上、本発明に係る楽曲演奏装置についてカラオケ装置2を例に取って説明したが、本発明に係る楽曲演奏装置では、演奏を行うために選択された楽曲について、高音質の波形情報を外部装置としてのサーバー装置5から取得して再生を行うため、楽曲演奏装置において高音質な波形情報を予め記憶しておく必要が無く、楽曲演奏装置における記憶容量の削減を図ることが可能となる。特に、スマートホン等、記憶容量が限られた情報処理装置においても、本発明に係る楽曲演奏用プログラムを使用することで、高音質な演奏を行うことが可能となる。
前述の実施形態では、1つの音色に対し1つの波形情報を使用する形態を例に取って説明したが、音響制御部25で扱う波形情報は、1つの音色に対して複数の波形情報を使用する場合がある。1つの音色中、音高、音量(ベロシティ)に対応する波形情報を用意しておくことで、音高、音量に対応した波形情報を読み出して演奏し、高音質な演奏を行うことが可能となる。
図10は、このように1つの音色について複数の波形情報を使用する波形情報の分類例を示す図であって、音色「ピアノ」についての波形情報の分類例を示す図である。MIDIコマンドで指定される音高は「0」から「127」であって、この例では「0」〜「4」、「5」〜「9」を所定の区切りとして扱い、各区切りには、「0」〜「127」の大きさを割り当てたベロシティが割り当てられている。このベロシティに対応して波形情報が割り当てられている。波形読み出しスレッド305にて、波形情報を読み出す場合、この分類を参照し、MIDIコマンド中の音高、ベロシティに対応する波形情報が読み出される。例えば、音高「1」、ベロシティ「3」の場合、波形情報Bが読み出されることになる。また、各波形情報には、基準音高が割り当てられており、この例では、音高の区切り毎に基準音高が規定されている。音高中、斜線で示す箇所が基準音高に該当し、例えば、音高「0」〜「4」の区切りについてみると、この区切り内に属する波形情報A〜波形情報Cは、基準音高「2」が規定されている。また、音高「5」〜「9」の区切りに対応する波形情報D〜波形情報Fには、基準音高「7」が規定されている。
ところで、図5で説明した楽曲確認画面では、音程設定欄107を使用して、演奏する楽曲の音程(キー)を変更することが可能である。図10で説明したように演奏する音高で使用する波形情報が変更される場合、波形取得処理では、設定された音程(キー)を考慮して、差し替え優先度を決定するとともに、高音質波形情報を取得することが好ましい。具体的には、演奏情報中、音高を規定したMIDIコマンドに対し、音程設定欄107で設定したキー情報が反映される。波形取得処理では、キー情報が反映された演奏情報に基づいて、波形情報の差し替え優先度を決定するとともに、高音質波形情報をサーバー装置5から取得する。このような構成により、演奏する楽曲が事前に音程(キー)変更された場合であっても使用上適切な波形情報について、高音質波形情報に変更して演奏することが可能となる。
また、前述の実施形態では、予約された楽曲について、当該楽曲が演奏開始されるまでの期間において波形取得処理を実行することとしているが、波形取得処理には各種形態を採用することが可能である。図11は、他の実施形態の波形取得処理を示すフロー図であり、図12は、他の実施形態の差し替え優先度テーブルを示す図である。この実施形態の波形取得処理は、演奏小節単位で差し替え優先度を決定し、演奏中においても当該演奏小節が到来する期間まで、高音質波形情報の取得を行うこととしている。なお、異なる演奏小節間には、同じ音色(波形情報ID)が存在しても構わない。ある波形情報が取得できなかった場合、次の演奏小節では取得できる可能性があるからである。
波形取得処理が開始すると、予約楽曲で使用する波形情報について演奏時音圧が算出される(S251)。この場合、演奏小節単位で演奏時音圧が算出される。そして、各演奏小節内で差し替え優先度が決定される(S252)。図12は、各演奏小節において差し替え優先度で並べ替えた差し替え優先度テーブルが示されている。演奏時音圧の算出は、前実施形態と同様であって、波形情報中に規定された音圧情報に、各演奏小節中、音量を規定するコマンド(ベロシティ)を演算(乗算)することで行われる。
次に、高音質波形情報の取得対象とする演奏小節nを初期化(1に設定)する(S253)。また、受信対象となる差し替え優先度を示すカウンタ値iを初期化(1に設定)する(S254)。S255〜S261のループでは、ある演奏小節nについて、高音質波形情報の取得が行われる。i番目の高音質波形情報が既にハードディスク32に記憶されている場合(S255:Yes)には、カウンタ値iを1だけインクリメント(S260)して、受信対象とする高音質波形情報を変更する。この実施形態では、ハードディスク32が記憶容量不足になったこと(S257:Yes)は波形取得処理を終了する。また、演奏小節nの演奏開始タイミングが到来した場合(S258:Yes)、あるいは、演奏小節内において受信対象としている全ての高音質波形情報を取得した場合(S261:Yes)には、取得対象とする演奏小節nを1だけインクリメント(S263)して、次の演奏小節n+1が波形取得対象とし、S255〜S261のループを実行する。
このように図11、図12で説明した他の実施形態では、楽曲が予約されてから波形情報が使用される演奏小節が開始されるまでの期間に波形取得処理を行うこととしており、演奏開始まで高音質波形情報を取得する前述の実施形態よりも高音質波形情報の取得にあてる期間を長くすることが可能となる。なお、波形取得処理における差し替え優先度の決定、高音質波形情報を取得する期間の単位は、1演奏小節毎とすることに代え、複数演奏小節としてもよい。あるいは、1演奏小節よりも細かい単位としてもよく、波形情報が使用される直前まで行うこととしてもよい。
また、本発明の楽曲演奏装置において、演奏時音圧(本発明における「音圧関連情報」)の算出は、図7、図12で説明したように波形情報中に規定されている音圧情報と、演奏情報中に規定された音量(ベロシティ)を用いて行うこととしているが、音圧情報、音量(ベロシティ)のどちらか一方とする、あるいは、少なくともどちらか一方を用いて算出する形態としてもよい。音圧関連情報(演奏時音圧)の計算を簡略化することが可能となる。例えば、波形情報中に規定された音圧情報のみを使用する場合、仮想的な音量(ベロシティ)と演算(乗算)することで、仮想的な演奏時音圧を求め、差し替え優先度の決定に使用することが考えられる。あるいは、演奏情報に規定された音量(ベロシティ)を使用する場合、各音色について仮想的に規定した音圧情報と演算(乗算)することで仮想的な演奏時音圧を求め、差し替え優先度の決定に使用することが考えられる。その際、音圧情報は楽器の種類などを考慮して仮想的に規定することが好ましい。
また、本実施形態では、サーバー装置5を店舗外に設置し、カラオケ装置2はインターネットを経由してサーバー装置5にアクセスすることとしているが、サーバー装置5は店舗内のLAN100に接続される形態であってもよい。あるいは、波形情報を記憶する外部装置には、サーバー装置に代えて、他のカラオケ装置2を使用することとしてもよい。店舗に設置された複数台のカラオケ装置2中、1台が波形情報を記憶する外部装置として機能することで、他のカラオケ装置2のハードディスク32の記憶容量を抑えることが可能となる。あるいは、カラオケ装置2間で相互に波形情報を使用できる形態とすることとしてもよい。
なお、本実施形態の楽曲演奏装置は、カラオケ装置2のみならず、電子楽器など他の装置に適用することが可能である。あるいは、パソコン、スマートホンなどの携帯端末、ゲーム機などの各種コンピュータで実行可能な楽曲演奏用プログラムとして提供することも可能である。