図1は、本発明の楽器音出力装置の好適な実施例であるカラオケ装置10の構成を例示するブロック線図である。この図1に示すように、本実施例のカラオケ装置10は、中央演算処理装置であるCPU12と、読出専用メモリであるROM14と、随時書込読出メモリであるRAM16と、記憶装置であるハードディスク18と、グラフィックスチップ(グラフィックスボード)等の映像処理部20と、サウンドチップ(サウンドボード)等の音声処理部22と、操作パネル24と、表示制御部26及び入力制御部28を介して前記CPU12に接続されたタッチパネルディスプレイ30と、通信インターフェイス36と、LANインターフェイス38と、無線通信部40と、ビデオ出力端子42を介して前記映像処理部20に接続された映像表示装置であるディスプレイ44と、オーディオ入力端子46を介して前記音声処理部22に接続された音声入力装置であるマイクロフォン48と、オーディオ出力端子50を介して前記音声処理部22に接続された音声増幅装置であるアンプ52と、そのアンプ52に備えられた音声出力装置であるスピーカ54と、種々のUSB(Universal Serial Bus)モジュールを前記カラオケ装置10に接続するためのUSB接続端子58と、オーディオ入力端子72を介して前記音声処理部22に接続されたサウンドエフェクタ74とを、備えて構成されている。
前記CPU12は、前記RAM16の一時記憶機能を利用しつつ前記ROM14に予め記憶された所定のプログラムに基づいて電子情報を処理・制御する所謂マイクロコンピュータであり、前記カラオケ装置10における各種制御を実行する。すなわち、前記操作パネル24、タッチパネルディスプレイ30、或いは電子早見本装置68等により所定の楽曲(カラオケ演奏曲)が選曲入力された場合、その選曲入力された楽曲を前記RAM16等に設けられた予約曲テーブルに登録する選曲予約制御、その予約曲テーブルの演奏順に従って前記ハードディスク18から前記RAM16に選曲されたカラオケ演奏曲の演奏情報及び歌詞情報(楽曲データ)を読み出す楽曲データ読出制御、楽曲の演奏進行に応じてそのRAM16から前記音声処理部22へ演奏情報を送信する演奏出力制御、その演奏出力制御に際して前記RAM16に展開された歌詞情報に基づいて歌詞文字映像を生成して前記映像処理部20へ送信する歌詞文字映像出力制御、前記演奏出力制御に際して前記映像処理部20を制御して所定の背景映像を再生させる背景映像出力制御、及びカラオケ演奏が行われていない間すなわち曲間において、新譜情報、選曲ランキング、店舗広告等の曲間情報を出力させる曲間情報出力制御等の基本的な制御に加え、後述する本実施例の演奏音変換制御等の各種制御を実行する。
前記映像処理部20は、前記ディスプレイ44に表示される画面(映像)の描画に係る各種制御を行う。例えば、前記CPU12から供給されるデータに基づいてグラフィックスメモリにそのデータを書き込み、そのデータを読み出すことによって前記ビデオ出力端子42を介して前記ディスプレイ44に所定の画面を表示させる制御を行う。具体的には、前記カラオケ装置10による楽曲の演奏出力(カラオケ演奏)に際して、前記CPU12において生成された歌詞文字映像等の文字映像(テロップ)を出力させたり、前記ハードディスク18に記憶されたMPEG(Moving Picture Experts Group)データ等の背景映像情報に基づいて所定の背景映像を再生(デコード)させたり、その背景映像の前面側に前記歌詞文字映像を合成させて前記ディスプレイ44に表示させたり、その歌詞文字映像を前記楽曲の演奏進行に応じて順次色替わり表示させる等の各種表示制御を行う。なお、本実施例においては、前記映像処理部20により前記ディスプレイ44の表示制御を行う一方、後述する表示制御部26により前記タッチパネルディスプレイ30(表示装置32)の表示制御を行う態様について説明するが、前記映像処理部20により前記タッチパネルディスプレイ30の表示制御をも行う態様も考えられる。この態様において、前記表示制御部26は必ずしも設けられなくともよい。
前記音声処理部22は、FM音源やPCM音源等の各種音源を備え、前記カラオケ装置10による音声出力に係る各種制御を行う。好適には、電子回路により音を合成し、各種音色を発生するシンセサイザ(synthesizer)を備えている。このシンセサイザは、前記ハードディスク18から読み出されて送られて来るカラオケ演奏曲の演奏情報に基づいて楽器の演奏信号等の音楽信号を生成する。前記シンセサイザは、好適には、MIDI(Musical Instrument Digital Interface)端子を備えたものであり、前記演奏情報は、例えばMIDI形式のデータである。すなわち、本実施例においては、前記音声処理部22がMIDI音源モジュールに対応する。そのMIDIデータに基づいて前記シンセサイザにより生成された音楽信号は、前記マイクロフォン48から前記オーディオ入力端子46を介して入力される利用者(演奏者)の歌声とミキシングされ、前記オーディオ出力端子50を介して前記アンプ52に供給されてそのアンプ52により増幅されて前記スピーカ54から出力される。
前記操作パネル24は、前記カラオケ装置10の利用者が歌いたい楽曲を選択したり、楽曲の演奏出力に係る音程を調整したり、演奏と歌との音量バランスを調整したり、その他、エコー、音量、トーン等の各種調整を行うための操作ボタン(スイッチ)或いはつまみを備えた入力装置である。また、前記タッチパネルディスプレイ30は、画像(映像)を表示させると共に利用者の操作に応じて前記カラオケ装置10への操作入力を行う装置であり、そのタッチパネルディスプレイ30に所定の画像(映像)を表示させる表示装置32と、利用者の指や図示しない備え付けのペン等による前記タッチパネルディスプレイ30への接触により入力を行うタッチパネル34とを、備えている。前記表示制御部26は、前記CPU12から供給される情報に基づいて前記表示装置32に表示される画面(映像)の描画を制御する映像処理部である。前記入力制御部28は、前記タッチパネル34により入力される操作入力情報を前記CPU12等に供給する入力処理部である。以上の構成を備えていることで、前記タッチパネルディスプレイ30は、前記ディスプレイ44とは別に第2の映像表示装置として機能すると共に、前記カラオケ装置10の利用者が歌いたい楽曲を選択したり、楽曲の演奏出力に係る音程を調整したり、演奏と歌との音量バランスを調整したり、その他、エコー、音量、トーン等の各種調整を行うための入力装置として機能する。
前記カラオケ装置10は、前記通信インターフェイス36及びネットワーク接続端子56を介して通信回線60に接続されており、同様にその通信回線60に接続された他の機器との相互間でその通信回線60を介して情報の通信が可能とされている。また、前記カラオケ装置10は、後述するLAN64等を介して前記通信回線60に接続されたものであってもよい。前記通信回線60は、例えば公衆電話回線、ADSL回線、或いは光ファイバ回線等から構成されるWWW(World Wide Web)等のインターネットに接続された広域情報通信網である。前記カラオケ装置10は、好適には、前記通信回線60を介して図示しないサーバ(ホスト装置)に接続されており、そのサーバから楽曲データ(カラオケデータ)、背景映像情報、及び曲間情報等のデジタルコンテンツ(Digital Contents)の配信を受け付けるものである。すなわち、前記カラオケ装置10は、好適には、所定の通信回線に接続されてサーバとの間で各種情報の送受信を行う通信カラオケ装置であるが、斯かる通信回線に接続されない非通信型のカラオケ装置等にも本発明は好適に適用される。
前記LANインターフェイス38は、前記カラオケ装置10をLAN接続端子62を介してLAN(local area network)64に接続するための接続器であり、そのように前記LAN64に接続されることで、前記カラオケ装置10は、同様に前記LAN64に接続された電子早見本装置68等の他の機器との間で情報の送受信が可能とされる。また、前記カラオケ装置10が設置される店舗等に複数台のカラオケ装置が備えられている場合において、同様に前記LAN64に接続されたカラオケ装置相互間において情報の送受信が可能とされる。例えば、前記LAN64に接続されたアクセスポイント66を介して受信される電子早見本装置68からの選曲入力を受け付けて前記RAM16に設けられた予約曲テーブルに記憶したり、そのアクセスポイント66を介して前記カラオケ装置10から電子早見本装置68へ所定の情報を送信したりというように、電波を介して前記カラオケ装置10と電子早見本装置68との間における相互の情報のやりとりが実行される。
前記無線通信部40は、前記カラオケ装置10と前記電子早見本装置68等の入力装置との間の無線通信を行う。例えば、前記電子早見本装置68等の入力装置から送信されるリモコン信号を受信するリモコン受信部として機能する。前記カラオケ装置10と電子早見本装置68との対応付け(くくりつけ)処理は、好適には、斯かるリモコン信号(赤外線信号)により前記無線通信部40を介して行われる。すなわち、前記電子早見本装置68は、それぞれ個別のシリアル番号を有しており、前記対応付け処理においては、例えばそのシリアル番号(例えば、下4桁)及び所定の接続コードを含む信号が接続通知として前記カラオケ装置10へ送信され、前記無線通信部40によりその接続信号を受信したカラオケ装置10に対して前記電子早見本装置68が対応付けられる。そのようにして前記カラオケ装置10に対応付けられた電子早見本装置68は、そのカラオケ装置10の入力装置(遠隔操作装置)として機能し、その電子早見本装置68から送信される信号が前記CPU12に供給されることで、前記カラオケ装置10の利用者が歌いたい楽曲を選択したり、楽曲の演奏出力に係る音程を調整したり、演奏と歌との音量バランスを調整したり、その他、エコー、音量、トーン等の各種調整を行うための入力が受け付けられるようになっている。なお、前記対応付け処理が行われた後、前記電子早見本装置68と前記カラオケ装置10との間の通信は、前記LAN64及びアクセスポイント66等を介したLAN通信により行われる。また、本実施例においては、前記カラオケ装置10に対応付け処理の行われた電子早見本装置68等の入力装置もそのカラオケ装置10の一部を構成するものであるとして以下の説明を行う。また、前記無線通信部40は、所謂スマートフォン等の携帯電話機やタブレット端末等の携帯型情報端末70から送信される赤外線信号乃至電波を受信する信号受信部としても機能する。この携帯型情報端末70との通信は、所謂ブルートゥース(登録商標)通信等の短距離無線通信により行われるものであってもよい。
前記サウンドエフェクタ74は、外部装置であるエレキギターやベースギター等の電気楽器(電子楽器)76に接続され、その電気楽器76から入力される信号を前記オーディオ入力端子72を介して前記音声処理部22へ供給する楽器入力装置である。この電気楽器76は、好適には、その演奏(操作)に応じて前記カラオケ装置10に演奏音に対応するMIDI信号を入力させるMIDI入力デバイスであり、例えばMIDIギター等である。好適には、外部装置である電気楽器76とシールド等を介して接続され、その電気楽器76から入力される信号(演奏に応じた演奏信号)を前記オーディオ入力端子72を介して前記音声処理部22へ供給する。このサウンドエフェクタ74からの信号は、直接前記アンプ52に入力されるものであってもよい。また、好適には、前記サウンドエフェクタ74には、前記電気楽器76に対応して複数のサウンドエフェクトが予め記憶されて設定可能とされたものであり、前記電気楽器76から入力される信号に予め設定された複数のサウンドエフェクトを反映させて前記音声処理部22へ供給する。また、前記MIDIデータに基づくカラオケ演奏時に前記電気楽器76からの入力信号を受け付けることも可能である。斯かる態様において、前記MIDIデータに基づいて前記シンセサイザにより生成された音楽信号は、前記サウンドエフェクタ74から前記オーディオ入力端子72を介して入力される前記電気楽器76の演奏音とミキシングされ、前記オーディオ出力端子50を介して前記アンプ52に供給されてそのアンプ52により増幅されて前記スピーカ54から出力される。
本実施例のカラオケ装置10に接続される電気楽器としては、他の態様も考えられる。例えば、外部装置であるエレクトーン(MIDIキーボード)やウインドシンセサイザ等の電気楽器(電子楽器)76が、前記USB端子58を介して前記カラオケ装置10に接続されるものであってもよい。また、前記携帯型情報端末70にインストールされた楽器演奏アプリケーションソフトウェアが電気楽器に相当するものであってもよい。また、前記電気楽器は、前記カラオケ装置10が設置された室以外の場所、例えば自宅や異なるルーム等の別の場所から、前記通信回線60を介して前記カラオケ装置10に接続されるものであってもよい。斯かる態様において、自宅にいる利用者が前記電気楽器を演奏すると、その演奏に対応する信号が前記通信回線60を介して前記カラオケ装置10に入力され、そのカラオケ装置10においてリアルタイムに楽器音が出力される。何れの態様においても、好適には、前記電気楽器76はその演奏(操作)に応じて前記カラオケ装置10に演奏音に対応するMIDI信号を入力させるMIDI入力デバイスであり、前記電気楽器76から入力された演奏音(MIDI信号)が前記音声処理部22に供給され、その音声処理部22においてその演奏音の出力(再生)が行われる。
前記ハードディスク18には、楽曲データベース78及びコードデータベース80(図3を参照)をはじめとする各種データベースが設けられている。前記楽曲データベース78は、前記カラオケ装置10により前記楽曲の演奏出力(カラオケ演奏)を行うための多数(例えば、数万曲)の楽曲データ(カラオケデータ)を記憶する。前記カラオケ装置10において出力される各楽曲に対応して前記楽曲データベース78に記憶された楽曲データは、例えば、メタデータ、演奏情報としてのMIDIデータ、及び歌詞情報としてのテロップデータを含んでいる。このメタデータは、例えば、各楽曲データの識別情報としての曲番号(選曲番号)、曲名、歌手名、登録日時等の情報を含んでいる。また、前記メタデータには、後述する各種イベント(メタイベント)が定められている。前記テロップデータは、前記映像処理部20を介して各楽曲の歌詞文字映像表示制御を行うための情報であり、例えば、前記楽曲データに対応する楽曲(演奏曲)の歌詞を複数に区分した各区分に相当するブロックデータを含んでいる。前記MIDIデータは、前記音声処理部22を介して各楽曲の演奏出力制御を行うための情報であり、複数種類の楽器にそれぞれ対応する複数のトラック(チャンネル)を備え、各トラックにおいて対応する楽器の演奏音の出力タイミングが定められている。
前記MIDIデータには、ヘッダ(ヘッダチャンク)が定められると共に、前記複数のトラック(トラックチャンク)としてコンダクタトラック、トラック1、トラック2、トラック3、・・・、トラックn(例えば、n=16)が定められている。前記ヘッダには、データ長、フォーマット、トラック数、及び時間単位等の情報が記憶されている。この時間単位は、4分音符の長さを示すものであり、前記MIDIデータの分解能に対応する。前記コンダクタトラックには、前記MIDIデータのテンポが定められている。前記トラック1〜16には、各トラックにそれぞれ対応して演奏出力に係る楽器(演奏音)の種類と、出力される演奏音の音階及び音長等を定める楽譜情報とが定められている。例えば、前記トラック2が「ピアノ」、トラック3が「エレキギター」、トラック4が「ベースギター」、・・・、というように、各トラック毎に対応する楽器(演奏音)の種類が定められており、その楽器の出力タイミング(デルタタイム)、音階、音量(Volume)等の情報が各トラック毎に定められている。すなわち、本実施例においては、前記MIDIデータが楽譜情報に対応し、前記楽曲データベース78が、複数の楽譜情報を記憶する記憶部に対応する。また、前記複数のトラックのうち所定のトラック(例えば、トラック10)は、専らリズムを取るための楽器の楽譜情報を定めるリズムトラックに対応するものであり、演奏音の音階を設定し得ない打楽器である例えば「バスドラム」、「スネアドラム」、「ハイハット」等の楽器(演奏音)に対応して、その楽譜情報としての出力タイミングが前記リズムトラックに定められている。
前記MIDIデータには、各種イベントが定められている。このイベントとは、MIDIデータに予め記憶されている処理命令である。前記メタデータには、複数のイベント(メタイベント)及び各イベントのタイミング(実行タイミング)に相当するデルタタイムが定められている。本実施例において、前記メタデータには、「MetaEvent-Lyric」及び「MetaEvent-Text」等のイベントが定められている。イベント「MetaEvent-Lyric」は、対象となる楽曲において、対応するタイミングにおける歌詞を定めるものであるが、形式が「Chord Root音」、「Chord種」、「On Chord Root音」等とされているものが本実施例におけるコード情報としての「Chord Name」に対応する。「Chord Name」は、対象となる楽曲において、対応するタイミングにおいて演奏(出力)されるべき和音のコードネームである。また、イベント「MetaEvent-Text」のうち形式が$NON[Note#]又は$NOF[Note#]となっているものは、「Melody Note」とし、対象となる楽曲において、対応するタイミングにおける主旋律に相当する演奏音を定めるものである。すなわち、前記MIDIデータにおいては、対応する楽曲の主旋律に相当する複数の演奏音及び各演奏音のタイミングがイベント「Melody Note」に定められたものである。
前記コードデータベース80は、前記楽曲データに定められた各コード情報に対応して、コードの構成音である複数の演奏音を記憶する。例えば、前記イベント「Chord Name」のコードネームそれぞれに対応して、コードトーン(要音)の「Note#」が記憶されている。前記コードネームの形式は、例えば「Chord Root音」、「Chord種」、「On Chord Root音」等とされる。前記コードトーンの形式は、例えば、Note#[0], Note#[1], ・・・, Note#[n]といったように演奏音のリストとされる。すなわち、前記コードデータベース80は、レコードとして前記コードネーム及びコードトーンを持つデータベースであり、各コードネームに用いられ得る(和音に含まれ得る)コードトーンとして複数の演奏音(音階)を記憶するものである。
図2は、本実施例の演奏音変換制御に係る構成を概略的に示す図である。図2に示すMIDI入力デバイスは、例えば、前記電気楽器76に対応する。図2に示すMIDIインターフェイスは、例えば、前記USB端子58、オーディオ入力端子72、サウンドエフェクタ74等に対応する。図2に示す制御用コンピュータは、例えば、前記CPU12に対応する。図2に示すMeta情報付MIDIデータファイルは、例えば、前記楽曲データベース78に記憶された楽曲データに対応する。図2に示すMIDI音源モジュールは、例えば、前記音声処理部22に対応する。図2に示す音声出力用スピーカは、例えば、前記スピーカ54に対応する。
図2に示すように、本実施例の演奏音変換制御では、前記MIDI入力デバイスによる演奏に応じた演奏音に対応するMIDI信号Aが、前記制御用コンピュータによりMIDI信号Bへ変換され、前記MIDI音源モジュール等を介して前記音声出力用スピーカから出力される。すなわち、前記MIDI入力デバイスにより演奏が行われると、(1)その演奏に応じた演奏音に対応するMIDI信号Aが前記MIDIインターフェイスに入力され、(2)そのMIDIインターフェイスを介して前記制御用コンピュータへそのMIDI信号Aが入力される。この制御用コンピュータにおいて、Meta情報付きMIDIデータファイルの情報が参照され、前記入力されたMIDI信号AがMIDI信号Bへ変換される。次に、(3)変換されたMIDI信号Bが前記MIDIインターフェイスへ入力され、(4)そのMIDIインターフェイスを介して前記MIDI音源モジュールへそのMIDI信号Bが入力される。そして、(5)そのMIDI音源モジュールにおいてMIDI信号Bに対応する演奏音の再生が行われ、その演奏音が前記音声出力用スピーカからオーディオ信号出力として出力される。以上の(1)〜(5)の処理に要する時間は、演奏者がほとんど気付かないほど短いものとすることができる。従って、前記制御用コンピュータにより変換された演奏音は、変換前の演奏音に対応する前記MIDI入力デバイスの演奏タイミングで前記音声出力用スピーカから出力される。
図3は、前記カラオケ装置10に備えられた制御機能の要部を説明する機能ブロック線図である。この図3に示す各種制御手段は、好適には、前記カラオケ装置10のCPU12に機能的に備えられたものであるが、図3に示す各種制御手段のうち一部乃至全部が他の機器における制御部に備えられたものであってもよい。例えば、図3に示す各種制御手段のうち一部乃至全部が、前記電子早見本装置68に備えられた制御装置や、前記サウンドエフェクタ74に内蔵された制御装置に機能的に備えられたものであっても構わない。なお、本実施例の演奏音変換制御は、好適には、前記電気楽器76による演奏対象となる楽曲の、前記カラオケ装置10による演奏出力(カラオケ演奏)と併行して前記電気楽器76から入力される演奏音を対象として実行されるものであり、以下の実施例においては専らその態様について説明するが、前記カラオケ装置10による楽曲の出力が行われていない場合において、前記電気楽器76から入力される演奏音を対象として本実施例の演奏音変換制御が行われるものであってもよい。
楽曲演奏制御手段100は、前記カラオケ装置10による楽曲の出力(再生)を制御する。すなわち、基本的には、前記楽曲データベース78に記憶された楽曲データに基づくカラオケ演奏において、前記RAM16等の予約曲テーブルにおける上位の予約曲から順に(すなわち入力順に)、その予約曲テーブルに記憶された予約曲の選曲番号に対応する楽曲データを前記ハードディスク18の楽曲データベース78から読み出し、その楽曲データに含まれる演奏情報に基づいて演奏曲の出力を制御する。例えば、演奏情報としてのMIDIデータに基づいて、前記音声処理部22に備えられたシンセサイザによりそのMIDIデータにおける楽譜情報としての各トラックに対応する楽器の演奏音(音楽情報)を出力させ、前記アンプ52等を介して前記スピーカ54から出力させる。
演奏音/タイミング判定手段102は、前記電気楽器76による演奏に応じてその電気楽器76から入力される演奏音及びタイミングを判定する。例えば、MIDI入力デバイスである前記電気楽器76から入力があった場合、その入力されたMIDI信号に対応するイベントを解析し、そのイベントが「Note」であるか否かを判定する。入力されたイベントが「Note」である場合には、対応する演奏音(音階)及び演奏タイミング(信号の入力タイミング)を前記RAM16等に記憶させる。入力されたイベントが「Note」ではない場合には、斯かるイベント(入力された信号)に対しては後述する演奏音変換制御手段108による変換を行わず、そのままMIDI音源モジュールとしての前記音声処理部22へ入力させる。
コード情報抽出手段104は、前記楽曲データベース78に記憶された、前記電気楽器76による演奏対象となる楽曲に対応する楽譜情報すなわちMIDIデータから、各タイミング毎のコード情報を抽出する。例えば、前記楽曲演奏制御手段100による所定の楽曲の演奏に際して、同期用タイマを参照し、演奏対象であるMIDIデータ上のメタデータを所定のタイミングで読み込み、そのメタデータにおけるコード情報を前記RAM16等に記憶させる。すなわち、演奏対象であるMIDIデータ上のメタデータに定められたイベントのうち、イベント「Chord Name」を読み出して、例えば対応するコードネーム及びタイミング(デルタタイム)を前記RAM16等に記憶させる。
演奏音定義手段106は、前記コード情報抽出手段104により抽出されたコード情報を解析して、そのコード情報に対応する複数の演奏音を定義する。例えば、前記コードデータベース80を参照し、前記コード情報抽出手段104により抽出されたコードネームに対応するコードトーンを検索して、例えば前記RAM16に設けられたコードインデックス82に記憶させる。すなわち、このコードインデックス82には、前記コード情報抽出手段104による抽出に係るタイミング毎に、そのタイミングにおけるコード情報に対応する複数の演奏音(例えば、Note#[0], Note#[1], ・・・, Note#[n]といったように演奏音のリスト)が記憶される。ここで、前記コード情報抽出手段104によるコード情報の抽出及び前記演奏音定義手段106によるそのコード情報の解析は、好適には、前記楽曲演奏制御手段100による所定の楽曲の演奏に先行して実行される。すなわち、楽曲データにおける現在演奏されている部分よりも所定時間後の楽曲データに対応するコード情報の抽出及び解析が行われ、その解析結果が前記コードインデックス82等に記憶される。
演奏音変換制御手段108は、前記コード情報抽出手段104により抽出されたコード情報のタイミングで前記電気楽器76から入力される演奏音を、前記コード情報に対応して前記演奏音定義手段106により定義される演奏音の何れかに変換(補正)する。すなわち、前記電気楽器76から入力される演奏音を、その演奏に係るタイミングすなわち前記演奏音/タイミング判定手段102により判定されるタイミング(演奏音の入力タイミング)に対応して前記コードインデックス82に記憶されたコードトーンに含まれる何れかの演奏音に変換する。ここで、前記電気楽器76の演奏に係るタイミングと前記コード情報のタイミングとが厳密には一致しないことが考えられるが、斯かる場合において、前記演奏音変換制御手段108は、好適には、前記電気楽器76から入力される演奏音を、その演奏音の演奏に係るタイミングの直近の前記コード情報(或いは、直前の前記コード情報)に対応して前記演奏音定義手段106により定義される演奏音の何れかに変換(補正)する。
演奏音出力制御手段110は、前記演奏音変換制御手段108により変換された演奏音を、変換前の演奏音に対応する前記電気楽器76の演奏タイミングで出力させる。換言すれば、前記電気楽器76により所定の演奏音の演奏が行われた場合、その演奏音に対応して前記演奏音変換制御手段108により変換された演奏音を、前記演奏に係るタイミングで出力させる。具体的には、前記演奏音変換制御手段108により変換された演奏音に対応するMIDI音を、前記音声処理部22に備えられたシンセサイザ(MIDI音源)により出力(再生)させる。ここで、前記電気楽器76による演奏が行われてから、前記演奏音変換制御手段108等による処理が行われるのには所定の時間を要するが、その時間は演奏者がほとんど気付かないほど短いものとすることができる。従って、前記演奏音変換制御手段108により変換された演奏音を、変換前の演奏音に対応する前記電気楽器76の演奏タイミングと略同じタイミングで出力させることができる。
前記演奏音変換制御手段108は、基本的には、前記コード情報抽出手段104により抽出されたコード情報のタイミングで前記電気楽器76から入力される演奏音を、前記コード情報に対応して前記演奏音定義手段106により定義される演奏音のうち最も音階の近い演奏音に変換(補正)する。すなわち、前記電気楽器76から入力される演奏音に関して、前記演奏音/タイミング判定手段102により判定されるタイミングに対応して前記コードインデックス82に記憶されたコードトーンに含まれる演奏音のうち、前記演奏音/タイミング判定手段102により判定される演奏音(音階)と最も音階の近い演奏音を検索し、前記電気楽器76から入力される演奏音をその検索された演奏音に変換する。
前記演奏音変換制御手段108は、好適には、前記コード情報のタイミングで前記電気楽器76からそれぞれ異なる音階に対応する複数の演奏音が入力された場合、前記電気楽器76から先に入力された演奏音を、前記コード情報に対応して前記演奏音定義手段106により定義される演奏音のうち最も音階の近い演奏音に変換し、前記電気楽器76から次に入力された演奏音を、前記コード情報に対応して前記演奏音定義手段106により定義される演奏音のうち前記先に入力された演奏音の変換後の演奏音を除く、前記次に入力された演奏音に最も音階の近い演奏音に変換する。すなわち、前記電気楽器76から先に入力された演奏音に関して、前記演奏音/タイミング判定手段102により判定されるタイミングに対応して前記コードインデックス82に記憶されたコードトーンに含まれる演奏音のうち、前記演奏音/タイミング判定手段102により判定される演奏音(音階)と最も音階の近い演奏音を検索し、前記先に入力された演奏音をその検索された演奏音に変換する。次いで、前記電気楽器76から次に入力された演奏音に関して、前記演奏音/タイミング判定手段102により判定されるタイミングに対応して前記コードインデックス82に記憶されたコードトーンに含まれる演奏音のうち、前記先に入力された演奏音の変換後の演奏音以外の演奏音であって、前記演奏音/タイミング判定手段102により判定される演奏音(音階)と最も音階の近い演奏音を検索し、前記次に入力された演奏音をその検索された演奏音に変換する。換言すれば、前記コード情報のタイミングで前記電気楽器76からそれぞれ異なる音階に対応する複数の演奏音が入力された場合、それらの演奏音が同じ演奏音に変換されることを禁止し、先に入力された演奏音から優先して、前記コードインデックス82に記憶された最も音階の近い演奏音に変換する。以下、前記電気楽器76から入力された複数の演奏音に関して、その演奏順(信号の入力順)に従って斯かる処理を繰り返すことにより、前記電気楽器76から入力された複数の演奏音の変換(補正)を行う。
前記演奏音変換制御手段108は、好適には、前記コード情報のタイミングで前記電気楽器76からそれぞれ異なる音階に対応する複数の演奏音が入力された場合であって、前記電気楽器76から先に入力された演奏音から次に入力された演奏音までの時間間隔が予め定められた閾値以上である場合には、前記次に入力された演奏音の音階の、前記先に入力された演奏音の音階に対する高低に応じて、前記次に入力された演奏音の変換を行う。前記閾値は、前記複数の演奏音の入力が、所謂アルペッジオ(arpeggio)のように低音側から高音側への演奏とみなされる程度の時間であり、例えば、50ms程度である。
前記演奏音変換制御手段108は、好適には、前記コード情報のタイミングで前記電気楽器76からそれぞれ異なる音階に対応する複数の演奏音が入力された場合であって、前記電気楽器76から先に入力された演奏音から次に入力された演奏音までの時間間隔が前記閾値以上である場合には、前記次に入力された演奏音の音階の、前記先に入力された演奏音の音階に対する高低に応じて、以下に示すように前記次に入力された演奏音の変換を行う。すなわち、前記次に入力された演奏音の音階が、前記先に入力された演奏音の音階よりも高い場合には、前記次に入力された演奏音を、前記コード情報に対応して前記演奏音定義手段106により定義される演奏音(コードインデックス82に記憶された演奏音)のうち前記先に入力された演奏音の変換後の演奏音よりも音階が高く、且つ前記次に入力された演奏音に最も音階の近い演奏音に変換する。前記次に入力された演奏音の音階が、前記先に入力された演奏音の音階よりも低い場合には、前記次に入力された演奏音を、前記コード情報に対応して前記演奏音定義手段106により定義される演奏音のうち前記先に入力された演奏音の変換後の演奏音よりも音階が低く、且つ前記次に入力された演奏音に最も音階の近い演奏音に変換する。換言すれば、前記次に入力された演奏音が、前記先に入力された演奏音よりも高音側である場合には、前記次に入力された演奏音の変換後の演奏音を、前記先に入力された演奏音の変換後の演奏音よりも高音側とする。前記次に入力された演奏音が、前記先に入力された演奏音よりも低音側である場合には、前記次に入力された演奏音の変換後の演奏音を、前記先に入力された演奏音の変換後の演奏音よりも低音側とする。以下、前記電気楽器76から入力された複数の演奏音に関して、その演奏順(信号の入力順)に従って斯かる処理を繰り返すことにより、前記電気楽器76から入力された複数の演奏音の変換(補正)を行う。
前記演奏音変換制御手段108は、好適には、前記コード情報のタイミングで前記電気楽器76からそれぞれ異なる音階に対応する複数の演奏音が入力された場合、前記電気楽器76から最初に入力された演奏音を、主旋律に相当する演奏音に変換する。例えば、演奏対象である楽曲データのメタデータに定められたイベント「Melody Note」に基づいて、前記最初に入力された演奏音のタイミングに対応する主旋律に相当する演奏音を読み出し、前記最初に入力された演奏音を、その読み出された主旋律に相当する演奏音に変換する。換言すれば、前記コード情報のタイミングで前記電気楽器76からそれぞれ異なる音階に対応する複数の演奏音が入力された場合、前記電気楽器76から最初に入力された演奏音を、その時点における主旋律に相当する演奏音に変換する。好適には、演奏対象である楽曲データのメタデータに定められたイベント「Melody Note」を予め読み出して前記RAM16等に「参照Melody Note」として記憶しておき、その「参照Melody Note」を参照することで、前記電気楽器76から最初に入力された演奏音を、主旋律に相当する演奏音に変換する。
前記演奏音変換制御手段108は、好適には、前記コード情報のタイミングで前記電気楽器76からそれぞれ異なる音階に対応する複数の演奏音が入力された場合、前記電気楽器76から最初に入力された演奏音を、主旋律に相当する演奏音に変換し、前記電気楽器76から以降に入力された演奏音(2音目以降の演奏音)を、前記最初に入力された演奏音の音階と以降に入力された演奏音の音階との音階差を主旋律に相当する演奏音に対して適用した演奏音として、その演奏音が入力されたその時点の楽曲の前記コード情報に対応して前記演奏音定義手段106により定義される演奏音のうち最も音階の近い演奏音に変換する。すなわち、前記最初に入力された演奏音の音階と以降(2音目以降)に入力された演奏音の音階とがどれだけ離れているか(差分値)を算出し、算出されたその差分値を「参照Melody Note」に対して適用する。そして、斯かる適用後の演奏音を、前記コードインデックス82に記憶された最も音階の近い演奏音に変換する。換言すれば、前記コード情報のタイミングで前記電気楽器76からそれぞれ異なる音階に対応する複数の演奏音が入力された場合、最初に入力された演奏音をその時点における主旋律に相当する演奏音に変換した上で、前記入力された複数の演奏音を、前記最初に入力された演奏音から前記主旋律に相当する演奏音へのシフト分だけシフトさせ、そのシフト後の演奏音に関して、前記コードインデックス82に記憶された最も音階の近い演奏音に変換する。以下、前記電気楽器76から入力された複数の演奏音に関して、その演奏順(信号の入力順)に従って斯かる処理を繰り返すことにより、前記電気楽器76から入力された複数の演奏音の変換(補正)を行う。
前記演奏音変換制御手段108は、好適には、前記コード情報のタイミングで前記電気楽器76からそれぞれ異なる音階に対応する複数の演奏音が入力された場合であって、前記電気楽器76から最初に入力された演奏音をその時点における主旋律に相当する演奏音に変換した場合に、前記電気楽器76から以降に入力された演奏音を、前記主旋律に相当する演奏音の音階との音階差が全音以内である演奏音に変換することを禁止する。すなわち、前記電気楽器76から以降に入力された演奏音を、前記最初に入力された演奏音の音階と以降に入力された演奏音の音階との音階差を主旋律に相当する演奏音に対して適用した演奏音として、前記コード情報に対応して前記演奏音定義手段106により定義される演奏音のうち前記主旋律に相当する演奏音の音階との音階差が全音以内である演奏音を除く、最も音階の近い演奏音に変換する。換言すれば、前記電気楽器76からそれぞれ異なる音階に対応する複数の演奏音が入力された場合、連続する2つの演奏音の変換後の演奏音が全音以内となることを禁止する。以下、前記電気楽器76から入力された複数の演奏音に関して、その演奏順(信号の入力順)に従って斯かる処理を繰り返すことにより、前記電気楽器76から入力された複数の演奏音の変換(補正)を行う。
図4は、前記カラオケ装置10のCPU12による楽曲演奏制御の一例の要部を説明するフローチャートであり、所定の周期で繰り返し実行されるものである。この図4に示す制御は、後述する図6に示す制御及び図7に示す制御等と併行して実行されるものである。
先ず、ステップ(以下、ステップを省略する)S1において、前記カラオケ装置10による演奏対象となる楽曲に対応するMIDIデータ(楽曲データ)が前記楽曲データベース78から読み出され、前記RAM16等に記憶される。次に、S2において、S1にて読み出されたMIDIデータが、MIDIデバイスである例えば前記音声処理部22に出力され、その音声処理部22に備えられたシンセサイザ等により再生される。次に、S3において、S1にて読み出された楽曲データにおける末尾までの出力が完了したか否かが判断される。このS3の判断が否定される場合には、S2以下の処理が再び実行されるが、S3の判断が肯定される場合には、それをもって本ルーチンが終了させられる。
図5は、前記カラオケ装置10のCPU12によるMeta情報解析制御の一例の要部を説明するフローチャートであり、所定の周期で繰り返し実行されるものである。この図5に示す制御は、前述した図4に示す制御及び後述する図6に示す制御等と併行して実行されるものである。
先ず、S4において、前記カラオケ装置10による演奏対象となる楽曲に対応するMIDIデータ(楽曲データ)におけるMeta情報(メタデータ)が読み出され、前記RAM16等に記憶される。次に、SAにおいて、図7に示すMeta情報解析制御が実行される。次に、S5において、S4にて読み出されたMeta情報に係るMIDIデータの末尾までの解析が完了したか否かが判断される。このS5の判断が否定される場合には、SA以下の処理が再び実行されるが、S5の判断が肯定される場合には、それをもって本ルーチンが終了させられる。
図6は、前記カラオケ装置10のCPU12による演奏音変換制御の一例の要部を説明するフローチャートであり、所定の周期で繰り返し実行されるものである。この図5に示す制御は、前述した図4に示す制御及び図5に示す制御等と併行して実行されるものである。また、この図6に示す制御においては、演奏音変換モード「Chord Mode」に対応する制御と、演奏音変換モード「Melody Mode」に対応する制御とが選択的に実行される。
先ず、S6において、MIDI入力デバイスである前記電気楽器76等からのMIDI信号(演奏音)の入力が待ち受けられる。次に、S7において、前記電気楽器76等からのMIDI信号の入力があったか否かが判断される。このS7の判断が否定される場合には、S6以下の処理が再び実行されるが、S7の判断が肯定される場合には、SBにおいて、図8に示す演奏音変換制御が実行される。次に、S8において、SBにて変換された演奏音に対応するMIDI信号が、MIDI音源モジュールである前記音声処理部22等に出力され、その音声処理部22から変換後の演奏音が出力(再生)された後、本ルーチンが終了させられる。
図7に示すMeta情報解析制御においては、先ず、SA1において、同期用タイマが参照され、演奏対象であるMIDIデータ上のMeta情報(メタデータ)が所定のタイミングで読み込まれて、前記RAM16等に記憶される。次に、SA2において、SA1にて読み込まれたMeta情報が、本プログラムで解析すべきイベントに相当するか否かが判断される。例えば、SA1にて読み込まれたMeta情報が、「Chord Name」、「MetaEvent-Lyric」(形式が「Chord Root音」、「Chord種」、「On Chord Root音」等とされているもの)、「Melody Note」、及び「MetaEvent-Text」(形式が$NON[Note#]又は$NOF[Note#]となっているもの)の何れかであるか否かが判断される。このSA2の判断が否定される場合には、それをもって本ルーチンが終了させられるが、SA2の判断が肯定される場合には、SA3において、SA1にて読み込まれたMeta情報のうち、「Chord Name」に関して、Chord解析処理が実行される。例えば、前記コードデータベース80が参照され、SA1にて読み込まれたイベントにおけるコードネームに対応するコードトーンが検索される。次に、SA4において、SA3にて検索されたコードトーンが、前記コードネームのタイミングと対応付けられて例えば前記RAM16に設けられたコードインデックス82に記憶される。次に、SA5において、演奏音変換モードが「Melody Mode」であるか否かが判断される。このSA5の判断が否定される場合には、演奏音変換モードが「Chord Mode」であると判断され、それをもって図5に示す制御に復帰させられるが、SA5の判断が肯定される場合には、SA6において、SA1にて読み込まれたMeta情報のうち、「Melody Note」に関して、Melody解析処理が実行される。例えば、それらのイベントに対応する演奏音が解析され、その解析結果がSA7において「参照MelodyNote」として前記RAM16等に記憶された後、図5に示す制御に復帰させられる。この「参照MelodyNote」の保持形式としては、例えば、音程0に関して「Note#0」が保持か解除か、音程1に関して「Note#1」が保持か解除か、・・・、音程127に関して「Note#127」が保持か解除かが記憶される。
図8に示す制御は、演奏音変換モード「Chord Mode」に対応する制御と、演奏音変換モード「Melody Mode」に対応する制御とで、それぞれ異なる処理が実行される。演奏音変換モードが「Chord Mode」である場合において、図8に示す演奏音変換制御においては、先ず、SB1において、MIDI入力デバイスである前記電気楽器76等から入力された信号に対応するイベントが解析される。次に、SB2において、前記電気楽器76等から入力されたイベントが「Note Event」であるか否かが判断される。このSB2の判断が否定される場合には、演奏音の変換(補正)は行われず、それをもって図6に示す制御に復帰させられるが、SB2の判断が肯定される場合には、SB3において、前記電気楽器76等から入力された信号に、演奏音変換モード「Chord Mode」に対応する補正ロジックが適用される。
SB1にて解析されたイベントが「Note On」である場合、SB3において、演奏音変換モード「Chord Mode」に対応する補正ロジック(A)が実行される。この補正ロジック(A)においては、例えば、前記コードインデックス82に記憶されたレコードからコードトーンが検索され、入力された「Note#」に最も近いものから順に「出力候補Note#」が設定された後、SB4以下の処理が実行される。また、付帯処理として、直前に入力された発音中の「Note(0<補正前>)」と、今回入力された「Note(1<補正前>)」の入力時間間隔が規定の閾値(例えば、50ms)以内であるか否か(分岐条件A)が判断される。この分岐条件Aが肯定される場合には、前述したSB3の補正ロジック(A)が適用されるが、分岐条件Aが否定される場合には、分岐条件Bとして、「Note(1<補正前>)」>「Note(0<補正前>)」である場合、「Note(1<補正後>)」>「Note(0<補正後>)」の関係になるまで「出力候補Note#」を確定させない。又は、「Note(1<補正前>)」<「Note(0<補正前>)」である場合、「Note(1<補正後>)」<「Note(0<補正後>)」の関係になるまで「出力候補Note#」を確定させない。
SB1にて解析されたイベントが「Note Off」である場合、SB3において、補正ロジック(B)が実行される。この補正ロジック(B)は、前記補正ロジック(A)と選択的に実行されるものであり、MIDIデータの特性上、Off情報がない限り発音が継続されるが、入力音が0を1に補正した際、Off信号を0で送信するとOffにならないため、出力状態管理データより、補正後の音程情報を読み出し、補正後の音程に対しOff信号を送信する処理である。前記補正ロジック(B)においては、後述する出力状態管理データが参照されて、入力Note#の添字インデックスの出力Note#の「Note Off」イベントが、MIDI音源モジュールである前記音声処理部22等へ出力される。また、出力状態管理データの該当Note#は−1にリセットされる。
次に、SB4において、SB3にて算出された「出力候補Note#」が既に発音(演奏音として出力)されているか否かが判断される。このSB4の判断が肯定される場合には、SB3以下の処理が再び実行されるが、SB4の判断が否定される場合には、SB5において、SB3にて算出された「出力候補Note#」が確定され、出力状態が管理される。例えば、「出力候補Note#」の確定に対応して、前記RAM16等に記憶された出力状態管理データが更新される。この出力状態管理データは、補正ロジックにおいて、現在のMIDI音源モジュールの発音状態と、過去のMIDI入力デバイスからの入力情報が必要なため、これを管理する配列データを定義するものである。例えば、配列インデックス(入力された音)0、1、・・・、127それぞれに対応してデータ(変換後の音)としての出力Note#が記憶される。この配列インデックスの数は128個であり、インデックス番号(添字)が入力Note#を表す。出力Note#は、前記補正ロジックにおいて最終的に確定したNote#を保持。前記補正ロジック(B)を通ったもの、一度も出力していないものは−1として表される。次に、SB6において、前記RAM16等に記憶された「出力候補Note#」がMIDI音源モジュールである前記音声処理部22等へ出力され、その音声処理部22において「出力候補Note#」に対応する演奏音が出力された後、図6に示す制御に復帰させられる。
演奏音変換モードが「Melody Mode」である場合において、図8に示すSB3以外に関しては、前述の演奏音変換モード「Chord Mode」と同様の処理が実行される。演奏音変換モードが「Melody Mode」である場合において、図8に示す演奏音変換制御においては、SB1にて解析されたイベントが「Note Off」である場合、SB3において、前記補正ロジック(B)が実行される。SB1にて解析されたイベントが「Note On」である場合、SB3において、前記電気楽器76等から入力された信号に、演奏音変換モード「Melody Mode」に対応する補正ロジック(A′)が適用される。この補正ロジック(A′)においては、例えば、前記コードインデックス82に記憶されたレコードからコードトーンが検索され、入力された「Note#」に最も近いものから順に「出力候補Note#」が設定された後、SB4以下の処理が実行される。また、付帯処理として、出力状態管理データが参照され、発音中のNoteが1つもない(すなわち、最初に発音されるNote)か否か(分岐条件A)が判断される。この分岐条件Aが肯定される場合には、図7のSA6にて解析された「参照MelodyNote」が強制的に「出力候補Note#」とされるが、分岐条件Aが否定される場合には、出力状態管理データが参照され、「参照MelodyNote」を出力している配列インデックス(入力Note#(0))から、今回の入力Note#(1)がどれだけ離れているか(差分)が算出される。次に、「参照MelodyNote」に対してその差分が適用され、補正入力Note#(2)とされる。この補正入力Note#(2)に対応して、前記補正ロジック(A′)が適用される。更に、分岐条件Bとして、前記補正ロジック(A′)の結果、「参照MelodyNote」との間隔が2(全音)以内であった場合、「出力候補Note#」を確定させず、SB4以下の処理が実行される。
以上の制御において、S1〜S3が前記楽曲演奏制御手段100の動作に、SB1及びSB2が前記演奏音/タイミング判定手段102の動作に、SA1が前記コード情報抽出手段104の動作に、SA3及びSA4が前記演奏音定義手段106の動作に、SB1〜SB5が前記演奏音変換制御手段108の動作に、SB6が前記演奏音出力制御手段110の動作に、それぞれ対応する。
このように、本実施例によれば、前記電気楽器76による演奏対象となる楽曲に対応して、コード情報及びそのコード情報のタイミングが定められた楽譜情報である楽曲データを記憶する記憶部としての楽曲データベース78と、その楽曲データベース78に記憶された、前記電気楽器76による演奏対象となる楽曲に対応する楽曲データとしてのMIDIデータから、各タイミング毎のコード情報を抽出するコード情報抽出手段104(SA1)と、そのコード情報抽出手段104により抽出されたコード情報を解析して、そのコード情報に対応する複数の演奏音を定義する演奏音定義手段106(SA3及びSA4)と、前記コード情報抽出手段104により抽出されたコード情報のタイミングで前記電気楽器76から入力される演奏音を、前記コード情報に対応して前記演奏音定義手段106により定義される演奏音の何れかに変換する演奏音変換制御手段108(SB1〜SB5)と、その演奏音変換制御手段108により変換された演奏音を、変換前の演奏音に対応する前記電気楽器76の演奏タイミングで出力させる演奏音出力制御手段110(SB6)とを、備えたものであることから、演奏対象となる楽曲に定められたコード情報に基づいて補正を行うことで、初心者が見よう見まねで電気楽器76を演奏した場合であっても、まともに聞こえる演奏音の出力を実現することができる。すなわち、未熟な初心者でも演奏の醍醐味を実感できるようにする楽器音出力装置としてのカラオケ装置10を提供することができる。
また、前記演奏音変換制御手段108は、前記コード情報のタイミングで前記電気楽器76からそれぞれ異なる音階に対応する複数の演奏音が入力された場合、前記電気楽器76から先に入力された演奏音を、前記コード情報に対応して前記演奏音定義手段106により定義される演奏音のうち最も音階の近い演奏音に変換し、前記電気楽器76から次に入力された演奏音を、前記コード情報に対応して前記演奏音定義手段106により定義される演奏音のうち前記先に入力された演奏音の変換後の演奏音を除く、前記次に入力された演奏音に最も音階の近い演奏音に変換するものであるため、ピアノやエレクトーン等の鍵盤楽器、或いはギターやベースギター等の撥弦楽器を、初心者が見よう見まねで演奏した場合であっても、まともに聞こえる演奏音の出力を実現することができる。
また、前記演奏音変換制御手段108は、前記コード情報のタイミングで前記電気楽器76からそれぞれ異なる音階に対応する複数の演奏音が入力された場合であって、前記電気楽器76から先に入力された演奏音から次に入力された演奏音までの時間間隔が予め定められた閾値以上である場合には、前記次に入力された演奏音の音階の、前記先に入力された演奏音の音階に対する高低に応じて、前記次に入力された演奏音の変換を行うものであるため、所謂アルペッジオ(arpeggio)のように低音側から高音側への演奏、或いは高音側から低音側への演奏が行われた場合に、音階の変化が逆となることで演奏者に違和感を与えることを好適に抑制できる。
また、前記演奏音変換制御手段108は、前記次に入力された演奏音の音階が、前記先に入力された演奏音の音階よりも高い場合には、前記次に入力された演奏音を、前記コード情報に対応して前記演奏音定義手段106により定義される演奏音のうち前記先に入力された演奏音の変換後の演奏音よりも音階が高く、且つ前記次に入力された演奏音に最も音階の近い演奏音に変換するものであり、前記次に入力された演奏音の音階が、前記先に入力された演奏音の音階よりも低い場合には、前記次に入力された演奏音を、前記コード情報に対応して前記演奏音定義手段106により定義される演奏音のうち前記先に入力された演奏音の変換後の演奏音よりも音階が低く、且つ前記次に入力された演奏音に最も音階の近い演奏音に変換するものであるため、所謂アルペッジオ(arpeggio)のように低音側から高音側への演奏、或いは高音側から低音側への演奏が行われた場合に、音階の変化が逆となることで演奏者に違和感を与えることを好適に抑制できる。
また、前記楽譜情報としてのMIDIデータには、対応する楽曲の主旋律に相当する複数の演奏音及び各演奏音のタイミングが定められたものであり、前記演奏音変換制御手段108は、前記コード情報のタイミングで前記電気楽器76からそれぞれ異なる音階に対応する複数の演奏音が入力された場合、前記電気楽器76から最初に入力された演奏音を、主旋律に相当する演奏音に変換し、前記電気楽器76から以降に入力された演奏音を、前記最初に入力された演奏音の音階と以降に入力された演奏音の音階との音階差を主旋律に相当する演奏音に対して適用した演奏音として、前記コード情報に対応して前記演奏音定義手段106により定義される演奏音のうち最も音階の近い演奏音に変換するものであるため、各タイミングにおいて電気楽器76から入力された演奏音を、演奏対象となる楽曲の主旋律に基づいてシフトさせた上で、その楽曲に定められたコード情報に基づいて補正を行うことで、初心者が見よう見まねで電気楽器76を演奏した場合であっても、あたかもプロフェッショナルが演奏したような演奏音の出力を実現することができる。
また、前記演奏音変換制御手段108は、前記電気楽器76から以降に入力された演奏音を、前記最初に入力された演奏音の音階と以降に入力された演奏音の音階との音階差を主旋律に相当する演奏音に対して適用した演奏音として、前記コード情報に対応して前記演奏音定義手段106により定義される演奏音のうち前記主旋律に相当する演奏音の音階との音階差が全音以内である演奏音を除く、最も音階の近い演奏音に変換するものであるため、変換後の演奏音相互の音階差が全音以内となることで和音が濁って聞こえるのを好適に抑制することができる。
また、本実施例によれば、前記カラオケ装置10の制御装置としてのCPU12を、前記楽曲データベース78に記憶された、前記電気楽器76による演奏対象となる楽曲に対応する楽曲データから、各タイミング毎のコード情報を抽出するコード情報抽出手段104、そのコード情報抽出手段104により抽出されたコード情報を解析して、そのコード情報に対応する複数の演奏音を定義する演奏音定義手段106、前記コード情報抽出手段104により抽出されたコード情報のタイミングで前記電気楽器76から入力される演奏音を、前記コード情報に対応して前記演奏音定義手段106により定義される演奏音の何れかに変換する演奏音変換制御手段108、及び、その演奏音変換制御手段108により変換された演奏音を、変換前の演奏音に対応する前記電気楽器76の演奏タイミングで出力させる演奏音出力制御手段110として機能させることを特徴とする楽器音出力プログラムであることから、演奏対象となる楽曲に定められたコード情報に基づいて補正を行うことで、初心者が見よう見まねで電気楽器76を演奏した場合であっても、まともに聞こえる演奏音の出力を実現することができる。すなわち、未熟な初心者でも演奏の醍醐味を実感できるようにする楽器音出力プログラムを提供することができる。
以上、本発明の好適な実施例を図面に基づいて詳細に説明したが、本発明はこれに限定されるものではなく、更に別の態様においても実施される。
例えば、前述の実施例においては、電気楽器に接続され、その電気楽器による演奏に応じてその電気楽器から入力される演奏音を出力させる楽器音出力装置の一例として、多数の楽曲データのうちから選択される楽曲データの演奏出力を行うと共に、その楽曲の歌詞文字映像を映像表示装置に表示させるカラオケ装置10に本発明が適用された例を説明したが、本発明はこれに限定されるものではなく、別の形態の楽器音出力装置にも適用され得る。例えば、専らバンド演奏を練習するために用いられる楽器演奏練習装置や、所謂音ゲー等のゲームを実行するコンシューマゲーム機等にも、本発明は好適に適用されるものである。また、所謂スマートフォン等の携帯電話機や、タブレット端末が楽器音出力装置として用いられる場合にも、本発明は好適に適用されるものである。
また、前述の実施例においては、前記カラオケ装置10による楽曲の出力と併行して前記電気楽器76から入力される演奏音を対象として本発明の演奏音変換制御を行う態様について説明したが、本発明は、前記カラオケ装置10による楽曲の出力が行われていない場合において、前記電気楽器76から入力される演奏音にも好適に適用される。例えば、演奏対象となる楽曲に関して、MIDIデータに基づく演奏出力を行わず、専らそのMIDIデータにおけるMeta情報の読み込み及び解析を行い、その結果に基づいて前記演奏音変換制御を行うものであってもよい。また、演奏対象となる楽曲の歌詞文字映像のみを表示させる態様や、前記電気楽器76に相当するパートの演奏出力は行わず主旋律に相当する演奏出力のみ行う態様も考えられる。斯かる態様においても、初心者が見よう見まねで電気楽器を演奏した場合に、あたかもプロフェッショナルの伴奏のように聞こえるので、未熟な初心者でも演奏の醍醐味を実感でき、本発明の一応の効果を奏する。
また、本発明においては、前述の実施例において説明した演奏音変換制御に関連して、種々の補足的な制御(付帯処理)が実行され得る。例えば、前記演奏音変換制御におけるコードトーンの切り替えは、好適には、実際のコードチェンジのタイミングよりも所定時間(例えば、50ms程度)前に実行される(コード先読み対応処理)。これは、演奏に未熟な初心者の場合、実際のコードチェンジのタイミングよりも早く弾いてしまうことが考えられるが、斯かる場合において、Aが前のコードトーン、Bが次のコードトーンとした場合、コード先読み対応処理を行わないと、Aのコードトーンに対応する変換が行われることとなる。この場合、AのコードトーンとBのコードトーンとは、一般的に相性が悪いことが多いため、不協和音となるおそれがある。斯かる不具合の発生を抑制するため、Bのコードトーンを先読みしてそのコードトーンに基づく演奏音の変換を行うことで、更に初心者にやさしい制御を実現することができる。
また、前述の実施例においては、例えばMIDIギター等のMIDI楽器としての前記電気楽器76から入力されるMIDI信号を対象として本発明の演奏音変換制御を行う態様について説明したが、例えば通常のエレキギター等、MIDI楽器ではない電気楽器から入力される演奏音を対象として本発明の演奏音変換制御を行う態様も考えられる。斯かる態様において、好適には、MIDI楽器ではない電気楽器から入力される演奏音が、所定のMIDI変換器或いは前記CPU12に機能的に備えられたMIDI変換手段によりMIDI信号に変換され、そのMIDI信号を対象として前記演奏音変換制御が行われる。
その他、一々例示はしないが、本発明はその趣旨を逸脱しない範囲内において種々の変更が加えられて実施されるものである。