図1は、本発明が好適に適用されるカラオケシステム10を説明する概略図である。この図1に示すように、上記カラオケシステム10では、カラオケボックス、スナック、旅館等の店舗12における複数の個室14a、14b、14c、・・・(以下、特に区別しない場合には単に個室14と称する)にそれぞれ1台乃至は複数台ずつ(図1では1台ずつ)の本発明の一実施例であるカラオケ装置16a、16b、16c、・・・(以下、特に区別しない場合には単にカラオケ装置16と称する)が設置されている。これら複数のカラオケ装置16のうち、マスターコマンダである所定のカラオケ装置16aは、公衆電話回線等による通信回線18を介してカラオケサービス提供会社のセンタ装置20に接続されており、そのセンタ装置20と上記カラオケ装置16aの相互間で情報の通信が可能とされている。このセンタ装置20は、上記カラオケ装置16によりカラオケ演奏を行うための楽曲情報(楽曲データ)の他、後述する背景映像情報(ベース映像データ及びエフェクト映像データ)及び基調演奏情報(基調演奏データ)等のデジタルコンテンツ(Digital Contents)の保管や入出力管理の基本的な制御を行うサーバであり、上記通信回線18を介してマスターコマンダであるカラオケ装置16aに定期的にコンテンツの配信を行うと共に、そのカラオケ装置16aからの要求に応じて所定の機能制御プログラムを送信するものである。また、上記カラオケシステム10は、所定の対応付け処理が行われることで上記カラオケ装置16の一部として機能する複数の電子早見本装置22a、22b、22c、・・・(以下、特に区別しない場合には単に電子早見本装置22と称する)を備えており、上記カラオケ装置16の利用に際して、各利用者(グループ)毎に1台ずつの電子早見本装置22が貸与され、各個室14において後述するように上記カラオケ装置16の遠隔操作装置として用いられるようになっている。上記店舗12内には上記複数のカラオケ装置16を相互に接続するLAN24が敷設されており、上記電子早見本装置22からのカラオケ装置16への入力は、所定のアクセスポイント26及びLAN24を介したLAN通信や所定の手順により特定されたカラオケ装置16との間における赤外線通信等の短距離無線通信により行われる。
図2は、上記カラオケ装置16の構成を例示するブロック線図である。この図2に示すように、本実施例のカラオケ装置16は、本体装置であるカラオケコマンダ28と、CRT(Cathode-ray Tube)やTFT(Thin Film Transistor Liquid Crystal)等の映像表示装置であるディスプレイ30と、音声入力装置であるマイクロフォン32と、音声合成装置であるアンプ34と、音声出力装置であるスピーカ36とを、備えて構成されている。また、上記カラオケコマンダ28は、中央演算処理装置であるCPU38と、読出専用メモリであるROM40と、随時書込読出メモリであるRAM42と、記憶装置であるハードディスク44と、操作パネル46と、入出力インターフェイス48と、ディスプレイコントローラ50と、コーデック部52と、MIDI音源56と、シリアルデバイス58と、モデム60と、LANインターフェイス62と、上記電子早見本装置22や図示しないリモコン装置等の入力装置からのリモコン信号を受信するためのリモコン受信部64とを、備えて構成されている。
上記CPU38は、上記RAM42の一時記憶機能を利用しつつ上記ROM40に予め記憶された所定のプログラムに基づいて電子情報を処理・制御する所謂コンピュータであり、上記電子早見本装置22や図示しないリモコン装置等により所定のカラオケ演奏曲が選曲された場合、その選曲されたカラオケ演奏曲を上記RAM42に設けられた予約バッファに登録したり、その予約バッファの演奏順に従って上記ハードディスク44から上記RAM42に選曲されたカラオケ演奏曲の演奏情報及び歌詞情報等を読み出したり、カラオケ演奏曲の演奏が進行するのに応じてそのRAM42から上記MIDI音源56へ演奏情報を送信したり、歌詞情報に基づいて歌詞文字映像を生成して上記ディスプレイコントローラ50へ送ったり、選曲時には曲名文字映像を生成して上記ディスプレイコントローラ50へ送ったり、そのディスプレイコントローラ50により所定の背景映像を生成したり、カラオケ演奏が行われていない間すなわち曲間において、新譜情報、選曲ランキング、店舗広告等の曲間情報を出力させたり、前記通信回線18を介した前記センタ装置20との間の情報通信制御等の基本的な制御に加えて、後述する基調演奏に乗せてのアレンジカラオケ演奏制御及び演奏映像表示制御を実行する。
前記操作パネル46は、前記カラオケ装置16の利用者が歌いたいカラオケ演奏曲を選択したり、演奏曲の音程を調整したり、演奏と歌との音量バランスを調整したり、その他、エコー、音量、トーン等の各種調整を行うための操作ボタン(スイッチ)或いはつまみを備えた入力装置である。また、前記入出力インターフェイス48は、前記操作パネル46を介して入力された情報を前記CPU38へ送ったり、そのCPU38から供給される指令に応じて前記操作パネル46の表示窓に所定の文字映像等を表示させる装置である。また、前記カラオケ装置16には、前記操作パネル46の一部機能を遠隔で実行するための入力装置として機能する図示しないリモコン装置が備えられており、前記リモコン受信部64は、そのリモコン装置から送信されるリモコン信号を受信して前記CPU38へ供給する。また、前記カラオケ装置16と電子早見本装置22との対応付け(くくりつけ)処理も前記リモコン受信部64を介して行われ、そのようにして前記カラオケ装置16に対応付けられた電子早見本装置22も同様に入力装置として機能する。
前記ディスプレイコントローラ50は、前記CPU38において生成された歌詞文字映像等の文字映像(テロップ)を出力する文字映像出力装置として機能する他、前記ディスプレイ30による種々の映像表示を制御する映像表示制御装置として機能する。また、利用者が歌詞を参照しながら歌を歌う際に前記ハードディスク44の映像データベース69に記憶されたベース映像データ及び/又はエフェクト映像データに基づいて所定の背景映像を生成(合成)する背景映像生成装置として機能する。このベース映像データとは、デコードにより所定のベース映像を出力するための情報であり、例えば、MPEG(Moving Picture Experts Group)形式の動画データである。また、上記エフェクト映像データとは、前記MIDI音源56等による演奏曲の出力に際してその演奏曲の要素に応じて変化し得るエフェクト映像を出力するための情報である。上記ベース映像及びエフェクト映像については図39乃至図45等を用いて後述する。前記カラオケ装置16によるカラオケ演奏においては、前記ディスプレイコントローラ50により上記ベース映像データ及び/又はエフェクト映像データに基づいて所定の背景映像が生成されると共に、前記CPU38により生成された文字映像が前記ディスプレイコントローラ50により出力されると共に上記背景映像の前面側レイヤに合成される。そして、そのようにして合成されたアナログ情報としての映像がアナログ映像接続された前記ディスプレイ30に送られ、そのディスプレイ30にカラオケ演奏映像として表示される。
前記コーデック部52は、前記ハードディスク44から読み出されて送られて来る音声データ(デジタル音声データ)をデコードすることでその音声データに基づく演奏を出力させる音声情報再生装置として機能する。この音声データとは、例えば、PCM(Pulse Code Modulation)形式のデータ、WAV形式のデータ、MPEG形式のデータ、WMA形式のデータ等である。なお、前記コーデック部52は、上記音声データのデコード(復号)を行い得るものであればよく、必ずしもエンコード(符号化)機能を有しなくともよい。また、前記MIDI音源56は、前記ハードディスク44から読み出されて送られて来るカラオケ演奏曲の演奏情報に基づいて楽器の演奏信号等の音楽信号を生成する音源である。この演奏情報は、例えば、MIDI(Musical Instrument Digital Interface)形式のデータである。また、前記シリアルデバイス58は、MIDIプロトコル接続等を介して前記MIDI音源56と接続されており、そのMIDI音源56によるMIDIデータに基づく演奏を制御する。前記カラオケ装置16によるカラオケ演奏においては、前記コーデック部52により再生されたアナログ情報としての演奏信号及び/又は前記MIDI音源56から出力されたアナログ情報としての演奏信号がアナログ音声接続された前記アンプ34へ送られる。そのアンプ34では、送られてきた演奏信号と前記マイクロフォン32を介して入力される利用者の歌声とがミキシングされ、それらの信号が電気的に増幅されて前記スピーカ36から出力される。
前記モデム60は、前記カラオケ装置16を公衆電話回線等による通信回線18に接続するための装置であり、前記CPU38から出力されるディジタル信号をアナログ信号に変換して前記通信回線18に送り出すと共に、その通信回線18を介して伝送されるアナログ信号をディジタル信号に変換して前記CPU38に供給する処理を行う。なお、このモデム60は、マスターコマンダとして機能するカラオケ装置16aには必要とされるが、前記センタ装置20との間で情報の通信を行わない他のカラオケ装置16には必ずしも設けられなくともよい。
前記LANインターフェイス62は、前記カラオケ装置16をLAN24を介して他のカラオケ装置16や電子早見本装置22等の他の機器に接続するための接続器であり、前記カラオケ装置16は、そのようにLAN24を介して接続されることで、他のカラオケ装置16や電子早見本装置22等の他の機器との間で情報の送受信が可能とされる。すなわち、前記カラオケ装置16では、前記LANインターフェイス62を介して、前記アクセスポイント26により受け付けられる前記電子早見本装置22からの選曲入力や効果音制御信号を受け付けたり、前記カラオケ装置16から電子早見本装置22へ所定の情報を送信したりというように、電波を介して前記カラオケ装置16と電子早見本装置22との間における相互の情報のやりとりが実行される。
前記ハードディスク44には、カラオケ演奏曲を出力させるための多数の楽曲データ(カラオケ情報)を記憶する楽曲データベース66、それぞれのジャンルにおけるアレンジに対応する基調演奏を出力させるための複数の音声データ及び基調演奏用データテンプレートのセットを記憶する複数の基調演奏データベース68a、68b、68c、・・・(以下、特に区別しない場合には単に基調演奏データベース68と称する)、カラオケ演奏において所定の背景映像を出力させるための複数のベース映像データ及びエフェクト映像データを記憶する映像データベース69等の各種データベース、テンプレートファイル名テーブル70、テンポ補正テーブル72、及び各種CPUプログラム74等が備えられている。カラオケボックス等の店舗にそれぞれ備えられた複数のカラオケ装置16のうちマスターコマンダとして機能するカラオケ装置16aは、前記モデム60を介して前記通信回線18に接続されており、前記複数のカラオケ装置16によって常に新しい曲が演奏可能とされるように、或いは常に新しい基調演奏や背景映像が出力可能とされるように、随時新たな楽曲データ、基調演奏データ、ベース映像データ、及びエフェクト映像データ等が前記センタ装置20から前記通信回線18を介して配信され、前記ハードディスク44の楽曲データベース66、基調演奏データベース68、映像データベース69等に記憶される。また、上記基調演奏データベース68の内容が更新される毎に上記テンプレートファイル名テーブル70もまた更新される。また、そのようにして前記センタ装置20から情報を取得したカラオケ装置16aとその他のカラオケ装置16との間で前記LAN24を介した通信が行われることにより、各カラオケ装置16のハードディスク58に記憶される情報が共有され、楽曲データベース66、基調演奏データベース68、映像データベース69、及びテンプレートファイル名テーブル70等の内容が等価なものとされる。
図3は、前記カラオケ装置16のCPU38に備えられた制御機能の要部を説明する機能ブロック線図である。この図3に示す演奏制御手段80は、多数の演奏曲のうちから選択された所定の演奏曲を出力させる。具体的には、前記MIDI音源56により前記楽曲データに含まれるMIDI形式の演奏データ(以下、MIDIデータと称する)に基づいて複数の楽器の演奏音を出力(演奏)させる。前記カラオケ装置16によるカラオケ演奏に際しては、先ず、前記電子早見本装置22や図示しないリモコン装置等の入力装置により所定の選曲入力が行われる。斯かる選曲入力が行われると、前記RAM42やハードディスク44等の記憶装置に設けられた図4に示すような通常用予約バッファ76又は図5に示すようなアレンジ用予約バッファ78に、先に予約された演奏曲の曲番号が若くなるように(予約順に演奏されるように)20曲まで演奏曲乃至はその選曲番号が登録される。そして、上記演奏制御手段80は、斯かる予約バッファ76、78に登録された演奏曲のうち曲番号が若いものから順に、その演奏曲に対応するMIDIデータ(楽曲データ)を前記楽曲データベース66から読み出して前記RAM42に展開し、前記MIDI音源56を介してその演奏曲の出力を制御する。なお、上記通常用予約バッファ76は後述するアレンジ演奏以外すなわち基調演奏に乗せてのカラオケ演奏を行わない通常のカラオケ演奏のための予約バッファであり、アレンジ用予約バッファ78は後述するアレンジ演奏すなわち基調演奏に乗せてのカラオケ演奏のための予約バッファである。また、上記演奏制御手段80は、前記コーデック部52によりMPEG形式等の音楽データをデコードするすることによってもカラオケ演奏を行い得るものであるが、本実施例においては主にMIDIデータに基づくカラオケ演奏について説明する。
図6は、前記楽曲データベース66に記憶される楽曲データの構成を階層的に説明する図である。この図6に示すように、前記楽曲データは、楽曲ヘッダ、タイトル画像データ、テロップデータ、及び演奏情報としてのMIDIデータから構成される。また、そのMIDIデータは、MIDI部ヘッダ、トラック1MIDIデータ、トラック2MIDIデータ、・・・、トラック14MIDIデータ、及びトラック15MIDIデータから構成される。また、上記MIDI部ヘッダ部は、各種既存のデータ、デルタ補正値(0、1、2、4の何れか)、メタ情報トラック指定(トラック番号)、及び各種既存のデータから構成される。また、上記MIDI部トラック部(トラック1〜15MIDIデータ)は、データブロック(1)、データブロック(2)、・・・、データブロック(n)、及びデータブロック終端から構成される。また、上記データブロック部(データブロック(1)〜(n))は、デルタ値及び転送MIDIデータ列から構成される。
前記演奏制御手段80は、前記MIDIデータに基づく演奏曲の出力に際して、対象となるMIDIデータを前記RAM42等の記憶装置に展開する。図7は、前記RAM42に形成されたMIDIリングバッファを例示する図である。この図7に示すように、上記MIDIリングバッファは、64レコード分のMIDIバッファ(1)〜(64)から成り、それぞれのMIDIバッファに4小節カウンタ送出タイミング、4小節ステップ送出タイミング、転送サイズ、及び転送MIDIバイト列が記憶されるようになっている。また、図8は、上記MIDIリングバッファに対応して前記RAM42に形成された制御リングバッファを例示する図である。この図8に示すように、上記制御リングバッファは、64レコード分の制御バッファ(1)〜(64)から成り、それぞれの制御バッファに4小節カウンタ実行タイミング、4小節ステップ実行タイミング、及び制御情報が記憶されるようになっている。図9は、上記4小節カウンタ及び4小節ステップについて説明する図である。上記4小節カウンタとは、演奏が4小節進行する毎に1が加算されるカウンタであり、後述するアレンジ演奏モードにおいては減少することなく単調増加する。また、4小節ステップとは、4小節内での時間情報を示す値であり、4小節の区切り毎に零にリセットされる。また、この4小節ステップは、MIDIデータに基づく演奏における最も細かな(最小分解能の)時間情報であり、タイムベースが48の場合、1小節分で192、4小節分では768となる。
図10は、前記RAM42に形成された展開テーブルを例示する図である。この展開テーブルは、テンプレート展開のために必要な情報を一時的に記憶する領域であり、64レコード分の展開情報すなわち64での剰余値が0となる4小節カウンタ時の展開情報、64での剰余値が1となる4小節カウンタ時の展開情報、・・・、64での剰余値が62となる4小節カウンタ時の展開情報、及び64での剰余値が63となる4小節カウンタ時の展開情報がそれぞれ展開される。また、各MIDIバッファの展開情報は、1小節目展開情報、2小節目展開情報、3小節目展開情報、4小節目展開情報、八分音符1個目コード情報、八分音符2個目コード情報、八分音符3個目コード情報、・・・、八分音符31個目コード情報、及び八分音符32個目コード情報から成る。前記演奏制御手段80による演奏曲の出力では、このように前記RAM42上に展開されたMIDIデータが随時読み出されて前記MIDI音源56に送られると共に、上記制御リングバッファにおける制御情報が読み出されてそのMIDI音源56における演奏出力が行われる。
図3に戻って、基調演奏制御手段84は、前記演奏制御手段80により複数の演奏曲を順次出力させる際、その演奏曲の出力と併行(同期)して所定のテンポを有する所定の基調演奏を出力させる。この基調演奏とは、好適には一定のテンポを有する(必ずしも一定でなくともよい)と共に、リズム、和音、及び曲調等に、利用者が聞いた際に自ずとそのジャンルが知れる程度の統一感を有する拍節乃至は旋律から成るものであり、例えばハウス、トランス、ヒップホップ、レゲエ等というように複数種類(ジャンル)の基調演奏が予め定められている。また、テンポとは、音楽を演奏する上で基準となる速度であり、譜面化した場合における各音符の時間的長さを定めるものである。好適には、そのように予め定められた複数種類の基調演奏のうちから、前記電子早見本装置22等の入力操作により所定の基調演奏が選択可能とされており、上記基調演奏制御手段84は、上記入力操作により選択された所定の基調演奏を前記演奏曲の出力と併行して出力させる。以下、斯かる基調演奏制御手段84による制御動作すなわち基調演奏に乗せての複数の演奏曲を順次出力させるアレンジ演奏モードについて詳細に説明する。
上記基調演奏制御手段84は、生音出力制御手段86及びMIDI置換制御手段88を含み、具体的には、それら生音出力制御手段86及びMIDI置換制御手段88により前記基調演奏を出力させる。この生音出力制御手段86は、予め定められた生音データ(デコードにより直接的にアナログ音声情報に変換できる情報)としての音声データを前記コーデック部34によりデコードすることで前記基調演奏を出力させる。前記ハードディスク44に設けられた基調演奏データベース68には、各ジャンルに対応して少なくとも一定のテンポを有すると共に、リズム、和音、及び曲調等に統一感を有する複数の音声データが記憶されており、上記生音出力制御手段86は、それら複数の音声データを前記コーデック部34を介して連続的にデコードし前記基調演奏として出力させる。上記音声データとしては、PCM形式のデータをはじめとしてWAVデータやMPEG形式のデータ等、種々のファイル形式が考えられる。また、上記音声データは、好適には、各ジャンル毎のテンポにおける4小節分(又は1小節分)の長さを有するものであり、出力に際してはその4小節分(又は1小節分)のデータが連続的にデコードされることで、利用者の耳には一続きの音楽として聞こえるように基調演奏が出力される。なお、上記音声データによる基調演奏は、前記MIDIデータにおけるドラム(Drum)トラックに対応するものである。これは、MIDIデータにおけるドラムトラックは一般に各音の鍵盤に音高ではなく楽器が対応付けられているという特殊性を考慮したものであり、上記音声データに基づく基調演奏は、好適には、そのMIDIデータにおけるドラムトラックの代替として出力される。
上記生音出力制御手段86は、好適には、前記演奏制御手段80により複数の演奏曲を順次出力させる際、それら演奏曲の出力が行われていない間すなわち演奏曲間(次曲演奏待ち間)においても上記音声データに基づく基調演奏を継続的に出力させる。すなわち、本実施例のアレンジ演奏モードでは、1つの演奏曲の出力が終了して次の演奏曲の出力が開始されるまでの演奏曲間において、それら演奏曲の演奏と併行して出力される基調演奏と同一のテンポ、リズム、及び曲調等を有する曲間用の基調演奏が出力され、斯かる基調演奏により演奏曲と演奏曲との間が統一性ある拍節乃至は旋律により接続される。これにより、1曲の演奏が終わる毎にアレンジが途切れる不具合を防止でき、盛り上がった場の雰囲気を好適に維持することができる。
ここで、前記楽曲データベース66に記憶されたMIDIデータは、好適には、演奏時間情報に関連して複数の区分を含むものであり、前記生音出力制御手段86は、それら区分に応じて前記複数の音声データを前記演奏制御手段80による演奏曲の出力と併行して順次出力させる。この区分とは、例えば、前記MIDIデータのメタ情報に定められた演奏の区分である。すなわち、前記MIDIデータのメタ情報には所定の演奏時間毎に、例えば、イントロ(Intro)、Aメロ(Amelo)、Bメロ(Bmelo)、Cメロ(Cmelo)、フィル(Fill)、サビ、間奏、及び変拍等の区分が定められており、前記生音出力制御手段86は、それら区分に応じた音声データを1小節単位で出力させる。また、前記基調演奏データベース68には、各ジャンル毎に「非盛り上がり」、「盛り上がり」、「Fill」、「次への繋がり」、「曲待ちへの繋がり」というように複数種類(例えば5種類)に分類された音声データが複数セット(例えば4セット)分記憶されており、各セットには、上記分類毎に少なくとも1つの音声データが記憶されている。前記生音出力制御手段86は、例えば、前記MIDIデータにおけるメタ情報がイントロ又はサビである区分の演奏に際しては、その演奏と併行して「盛り上がり」に対応する音声データを出力させ、メタ情報がAメロ、Bメロ、Cメロ、又は間奏である区分の演奏に際しては、その演奏と併行して「非盛り上がり」に対応する音声データを出力させ、メタ情報がフィルである区分の演奏に際しては、その演奏と併行して「Fill」に対応する音声データを出力させ、演奏曲の出力が行われていない間すなわち次曲の演奏待ちに際しては、「次への繋がり」又は「曲待ちへの繋がり」に対応する音声データを出力させる。以上のように、前記MIDIデータに基づく演奏曲の出力と同期して、リズム、テンポ、及び曲調等に統一感を有する複数の音声データが連続的に出力されることで、その音声データによる基調演奏に乗せて複数の演奏曲を出力させる演奏形態を実現することができる。
前記MIDI置換制御手段88は、前記MIDIデータにおける複数のトラックのうち少なくとも1つのトラックを所定の基調演奏用データで置換する。例えば、前記展開用テーブルに展開されたMIDIデータにおける16のトラックのうちバス(Bass)トラック及び/又はシンセサイザー系のトラックを、そのMIDIデータに基づく演奏曲の出力に先立って所定の基調演奏用データで置換する。ここで、置換の対象となる基調演奏用データとは、各ジャンルに対応してリズム、テンポ、及び曲調等に統一感を有する拍節乃至は旋律を出力させるためのデータであり、MIDIデータにおける他のトラックと同様に前記MIDI音源56によりその基調演奏用データに基づく演奏が行われる。すなわち、MIDIデータにおける複数のトラックのうち所定のトラックが斯かる基調演奏用データで置換された状態で、そのMIDIデータに基づく演奏曲が出力されることで、その基調演奏用データに対応するトラックの演奏が前記基調演奏として出力される。この際、置換された基調演奏用データに対応する基調演奏は、リズム、テンポ、及び曲調等に統一感を有するものであるため、その統一感ある所定のリズムに乗せて複数の演奏曲を出力させる演奏形態を実現することができる。
前記MIDI置換制御手段88は、好適には、前記基調演奏データベース68に記憶された基調演奏用データテンプレートを、対象となるMIDIデータに応じてトランスポーズすることで前記基調演奏用データを作成する。ここで、トランスポーズとは、所定の和音や旋律の相対的な音程関係を保ったまま別のキーに移すことすなわち移調である。前記基調演奏データベース68には、各ジャンル毎に「非盛り上がり」、「盛り上がり」、「Fill」、「次への繋がり」、「曲待ちへの繋がり」というように複数種類(例えば5種類)に分類された基調演奏用データテンプレートが複数セット(例えば4セット)記憶されている。すなわち、本実施例においては、前記生音出力制御手段86により出力される複数種類の音声データに対応して基調演奏用データテンプレートが予め定められている。それぞれのジャンルにおける各セットには、上記分類毎に基本となる13種類(「次への繋がり」及び「曲待ちへの繋がり」については1種類)のコードすなわち「C」、「Cm」、「Caug」、「C6」、「CM7」、「C7」、「Csus4」、「Cm6」、「Cm7」、「Cdim」、「Cm7b5」、「Cb5」、「Cmb5」にそれぞれ対応する13の基調演奏用データテンプレートが記憶されている。すなわち、前記基調演奏用データテンプレートは全てC調で用意されており、対象となる区分のコードに合わせてそのC調から上下に移調されて用いられる。
前記MIDI置換制御手段88は、例えば、前記MIDIデータにおけるメタ情報がイントロ又はサビである区分に関しては、「盛り上がり」に対応する13種類のテンプレートのうちその区分とコードが一致するテンプレートをトランスポーズして基調演奏用データを作成し、その区分における所定トラックをその基調演奏用データで置換する。また、メタ情報がAメロ、Bメロ、Cメロ、又は間奏である区分に関しては、「非盛り上がり」に対応する13種類のテンプレートのうちその区分とコードが一致するテンプレートをトランスポーズして基調演奏用データを作成し、その区分における所定トラックをその基調演奏用データで置換する。また、メタ情報がフィルである区分に関しては、「Fill」に対応する13種類のテンプレートのうちその区分とコードが一致するテンプレートをトランスポーズして基調演奏用データを作成し、その区分における所定トラックをその基調演奏用データで置換する。また、バストラック及びシンセサイザー系のトラックというように2つ以上のトラックを基調演奏用データで置換する場合には、それぞれのトラックについて上記テンプレートのトランスポーズ及び置換を行う。
なお、前記基調演奏データベース68において、「次への繋がり」、「曲待ちへの繋がり」に対応するテンプレートが1種類ずつしか記憶されていないのは、それらのテンプレートに基づく基調演奏用データが前記MIDIデータに基づく演奏曲の出力が行われていない間すなわち演奏曲間(次曲演奏待ち間)において出力されることを前提としたものであり、トランスポーズする必要がないためである。すなわち、前記MIDI置換制御手段88は、前記MIDIデータに基づく演奏曲の出力が行われていない演奏曲間においては、前記基調演奏データベース68に記憶された基調演奏用データテンプレートから基調演奏用データを作成し、その基調演奏用データを前記MIDI音源56に送ることによってその基調演奏用データに基づく基調演奏を出力させる。具体的には、先ず、「曲待ちへの繋がり」テンプレートに対応する基調演奏用データに基づく基調演奏を1乃至数小節分出力した後、次曲の出力が開始されるまで「次への繋がり」テンプレートに対応する基調演奏用データに基づく基調演奏を繰り返し出力させる。このように、前記MIDI置換制御手段88は、前記演奏制御手段80による演奏曲の出力が行われていない間すなわち演奏曲間(次曲演奏待ち間)においても上記基調演奏用データテンプレートに基づく基調演奏を継続的に出力させるものであり、これにより1曲の演奏が終わる毎にアレンジが途切れる不具合を防止でき、盛り上がった場の雰囲気を好適に維持することができる。
図11乃至図14は、前記MIDI置換制御手段88によるMIDIデータの置換について説明する図である。前記基調演奏用データテンプレートは、好適には、前記音声データと同様に1小節単位で用意されており、その1小節単位のテンプレートがトランスポーズされると共に連結されることで前記基調演奏用データとされる。例えば、図11及び図12に示すように2種類の基調演奏用データテンプレート(以下、図11に示すものをテンプレートデータA、図12に示すものをテンプレートデータBと称する)を用いてMIDIデータの置換を行う場合を考えると、先ず、図13(a)に示すように、前記RAM42に4小節分の連結読み取りエリア及び1小節分の一時読み取りエリアが確保される。次に、図13(b)に示すように、上記一時読み取りエリアに図11に示すテンプレートデータAが格納される。次に、図13(c)に示すように、上記一時読み取りエリアに格納されたテンプレートデータAが上記連結読み取りエリアに格納(複写)される。次に、図13(d)に示すように、上記一時読み取りエリアに図12に示すテンプレートデータBが格納される。次に、図13(e)に示すように、上記一時読み取りエリアに格納されたテンプレートデータBが上記連結読み取りエリアにおけるテンプレートデータAに連結して格納(複写)される。以上のような格納及び連結が4小節分繰り返されることにより、上記連結読み取りエリアに4小節分の基調演奏用データが形成され、そのようにして形成された基調演奏用データが、図14に示すように、前記RAM42に確保された演奏エリアにおける所定トラックに格納(そのトラックに格納されていたデータと置換)される。なお、MIDIデータをトラック毎に分離して保持している場合、各トラックは可変長であることから、時間軸上で同一の長さで演奏される場合であっても各トラックの実データサイズは異なる場合が考えられる。
ここで、前記基調演奏用データテンプレートをトランスポーズすることによる基調演奏用データの作成に際して、前記MIDI置換制御手段88は、好適には、所定のトラックに関して演奏上の違和感を軽減するための補正を行う。例えば、バストラックに対応する基調演奏用データの作成に際して、前記基調演奏用データテンプレートを対象区分に合わせてトランスポーズすることで最低音が所定音(例えばC1)以下となる場合には、そのトランスポーズの後に更に1オクターブ上にトランスポーズすることで前記基調演奏用データを作成する。また、前記基調演奏用データテンプレートを対象区分に合わせてトランスポーズすることで最高音が所定音(例えばF3)以上となる場合には、そのトランスポーズの後に更に1オクターブ下にトランスポーズすることで前記基調演奏用データを作成する。このようにすることで、例えばバストラックに対応する基調演奏用データを所定音域(C1〜F3)の範囲内とすることができ、バスに相当する基調演奏が低すぎたり或いは高すぎたりすることによる演奏上の違和感を軽減することができる。
図15は、前記基調演奏の出力に用いられるテンプレートファイル名テーブル70を例示する図である。このテンプレートファイル名テーブル70は、予め前記ハードディスク44等の記憶装置に記憶されたものであってもよいし、アレンジ演奏モードの開始に際してジャンルが選択される毎にその都度作成されて前記RAM42等に一時記憶されるものであってもよい。図15に示すように、上記テンプレートファイル名テーブル70には、前記コーデック部52を介して基調演奏を出力させるための音声データと、前記MIDIデータにおける所定トラックの置換に用いられる基調演奏用データテンプレートが相互に対応付けられて規定される。すなわち、所定のジャンルに関してセット0〜3までの4セットのデータが規定され、各セットには、前述した5つの分類すなわち「非盛り上がり」、「盛り上がり」、「Fill」、「次への繋がり」、「曲待ちへの繋がり」それぞれに対応して1つの音声データ(生音)及び13の基調演奏用データテンプレート(MIDI-1〜MIDI-13)が規定される。ここで、各セットにおける同一の分類に規定された音声データ及び基調演奏用データテンプレートは、対象となるMIDIデータにおける共通の区分に対応して用いられるものであり、換言すれば、前記基調演奏制御手段84は、前記生音出力制御手段86を介して前記基調演奏データベース68に記憶された複数の音声データを前記区分に応じて前記コーデック部34により順次デコードすると共に、その音声データの出力と同期してそれぞれの音声データに対応する基調演奏用データテンプレートに基づく基調演奏が出力されるように前記MIDI置換制御手段88を介して前記MIDIデータにおけるトラックの置換を行う。このように、本実施例では、前記生音出力制御手段86を介して音声データをデコードすることによる基調演奏と、前記MIDI置換制御手段88によりMIDIデータの所定トラックを予め基調演奏用データで置換した上で前記MIDI音源56を介して演奏することによる基調演奏とを併行して(同時に)出力させる態様を説明しているが、それら2種類の基調演奏のうち何れか一方のみを出力させる態様も考えられる。
前記MIDIデータは、好適には、メタ情報がイントロである区分の開始位置を示すイントロフラグより1小節前(192ステップ前)に、拍合わせのタイミングをとるための頭フラグを有し、前記MIDI置換制御手段88は、この頭フラグに応じて前記MIDIデータにおける所定トラックの置換を制御する。すなわち、斯かる頭フラグの1小節後から前記MIDIデータにおける所定トラックの置換がはじまるように制御する。一般にMIDIデータは、データのセットアップが行われてから出力が開始されるまでに所定の時間を有する。前述したように、前記MIDI置換制御手段88は、前記MIDIデータに基づく演奏曲の出力が行われていない演奏曲間においては、前記基調演奏データベース68に記憶された基調演奏用データテンプレートから基調演奏用データを作成し、その基調演奏用データを前記MIDI音源56に送ることによってその基調演奏用データに基づく基調演奏を出力させるものであり、次曲の出力が開始されるまでは「次への繋がり」テンプレートに対応する基調演奏用データに基づく基調演奏を繰り返し出力させる。ここで、次曲のMIDIデータのセットアップ後の出だしが1小節分(192ステップ)である場合、すなわちメタ情報がイントロである区分の開始位置を示すイントロフラグより1小節前にセットアップが行われる場合には、そのセットアップ開始と同時に「次への繋がり」テンプレートに対応する基調演奏用データに基づく基調演奏の出力が中止され、1小節分の休符区間があった後、メタ情報がイントロである区分の開始位置から前述した所定トラックの置換が行われるように制御される。一方、次曲のMIDIデータのセットアップ後の出だしが1小節分(192ステップ)ではない場合には、セットアップ開始から1小節後に所定トラックの置換を開始するとタイミングが合わないことになる。そこで、斯かる場合には、セットアップ開始と同時に「次への繋がり」テンプレートに対応する基調演奏用データに基づく基調演奏の出力が中止され、上記頭フラグの192ステップ後から前述した所定トラックの置換が行われるように制御される。また、前記演奏制御手段80は、MIDIデータに基づいて出力される演奏曲のテンポが、前記生音出力制御手段86により出力される音声データに基づく基調演奏のテンポに適合するように、上記頭フラグに基づいて対象となるMIDIデータの出力開始タイミングを制御する。
図3に戻って、前記演奏制御手段80は、出力される演奏曲のテンポをその演奏曲の出力と併行して前記基調演奏制御手段84により出力される基調演奏のテンポに応じて補正するテンポ補正手段82を含む。一般に音声データ(生音データ)のテンポは固定されている(テンポの異なる生音データを多数用いれば生音データのテンポ変更も可能)ため、前記生音出力制御手段86を介して音声データをデコードすることによる基調演奏と併行してMIDIデータに基づく複数の演奏曲を順次出力させる場合、前記MIDIデータの演奏テンポをその音声データのテンポに適合させることが好ましい。このため、上記テンポ補正手段82は、好適には、前記MIDI音源56を介して出力される演奏曲のテンポを、その演奏曲の出力と併行して前記コーデック部52を介して出力される基調演奏のテンポすなわち音声データのテンポの1/n倍、1倍、又はn倍(nは2の累乗)となるように、実用的には、1/2倍、1倍、又は2倍となるように補正する。図16は、上記テンポ補正手段82による演奏曲の出力テンポ補正に用いられるテンポ補正テーブル72を例示する図である。この図16に示すように、レゲエアレンジではテンポ=70、ヒップホップアレンジではテンポ=90、ハウスアレンジではテンポ=125、トランスアレンジではテンポ=140というように、アレンジ演奏モードの開始に際して選択されるジャンル毎に所定のテンポが予め定められており、このテンポは各ジャンルにおける音声データのテンポと一致する。上記テンポ補正手段82は、各ジャンルに対応して楽曲が保有するテンポ値すなわちMIDIデータの出力テンポを強制的に補正する。なお、前記MIDI置換制御手段88を介して対象となるMIDIデータの所定トラックが置換されて出力される基調演奏は、対象となるMIDIデータのテンポに依存することから、そのMIDIデータの演奏テンポを前記音声データのテンポに適合させることで、所定トラックの置換による基調演奏の出力テンポは自ずから前記音声データのテンポに適合する。
図16に示す「4」はMIDIデータの演奏テンポを音声データのテンポの1/2倍に、「2」は音声データのテンポの1倍に、「1」は音声データのテンポの2倍にそれぞれ補正することを示している。すなわち、テンポ=70のレゲエアレンジでは、デフォルトのテンポ値が50以下である楽曲は音声データのテンポの1/2倍であるテンポ=35に、デフォルトのテンポ値が51以上104以下である楽曲は音声データのテンポの1倍であるテンポ=70に、デフォルトのテンポ値が105以上である楽曲は音声データのテンポの2倍であるテンポ=140にそれぞれ補正される。また、テンポ=90のヒップホップアレンジでは、デフォルトのテンポ値が50以下である楽曲は音声データのテンポの1/2倍であるテンポ=45に、デフォルトのテンポ値が51以上139以下である楽曲は音声データのテンポの1倍であるテンポ=90に、デフォルトのテンポ値が140以上である楽曲は音声データのテンポの2倍であるテンポ=180にそれぞれ補正される。また、テンポ=125のハウスアレンジでは、デフォルトのテンポ値が93以下である楽曲は音声データのテンポの1/2倍であるテンポ=62.5に、デフォルトのテンポ値が94以上187以下である楽曲は音声データのテンポの1倍であるテンポ=125に、デフォルトのテンポ値が188以上である楽曲は音声データのテンポの2倍であるテンポ=250にそれぞれ補正される。また、テンポ=140のトランスアレンジでは、デフォルトのテンポ値が97以下である楽曲は音声データのテンポの1/2倍であるテンポ=70に、デフォルトのテンポ値が98以上209以下である楽曲は音声データのテンポの1倍であるテンポ=140に、デフォルトのテンポ値が210以上である楽曲は音声データのテンポの2倍であるテンポ=280にそれぞれ補正される。以上のように、前記演奏制御手段80により複数の演奏曲を順次出力させる際、それら演奏曲の演奏テンポを、前記生音出力制御手段86を介して音声データをデコードすることによる基調演奏のテンポに適合させることにより、前記MIDIデータに基づく演奏曲及び音声データに基づく基調演奏のテンポが同期(シンクロ)する。これによって、複数の演奏曲を統一感ある所定のリズムにより有機的に結合させ、あたかも連続する一連の楽曲のような印象を利用者に与える演奏形態を実現することができる。
ここで、前記テンポ補正手段82により演奏曲の演奏テンポを、併行して出力させる音声データのテンポの1/2倍又は2倍にすることを考えると、前記基調演奏用データテンプレートに基づく基調演奏用データの置換に関して補正が必要となってくる場合がある。例えば、前記基調演奏データベース68に「Fill」の分類で記憶された音声データ及び基調演奏用データテンプレートは、前述のようにMIDIデータにおけるメタ情報がフィルである区分に関して用いられるものであり、この区分は例えばメタ情報がサビである区分の開始直前1小節分の区分である。この区分における前記基調演奏用データテンプレートに基づく基調演奏用データの適用に関して、前記テンポ補正手段82によりMIDIデータの演奏テンポを、併行して出力させる音声データのテンポの2倍にした場合には、そのMIDIデータにおけるメタ情報がフィルである区分がデフォルトである場合の1/2倍の長さになるため、前記基調演奏用データテンプレートをトランスポーズした基調演奏用データをそのまま適用するとサビの区分にまでかかってしまう。また、前記テンポ補正手段82によりMIDIデータの演奏テンポを、併行して出力させる音声データのテンポの1/2倍にした場合には、そのMIDIデータにおけるメタ情報がフィルである区分がデフォルトである場合の2倍の長さになるため、前記基調演奏用データテンプレートをトランスポーズした基調演奏用データをそのまま適用するとメタ情報がサビである区分が開始する2小節手前から始まってしまう。このため、前記MIDI置換制御手段88は、前記テンポ補正手段82により演奏曲の演奏テンポを、併行して出力させる音声データのテンポの1/2倍又は2倍にした場合には、「Fill」の分類で記憶された基調演奏用データテンプレートに基づく基調演奏用データが、メタ情報がサビである区分の直前1小節分の区分に適用されるように前記トラックの置換を行う。
また、前記テンポ補正手段82により演奏曲の演奏テンポを、併行して出力させる音声データのテンポの2倍にする場合には、MIDIデータの展開情報及びコード情報等を参照する分解能を補正する必要がある。例えば、デフォルトのMIDIデータでは、四分音符の分解能が48ステップ分の設定とされており、これは八分音符の分解能が24ステップ分であるのと等価である。前記演奏制御手段80は、斯かる分解能でMIDIデータの展開情報及びコード情報等を参照してそのMIDIデータに基づく演奏曲の出力を行うものであるが、前記テンポ補正手段82により演奏曲の演奏テンポを、併行して出力させる音声データのテンポの2倍にした場合には、八分音符の分解能が48ステップ分の設定となることから、展開情報及びコード情報等の参照に関してデフォルトのMIDIデータとの間で差異が生じる。このため、前記演奏制御手段80は、前記テンポ補正手段82により演奏曲の演奏テンポを、併行して出力させる音声データのテンポの2倍にした場合には、八分音符の分解能が24ステップ分の設定となるように補正を行う。或いは、八分音符毎の展開情報及びコード情報等のうち奇数番目のデータのみを参照して偶数番目のデータを無視するようにする態様も考えられる。
図3に戻って、映像表示制御手段90は、前記演奏曲の出力と併行してその演奏曲の歌詞文字映像を含む演奏映像を前記ディスプレイ30に表示させる演奏映像表示制御を実行する。この映像表示制御手段90は、文字映像表示制御手段92、ベース映像表示制御手段94、及びエフェクト映像表示制御手段96を含み、具体的には、それら文字映像表示制御手段92、ベース映像表示制御手段94、及びエフェクト映像表示制御手段96により上記演奏映像を出力させる。
上記文字映像表示制御手段92は、前記楽曲データに含まれる歌詞データ(テロップデータ)に基づいて演奏曲の歌詞文字映像(歌詞テロップ)を生成し、前記演奏制御手段80等によるその演奏曲の出力と併行してその演奏曲の歌詞文字映像を前記ディスプレイ30に表示させる。また、その演奏曲の進行に伴ってその歌詞文字映像を順次色替わり表示させる。この文字映像表示制御手段92により生成される歌詞文字映像は、好適には、後述するベース映像表示制御手段94及び/又はエフェクト映像表示制御手段96により生成される背景映像の前面側レイヤに表示される。更に好適には、上記映像表示制御手段90により表示制御される演奏映像における最前面レイヤに表示される。
前記ベース映像表示制御手段94は、前記映像データベース69に記憶されたベース映像データをデコードすることによりそのベース映像データに基づくベース映像を出力(再生)させる。図39は、このベース映像表示制御手段94により前記ディスプレイ30に表示されるベース映像98を例示する図である。このベース映像表示制御手段94により再生されるベース映像は、好適には、前記文字映像表示制御手段92により生成される歌詞文字映像の背面側レイヤに表示される。また、好適には、後述するエフェクト映像表示制御手段96により生成されるエフェクト映像の背面側レイヤに表示される。更に好適には、前記映像表示制御手段90により表示制御される演奏映像における最背面レイヤに表示される。なお、このベース映像表示制御手段94により再生されるベース映像は、従来の一般的なカラオケ装置において歌詞文字映像の背面側レイヤに表示される背景映像である。
前記エフェクト映像表示制御手段96は、前記映像データベース69に記憶されたエフェクト映像データに基づいて所定のエフェクト映像を出力させる。このエフェクト映像とは、前記演奏曲のテンポや音程の変化等に連動して変化し得る映像である。前記エフェクト映像表示制御手段96は、好適には、前記MIDIデータにおけるドラムトラックやバストラック等、その演奏曲の特徴をよく表す所定のトラックのテンポや音程の変化等に連動して上記エフェクト映像を変化させる。好適には、前記基調演奏制御手段84による制御に係るトラックの要素に応じて上記エフェクト映像を変化させる。このエフェクト映像表示制御手段96により制御されるエフェクト映像には種々の態様が考えられる。以下、このエフェクト映像表示制御手段96により出力されるエフェクト映像を例示する。
図40は、前記エフェクト映像表示制御手段96により制御されるエフェクト映像の一例を説明する図である。この図40に示すエフェクト映像100は、前述したベース映像98の前面側レイヤに合成された複数の星マークであり、この例では、斯かるベース映像98及びエフェクト映像100から背景映像102が構成されている。このようにして構成された背景映像102の更に前面側レイヤに歌詞文字映像104が合成されることで、図41に示すような演奏映像106が前記ディスプレイ30に表示される。この演奏映像106における背景映像102では、図41及び図42にその変化を示すように、併行して出力される演奏曲のテンポや音程の変化等に応じて上記エフェクト映像100すなわち複数の星マークそれぞれの大きさが変動させられる。例えば、ドラムトラックにおいてドラムが打たれる毎に星マークが図42の大きさとされる一方、ドラムが打たれていない間は図41の大きさとされる。斯かる態様では、併行して出力される演奏曲におけるドラムトラックのドラムの鼓動に連動してエフェクト映像100である複数の星マークが同様に鼓動するように変化させられ、その演奏曲のテンポ乃至ビートが演奏映像106に反映される。なお、斯かる処理を実行するために、前記基調演奏制御部84から映像表示制御部90へリアルタイム情報若しくはそれと等価な意味を有するクロックが供給される。このリアルタイム情報若しくはクロックとして、好適には、演奏曲の出力と併行して前記歌詞文字映像104を表示させるための情報が流用される。
図43は、前記エフェクト映像表示制御手段96により制御されるエフェクト映像の他の一例を説明する図である。この図43に示すエフェクト映像108は、螺旋模様が画面奥に向かって渦を巻きながら吸いこまれていく映像であり、この例では、斯かるエフェクト映像108が背景映像の全部とされる。このエフェクト映像108の前面側レイヤに上記歌詞文字映像104が合成されることで、図43に示すような演奏映像110が前記ディスプレイ30に表示される。この演奏映像110における背景映像すなわちエフェクト映像108では、併行して出力される演奏曲のテンポや音程の変化等に応じてそのエフェクト映像108が画面奥に向かって吸いこまれてゆく速度が変化させられる。例えば、演奏曲のテンポが比較的遅い場合には螺旋模様が画面奥に向かってゆっくりと吸いこまれてゆくように、テンポが比較的速い場合には素早く吸いこまれてゆくようにその速度が変化させられる。これにより、併行して出力される演奏曲のテンポに応じてエフェクト映像108である螺旋模様が画面奥に向かって吸いこまれてゆくスピードが追従変化させられ、その演奏曲のテンポが演奏映像110に反映される。なお、斯かる処理を実行するためにはリアルタイム処理は必ずしも必要ではなく、処理に先立ってテンポ情報を取得し、非同期で速度設定を行っても問題ない。
図44は、前記エフェクト映像表示制御手段96により制御されるエフェクト映像の更に別の一例を説明する図である。この図44に示すエフェクト映像112は、予め定められた動きでダンスを踊る人型映像であり、この例では、斯かるエフェクト映像112及び前記ベース映像表示制御手段94により再生されるベース映像114から背景映像116が構成されている。このようにして構成された背景映像116の更に前面側レイヤに前記歌詞文字映像104が合成されることで、図44に示すような演奏映像118が前記ディスプレイ30に表示される。この演奏映像118における背景映像116では、併行して出力される演奏曲のテンポや音程の変化等に応じて上記エフェクト映像112すなわち人型映像が踊るダンスのスピードや種類が変化させられる。例えば、演奏曲のテンポが比較的遅い場合にはゆったりとしたダンスとなるように、テンポが比較的速い場合には忙しないダンスとなるようにその速度が変化させられる。或いは、アレンジモードがヒップホップである場合にはヒップホップ調のダンスを踊るように、アレンジモードがハウスである場合にはパラパラを踊るように、そのダンスの種類が変化させられる。斯かる態様では、併行して出力される演奏曲の要素に応じてエフェクト映像112である人型映像のダンスが変化させられ、その演奏曲のテンポやアレンジモード等が演奏映像118に反映される。
また、前記映像表示制御手段90は、前記映像データベース69に記憶されたベース映像データに基づいて出力されるベース映像を、背景映像の一部又は全部として表示させると共に、併行して出力される演奏曲の要素に応じてそのベース映像に所定のエフェクト変化をかけるものであってもよい。図45は、前記映像表示制御手段90によりエフェクト変化をかけられるベース映像を含む演奏映像の一例を説明する図である。この図45に示す演奏映像120では、前記ベース映像表示制御手段94により再生されるベース映像98が背景映像の全部として表示させられると共に、併行して出力される演奏曲のテンポや曲調等に応じてそのベース映像98が画面中央に向かって吸いこまれるようにエフェクト変化させられる。このエフェクト変化とは、前記ベース映像98の再生形式そのものが変化させられるのではなく、そのベース映像98に所定のフィルタリング処理等がかけられることにより変化させられる態様をいい、例えばベース映像に波紋が広がるような効果、ベース映像全体が脈動するような効果、ベース映像の色彩が目まぐるしく変化するような効果等、種々のエフェクト変化が考えられる。斯かる態様では、併行して出力される演奏曲の要素に応じてベース映像98がエフェクト変化させられ、その演奏曲の要素が演奏映像120に反映される。
図17乃至図38は、前記カラオケ装置16のCPU38によるカラオケ演奏制御、特に本実施例のアレンジカラオケ演奏制御の要部を説明するフローチャートであり、それぞれ所定の周期で繰り返し実行されるものである。なお、図17乃至図38にそれぞれ示す複数種類の制御は、マルチプロセスで並行的に実行されるものである。
図17は、前記カラオケ装置16のCPU38による入力待ち制御を示すフローチャートである。この制御では、先ず、ステップ(以下、ステップを省略する)SA1において、前記電子早見本装置22等により所定の入力があったか否かが判断される。このSA1の判断が否定されるうちは、SA1の判断が繰り返されることにより待機させられるが、SA1の判断が肯定される場合には、SA2において、選曲入力すなわち選曲番号(曲番号)の入力であったか否かが判断される。このSA2の判断が否定される場合には、SA9以下の処理が実行されるが、SA2の判断が肯定される場合には、SA3において、その時点における設定がアレンジ演奏モード(アレンジモード)であるか否かが判断される。このSA3の判断が否定される場合には、SA7以下の処理が実行されるが、SA3の判断が肯定される場合には、SA4において、前記アレンジ用予約バッファ78がフルであるか否か、すなわちそのアレンジ用予約バッファ78に20曲の演奏曲が予約されているか否かが判断される。このSA4の判断が肯定される場合には、SA5において、前記ディスプレイコントローラ50等を介して前記ディスプレイ30に新たに演奏曲を予約できない旨の表示が行われた後、SA1以下の処理が再び実行されるが、SA4の判断が否定される場合には、SA6において、入力された演奏曲の選曲番号が前記アレンジ用予約バッファ78の空きエリアにおける最上段に記憶された後、SA1以下の処理が再び実行される。SA7においては、前記通常用予約バッファ76がフルであるか否か、すなわちその通常用予約バッファ76に20曲の演奏曲が予約されているか否かが判断される。このSA7の判断が肯定される場合には、SA5以下の処理が実行されるが、SA7の判断が否定される場合には、SA8において、入力された演奏曲の選曲番号が前記通常用予約バッファ76の空きエリアにおける最上段に記憶された後、SA1以下の処理が再び実行される。
SA9においては、前記電子早見本装置22等による入力が、モード切替入力であったか否かが判断される。このSA9の判断が否定される場合には、SA10において、キーコントロール等のよく知られた既存の入力受付処理が行われた後、SA1以下の処理が再び実行されるが、SA9の判断が肯定される場合には、SA11において、前記MIDI音源56等によるカラオケ演奏が行われているか否かが判断される。このSA11の判断が肯定される場合には、前記ディスプレイコントローラ50等を介して前記ディスプレイ30に演奏中はモード切替ができない旨の表示が行われた後、SA1以下の処理が再び実行されるが、SA11の判断が否定される場合には、SA13において、その時点における設定が通常演奏モードであるか否かが判断される。このSA13の判断が肯定される場合には、SA14において、アレンジ演奏モードに設定が変更され、図18に示すアレンジ開始制御(SAA)が実行された後、SA1以下の処理が再び実行されるが、SA13の判断が否定される場合には、SA15において、通常演奏モードに設定が変更され、図19に示すアレンジ終了制御(SAB)が実行された後、SA1以下の処理が再び実行される。
図18は、前記カラオケ装置16のCPU38によるアレンジ開始制御を示すフローチャートである。この制御では、先ず、SAA1において、前記ディスプレイコントローラ50等を介して前記ディスプレイ30における選曲待ち表示処理を停止させる制御が行われる。次に、SAA2において、前記ディスプレイコントローラ50等を介して前記ディスプレイ30にアレンジジャンル選択画面の表示が行われる。次に、SAA3において、前記ディスプレイコントローラ50等を介して前記ディスプレイ30に表示されたカーソル位置が選択可能なジャンルを示す複数段の映像における最上段にセットされる。次に、SAA4において、前記電子早見本装置22等により番号の入力があったか否かが判断される。このSAA4の判断が肯定される場合には、SAA5において、入力された番号に従って前記ディスプレイコントローラ50等を介して前記ディスプレイ30に表示されたカーソル位置が変更された後、SAA4以下の処理が再び実行されるが、SAA4の判断が否定される場合には、SAA6において、前記電子早見本装置22等により決定入力があったか否かが判断される。このSAA6の判断が否定される場合には、SAA4以下の処理が再び実行されるが、SAA6の判断が肯定される場合には、SAA7において、決定入力が行われた時点でカーソルが位置していた段に対応するジャンルに決定され、図21に示す演奏メイン制御(SC)に関して決定されたジャンルでアレンジ演奏モードを開始するように指示が行われる。次に、SAA8において、図20に示す背景映像制御(SB)に関してアレンジ演奏モードを開始するように指示が行われた後、本ルーチンが終了させられる。
図19は、前記カラオケ装置16のCPU38によるアレンジ終了制御を示すフローチャートである。この制御では、先ず、SAB1において、図20に示す背景映像制御(SB)に関してアレンジ演奏モードを終了するように指示が行われる。次に、SAB2において、図21に示す演奏メイン制御(SC)に関してアレンジ演奏モードを終了するように指示が行われた後、本ルーチンが終了させられる。
図20は、前記カラオケ装置16のCPU38による演奏映像表示制御を示すフローチャートである。この制御では、先ず、SB1において、アレンジ演奏モード開始指示があったか否かが判断される。このSB1の判断が否定される場合には、SB4以下の処理が実行されるが、SB1の判断が肯定される場合には、SB2において、その時点における設定が通常演奏モードであるか否かが判断される。このSB2の判断が否定される場合には、SB4以下の処理が実行されるが、SB2の判断が肯定される場合には、SB3において、背景映像処理の設定がアレンジ演奏モードに変更された後、SB4において、アレンジ演奏モード終了指示があったか否かが判断される。このSB4の判断が否定される場合には、SB7以下の処理が実行されるが、SB4の判断が肯定される場合には、SB5において、その時点における設定がアレンジ演奏モードであるか否かが判断される。このSB5の判断が否定される場合には、SB7以下の処理が実行されるが、SB5の判断が肯定される場合には、SB6において、背景映像処理の設定が通常演奏モードに変更された後、SB7において、その時点における設定がアレンジ演奏モードであるか否かが判断される。このSB7の判断が否定される場合には、SB8において、前記ハードディスク44等に記憶された通常演奏用背景映像情報(ベース映像データ)に基づき、前記ディスプレイコントローラ50等を介して前記ディスプレイ30に選曲待ち時の表示を含むよく知られた既存の演奏映像の表示が行われた後、SB1以下の処理が再び実行されるが、SB7の判断が肯定される場合には、SB9において、演奏に係る楽曲のテンポ、ドラムトラック、バストラック等に関する情報が読み出される。次に、SB10において、アレンジジャンルに応じてベース映像及び/又はエフェクト映像が選択され、前記映像データベース69から該当するベース映像データ及び/又はエフェクト映像データが読み出される。次に、SB11において、SB10にて読み出されたベース映像データ及び/又はエフェクト映像データに基づき、前記ディスプレイコントローラ50等を介して前記ディスプレイ30にアレンジ演奏用演奏映像の表示が行われた後、SB1以下の処理が再び実行される。以上の制御において、SB8乃至SB11が前記映像表示制御手段90の動作に対応する。
図21は、前記カラオケ装置16のCPU38による演奏メイン制御を示すフローチャートである。この制御では、先ず、SC1において、アレンジ演奏モード開始であるか否かが判断される。このSC1の判断が否定される場合には、SC8以下の処理が実行されるが、SC1の判断が肯定される場合には、SC2において、指示されたアレンジジャンルに応じてテンプレートファイル名テーブル70が作成され、前記RAM42等に記憶される。次に、SC3において、SC2にて作成されたテンプレートファイル名テーブル70におけるセット0・ノーマルのデータが取得される。次に、前記テンポ補正手段82の動作に対応するSC4において、SC3にて取得されたデータに基づいてアレンジジャンルのテンポ値に対応する値が前記MIDI音源56にセットされる。次に、SC5において、SC3にて取得されたデータに基づいてアレンジジャンルのMIDIテンプレートデータの各トラック毎の音高上限値が取得される。次に、SC6において、図22に示すアレンジ生音再生制御に関してアレンジ生音再生を開始するように指示が行われる。次に、SC7において、前記MIDI音源56の動作モードがアレンジ演奏モードに設定された後、SC1以下の処理が再び実行される。
SC8においては、アレンジ演奏モード停止であるか否かが判断される。このSC8の判断が肯定される場合には、SC9において、図22に示すアレンジ生音再生制御に関してアレンジ生音再生を停止するように指示が行われ、SC10において、前記MIDI音源56の動作モードが通常演奏モードに設定された後、SC1以下の処理が再び実行されるが、SC8の判断が否定される場合には、SC11において、その時点における前記MIDI音源56の動作モードはアレンジ演奏モードであるか否かが判断される。このSC11の判断が否定される場合には、SC17以下の処理が実行されるが、SC11の判断が肯定される場合には、SC12において、前記アレンジ用予約バッファ78に演奏曲の予約があるか否かが判断される。このSC12の判断が否定される場合には、SC1以下の処理が再び実行されるが、SC12の判断が肯定される場合には、SC13において、前記アレンジ用予約バッファ78の最上段に予約された演奏曲がクリアされると共に、それ以下に予約された演奏曲が1段ずつ上へ移動させられる。次に、SC14において、図22に示すアレンジ生音再生制御に関してMIDI連結演奏を開始するように指示が行われる。次に、図27乃至図31に示すアレンジMIDI1曲分演奏制御(SG)が実行される。次に、SC15において、前記アレンジ用予約バッファ78に演奏曲の予約があるか否かが判断される。このSC15の判断が肯定される場合には、SC1以下の処理が再び実行されるが、SC15の判断が否定される場合には、図22に示すアレンジ生音再生制御に関してMIDI連結演奏を終了するように指示が行われた後、SC1以下の処理が再び実行される。SC17においては、前記通常用予約バッファ76に演奏曲の予約があるか否かが判断される。このSC17の判断が否定される場合には、SC1以下の処理が再び実行されるが、SC17の判断が肯定される場合には、SC18において、前記通常用予約バッファ76の最上段に予約された演奏曲がクリアされると共に、それ以下に予約された演奏曲が1段ずつ上へ移動させられる。次に、SC19において、よく知られた既存の通常MIDI1曲分の演奏制御が実行された後、SC1以下の処理が再び実行される。
図22は、前記カラオケ装置16のCPU38によるアレンジ生音再生制御を示すフローチャートである。この制御では、先ず、SD1において、アレンジ生音再生の開始が通知されたか否かが判断される。このSD1の判断が否定されるうちは、SD1の判断が繰り返されることにより待機させられるが、SD1の判断が肯定される場合には、SD2において、アレンジ生音再生に関する4小節カウンタに零がセットされる。次に、SD3において、ジャンル内セット値に零がセットされる。次に、SD4において、アレンジ生音再生に関する盛り上がりフラグに零がセットされる。次に、SD5において、アレンジ生音再生の停止が通知されたか否かが判断される。このSD5の判断が肯定される場合には、SD1以下の処理が再び実行されるが、SD5の判断が否定される場合には、SD6において、MIDI連結演奏の開始が通知されたか否かが判断される。このSD6の判断が肯定される場合には、図23に示すSD13以下の処理が実行されるが、SD6の判断が否定される場合には、SD7において、MIDI連結演奏の終了が通知されたか否かが判断される。このSD7の判断が肯定される場合には、図24に示すSD24以下の処理が実行されるが、SD7の判断が否定される場合には、SD8において、生音連結サイズに零がセットされる。次に、SD9において、アレンジ生音再生に関する4小節カウンタで指定される展開テーブル展開部が読み込まれる。次に、図25に示す展開情報よりテンプレート生音データを選択、取得、及び連結するための制御が、展開情報の1小節目(SEi)、2小節目(SEii)、3小節目(SEiii)、4小節目(SEiv)に関してそれぞれ実行される。次に、SD10において、アレンジ生音再生に関する4小節カウンタで指定される展開テーブル展開部がクリアされる。次にSD11において、連結された生音データが連結サイズ分だけ前記コーデック部52(PCMデバイス)に出力される。次に、SD12において、アレンジ生音再生に関する4小節カウンタに1が加算された後、SD5以下の処理が再び実行される。
図23のSD13においては、その時点におけるジャンル内セット値が零であるか否かが判断される。このSD13の判断が否定される場合には、SD16以下の処理が実行されるが、SD13の判断が肯定される場合には、SD14において、前記テンプレートファイル名テーブル70で指定される0→1繋ぎの音声データ(生音データ)が読み込まれる。次に、SD15において、ジャンル内セット値に零がセットされる。次に、前記テンプレートファイル名テーブル70で指定される0→1繋ぎに関して図26に示すMIDIテンプレートセットスタート制御(SFi)が実行された後、図24に示すSD31以下の処理が実行される。SD16においては、その時点におけるジャンル内セット値が1であるか否かが判断される。このSD16の判断が否定される場合には、SD19以下の処理が実行されるが、SD16の判断が肯定される場合には、SD17において、前記テンプレートファイル名テーブル70で指定される1→2繋ぎの音声データ(生音データ)が読み込まれる。次に、SD18において、ジャンル内セット値に零がセットされる。次に、前記テンプレートファイル名テーブル70で指定される1→2繋ぎに関して図26に示すMIDIテンプレートセットスタート制御(SFii)が実行された後、図24に示すSD31以下の処理が実行される。SD19においては、その時点におけるジャンル内セット値が2であるか否かが判断される。このSD19の判断が否定される場合には、SD22以下の処理が実行されるが、SD19の判断が肯定される場合には、SD20において、前記テンプレートファイル名テーブル70で指定される2→3繋ぎの音声データ(生音データ)が読み込まれる。次に、SD21において、ジャンル内セット値に零がセットされる。次に、前記テンプレートファイル名テーブル70で指定される2→3繋ぎに関して図26に示すMIDIテンプレートセットスタート制御(SFiii)が実行された後、図24に示すSD31以下の処理が実行される。SD22においては、前記テンプレートファイル名テーブル70で指定される3→1繋ぎの音声データ(生音データ)が読み込まれる。次に、SD23において、ジャンル内セット値に零がセットされる。次に、前記テンプレートファイル名テーブル70で指定される3→1繋ぎに関して図26に示すMIDIテンプレートセットスタート制御(SFiv)が実行された後、図24に示すSD31以下の処理が実行される。
図24のSD24においては、その時点におけるジャンル内セット値が1であるか否かが判断される。このSD24の判断が否定される場合には、SD28以下の処理が実行されるが、SD24の判断が肯定される場合には、SD25において、前記テンプレートファイル名テーブル70で指定される1→0繋ぎの音声データ(生音データ)が読み込まれる。次に、SD26において、ジャンル内セット値に零がセットされる。次に、SD27において、読み込まれた音声データが読み込まれたサイズ分だけ前記コーデック部52(PCMデバイス)に出力された後、図22のSD12以下の処理が再び実行される。SD28においては、その時点におけるジャンル内セット値が2であるか否かが判断される。このSD28の判断が肯定される場合には、SD29において、前記テンプレートファイル名テーブル70で指定される2→0繋ぎの音声データ(生音データ)が読み込まれた後、SD27以下の処理が実行されるが、SD28の判断が否定される場合には、SD30において、前記テンプレートファイル名テーブル70で指定される3→0繋ぎの音声データ(生音データ)が読み込まれた後、SD27以下の処理が実行される。SD31においては、図27乃至図31に示すアレンジMIDI1曲分演奏制御に関してアレンジ生音再生における4小節カウンタが継承され、SD32において、図27乃至図31に示すアレンジMIDI1曲分演奏制御が起床された後、SD27以下の処理が実行される。
図25は、前記カラオケ装置16のCPU38による展開情報に基づくテンプレート生音データ選択、取得、連結制御を示すフローチャートである。この制御では、先ず、SE1において、読み出された展開情報のメタ情報が「Fill」であるか否かが判断される。このSE1の判断が肯定される場合には、SE2において、前記テンプレートファイル名テーブル70の「Fill」で指定される音声データ(生音データ)が全て読み込まれ、SE9において、読み込まれたデータサイズが生音連結サイズに加算された後、本ルーチンが終了させられるが、SE1の判断が否定される場合には、SE3において、読み出された展開情報のメタ情報が「Amelo」、「Bmelo」、「Cmelo」、又は「間奏」であるか否かが判断される。このSE3の判断が肯定される場合には、SE4において、アレンジ生音再生に関する盛り上がりフラグが零にセットされ、SE8において、前記テンプレートファイル名テーブル70から盛り上がりフラグで指定される生音データが指定小節箇所のみ読み込まれた後、SE9以下の処理が実行されるが、SE3の判断が否定される場合には、SE5において、読み出された展開情報のメタ情報が「Intro」であるか否かが判断される。このSE5の判断が肯定される場合には、SE6において、アレンジ生音再生に関する盛り上がりフラグが1にセットされた後、SE8以下の処理が実行されるが、SE5の判断が否定される場合には、SE7において、読み出された展開情報がデータ無しであるか否かが判断される。このSE7の判断が否定される場合には、SE8以下の処理が実行されるが、SE7の判断が肯定される場合には、それをもって本ルーチンが終了させられる。
図26は、前記カラオケ装置16のCPU38によるMIDIテンプレートセットスタート制御を示すフローチャートである。この制御では、先ず、SF1において、前記MIDI音源56の設定を初期化するためのMIDIバイト列が作成される。次に、SF2において、アレンジ生音再生に関する4小節カウンタ値及びステップ値零が前記MIDI音源56にセットされる。次に、SF3において、指示された繋ぎMIDIテンプレートデータが前記基調演奏データベース68から読み込まれる。次に、SF4において、一時ステップ値に192がセットされる。次に、SF5において、読み出されたトラックがテンプレートデータトラック1にセットされる。次に、SF6において、読み出されたトラックが終端に到達したか否かが判断される。このSF6の判断が肯定される場合には、SF11以下の処理が実行されるが、SF6の判断が否定される場合には、SF7において、読み出し位置データのデルタ値は零以下であるか否かが判断される。このSF7の判断が肯定される場合には、SF8において、アレンジ生音再生に関する4小節カウント値及び一時ステップ値で前記MIDI音源56に対象となるMIDIデータが登録され、SF9において、トラック内読み出し位置が次のデータに移動させられた後、SF7以下の処理が再び実行されるが、SF7の判断が否定される場合には、SF10において、デルタ値が1減算された後、SF11において、読み出されたトラックが最終トラックであるか否かが判断される。このSF11の判断が否定される場合には、SF12において、読み出しトラック位置が次のトラックに移動させられ、SF13において、一時ステップ値に1が加算された後、SF6以下の処理が再び実行されるが、SF11の判断が肯定される場合には、SF14において、全トラックが終端に達したか否かが判断される。このSF14の判断が否定される場合には、SF15において、読み出しトラック位置が先頭トラックへ移動させられた後、SF13以下の処理が実行されるが、SF14の判断が肯定される場合には、それをもって本ルーチンが終了させられる。
図27乃至図31は、前記カラオケ装置16のCPU38によるアレンジMIDI1曲分演奏制御を示すフローチャートである。この制御では、先ず、SG1において、対象となる楽曲データにおけるMIDIデータが読み込まれる。次に、SG2において、読み込まれたMIDIデータにおけるヘッダのデルタ補正値が零以外であるか否かが判断される。このSG2の判断が肯定される場合には、SG4以下の処理が実行されるが、SG2の判断が否定される場合には、SG3において、楽曲テンポ値、テンプレートテンポ値、及びテンポ補正テーブル72に基づいてデルタ補正値が取得された後、SG4において、アレンジ生音再生制御において起床されるまでスリープ状態とされる。次に、SG5において、アレンジ生音再生制御に関して継承された4小節カウンタ値が前記MIDI音源56の4小節カウンタにセットされる。次に、SG6において、MIDI演奏に関する4小節ステップ値が3小節目の開始位置である384にセットされる。次に、SG7において、先読みフラグがオン、頭フラグがオフ、MIDI演奏に関する盛り上がりフラグがオフとされると共に、テンプレート現在コードCがセットされる。次に、SG8において、先読みトラックが対象となるMIDIデータのトラック1にセットされた後、図28に示すSG9以下の処理が実行される。
図28のSG9においては、読み出しトラックが終端に到達したか否かが判断される。このSG9の判断が肯定される場合には、図29に示すSG17以下の処理が実行されるが、SG9の判断が否定される場合には、SG10において、読み出しトラックがメタ情報トラックであるか否か判断される。このSG10の判断が肯定される場合には、図30に示すSG30以下の処理が実行されるが、SG10の判断が否定される場合には、SG11において、読み出し位置データのデルタ値が零以下であるか否かが判断される。このSG11の判断が否定される場合には、SG12において、デルタ値が1減算された後、図29に示すSG17以下の処理が実行されるが、SG11の判断が肯定される場合には、SG13において、MIDI演奏に関する4小節カウンタ値及びステップ値で前記MIDI音源56に対象となるMIDIデータが登録される。次に、SG14において、トラック内の読み出し位置が次のデータへ移動させられる。次に、SG15において、その時点において読まれているトラックが楽曲データトラックであるか否かが判断される。このSG15の判断が否定される場合には、SG11以下の処理が再び実行されるが、SG15の判断が肯定される場合には、SG16において、次のデータにおけるデルタ値にデルタ補正値が乗算された後、SG11以下の処理が再び実行される。
図29のSG17においては、その時点において読まれているトラックが最終楽章トラックであるか否かが判断される。このSG17の判断が肯定される場合には、SG18において、読み出しトラックがテンプレートトラック1にセットされた後、SG23以下の処理が実行されるが、SG17の判断が否定される場合には、SG19において、その時点において読まれているトラックが最終テンプレートトラックであるか否かが判断される。このSG19の判断が肯定される場合には、SG24以下の処理が実行されるが、SG19の判断が否定される場合には、SG20において、その時点において読まれているトラックが非最終楽章データトラックであるか否かが判断される。このSG20の判断が肯定される場合には、SG21において、読み出しトラックが次の楽曲データトラックにセットされた後、SG23以下の処理が実行されるが、SG20の判断が否定される場合には、SG22において、読み出しトラックが次のテンプレートトラックにセットされた後、SG23において、楽曲データにおける全トラックが終端に到達したか否かが判断される。このSG23の判断が否定される場合には、図28のSG9以下の処理が実行されるが、SG23の判断が肯定される場合には、それをもって本ルーチンが終了させられる。SG24においては、読み出しトラックが楽曲データトラック1にセットされる。次に、SG25において、頭フラグがオンであるか否かが判断される。このSG25の判断が否定される場合には、SG23以下の処理が実行されるが、SG25の判断が肯定される場合には、SG26において、MIDI演奏に関する4小節ステップ値に1が加算される。次に、SG27において、MIDI演奏に関する4小節ステップ値が768であるか否かが判断される。このSG27の判断が否定される場合には、SG23以下の処理が実行されるが、SG27の判断が肯定される場合には、SG28において、先読みフラグがオンとされ、SG29において、MIDI演奏における4小節カウンタ値に1が加算されると共にステップ値に零がセットされた後、SG23以下の処理が実行される。
図30のSG30においては、先読みフラグがオンであるか否かが判断される。このSG30の判断が否定される場合には、図31のSG40以下の処理が実行されるが、SG30の判断が肯定される場合には、SG31において、先読みフラグがオフにセットされる。次に、SG32において、一時カウンタ値及び一時ステップ値にMIDI音源56の内部値がセットされる。次に、SG33において、トラック内読み出し位置が記憶される。次に、SG34において、読み出し位置データのデルタ値が零以下であるか否かが判断される。このSG34の判断が否定される場合には、SG35において、デルタ値が48減算されると共に一時ステップ値が48加算された後、SG36以下の処理が実行されるが、SG34の判断が肯定される場合には、図32に示す第1のメタ制御(SH)が実行された後、SG37において、トラック内読み出し位置が次のデータへ移動させられる。次に、SG38において、次のデータにおけるデルタ値にデルタ補正値が乗算された後、SG34以下の処理が再び実行される。SG36においては、一時ステップ値が768であるか否かが判断される。このSG36の判断が否定される場合には、SG34以下の処理が再び実行されるが、SG36の判断が肯定される場合には、図31のSG39以下の処理が実行される。
図31のSG39においては、トラック内読み出し位置が記憶されていた位置に戻される。次に、図34に示すMIDIテンプレート制御(SJ)が実行される。次に、SG40において、読み出し位置データのデルタ値は零以下であるか否かが判断される。このSG40の判断が否定される場合には、SG41において、デルタ値が1減算された後、図29のSG17以下の処理が実行されるが、SG40の判断が肯定される場合には、図33に示す第2のメタ制御(SI)が実行された後、SG42において、トラック内読み出し位置が次のデータへ移動させられる。次に、SG43において、次のデータにおけるデルタ値にデルタ補正値が乗算された後、SG40以下の処理が再び実行される。
図32は、前記カラオケ装置16のCPU38による第1のメタ制御を示すフローチャートである。この制御では、先ず、SH1において、メタ情報が「Intro」、「Amelo」、「Bmelo」、「Cmelo」、「サビ」、「間奏」、又は「変拍」であるか否かが判断される。このSH1の判断が否定される場合には、SH5以下の処理が実行されるが、SH1の判断が肯定される場合には、SH2において、一時カウンタ値で示される展開テーブルの一時ステップ値で示される箇所以降全てにデータ無しを示すIDがセットされる。次に、SH3において、一時カウンタ値に1が加算されると共に一時ステップ値に零がセットされる。次に、SH4において、一時カウンタ値及び一時ステップ値で示される展開テーブルの展開部にメタ情報「Intro」、「Amelo」、「Bmelo」、「Cmelo」、「サビ」、「間奏」、及び「変拍」の何れかを示すIDが書き込まれた後、本ルーチンが終了させられる。SH5においては、メタ情報が「Fill」であるか否かが判断される。このSH5の判断が肯定される場合には、SH6において、一時カウンタ値及び一時ステップ値で示される展開テーブルの展開部にメタ情報「Fill」を示すIDが書き込まれた後、本ルーチンが終了させられるが、SH5の判断が否定される場合には、SH7において、メタ情報がコード情報であるか否かが判断される。このSH7の判断が否定される場合には、それをもって本ルーチンが終了させられるが、SH7の判断が肯定される場合には、SH8において、一時カウンタ値及び一時ステップ値で示される展開テーブルのMIDI部にコード情報が書き込まれた後、本ルーチンが終了させられる。
図33は、前記カラオケ装置16のCPU38による第2のメタ制御を示すフローチャートである。この制御では、先ず、SI1において、メタ情報が頭フラグであるか否かが判断される。このSI1の判断が否定される場合には、SI4以下の処理が実行されるが、SI1の判断が肯定される場合には、SI2において、MIDI演奏に関する4小節ステップ値に576がセットされる。次に、SI3において、頭フラグがオンにセットされた後、本ルーチンが終了させられる。SI4においては、メタ情報が「Intro」、「Amelo」、「Bmelo」、「Cmelo」、「サビ」、「間奏」、又は「変拍」であるか否かが判断される。このSI4の判断が否定される場合には、それをもって本ルーチンが終了させられるが、SI4の判断が肯定される場合には、SI5において、前記MIDI音源56に4小節先頭スキップ指示が書き込まれる。次に、SI6において、MIDI演奏に関する4小節ステップ値に零がセットされる。次に、SI7において、MIDI演奏に関する4小節カウンタ値に1が加算された後、本ルーチンが終了させられる。
図34及び図35は、前記カラオケ装置16のCPU38によるMIDIテンプレート制御を示すフローチャートである。この制御では、先ず、SJ1において、MIDI演奏に関する4小節カウンタで示される展開テーブルの展開部、コード情報が取得される。次に、SJ2において、展開部読み取り位置、コード部読み取り位置が先頭にセットされる。次に、SJ3において、連結読み取りエリア、一時読み込みエリアがクリアされる。次に、SJ4において、展開情報が「Fill」であるか否かが判断される。このSJ4の判断が肯定される場合には、SJ5において、前記テンプレートファイル名テーブル70において「Fill」のコード部情報で指定されるMIDIテンプレートデータが一時読み込みエリアに読み込まれた後、図35のSJ12以下の処理が実行されるが、SJ4の判断が否定される場合には、SJ6において、展開情報が「Amelo」、「Bmelo」、「Cmelo」、又は「間奏」であるか否かが判断される。このSJ6の判断が肯定される場合には、SJ7において、MIDI演奏に関する盛り上がりフラグが零にセットされた後、SJ11以下の処理が実行されるが、SJ6の判断が否定される場合には、SJ8において、展開情報が「Intro」又は「サビ」であるか否かが判断される。このSJ8の判断が肯定される場合には、SJ9において、MIDI演奏に関する盛り上がりフラグが1にセットされた後、SJ11以下の処理が実行されるが、SJ8の判断が否定される場合には、SJ10において、展開情報データ無しであるか否かが判断される。このSJ10の判断が肯定される場合には、図35のSJ14以下の処理が実行されるが、SJ10の判断が否定される場合には、SJ11において、前記テンプレートファイル名テーブル70より「盛り上がり」のコード部情報で指定されるMIDIテンプレートデータが一時読み込みエリアに読み込まれた後、図35のSJ12以下の処理が実行される。
図35のSJ12においては、コード部情報ルート値とCの差分が一時読み込みエリア内のMIDIテンプレートデータの全トラック、全ノートのノートナンバーに加算される。次に、SJ13において、一時読み込みエリアの内容が連結読み込みエリアにトラック毎に連結コピーされる。次に、SJ14において、コード部読み取り位置が最終であるか否かが判断される。このSJ14の判断が肯定される場合には、SJ18以下の処理が実行されるが、SJ14の判断が否定される場合には、SJ15において、コード部読み取り位置が次の位置へ移動させられる。次に、SJ16において、コード部読み取り位置が4つ移動させられたか否かが判断される。このSJ16の判断が否定される場合には、図34に示すSJ4以下の処理が再び実行されるが、SJ16の判断が肯定される場合には、SJ17において、展開部読み取り位置が次の位置へ移動させられた後、図34のSJ4以下の処理が再び実行させられる。SJ18においては、上限/下限確認対象トラックがMIDIテンプレートトラック1にセットされる。次に、SJ19において、上限/下限確認対象トラック先頭から終端までの最高音及び最低音データ音高値が取得される。次に、SJ20において、取得された最高音データ音高値が音高上限値を超えているか否かが判断される。このSJ20の判断が否定される場合には、SJ20′以下の処理が実行されるが、SJ20の判断が肯定される場合には、SJ21において、上限確認対象トラックの全ノートのノートナンバーが12減算された後、SJ20′において、取得された最低音データ音高値が音高下限値を下回っているか否かが判断される。このSJ20′の判断が否定される場合には、SJ22以下の処理が実行されるが、SJ20′の判断が肯定される場合には、SJ21′において、下限確認対象トラックの全ノートのノートナンバーが12加算された後、SJ22において、上限/下限確認対象トラックが次のトラックへセットされる。次に、SJ23において、最終トラックであるか否かが判断される。このSJ23の判断が否定される場合には、SJ19以下の処理が再び実行されるが、SJ23の判断が肯定される場合には、SJ24において、連結読み込みエリアの内容が演奏エリアに連結された後、本ルーチンが終了させられる。
図36は、前記カラオケ装置16のCPU38によるMIDIドライバインターフェイス制御を示すフローチャートである。この制御では、先ず、SK1において、テンポ値のセットであるか否かが判断される。このSK1の判断が否定される場合には、SK6以下の処理が実行されるが、SK1の判断が肯定される場合には、SK2において、MIDI演奏に関する4小節カウンタ値、ステップ値に零がセットされる。次に、SK3において、MIDIリングバッファ書き込み位置、読み出し位置へリングバッファ先頭がセットされる。次に、SK4において、制御リングバッファ書き込み位置、読み出し位置へリングバッファ先頭がセットされる。次に、SK5において、テンポ値に従ってタイマ割り込み設定が行われ、割り込みが許可された後、本ルーチンが終了させられる。SK6においては、MIDIデータのセットであるか否かが判断される。このSK6の判断が否定される場合には、SK9以下の処理が実行されるが、SK6の判断が肯定される場合には、SK7において、MIDIリングバッファ書き込み位置にセット内容が書き込まれる。次に、SK8において、MIDIリングバッファ書き込み位置が次のバッファ(終端に到達した場合は先頭)へ移動させられた後、本ルーチンが終了させられる。SK9においては、4小節先頭スキップ指示のセットであるか否かが判断される。このSK9の判断が否定される場合には、それをもって本ルーチンが終了させられるが、SK9の判断が肯定される場合には、SK10において、制御リングバッファ書き込み位置にセット内容が書き込まれる。次に、SK11において、制御リングバッファ書き込み位置が次のバッファ(終端に到達した場合は先頭)へ移動させられた後、本ルーチンが終了させられる。
図37及び図38は、前記カラオケ装置16のCPU38によるMIDIドライバ割込み制御を示すフローチャートである。この制御では、先ず、SL1において、MIDI演奏に関する4小節ステップ値に1が加算される。次に、SL2において、MIDI演奏に関する4小節ステップ値が768であるか否かが判断される。このSL2の判断が否定される場合には、SL5以下の処理が実行されるが、SL2の判断が肯定される場合には、SL3において、MIDI演奏に関する4小節カウンタ値に1が加算される。次に、SL4において、MIDI演奏に関する4小節ステップ値に零がセットされる。次に、SL5において、MIDIリングバッファ読み出し位置が次のバッファ(終端に到達した場合は先頭)へ移動させられる。次に、SL7において、MIDI演奏に関する4小節カウンタ値がMIDIリングバッファ内指定カウンタ値よりも大きいか否かが判断される。このSL7の判断が肯定される場合には、SL8において、MIDIリングバッファ内バイト列が前記シリアルデバイス58に出力された後、図38のSL10以下の処理が実行されるが、SL7の判断が否定される場合には、SL9において、MIDI演奏に関する4小節カウンタ値がMIDIリングバッファ内出力指定カウンタ値と等しく、且つMIDI演奏に関する4小節ステップ値がMIDIリングバッファ内出力指定ステップ値以上であるか否かが判断される。このSL9の判断が肯定される場合には、SL8以下の処理が実行されるが、SL9の判断が否定される場合には、図38のSL10以下の処理が実行される。
図38のSL10においては、制御リングバッファ読み出し位置のバッファ内容が取得され、そのバッファがクリアされる。次に、SL11において、MIDI演奏に関する4小節カウンタ値が制御リングバッファ内指定カウンタ値よりも大きいか否かが判断される。このSL11の判断が肯定される場合には、SL13以下の処理が実行されるが、SL11の判断が否定される場合には、SL12において、MIDI演奏に関する4小節カウンタ値が制御リングバッファ内出力指定カウンタ値と等しく、且つMIDI演奏に関する4小節ステップ値が制御リングバッファ内出力指定ステップ値以上であるか否かが判断される。このSL12の判断が否定される場合には、それをもって本ルーチンが終了させられるが、SL12の判断が肯定される場合には、SL13において、制御内容が4小節スキップであるか否かが判断される。このSL13の判断が肯定される場合には、SL14において、MIDIに関する4小節カウンタ値に1が加算されると共にステップ値に零がセットされた後、本ルーチンが終了させられるが、SL13の判断が否定される場合には、SL15において、よく知られた既存の制御処理が実行された後、本ルーチンが終了させられる。以上の制御において、SC、SK、及びSLが前記演奏制御手段80の動作に、SD、SE、SF、SG、SH、SI、及びSJが基調演奏制御手段84の動作にそれぞれ対応する。
このように、本実施例によれば、前記演奏映像106等において歌詞文字映像104の背面側レイヤに表示される背景映像102等を、併行して出力される演奏曲の要素に応じて変化させる映像表示制御手段90(SB8乃至SB11)を備えたものであることから、任意の演奏曲のカラオケ演奏に際してその演奏曲と連動して変化する背景映像102等を含む演奏映像106等を表示させることができ、その演奏映像106等に前記演奏曲との一体感を付与することができる。すなわち、カラオケ演奏に際してその演奏を盛り上げる背景映像を表示させるカラオケ装置16を提供することができる。
また、前記映像表示制御手段90は、併行して出力される演奏曲のテンポに応じて前記背景映像102等を変化させるものであるため、任意の演奏曲のカラオケ演奏に際してその演奏曲のリズムに連動して変化する背景映像102等を含む演奏映像106等を表示させることができ、その演奏映像106等に前記演奏曲との有機的な一体感を付与することができるという利点がある。
また、前記映像表示制御手段90は、併行して出力される演奏曲の音程の変化に応じて前記背景映像102等を変化させるものであるため、任意の演奏曲のカラオケ演奏に際してその演奏曲の音程の変化に連動して変化する背景映像102等を含む演奏映像106等を表示させることができ、その演奏映像106等に前記演奏曲との有機的な一体感を付与することができるという利点がある。
また、前記演奏曲は、複数のトラックを含むMIDIデータに基づいて出力されるものであり、前記映像表示制御手段90は、併行して出力される演奏曲における所定のトラックの要素に応じて前記背景映像102等を変化させるものであるため、任意の演奏曲のカラオケ演奏に際して例えばドラムトラックやバストラック等、その演奏曲の特徴をよく表す所定のトラックと連動して変化する背景映像102等を含む演奏映像106等を表示させることができ、その演奏映像106等に前記演奏曲との有機的な一体感を付与することができるという利点がある。
また、前記演奏曲の要素に応じて変化し得るエフェクト映像100等を出力するためのエフェクト映像データを記憶する映像データベース69を備え、前記映像表示制御手段90は、その映像データベース69に記憶されたエフェクト映像データに基づき、併行して出力される演奏曲の要素に応じて変化する前記エフェクト映像100等を、前記背景映像102等の一部又は全部として表示させるものであるため、前記演奏映像106等における背景映像102等を、併行して出力される演奏曲の要素に応じて実用的な態様で変化させることができるという利点がある。
また、デコードにより所定のベース映像を出力するためのベース映像データを記憶する映像データベース69を備え、前記映像表示制御手段90は、その映像データベース69に記憶されたベース映像データに基づいて出力される前記ベース映像98等を、前記背景映像102等における最背面レイヤに表示させると共に、そのベース映像98等の前面側レイヤに前記エフェクト映像100等を表示させるものであるため、前記演奏映像106等における背景映像102等を、併行して出力される演奏曲の要素に応じて実用的な態様で変化させることができるという利点がある。
また、前記映像表示制御手段90は、その映像データベース69に記憶されたベース映像データに基づいて出力される前記ベース映像98等を背景映像の一部又は全部として表示させると共に、併行して出力される演奏曲の要素に応じてそのベース映像98に所定のエフェクト変化をかけるものであるため、前記演奏映像120における背景映像を、併行して出力される演奏曲の要素に応じて実用的な態様で変化させることができるという利点がある。
また、複数の前記演奏曲を順次出力させる際、その演奏曲の出力と併行して所定のテンポを有する所定の基調演奏を出力させる基調演奏制御手段84(SD、SE、SF、SG、SH、SI、及びSJ)を備えたものであり、前記映像表示制御手段90は、前記演奏映像106等において歌詞文字映像104の背面側レイヤに表示される背景映像102等を、併行して出力される基調演奏に応じて変化させるものであるため、あたかもクラブにおけるディスクジョッキーによる演奏のように基調となるリズムに乗せて複数の演奏曲を順次出力させる演奏形態において、前記演奏映像における背景映像を、その基調となるリズムに応じて変化させることができるという利点がある。
以上、本発明の好適な実施例を図面に基づいて詳細に説明したが、本発明はこれに限定されるものではなく、更に別の態様においても実施される。
例えば、前述の実施例において、前記映像表示制御手段90に含まれる文字映像表示制御手段92、ベース映像表示制御手段94、及びエフェクト映像表示制御手段96は、何れも前記CPU38に機能的に備えられたものであったが、本発明はこれに限定されるものではなく、それら文字映像表示制御手段92、ベース映像表示制御手段94、及びエフェクト映像表示制御手段96の何れか乃至は全部が個別の制御装置として備えられたものであってもよい。また、前記映像表示制御手段90が前記CPU38とは別体の制御部として備えられたものであっても構わない。
また、前述の実施例では、所定の演奏曲の出力が行われている間に、その演奏曲の出力と併行して表示される演奏映像における背景映像を、その演奏曲の要素に応じて変化させる例を説明したが、前記アレンジ演奏モードにおいては、所定の演奏曲の演奏が終わってから次の演奏曲の演奏が開始されるまでの曲間にも所定の演奏が出力されており、その曲間の演奏に応じて前記ディスプレイ30に表示される映像を変化させてもよい。このようにすれば、演奏において盛り上がった場の雰囲気をそのまま次の曲に繋げることができる。
また、前述の実施例では、前記基調演奏制御手段84等によるアレンジ演奏を行い得るカラオケ装置16に本発明が適用された例を説明したが、斯かるアレンジ演奏を行わないカラオケ装置にも本発明は好適に適用される。
その他、一々例示はしないが、本発明はその趣旨を逸脱しない範囲内において種々の変更が加えられて実施されるものである。