図1はカラオケ店舗の機器配置を説明する図である。このカラオケ店舗には、この発明の実施形態であるカラオケ装置およびリモコンが複数台設置されている。センタ1は、インターネット2を介してカラオケ店舗3のルータ4に接続されている。カラオケ店舗3には、店舗内のLAN5を介してルータ4、管理装置6、複数台のカラオケ装置7が接続されている。
ルータ4および管理装置6は、カラオケ店舗の管理室内に設置される。複数台のカラオケ装置7は、それぞれ個室(カラオケボックス)に1台ずつ設置される。また、リモコン9は、各個室に1台ないし複数台が設置される。
センタ1は、楽曲データファイルや各楽曲データファイルの拡張データ等を蓄積記憶している。各カラオケ装置7は、LAN5、ルータ4およびインターネット2を介してセンタ1にアクセスし、楽曲データファイルのダウンロードや各楽曲データファイルと対応する拡張データのダウンロード等の通信を行う。拡張データは、後に詳しく述べるが、カラオケ曲の演奏時に表示される歌詞テロップを種々の態様に切り換えるためのデータである。
管理装置6は、このカラオケ店舗3の係員が操作する端末装置であり、各カラオケ装置7(個室)の利用時間の管理や、各個室からの飲食物等の注文を受け付ける。
リモコン9は、ユーザがカラオケ曲をリクエストするためのリクエスト機能を有しており、本実施形態においてはカラオケ装置7によるカラオケ曲の演奏中に表示される歌詞のルビ表示のオン/オフを指示するルビボタン9A(図2参照)と、そのカラオケ曲の歌詞の表示態様を変更指示する歌詞変更ボタン9Bを備えている。
各個室に設置されたリモコン9は、その個室に設置されているカラオケ装置7と通信する。ユーザがそのリモコン9を操作して行ったリクエストは、カラオケ装置7に送信され、カラオケ装置7は、受信したリクエストのカラオケ曲を演奏する。
図2は各個室に設置されるカラオケ装置7のブロック図である。カラオケ装置7は、装置全体の動作を制御するCPU10と、このCPU10に接続された各種機器で構成されている。CPU10には、HDD11、RAM12、音源13、ミキサ(エフェクタ)14、MPEGデコーダ20、合成回路21、操作部23、LANインタフェース24、赤外線通信部25等が接続されている。
HDD11は、カラオケ曲を演奏するための楽曲データファイル、モニタ22に背景映像として表示するための映像データ、および各楽曲データファイルに対応する拡張データを記憶している。映像データは動画、静止画の両方を記憶している。拡張データは、カラオケ曲の演奏中に多彩な歌詞テロップを表示するためのデータである。詳細は後述する。
RAM12には、プログラムを実行するために読み出すエリア、カラオケ曲を演奏するために楽曲データファイルを読み出すエリア、拡張データを読み出すエリアなどが設定される。
CPU10は、HDD11に記憶されているプログラムに基づいて、シーケンサ30、背景映像再生処理33、および操作入力処理34等の処理を実行する。シーケンサ30は、曲シーケンサ31、歌詞シーケンサ32からなっている。
曲シーケンサ31は、HDD11に記憶されている楽曲データファイルに基づいてカラオケ曲の演奏を実行するプログラムである。楽曲データファイルは図3に示すような構成をしており、カラオケ曲の楽音を発生するための楽音トラック、カラオケ曲の歌詞テロップを表示するための歌詞トラック、およびガイドメロディを発生するためのガイドメロディトラックからなる1つのデータファイルで構成されている。なお、ガイドメロディトラックは、カラオケ曲に必須の構成要素ではなく、楽曲データファイルは楽音トラックと歌詞トラックからなるデータファイルであってもよい。曲シーケンサ31は、このうちの楽音トラックやガイドメロディトラック等のデータに基づいて音源13を制御し、カラオケ曲の楽音を発生する。また、歌詞シーケンサ32は、歌詞トラックに基づいてモニタ22に歌詞テロップを表示するためのプログラムである。歌詞シーケンサ32は、図3に示す楽曲データファイルのうち、図4に示す歌詞トラックに基づいて曲の進行に同期して歌詞の文字パターンを合成し、この文字パターンを映像信号に変換して合成回路21に入力する。
音源13は、曲シーケンサ31の処理によってCPU10から入力されたデータ(楽音トラックやガイドメロディトラックのノートイベントデータ)に応じて楽音信号を形成する。形成した楽音信号はミキサ14に入力される。ミキサ14は、音源13が発生した複数の楽音信号、および、マイク17−A/Dコンバータ18を介して入力された歌唱者の歌唱音声信号に対してエコーなどの効果を付与するとともに、これらの信号を適当なバランスでミキシングする。ミキシングされたデジタルの音声信号はサウンドシステム15に入力される。サウンドシステム15はD/Aコンバータおよびパワーアンプを備えており、入力されたデジタル信号をアナログ信号に変換して増幅し、スピーカ16から放音する。ミキサ14が各音声信号に付与する効果およびミキシングのバランスはCPU10によって制御される。
背景映像再生処理33は、上記シーケンサ30による楽音の発生、歌詞テロップの生成と同期して、HDD11に記憶されている映像データ41を読み出して背景映像を再生する。動画の映像データは、MPEG2形式にエンコードされている。背景映像再生処理33は、読み出した映像データをMPEGデコーダ20に入力する。MPEGデコーダ20は、入力されたMPEGデータをNTSCの映像信号に変換して合成回路21に入力する。合成回路21には、背景映像の映像信号以外に上記歌詞テロップの文字パターン等が入力される。合成回路21は、背景映像の映像信号の上に歌詞テロップなどのOSDを合成してモニタ22に出力する。モニタ22は、合成回路21から入力された映像信号を表示する。
操作部23は、操作パネル面に設けられた各種のキースイッチおよびこのキースイッチの操作を検出するパネルスイッチインタフェースを有している。
また、LANインタフェース24は、LAN5を介した通信を制御するためのインタフェースである。カラオケ装置7は、LAN5を介してセンタ1、管理装置6と通信する。
また、赤外線通信部25は、リモコン9から赤外線信号を受信する回路である。この赤外線通信部25を介してリモコン9からの操作を受け付ける。
なお、赤外線通信部25に代えて、LAN5を介してリモコン9からの操作を受け付けることも可能である。この場合、図1に示すLAN5に複数台の無線アクセスポイントを接続し、無線アクセスポイントを介した無線通信によってリモコン9がLAN5に接続される構成とすればよい。各個室に設置されたリモコン9は、店員の操作によってその個室に設置されているカラオケ装置7と対応づけられるものとする。
カラオケ装置7の操作パネル面には、曲番号を入力するためのテンキー、曲のテンポを変更するためのテンポコントロールスイッチ、曲を早送り、巻き戻しするための早送りスイッチ、巻き戻しスイッチ、および、曲を移調するためのキーコントロールスイッチ等が設けられている。
また、リモコン9は、ルビボタン9Aおよび歌詞変更ボタン9Bを有しており、さらに曲番号を入力するためのテンキー等も備えている。また、曲の演奏前および演奏中に曲のテンポを変更するためのテンポコントロールスイッチ、曲を早送り、巻き戻しするための早送りスイッチ、巻き戻しスイッチ、および、曲を移調するためのキーコントロールスイッチ等も備えている。なお、これらのボタン、スイッチは、リモコン9にLCDとタッチパネルを備え、LCDに表示されるボタン、スイッチで実現してもよい。
操作部23は、パネルスイッチが操作されたことを検出して対応する操作信号をCPU10に出力する。
また、リモコン9は、ルビボタン9A、歌詞変更ボタン9B等の各種スイッチ操作を検出し、この操作に対応する操作信号を赤外線通信でカラオケ装置7に送信する。赤外線通信部25は、リモコン9から受信した操作信号をCPU10に入力する。
CPU10は、操作部23または赤外線通信部25から入力された操作信号に基づいて対応する処理を実行する。
たとえば、パネルスイッチやリモコン9からリクエストの曲番号が入力されると、この曲番号がシーケンサ30に入力され、各プログラムは以下の処理を実行する。
シーケンサ30は、これに応じて、この曲番号で識別されるカラオケ曲の曲データファイルをHDD11の曲データ記憶エリア40から読み出し、RAM12上に展開する。このときシーケンサ30は、展開したエリアの所在(展開したアドレス)を記載したリンクリストをRAM12に一時作成する。曲シーケンサ31はこのリンクリストを参照することで各トラックの所在を確認し、曲データファイル中の楽音トラック、ガイドメロディトラックなどのトラックのデータを読み出し、このデータで音源13を制御することによってカラオケ曲の演奏音を発生させる。また、歌詞シーケンサ32は、リンクリストを参照することで歌詞トラックの所在を確認し、曲データファイル中の歌詞トラックのデータを読み出し、このデータに基づいて歌詞テロップの画像パターンを作成して合成回路21に出力する。また、背景映像再生処理33は、シーケンサ30からの指示に応じて所定の映像データを読み出してMPEGデコーダ20に入力する。
また、パネルスイッチやリモコン9からテンポコントロール信号や早送り、巻き戻しの信号が入力されると、この曲番号がシーケンサ30に入力され、演奏のテンポや歌詞表示の進行がこの信号の内容に応じて設定変更される。
また、リモコン9のルビボタン9Aが押され、リモコン9からルビの表示変更信号が入力されると、歌詞シーケンサ32はこの曲番号で識別されるカラオケ曲の歌詞トラックのデータのうち、図4(A)に示すルビの文字コードを表示オン/オフするように設定変更する。歌詞変更ボタン9Bが押され、歌詞表示態様の変更信号が入力されると、歌詞シーケンサ32は読み出す歌詞トラックを変更して歌詞の表示設定を変更する。詳細は後に述べる。
図3、図4は、HDD11に記憶されている楽曲データファイルの構成を示す図である。
図3において、楽曲データファイルは、同図(A)に示すように、ヘッダ、カラオケ曲を演奏するための楽音トラック、ガイドメロディを発生するためのガイドメロディトラック、歌詞テロップを表示するための歌詞トラックなどからなっている。
各トラックは、MIDIフォーマットに従って記述されている。たとえば、楽音トラックやガイドメロディトラックは、同図(B)に示すように、ノートオンイベントデータ、ノートオフイベントデータなどのイベントデータと各イベントデータの読み出しタイミングを示すタイミングデータからなっている。ノートオンイベントデータは音高データを含み、このノートオンによって発生する楽音の音高や音量を指定する。この楽音は、対応するノートオフイベントデータが読み出されるまで継続する。
タイミングデータは、各イベントデータ間の時間的間隔を示すデュレーションデータや曲のスタート時刻からの絶対時間を示す絶対時間データなどで構成することができる。
楽音トラック、ガイドメロディトラックのイベントデータは、上記のように楽音の音高、音量、オン/オフなどを示すノートイベントデータなどで構成され、このノートイベントデータを音源13に入力することにより、音源13はこのイベントデータに対応する楽音を発音したり消音したりする。楽音トラックは、多数の楽器の楽音を発生するために複数トラック(パート)で構成されており、ガイドメロディトラックは、歌唱旋律をガイドするための単旋律のMIDIデータで構成されている。
歌詞トラックは、カラオケ曲の曲名や歌詞を表示するための各種データをインプリメントしたシーケンスデータであり、図4(A)に示すように、タイミングデータに基づいて読み出されるページ区切りデータおよび歌詞表示データから構成されている。
ページ区切りデータは、行単位でモニタ22に表示される歌詞を同時に表示されるもの(2〜4行)毎に区切るデータであり、カラオケ曲の音楽的なフレーズに対応している。歌詞表示データは1行分の歌詞表示に関する全てのデータを内包しており、表示オンタイミング、表示オフタイミング、文字列データ、ワイプデータなどからなっている。
文字列データは、文字infoデータ(表示ポイント数、表示フォント、色1データ、色2データなどを含む)、表示座標、文字コード(表示するテキスト)、文字間データ、ルビデータなどから構成される。文字infoデータはあらかじめHDD11に記憶された各種のフォントデータの中から歌詞シーケンサ32が読み出すべきフォントを指定するデータである。
歌詞の表示態様は以下のようである。まず、1行分の歌詞を色1で表示する。1行分の歌詞は、上記文字infoデータ、表示座標、文字コード、文字間データに基づいて表示する。歌詞シーケンサ32は、文字infoデータに従い、HDD11に記憶されているフォントデータの中からその文字コードに該当するフォントデータを読み取って表示する。最初の文字については表示座標から表示位置を決定し、その後の文字は文字間データから相対的に表示位置を決定する。また、ルビデータが存在するときは、そのルビデータが指定する文字(漢字)の上部にルビを表示する。最初のルビ文字は、ルビデータに基づいて指定文字(漢字)との相対表示位置を決定する。その後のルビ文字は、文字間データから最初のルビ文字と相対的に表示位置を決定する。この例においては、ルビデータの直前の文字コード(漢字)を指定文字として、以後の文字コードについてルビENDまでの文字をルビ表示する。ルビ文字についてもHDD11に記憶されたフォントデータの中からフォントデータ(ルビ用のフォントデータ)を読み取って表示する。
その後、暫くの間(曲がこの歌詞の箇所まで進行してくるまでの間)そのままの色で停止している(ton)。こののち、曲の進行に合わせて表示色がスクロールしてゆき左から順に色1から色2に色変えをしてゆく。最後に暫くの間色2で表示し(te)たのち消去する。
ワイプデータは同図(B)に示すグラフのようにスクロールの(時間−x座標)曲線の主要な点を示す複数のプロッティングデータで構成されている。シーケンサ30はこのプロッティングデータを2次曲線で補間して色変え(ワイプ)を合成回路21に指示する。
図5は、拡張データの構成を示す図である。この拡張データは、楽曲データファイルとは別にセンタ1からダウンロードするものである。
拡張データは、1または複数の拡張歌詞トラックのデータから構成されており、それぞれの拡張歌詞トラックは異なる表示態様の歌詞テロップを表示するものである。具体的には、拡張歌詞トラックの構成は図4(A)に示した歌詞トラックと構成上同様であるが、文字infoデータに記載されている表示フォントやルビデータに記載されているフォント、文字コード、ワイプデータが異なる。例えば、図5に示す拡張歌詞トラック1(ローマ字ルビ)は、ルビデータにローマ字のフォントデータを読み出すように記載されている。また、拡張歌詞トラック3(筆文字大)は、文字infoデータに筆文字大のフォントデータを読み出すように記載されている。
これらのフォントデータは、センタ1から所定の時間帯(例えば営業時間外等)にダウンロードしておく。なお、PDFデータのようにフォントデータを各歌詞トラックに内包しておいてもよい。また、従来のフォントデータから極端に表示態様が変更されない場合は、すでにHDD11に記憶されているフォントデータを読み出した後、そのフォントを変形させてから表示することも可能である。例えば「ギャル文字」「へた文字」などの表示態様に変更することができる。
上述したように、シーケンサ30は、リクエストの曲番号が入力されると、この曲番号に対応した楽曲データファイルを読み出してRAM12に展開し、展開したエリアの所在(展開したアドレス)を記載したリンクリストを作成する。リンクリストは、各トラックの先頭アドレスがそれぞれ記載されている。シーケンサ30は、リンクリストを作成した後、この曲番号に対応する拡張データの有無を検索する。拡張データが存在する場合は、これを読み出してRAM12に展開し、上記リンクリストに記載されている歌詞トラックのアドレスに拡張歌詞トラックのアドレスを書き加え、リンクリストを修正する。拡張データが複数の拡張歌詞トラックで構成される場合は、リンクリストの歌詞リンク先の記載を増やし、複数の拡張歌詞トラック全てのリンク先を記載する。
このようにして作成、修正されたリンクリストは、上記曲番号に対応する楽曲データファイルの楽音トラック、ガイドメロディトラック、歌詞トラック、および拡張歌詞トラックの各アドレスが記載されている。歌詞トラックは、複数の歌詞トラックのうち歌唱者の操作によって選択されたものに対応するリンク先歌詞トラックがシーケンスされる。
なお、歌詞トラックのアドレスを拡張歌詞トラックのアドレスに書き換え、リンクリストを修正するようにしてもよい。
背景映像再生処理33は、シーケンサ30からの指示に応じて拡張リンクリストに記載されている映像データを読み出してMPEGデコーダ20に入力する。
なお、リクエストされた曲番号について拡張データが存在しない場合には従来と同様に楽曲データファイル本体の歌詞トラックを読み出す。
また、歌詞シーケンサ32は、リモコン9のルビボタン9Aが押されてルビの表示変更信号が入力されると、ルビの表示制御を変更する。ルビ表示中にルビボタン9Aが押されると、歌詞トラックのデータのうち、ルビデータからルビENDまでの文字コードを読み出さないように制御する。ルビ非表示中にルビボタン9Aが押されるとルビデータからルビENDまでの文字コードを読み出すように制御する。
リモコン9の歌詞変更ボタン9Bが押され、歌詞表示態様の変更信号が入力されると、歌詞シーケンサ32は拡張歌詞トラックデータのうち、読み出す歌詞トラックを変更する。歌詞表示態様の変更信号が入力されると、リンクリストを参照して、読み出す拡張歌詞トラックを1〜4まで順番に変更する。なお、ルビ非表示中に歌詞変更ボタン9Bが押され、拡張歌詞トラック2のように特殊ルビに表示態様が変更される場合、デフォルトでルビ表示をオンにするように設定しておく。
なお、上記例においては、ルビボタン9A、歌詞変更ボタン9Bを別に備えたリモコン9について説明したが、この例に限るものではない。例えば、ルビボタン9Aが歌詞表示変更指示を兼ねていてもよい。この場合、ルビボタン9Aを押す毎に、通常文字(ルビ表示)/通常文字(ルビオフ)/通常文字(ローマ字ルビ)/通常文字(ルビオフ)/通常文字(ハングルルビ)/通常文字(ルビオフ)/筆文字大(ルビ表示)/筆文字大(ルビオフ)/筆文字小(ルビ表示)/筆文字小(ルビオフ)/通常文字(ルビ表示)・・・と、切り替わるようにすればよい。
図6〜図8は、カラオケ装置の動作を示すフローチャートである。
図6は、選曲動作を示すフローチャートである。選曲操作は、カラオケ装置7の操作パネル面、またはリモコン9に備えた曲番号を入力するためのテンキーで選択される。
上記の操作でカラオケ曲が選曲されると、そのカラオケ曲の曲番号を含む選曲メッセージを受信する(s10)。カラオケ装置7が、選曲メッセージを受信すると、この選曲メッセージに含まれている曲番号を読み出して、予約リストに登録する(s11)。
ここで、予約リストとは、リモコン9またはカラオケ装置7本体のパネルスイッチから入力された曲番号を入力順に記憶しておくリストである。シーケンサ30は、先に入力された曲番号のカラオケ曲から順次演奏する。予約リストの先頭からカラオケ曲の曲番号を読み出し(s12)、その曲番号の楽曲データファイルを読み出してRAM12に展開する(s13)。また、読み出した楽曲データファイルの各トラックの所在(RAM12に展開したアドレス)を示すリンクリストを作成する(s14)。
その後、拡張データがHDD11に記憶されているか検索する(s15)。上述のように拡張データは、カラオケ曲本体と別にセンタ1からダウンロードされている。その曲番号の拡張データが記憶されていれば、これを読み出してRAM12に展開する(s16)。上記リンクリストに記載されている歌詞トラックのアドレスに、読み出した拡張データの拡張歌詞トラックのアドレスを書き加えて、リンクリストを修正する(s17)。拡張データが複数の拡張歌詞トラックで構成されている場合は、リンクリストにそれぞれの拡張歌詞トラックのアドレスを書き加えて修正する。その後、リンクリストの記載アドレスを参照し、RAM12展開されている各トラックに基づいて演奏を開始する(s18)。曲シーケンサ31は、カラオケ曲本体の楽音トラックをシーケンスし、歌詞シーケンサ32は、リンクリストに記載されている歌詞トラック(例えば図5に示す拡張歌詞トラック1)をシーケンスする。また、背景映像再生処理33は、リンクリストに記載されている映像データを読み出してMPEGデコーダ20に入力する。
曲番号に対応する拡張データがHDD11に記憶されていなければリンクリストの修正は行わずに演奏を開始する(s15→s18)。
図7は、演奏中に行われるシーケンス処理を示すフローチャートである。同図(A)において、まずシーケンサのイニシャライズを実行する。(s20)。このイニシャライズ動作は、トラック上のデータを指し示すポインタのリセット、デュレーションカウンタtのリセット、デュレーションカウントダウン値csのイニシャライズ(=1)などの処理を含んでいる。こののち、同図(B)に示すタイマ割込処理をスタートさせる。
同図(B)において、まず、デュレーションカウンタtが0以下であるかを判断する。スタート直後のタイマ割込においてはt=0にリセットされているため、s22からs24に進む。s24ではトラック上の読み出し位置を示すポインタが指し示しているデータを読み出す。読み出したデータがイベントデータであるか(s25)、デュレーションデータであるか(s26)、または、終了データであるか(s27)を判断する。
イベントデータの場合には、そのイベントに対応する処理を実行し(s28)、ポインタを歩進して(s29)、s24にもどり、次のデータを読み出す。
イベント対応処理(s28)は、楽音の発生/消去または歌詞表示データの読み出し等である。
読み出したデータがデュレーションデータの場合には(s26)、このデュレーションデータの値をtにセットし(s30)、ポインタを歩進して(s31)、s22にもどる。s22では、tが0以下であるかを判断し、t>0の場合にはtからカウントダウンステップ値csを減算して(s23)リターンする。この動作は、所定時間(たとえば10ms)ごとに実行される。
一方、読み出したデータが終了データであった場合には(s27)、オールノートオフ、終了表示などの終了処理を実行したのち(s32)このタイマ割込処理を終了する。
以上のようにしてシーケンス処理を行い、カラオケ曲の演奏、歌詞テロップの表示を行う。
図8は、ルビ表示変更および歌詞表示変更の動作を示すフローチャートである。この動作は、カラオケ曲の演奏中に行われる動作であり、上記シーケンス処理のイベント対応処理(s28)を行う直前に挿入される動作である。リモコン9のルビボタン9Aが押されると、同図(A)に示す処理を行い、歌詞変更ボタン9Bが押されると、同図(B)に示す処理を行う。
同図(A)において、ルビボタン9Aが押されると、ルビ表示オン/オフ信号が入力される(s40)。その後、ルビ表示設定を変更する(s41)。ルビ表示中にルビ表示中にルビ表示オン/オフ信号が入力されると、歌詞トラックのイベントデータのうち、ルビデータからルビENDまでの文字コードを読み出さないように制御する。ルビ非表示中にルビ表示オン/オフ信号が入力されるとルビデータからルビENDまでの文字コードを読み出すように制御する。その後、シーケンス処理を続行する。
同図(B)において、歌詞変更ボタン9Bが押されると、表示変更信号が入力される。歌詞表示変更信号が入力されると、リンクリストに記載されているアドレスを参照して、シーケンスする拡張歌詞トラックを変更する(s51)。リンクリストは優先順に複数の歌詞トラックをリンクしている。歌詞表示変更信号が入力されたときは、順に歌詞トラックを変更する。その後、ルビ表示のオン/オフを確認する(s52)。ルビ表示がオフである場合、ルビ表示をオンに設定変更し(s53)、シーケンス処理を続行する。
以上のように、本発明のカラオケ装置は、カラオケ曲本体とは別に拡張データをダウンロードしておき、カラオケ曲のリクエスト時に、拡張データが存在するかを判断する。拡張データが存在する場合には、リンクリストに記載されている歌詞トラックのリンク先を変更して、拡張歌詞トラックを読み出す。読み出した拡張歌詞トラックをシーケンスすることで多彩な歌詞テロップを表示することができる。