以下、この発明の実施の形態を添付図面に従って詳細に説明する。
図1は、この発明に係る自動演奏装置を適用した電子楽器の全体構成の一実施例を示したハード構成ブロック図である。本実施例に示す電子楽器は、マイクロプロセッサユニット(CPU)1、リードオンリメモリ(ROM)2、ランダムアクセスメモリ(RAM)3からなるマイクロコンピュータによって制御される。CPU1は、この電子楽器全体の動作を制御する。このCPU1に対して、通信バス1D(例えばデータ及びアドレスバス)を介してROM2、RAM3、記憶装置4、検出回路5,6、表示回路7、音源・効果回路8、通信インタフェース(I/F)9がそれぞれ接続されている。ROM2は、CPU1により実行あるいは参照される各種制御プログラムや各種データ等を格納する。RAM3は、CPU1が所定のプログラムを実行する際に発生する各種データなどを一時的に記憶するワーキングメモリとして、あるいは現在実行中のプログラムやそれに関連するデータを一時的に記憶するメモリ等として使用される。RAM3の所定のアドレス領域がそれぞれの機能に割り当てられ、レジスタやフラグ、テーブル、メモリなどとして利用される。
記憶装置4は、例えば自動演奏用の伴奏パターンデータ(演奏パターンデータ)や伴奏スタイルデータ(後述する図2参照)あるいは音高決定テーブル(後述する図3参照)などの各種データや、CPU1が実行する各種制御プログラム等を記憶する。なお、上述したROM2に制御プログラムが記憶されていない場合、この記憶装置4(例えばハードディスク)に制御プログラムを記憶させておき、それをRAM3に読み込むことにより、ROM2に制御プログラムを記憶している場合と同様の動作をCPU1にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。なお、記憶装置4はハードディスク(HD)に限られず、フレキシブルディスク(FD)、コンパクトディスク(CD‐ROM・CD‐RAM)、光磁気ディスク(MO)、あるいはDVD(Digital Versatile Disk)等の様々な形態の記憶媒体を利用する記憶装置であればどのようなものであってもよい。あるいは、フラッシュメモリなどの半導体メモリであってもよい。
演奏操作子5Aは、楽音の音高を選択するための複数の鍵を備えた例えば鍵盤等のようなものであり、各鍵に対応してキースイッチを有しており、この演奏操作子5A(鍵盤等)は、ユーザの手弾きによるマニュアル演奏や自動演奏のためのコード指定(入力)に使用できるのは勿論のこと、伴奏パターンデータ等を選択する手段、あるいは音色や効果等を設定する手段などとして使用することもできる。また、演奏操作子5Aは複数のパッドからなるマルチパッドを含んでいてもよく、そうした場合には各パッドに伴奏パターンデータを予め割り当てておくことにより、各パッド操作に応じて伴奏パターンデータに基づく自動演奏を適宜に開始/終了することができるようになっていてよい。検出回路5は、演奏操作子5Aの各鍵の押圧及び離鍵あるいは各パッドの操作状態などを検出することによって検出出力を生じる。
設定操作子6Aは、コードマッチモードに当該電子楽器を機器設定するモード指定スイッチ、伴奏パターンデータ等を選択するデータ選択スイッチ、あるいは自動演奏の開始・停止を指示するボタン等の各種の操作子である。勿論、設定操作子6Aは上記した以外にも、音高、音色、効果等を選択・設定・制御するための数値データ入力用のテンキーや文字データ入力用のキーボードなどの各種操作子を含んでいてもよい。検出回路6は、上記設定操作子6Aの操作状態を検出し、その操作状態に応じたスイッチ情報等をデータ及びアドレスバス1Dを介してCPU1に出力する。
ユーザが上記モード設定スイッチを操作して、当該電子楽器をコードマッチモードに機器設定した場合には、固定的にあるいはユーザ設定に応じた鍵盤の任意の鍵域を「コード鍵域」に設定する。すなわち、本電子楽器は鍵域分割(スプリット)機能を有してなり、例えば鍵盤を2つに分割する分割点(所謂スプリットポイント)にて、鍵域を低音側と高音側とに2分割することができるようになっている。そして、スプリットポイントより左側の低音側の鍵域を「コード鍵域」として、ユーザは主として左手で該「コード鍵域」においてコード(和音)を入力することができる。一方、スプリットポイントより右側の高音側の鍵域を「演奏鍵域」として、ユーザは主として右手で該「演奏鍵域」においてメロディ等の演奏データを入力することができる。言い換えると、各鍵に対する押鍵(あるいは離鍵)操作に従って生成されるノート情報やベロシティ及びノートオン(あるいはノートオフ)等のイベント情報からなる演奏データは、「コード鍵域」内の鍵については自動演奏時に参照するコードを指定するためのデータとして用いられ、「演奏鍵域」内の鍵については通常の鍵盤演奏(マニュアル演奏)として楽音を発生するためのデータとして用いられる。
なお、上記「コード鍵域」の設定としては、鍵盤を低音側と高音側の2つに分割する分割点(所謂スプリットポイント)を選択し、この分割点から低音域側を「コード鍵域」とする他にも、従来知られた適宜のどのような方法であってもよい。例えば、全ての鍵域から「コード鍵域」とする音高範囲を、ユーザが直接選択して設定するなどの方法であってもよい。あるいは「コード鍵域」を指定せず全ての鍵域を「演奏鍵域」とし、この全鍵域の演奏内容からコードを検出する「全鍵コード検出」の方法を採用してもよい。
図1の説明に戻って、表示回路7は例えば液晶表示パネル(LCD)やCRT等から構成されるディスプレイ7Aに、上記設定操作子6Aの操作に応じた各種画面を表示するのは勿論のこと、ROM2や記憶装置4に記憶されている各種データあるいはCPU1の制御状態などを表示することもできる。演奏者はディスプレイ7Aに表示されるこれらの各種情報を参照することで、伴奏パターンデータの選択や各種演奏パラメータの設定などを容易に行うことができる。
音源・効果回路7は複数のチャンネルで楽音信号の同時発生が可能であり、通信バス1Dを経由して与えられた演奏情報(例えば、鍵盤操作に基づき発生された演奏データや、伴奏パターンデータに応じて発生された演奏データなど)を入力し、この演奏情報に基づいて楽音を合成して楽音信号を発生する。また、発生した楽音信号に対して効果を付与することもできる。音源・効果回路8から発生される楽音信号は、アンプやスピーカなどを含むサウンドシステム8Aから発音される。この音源・効果回路8とサウンドシステム8Aの構成には、従来のいかなる構成を用いてもよい。例えば、音源・効果回路8はFM、PCM、物理モデル、フォルマント合成等の各種楽音合成方式のいずれを採用してもよく、また専用のハードウェアで構成してもよいし、CPU1によるソフトウェア処理で構成してもよい。
通信インタフェース(I/F)9は、図示を省略した外部機器と当該電子楽器との間でMIDI形式の演奏データを送受信するMIDI入出力インタフェース、MIDI以外のデータや制御プログラムなどの各種情報を送受信するデータ入出力インタフェースとしての機能を備えた、例えばRS-232C、USB(ユニバーサル・シリアル・バス)、IEEE1394(アイトリプルイー1394)、ブルートゥース(商標)、赤外線送受信器等のインタフェースである。あるいは、LAN(Local Area Network)やインターネット、電話回線等の有線あるいは無線の通信ネットワークを介して、電子楽器とネットワーク上の外部機器(例えば、サーバ装置)とを接続することができ、電子楽器とサーバ装置との間でMIDIデータや各種情報,制御プログラムなどを送受信することができるネットワークインタフェースであってもよい。こうした通信インタフェース9は、有線あるいは無線のものいずれかでなく双方を具えていてよい。
なお、本実施例に係る自動演奏装置を電子楽器に適用した場合、演奏操作子5Aは鍵盤楽器の形態に限らず、弦楽器や管楽器等どのようなタイプの形態でもよい。また、演奏操作子5Aやディスプレイ7Aあるいは音源・効果回路8などを1つの装置本体に内蔵したものに限らず、それぞれが別々に構成され、通信インタフェースや各種ネットワーク等の通信手段を用いて各装置を接続するように構成されたものにも同様に適用できることはいうまでもない。
なお、本発明に係る自動演奏装置は上記したような電子楽器の形態に限らず、カラオケ装置やゲーム装置、あるいは携帯電話等の携帯型通信端末、自動演奏ピアノなど、どのような形態の電子楽器・機器に適用してもよい。また、パーソナルコンピュータとアプリケーションソフトウェアという構成であってもよい。
上述した電子楽器においては伴奏パターンデータ(演奏パターンデータ)を記憶装置4等に多数記憶しておき、前述のマルチパッドの各パッドにいずれかの伴奏パターンデータを予め割り当てておき、各パッドの操作に応じてパッドに割り当てられた伴奏パターンデータを適宜読み出すことにより伴奏演奏を自動的に行う。そこで、この電子楽器において採用する伴奏パターンデータについて、図2を用いて説明する。図2は、本実施の形態において自動演奏に用いられる伴奏パターンデータのデータ構成の一実施例を示す概念図である。この伴奏パターンデータPDは所定の弦楽器における演奏態様を模した演奏パターンからなる例えば1フレーズ分の演奏区間の短い伴奏用データであり、これを1回又はパッドの操作中繰り返し再生することによりユーザは所望する演奏長さ(演奏区間)分の自動伴奏を行える。また、本実施の形態では、伴奏パターンデータのうち、6弦ギター専用に作成されたものを、特に伴奏パターンデータPD(g)と記す。
図2に示すように、伴奏パターンデータPDは、ヘッダデータと、タイミングデータ及び演奏データのシーケンスと、エンドデータとによって構成されている。ヘッダデータは当該伴奏パターンデータの最初に位置するデータであり、当該楽曲乃至パターンの名称、テンポ及び音色等のほか、当該伴奏用パターンデータがギター専用(PD(g))のものであるか否かを示す情報、ギター専用のものである場合にはさらにアルペジオ演奏用のものであるかストローク演奏用のものであるかを示す情報が定義されている。タイミングデータは、その直後に位置する演奏データの再生タイミングを、曲の先頭や各小節の先頭からの絶対時間、あるいは1つ前のイベントからの相対時間で規定したデータである。演奏データはその内容によって複数種類に分けられるが、ここでは主に、ノートオン、ノートオフ、プログラムチェンジ、ボリューム、エフェクトなどの自動演奏を指示するイベントデータである。エンドデータは、当該伴奏パターンデータの終わりを示すデータである。
演奏データは、ノートナンバと、発音継続時間を示すデュレーションと、発音強度を示すベロシティと、その他のデータとによって構成されている。一般的に、伴奏パターンデータはSMF(Standard Midi File)フォーマットで構成されており、ノートナンバは「0」〜「127」の数値をとり、その番号の若い順に低音から高音に向かって音高が対応付けられている。すなわち、ギター専用の伴奏パターンデータPD(g)以外の通常の伴奏パターンデータPDでは、ノートナンバ(例えば「48」)に基づいて音名(例えば「C」)とオクターブ(例えば「2」)が規定されることとなる。なお、本実施形態におけるオクターブ表記は中央C(ノートナンバ60)を「C3」と表記するものとする。一方、本実施の形態で用いるストローク演奏用及びアルペジオ演奏用の各ギター専用の伴奏パターンデータPD(g)においても、ノートナンバの構成は(「0」〜「127」の数値)通常の伴奏パターンデータPDと全く同様である。ところが、本実施の形態では、ギター専用の伴奏パターンデータPD(g)を再生(自動演奏)する際に、ノートナンバの解釈を通常の伴奏パターンデータPDとは異ならせるようにし、ギター専用の各伴奏パターンデータPD(g)のノートナンバについては、実質的に音高情報とは解釈しないようにしている。以下、説明する。
ストローク演奏用の伴奏パターンデータPD(g)のノートナンバについては、音名に相当する情報を「弦情報」として、オクターブに相当する情報を「位置情報」としてそれぞれ解釈する。「弦情報」は、ギターの第1〜第6弦のうちのどの弦(1つ)を発音すべきかを規定する情報である。ギターにおいてはある和音構成音を演奏可能なポジション(各弦の押え方)が複数通り存在するが、「位置情報」はその複数通りのポジションのうちのいずれかを規定する情報である。例えば、ノートナンバが音高「B2」を規定する「59」であったとすれば、音名を示す「B」が弦情報と解釈されて発音すべき弦「1弦」を規定し、オクターブを示す「2」が位置情報と解釈されてポジション「pos1」を規定することになる。したがって、ストローク演奏用の伴奏パターンデータPD(g)においては、弦情報と位置情報の組み合わせである「B2」,「E3」等は、音高情報としての意味を有さない。
他方、アルペジオ演奏用の伴奏パターンデータPD(g)のノートナンバについては、音名に相当する情報を「順番情報」として、オクターブに相当する情報を「位置情報」としてそれぞれ解釈する。「順番情報」は、アルペジオ演奏において発音すべき和音構成音を4音に固定し、この4音の中での相対的な音の高さの順番を規定する情報である。「位置情報」は、上記ストローク演奏用の場合の位置情報と同様である。例えば、ノートナンバが音高「B2」を規定する「59」であったとすれば、音名を示す「B」が順番情報と解釈されて音の高さの順番(例えば、和音構成音である4音の中で相対的に1番高い音)を規定し、オクターブを示す「2」が位置情報と解釈されてポジション「pos1」を規定することになる。したがって、アルペジオ演奏用の伴奏パターンデータPD(g)においても、順番情報と位置情報の組み合わせである「B2」,「E3」等は、音高情報としての意味を有さない。
なお、本実施例の形態では、伴奏パターンデータPDの他に、伴奏スタイルデータSDによっても自動伴奏を行うことができるが、伴奏スタイルデータSDも伴奏データであり、そのデータフォーマットも伴奏パターンデータPDと同じものである。伴奏スタイルデータSDについても、6弦ギター専用に作成されたものを、特に伴奏スタイルデータSD(g)と記す。伴奏スタイルデータSDにおいても、伴奏パターンデータPDの場合と全く同様に、伴奏スタイルデータSDと伴奏スタイルデータSD(g)とで、ノートナンバの解釈が異なる。また、伴奏スタイルデータSD(g)においても、ストローク演奏用とアルペジオ演奏用とがそれぞれ用意されることは言うまでもない。
図3は、ギター用音高決定テーブルの一実施例を示す概念図である。ギター用音高決定テーブルはコード毎に、ストローク演奏用とアルペジオ演奏用の2つがそれぞれ用意されており、ここでは図3(a)にCmaj(Cメジャー)コード、図3(b)にEM9(Eメジャー・ナインス)コード用の各音高決定テーブルを示している。この他にも各コード用のテーブルが多数用意されており、これらの集合であるテーブル群は例えばROM2や記憶手段4等に予め記憶されている。
ストローク演奏用の音高決定テーブルは、弦情報と位置情報とで1つの音高が規定されるように構成されている。弦情報である「D,E,F,G,A,B」は、それぞれ第6,5,4,3,2,1弦を発音させることを規定したものである。一方、位置情報である「2(C2-B2),3(C3-B3),4(C4-B4),5(C5-B5)」は、それぞれポジションpos1,pos2,pos3,pos4を規定する。6弦ギターにおいては、弦とフレットの位置との組み合わせによって、同じ音名乃至和音を発音できるポジションが複数存在する。上記各ポジションpos1〜4は、ユーザがギターでフレットを実際に押さえることが無理なくでき、その構成音高がギターらしい自然なボイシングとなるように予め設定されたものである。例えば、図3(a)の例では、ポジションpos1〜pos4のいずれも、Cmajコードの自然なボイシングとなっている。なお、音高決定テーブルにおいて「×」はミュート(発音しない)を示す。
上記したように、ストローク演奏用の伴奏パターンデータPD(g)、ストローク演奏用の伴奏スタイルデータSD(g)は、いずれも、どのポジションの押さえ方でどの弦を発音させるか、という情報で作成されており、それらのノートナンバは、例えば第6、第5、第4、第3、第2、第1弦に対応して、それぞれ「D2〜D5、E2〜E5、F2〜F5、G2〜G5、A2〜A5、B2〜B5」のいずれかに設定される。一方、ストローク演奏用の音高決定テーブルのうち、どのコード用のものを音高変換に用いるかは、鍵盤のコード鍵域で逐次入力(指定)されるコード(以下、入力コードと呼ぶ)によって定まる。いくつかの例を挙げると、例えばCmajコードが入力されたときは、図3(a)に示すCmajコードに対応付けられたストローク演奏用の音高決定テーブルが用いられ、弦情報が「F」、位置情報が「3」である演奏データ(ノートナンバ「65」のノートイベント)に基づき、音高「G2」が変換後の音高として決定される。EM9コードが入力されたときは、図3(b)に示すEM9コードに対応付けられたストローク演奏用の音高決定テーブルが用いられ、弦情報が「F」、位置情報が「3」である演奏データ(ノートナンバ「65」のノートイベント)に基づき、音高「B2」が変換後の音高として決定される。
他方、アルペジオ演奏用の音高決定テーブルは、順番情報と位置情報とで1つの音高を規定するように構成されている。順番情報である「D,E,F,G,A,B」は、それぞれがアルペジオ演奏において発音すべき和音構成音を、各和音の中での相対的な音の高さの順番により規定したものである。一方、位置情報である「2(C2-B2),3(C3-B3),4(C4-B4),5(C5-B5)」は、それぞれポジションpos1,pos2,pos3,pos4を規定する。位置情報は、それぞれギターの第1〜第6弦のうちのいずれかの弦上の音高を1つ規定する。上記したように、6弦ギターにおいては、弦とフレットの位置との組み合わせによって、同じ音高乃至和音を発音できるポジションが複数存在する。上記各ポジションpos1〜4は、ユーザがギターでフレットを実際に押さえることが無理なくでき、その構成音がギターらしい自然なボイシングとなるように予め設定されたものである。
図から理解できるように、本実施例に示すアルペジオ演奏用の音高決定テーブルでは、順番情報「D,E,F,G,A,B」のうち音の高さが低いほうの「D」及び「E」が「×」ミュート(発音しない)に定義される。すなわち、音の高さの順番との対応付けを「B,A,G,F」までの4音(ギターの演奏時においては同時に1弦につき1音ずつしか発音させることができないことから、4音はそれぞれ異なる4弦を用いて発音されることを示唆する)のみに制限、つまりギターが有する弦の本数(ここでは一例として6弦)よりも少ない所定数の弦(4弦)のみを使ってアルペジオ演奏をした際の和音構成音のいずれの順番の音であるかを、音の高い順に「B,A,G,F」までの4音を割り当てて規定する。
これは、弦楽器であるギターにおける典型的なアルペジオ演奏の演奏形態としては、ある和音の演奏時に6弦すべてを使うことは稀であり主に4弦のみを用いて演奏することが多いことに鑑みて、「第1弦」〜「第6弦」の各弦で発音可能な全ての複数音高を「B,A,G,F」までの4音(第1弦〜第6弦までのいずれか4弦)に集めて対応させている。すなわち、「B,A,G,F」までの4音に定義される音高は、必ずしも「第1弦」〜「第4弦」の各弦で発音可能な複数音高のうちの1つを定義するのみではない。例えば、図3(a)に示したCmajコードに対応付けられたアルペジオ演奏用の音高決定テーブルにおいて、ポジションpos1の「F」には「C2」が対応付けされているが、「C2」は実際のギターの第4弦からは発音することができない音高であり、ストローク演奏用の音高決定テーブルに定義されているように、本来ならば第5弦又は第6弦から発音される音高である。このように、アルペジオ演奏用の音高決定テーブルは、上述したストローク演奏用の音高決定テーブルと異なり、どのポジションの押さえ方でどの弦を発音させるか、という情報で作成されているわけではない。
上記したように、アルペジオ演奏用の伴奏パターンデータPD(g)、アルペジオ演奏用の伴奏スタイルデータSD(g)はいずれも、どのポジションの押さえ方で和音構成音のうちのどの高さの音を発音させるか、という情報で作成されており、それらのノートナンバは、例えば低い順に第4音、第3音、第2音、第1音に対応して、それぞれ「F2〜F5、G2〜G5、A2〜A5、B2〜B5」のいずれかに設定される。一方、アルペジオ演奏用の音高決定テーブルのうちどのコード用のものを音高変換に用いるかは、鍵盤のコード鍵域で逐次入力(指定)されるコード(以下、入力コードと呼ぶ)によって定まり、これは上述したストローク演奏用の音高決定テーブルと同様である。
また、本実施例に示すストローク演奏用,アルペジオ演奏用の各音高決定テーブルにおいては、さらに順番情報「D,E,F,G,A,B」とは別に、順位情報「C♯,C」と位置情報とで1つの特定度数(順位)の音高を規定するように構成されている。順位情報である「C♯,C」は、それぞれが発音すべき和音構成音のうちルート(根音)や5度などの特定度数の音高を規定したものである。詳しくは後述するが、これは和音構成音のうちの特定度数(ルート、5度)の音を意図的にベース的な音として発生させる演奏パターン等に対応することができるようにしたものである(例えば、後述する図7参照)。なお、順位情報としては「C♯,C」に限らず、順番情報「D,E,F,G,A,B」で使用していない音名であればどの音名を対応付けるようにしてもよい。
本実施の形態では、マルチパッドを用いた自動伴奏と、伴奏スタイルを用いた自動伴奏の2種類の自動演奏を同時に行うことができるように構成されている。
マルチパッドを用いた自動伴奏では、マルチパッドの各パッドにそれぞれ伴奏パターンデータPDを割り当てておき、ユーザが所望のパッドを押すことで、それに割り当てられている伴奏パターンデータPDが読み出され、該伴奏パターンデータPDに基づいて自動伴奏が行われる。各パッドには、既製の伴奏パターンデータ、既製の伴奏パターンデータを編集したもの、及びユーザが事後的に作成したもののいずれも割り当てることができるようになっている。さらには、演奏スタイルやモード等に応じて、各パッドに割り当てられる伴奏パターンデータPDを異ならせることができ、実質的に、パッド数より多い伴奏パターンデータPDの中から所望のものを割り当て用に選択することができる。
一方、伴奏スタイルを用いた自動伴奏では、例えばROM2や記憶装置4に記憶された複数種類の伴奏スタイルデータSDからユーザが何れかを選択して、設定操作子5Aの再生開始ボタン(図示せず)を押すことで、伴奏スタイルを用いた自動伴奏における音高変換機能を有効に設定する。すると、選択された伴奏スタイルデータSDが読み出され、それに基づいて自動伴奏が行われる。伴奏スタイルデータSDには、既製のもの、既製のものを編集したもの、及びユーザが事後的に作成したもののいずれも含まれる。
伴奏パターンデータPD、伴奏スタイルデータSDは、それぞれ既製のものはROM2に記憶されており、編集乃至事後的に作成されたものは、記憶装置4に記憶される。このほか、図示しないソングデータもROM2に記憶されている。これらのデータを総称して、以下、「自動演奏データ」と称する。自動伴奏においては、複数の伴奏パターンデータPDを並行して再生することもでき、伴奏スタイルデータSDに基づく自動伴奏に並行して、伴奏パターンデータPDに基づく自動伴奏を行うことも可能である。
自動伴奏時には、設定操作子6Aの不図示のモード指定スイッチによってコードマッチモードに当該電子楽器を機器設定することができる。このコードマッチモード時には、既に説明したように鍵域分割によるコード入力が可能となると共に、予めユーザが選択済みの伴奏パターンデータPD(g)に基づく自動伴奏音が、入力されたコードに基づいてかつギター用音高決定テーブルを参照して決定される音高で発音される。
また、ギター専用でない伴奏パターンデータPDに基づく自動伴奏音は、ギター用音高決定テーブルとは別に記憶された音高変換テーブルを用いて音高変換されるが、この手法については従来と同様であることから、説明を省略する。一方、非コードマッチモードにおいては、ギター専用でない伴奏パターンデータPDについては単純にノートナンバそのままの音高で発音するが、ギター専用パターンデータPD(g)についてはそのノートナンバが音高の意味を持たないため再生を禁止する。また、伴奏スタイルデータSD,SD(g)については常にコードにあうように変換されるのでコードマッチモード/非コードマッチモードという概念がない。なお、コード変換の仕方は伴奏パターンデータPD,PD(g)の場合と同様である。また、伴奏パターンデータPD、伴奏スタイルデータSDの種類によっては、音高変換しないように作られたものもあるが(例えばメロディックなフレーズを含むデータであって、コードに応じて音高変換するとフレーズがこわされてしまう場合など)、これらに基づいた自動伴奏ではコードの入力があっても自動伴奏音は変更されない。あるいは、ルートの差分だけ平行移動した音高に変換される。
次に、本実施例に示す電子楽器において、予め用意(あるいは取得)された伴奏パターンデータ(あるいは伴奏スタイルデータ)と入力されたコードとに応じて、音高を変換しながら自動伴奏を実行する処理について、図4〜図5を用いて説明する。図4は、「メイン処理」の一実施例を示すフローチャートである。当該処理は、電子楽器の電源オンに応じてCPU1が開始する処理である。
ステップS1は、初期化処理を実行する。初期化処理としては、レジスタのクリアや電源オン時における現状の設定/操作状態(状態情報)の初期設定などがある。ステップS2は、「パネル設定処理」を実行する。この「パネル設定処理」は、設定操作子6A(図示しないマルチパッド含む)の操作を受け付け、機器設定等を行う。ステップS3は、「自動演奏処理」を実行する。これについては、後述する(図5参照)。ステップS4は、「発音処理」を実行する。この「発音処理」では、例えば前記ステップS3の実行に伴い生成される再生用データ(再生用演奏情報)を読み出し、これに基づき生成される楽音信号に対して効果処理を付加するなどしてからサウンドシステムに出力することで楽音の発生(発音)が行われる。この他、これと並行してあるいは単独で、ユーザによる鍵盤のマニュアル操作に応じて生成される演奏信号に基づく楽音の発生(発音)も行われる。該「発音処理」の終了後、ステップS2の処理に戻って、上記ステップS2〜ステップS4の処理を繰り返し実行する。
図5は、「自動演奏処理」(図4のステップS3参照)の一実施例を示すフローチャートである。ステップS11は、コードマッチモードが設定されているか否かを判定する。コードマッチモードが設定されていると判定した場合(伴奏スタイルデータを再生する場合には常にコードマッチモードとする)には(ステップS11のYES)、「コード鍵域」におけるコードの入力があったか否かを判定する(ステップS12)。ここで、「コード鍵域」における押鍵であっても、コードとして成立しないような押鍵態様である場合は、コード入力無しと判定される。そして、コードマッチモードが設定されていないか、または設定されていてもコードの入力がない場合は(ステップS11及びステップS12のいずれかがNO)、ステップS14の処理に進む一方で、コードの入力があった場合には(ステップS12のYES)、入力コードを示すデータを保持してから(ステップS13)、ステップS14の処理へ進む。
ステップS14は、自動演奏が実行中であるか否かを判定する。ここでいう自動演奏には、上記した伴奏パターンデータPD又は伴奏スタイルデータSDに基づく自動伴奏だけでなく、ソングデータの再生も含まれる。自動演奏が実行中でないと判定した場合には(ステップS14のNO)、当該処理を終了する。他方、自動演奏が実行中であると判定した場合には(ステップS14のYES)、現在実行されている自動演奏データを読み出し(ステップS15)、読み出した自動演奏データのうち現時点でのタイミングで発音処理すべきデータがあるか否かを判定する(ステップS16)。発音処理すべきデータがないと判定した場合には(ステップS16のNO)、当該処理を終了する。
一方、発音処理すべきデータがあると判定した場合には(ステップS16のYES)、コードマッチモードが設定されているか否かを判定する(ステップS17)。コードマッチモードが設定されていると判定した場合には(ステップS17のYES)、現時点のタイミングで発音処理すべきデータが伴奏パターンデータPD又は伴奏スタイルデータSDのいずれかであるか否かを判定する(ステップS18)。そして、コードマッチモードが設定されていないか、又は設定されていても現時点のタイミングで発音処理すべきデータが伴奏パターンデータPD又は伴奏スタイルデータSDのいずれでもない(ソングデータ等である)場合には(ステップS17及びステップS18のいずれかがNO)、音高変換することなく、当該データに基づいて再生用の演奏データである再生用データを生成して(ステップS19)、ステップS26の処理に進む。
一方、前記ステップS18の判定の結果、現時点のタイミングで発音処理すべきデータが伴奏パターンデータPD又は伴奏スタイルデータSDである場合は(ステップS18のYES)、当該データがギター型変換対象のデータであるか否かを判定する(ステップS20)。ここで、ギター型変換対象のデータとは、上記した伴奏パターンデータPD(g)又は伴奏スタイルデータSD(g)のことである。当該データがギター型変換対象のデータでないと判定した場合には(ステップS20のNO)、当該データは通常の(つまりギター専用でない)伴奏パターンデータPD又は伴奏スタイルデータSDであるので、上述したギター用音高決定テーブルとは別に記憶された音高変換テーブルを参照して、当該データの音高(ノートナンバ)を、上記保持されたデータで規定される入力コードに基づいて変換すると共に、変換後の音高で再生用データを生成する(ステップS21)。
当該データがギター型変換対象のデータであると判定した場合には(ステップS20のYES)、当該データは専用のギター型伴奏パターンデータPD(g)又は伴奏スタイルデータSD(g)であるので、さらに当該データが「アルペジオ演奏型」か、又は「ストローク演奏型」のいずれであるかを判定する。これらの型を示すデータは、伴奏パターンデータPD(g)又は伴奏スタイルデータSD(g)の中に予め記憶されている。データの型が「アルペジオ演奏型」であると判定した場合には(ステップS22のYES)、使用すべきギター用の音高決定テーブルを前記保持したコードに対応するアルペジオ演奏用に特定し、これを参照しながらギター型の音高変換(特定)処理を実行する(ステップS23)。他方、データの型が「アルペジオ演奏型」でないと判定した場合には(ステップS22のNO)、使用すべきギター用の音高決定テーブルを前記保持したコードに対応するストローク演奏用に特定し、これを参照しながらギター型の音高変換(特定)処理を実行する(ステップS24)。すなわち、当該データのノートナンバ中の順番情報や順位情報と位置情報との組み合わせに応じた音高を、入力コードに対応する前記特定したアルペジオ演奏用又はストローク演奏用いずれかの音高決定テーブル(図3参照)を参照して決定する。
ここで、上述したように、伴奏パターンデータPD(g)又は伴奏スタイルデータSD(g)においては、自動伴奏処理におけるデータ解釈上、ノートナンバが音高での意味を持たず、生成する再生用データの音高を特定するのに用いられるだけであるので、ステップS23及びステップS24の処理に関し、「音高変換」という概念は厳密には正しくない(「音高特定」や「音高決定」などと言うべきであろう)。しかし、ノートナンバが入力コードに基づき音高変換されるという従来の音高変換手法(前記ステップS21)に対応する処理であるので、便宜上、「ギター型の音高変換(特定)処理」と称している。
ステップS25は、上記特定した音高で再生用データを生成する。ステップS26は、読み出した自動演奏データであって、現時点のタイミングで同時処理すべきものが他にあるか否かを判定する。同時処理すべきものがある場合には(ステップS26のYES)、前記ステップS17に戻る。同時処理すべきものがない場合には(ステップS26のNO)、当該処理を終了する。
次に、本実施の形態におけるギター型の音高変換(特定)処理による音高特定の結果を従来と比較する。図6は、アルペジオ演奏実行の際における音高特定の結果を五線譜上に示した図である。
例えば、Cmajコードを基準として作成された伴奏パターンデータPD(g)が各々「E5,G5,F5,G5,A5,G5,F5,G5」である8個のノートナンバからなる演奏データを含み、これに基づくアルペジオ演奏実行に際して入力コードがCmajコードであるとすると、いずれの演奏データについても位置情報が「5」であることから、図3に示す各音高決定テーブルにおけるポジションpos4中の音高が再生用データの音高として決定される。ここで、従来の音高変換、つまり図3に示したストローク演奏用の音高決定テーブルを用いた音高変換では、それぞれ「5,3,4,3,2,3,4、3」の各弦の音高が再生用データの音高として決定されることになり、図6(a)左図に示すようなアルペジオ演奏が実現される。
一方、入力コードがEM9コードであるとすると、ストローク演奏用の音高決定テーブルを用いた音高変換では、上記と同様にそれぞれ「5,3,4,3,2,3,4、3」の各弦上の音高が再生用データの音高として決定されることになるが、EM9コードの場合には第5弦の音がミュートされており、これによると図6(a)右図に示すような、アルペジオ演奏において本来発音すべきタイミングで音が抜けてしまうことが生じた、アルペジオ演奏として成立していない不完全な演奏となってしまう。
これと、本発明の実施形態に係る音高変換、つまり図3に示したアルペジオ演奏用の音高決定テーブルを用いた音高変換と比較する。この場合、Cmajコードを基準として作成された伴奏パターンデータPD(g)は、各々「F5,G5,F5,G5,A5,G5,F5,G5」である8個のノートナンバからなる演奏データを含むものとする。これに基づくアルペジオ演奏実行に際して、入力コードがCmajコード及びEM9コードのどちらであるとしても、アルペジオ演奏用の音高決定テーブルを用いた音高変換では、それぞれ「4,3,4,3,2,3,4、3」の各順番の音高が再生用データの音高として決定されることになり、図6(b)に示すアルペジオ演奏がそれぞれ実現される。この図から理解できるように、特に入力コードがEM9コードの場合に、従来ではミュートされ発音できなかった第1音についても、ミュートされることなく(つまり、本来発音すべきタイミングで音が抜けることなく)楽音を発音することができるようになる。
また、上述したように、本実施例においては順番情報「D,E,F,G,A,B」とは別に、順位情報「C♯,C」と位置情報とで1つの特定度数(順位)の音高を規定するように音高決定テーブルを構成することによって、図7に示すような演奏パターン、つまり和音構成音のうちの任意の特定度数(ルートや5度あるいは3度等)の音を意図的にベース的な音として発生させる演奏パターンに対応できるようにしている。以下、これについて説明する。
例えば、図7(a)に示すようにアルペジオ演奏用の伴奏パターンデータとして、Cmajコードを基準としてCmajコードの根音である「C2」の音高の楽音を1拍目に発音させるため、1拍目が括弧()内に示す「F2」のノートナンバ「F2,(B2,A2,G2),…」からなる演奏データを作成したとしても、これに基づくアルペジオ演奏実行に際して入力コードがEM9コードであるとすると、1拍目が「G♯2」の音高の楽音(図7(b)において点線で示す)、つまり1拍目がEM9コードの根音「E2」ではなく、和音構成音のうちの第3度の「G♯2」の音高の楽音が発音されてしまう。すなわち、入力コードがEM9コードの場合には、1拍目が根音から始まる演奏パターンが成立しない。さらに、1拍目が根音から始まる演奏パターンにおいては、3拍目として「G1」の音高の楽音を発音するほうがベース的な動きを含む演奏パターンとなってよい。しかし、Cmajコードを基準として3拍目が「G1」の音高の楽音を発音する演奏データを作成しようとしても、Cmajコードに対応したアルペジオ演奏用の音高決定テーブル(ただし、順位情報「C♯,C」を含まない場合)には「G1」の音高の楽音(に対応するノートナンバ)が用意されておらず、図7(a)において点線で示す「G2」の音高の楽音(対応する伴奏パターン内のノートナンバ「G2」)を発音させるよう演奏データを作成することしかできない。
ところが、本発明の実施形態に係る音高変換、つまり順番情報「D,E,F,G,A,B」のほかに、順位情報「C♯,C」と位置情報とで1つの特定度数(順位)の音高を規定するように構成した音高決定テーブルを用いての音高変換によれば、上記したようなベース音を含む演奏パターンを実現することが簡単にできるようになる。すなわち、音高決定テーブルに明示的に各コードにおける和音構成音のうちの任意の特定度数(ルートや5度あるいは3度等)の音に対応する順位情報を定義することによって、1拍目は各コードにおける根音をシミュレートするノートナンバ「C2」、3拍目は和音構成音のうち5度の音をシミュレートするノートナンバ「C♯2」からなる演奏データ(図7に示した例では「C2,(B2,A2,G2),C♯2,(B2,A2,G2)」)を作成することができることから、これに基づくアルペジオ演奏実行に際しては、常に上記したようなベース音を含む演奏パターンを入力されたコードに関わらずに実現することが容易にできるようになる。
以上のように、本実施の形態によれば、自動演奏において、読み出される自動演奏データと入力コードとに基づき再生用データを生成するに当たって、自動演奏データが伴奏パターンデータPD(g)又は伴奏スタイルデータSD(g)である場合は、生成する再生用データの音高が、それらのノートナンバ中の順番情報と位置情報とに基づいて、入力コードに応じたアルペジオ演奏用の音高決定テーブルを用いて決定される。特に、ストローク演奏用とは別に用意したアルペジオ演奏用の音高決定テーブルは、ストローク演奏用のように6弦をシミュレートして1つの弦に対して必ず1つの音高の発音(又はミュート)を対応付けるのではなく、4音で弾く場合のコード(和音)の主要音をシミュレートするようにして、4音すべてに対して必ず1つの音高の発音を対応付けるようにしている(ミュートは対応付けない)。しかも、このアルペジオ演奏用の音高決定テーブルにおいても、1つの弦に対して2つ以上の音高の発音が対応するというような不自然な構成音高となるおそれがなく、ギターに適した自然なボイシングを実現するように各音高は設定される。したがって、アルペジオ演奏の自動演奏に関して、ギター伴奏に適するように再生用データの音高を決定する際に、本来楽音を発生させるべきタイミングで音が抜ける(なんらの楽音も発生されない)ことが生じてしまうことがなく、また実際の演奏におけるコードボイシングに近い、違和感のないアルペジオ演奏を実現することが容易にできるようになる。
また、音高決定テーブルにおいて、上記した順番情報とは別に順位情報を設けておき、伴奏パターンデータPD(g)又は伴奏スタイルデータSD(g)のノートナンバ中の順位情報と位置情報とに基づいて、生成する再生用データの音高が、和音構成音における1つの特定度数(順位)の音高に決定されるようにした。これにより、アルペジオ演奏にベース的な動きを加えた演奏パターンを作成する際に、根音や5度音などの和音構成音における任意の順位の音を含ませることが明示的にできることから、全てのコードタイプにおいてベース音を含む演奏パターンを実現することが容易にできるようになる。
さらに、伴奏パターンデータPD及び伴奏スタイルデータSDはMIDIフォーマットで作成され、そのうち特にギター専用に作成された伴奏パターンデータPD(g)及び伴奏スタイルデータSD(g)に限って、それらのノートナンバを、音高情報と解釈するのではなく、発音すべき和音構成音を演奏する際のポジション(音高)と、そのポジションにおける順番ないし順位として解釈して、アルペジオ演奏用の音高決定テーブルを用いて音高を決定する。したがって、ギター専用の伴奏パターンデータPD(g)及び伴奏スタイルデータSD(g)が、通常の自動演奏データと基本的に同じ構成であることから、それらを並行して自動演奏処理することが容易である。また、伴奏パターンデータPD(g)等が既製のデータフォーマットで構成されることから、伴奏パターンデータを作成するあるいは再生する際の構成が複雑化しなくて済む。
なお、ギター専用の自動演奏データであって、入力コードに応じて音高変換して再生されるべきものとしては、少なくとも、順番情報(及び順位情報)と該順番情報(及び順位情報)に付随する位置情報とに相当する情報を有する構成のデータであればよく、上記伴奏パターンデータPD(g)及び伴奏スタイルデータSD(g)のようなMIDIフォーマットのデータに限るものではない。
なお、本電子楽器において、ギター専用の自動伴奏を行うというモードを設け、このモードでは伴奏パターンデータPD(g)及び伴奏スタイルデータSD(g)等のギター専用の自動伴奏データしか選択できないように構成すれば、ヘッダデータにおいてギター専用のものを示すデータを含める必要はない。
なお、本実施の形態では、伴奏パターンデータPD(g)及び伴奏スタイルデータSD(g)を6弦ギター専用としたがこれに限らず、ベース等の他の弦楽器用に伴奏パターンデータ等とそれに対応する音高決定テーブルを作成し、各種弦楽器音による自動伴奏を実現するようにしてもよい。
なお、上述した実施例においては、ストローク演奏用の音高決定テーブルについてもアルペジオ演奏用の音高決定テーブルと同様に、順番情報のほかに順位情報と位置情報とで1つの特定度数(順位)の音高を規定するように構成している。こうすると、ストローク演奏時においてもベース音を含む演奏パターンを入力されたコードに関わらずに実現することが容易にできるようになる。
また、コードの入力は外部の装置からMIDIメッセージ等の形式で行ってもよいし、あらかじめ記憶したコード進行データを再生することにより行ってもよい。
1…CPU、2…ROM、3…RAM、4…記憶装置、5,6…検出回路、5A…演奏操作子、6A…設定操作子、7…表示回路、7A…ディスプレイ、8…音源・効果回路、8A…サウンドシステム、9…通信インタフェース、1D…通信バス