本発明の一実施形態に係るコンテンツ制御装置が適用された電子楽器10について説明する。まず、電子楽器10の概略を説明する。電子楽器10は、ユーザの演奏操作に応じた楽音を発生する。また、電子楽器10は、複数の演奏パートの演奏を表すシーケンスデータに従って楽音を発生する自動演奏機能を備えている。ユーザは、自動演奏機能を用いて伴奏(自動演奏パート)を再生させつつ、主旋律(手動演奏パート)を手動演奏することができる。また、電子楽器10は、前記楽音の発生態様(音色及び定位)を変化させるための操作子(後述する入力操作子11)を有している。詳しくは後述するように、電子楽器10は、3つの動作モードを有している。第1動作モードにおいては、ユーザが前記操作子を操作すると、電子楽器10は、前記操作に応じて、前記手動演奏パート及び自動演奏パートから選択した1つ又は複数の演奏パートの楽音の発生態様を変化させる。これに対し、第2及び第3動作モードにおいては、前記操作子をユーザが操作しなくても、前記楽音の発生態様を自動的に変化させる。第2動作モードにおいては、所定のパターンデータに従って、電子楽器10が楽音の発生態様を自動的に変化させる。また、第3動作モードにおいては、音響波形のエンベロープ(振幅の大まかな変化)に従って、電子楽器10が前記楽音の発生態様を自動的に変化させる。
つぎに、電子楽器10の具体的構成について説明する。電子楽器10は、図1に示すように、入力操作子11、入力操作検出回路12、コンピュータ部13、表示器14、記憶装置15、外部インターフェース回路16、音源回路17及びサウンドシステム18を備えており、これらがバスBUSを介して接続されている。
入力操作子11は、各種パラメータを設定する際、楽曲を演奏する際などに用いられる。入力操作子11は、オン・オフ操作に対応したスイッチ、回転操作に対応したロータリーポテンショメータ又はロータリーエンコーダ、スライド操作に対応したリニアポテンショメータ又はリニアエンコーダ、マウス、タッチパネルなどから構成される。さらに、入力操作子11には、楽曲を演奏する際に使用される鍵盤装置も含まれる。また、入力操作子11には、ペダル操作子(エクスプレッションペダル、ペダルスイッチ、ダンパーペダルなど)も含まれる。入力操作子11の具体的構成については後述する。ユーザが入力操作子11を操作すると、入力操作検出回路12によって、入力操作子11が操作されたこと及びその操作内容が検出される。入力操作検出回路12は、入力操作子11が操作されたことを表す割り込み信号を、バスBUSを介して、後述するコンピュータ部13に供給する。そして、入力操作検出回路12は、コンピュータ部13の要求に応じて、操作内容を表す操作情報をコンピュータ部13に供給する。
コンピュータ部13は、バスBUSにそれぞれ接続されたCPU13a、ROM13b、RAM13c及びタイマー13dを有する。CPU13aは、各種プログラムをROM13bから読み出して、各種処理を実行する。例えば、CPU13aは、後述する音源回路17を制御して、鍵盤装置を構成する複数の鍵のうち、押し下げられた鍵に対応する楽音を発生させる。また、CPU13aは、複数の演奏パートの演奏を表すシーケンスデータに従って音源回路17を制御して、複数の楽音を順次発生させる(自動演奏機能)。また、CPU13aは、楽音の発生態様を規定する複数のパラメータの値を音源回路17に供給する。
ROM13bには、前記各種プログラムに加えて、初期設定パラメータ、表示器14に表示される画像を表す表示データを生成するための図形データ、文字データなどが記憶されている。RAM13cには、各種プログラムの実行時に、各種データが一時的に記憶される。タイマー13dは、所定の時間間隔でカウント値をインクリメントするカウンタを備える。
表示器14は、液晶ディスプレイ(LCD)によって構成される。コンピュータ部13は、図形データ、文字データなどを用いて表示内容を表わす表示データを生成して、表示器14に供給する。表示器14は、コンピュータ部13から供給された表示データに基づいて画像を表示する。例えば、現在選択されている楽音の名称、前記楽音の発生態様を規定する各種パラメータの値などが表示される。
また、記憶装置15は、HDD、DVDなどの大容量の不揮発性記録媒体と、各記録媒体に対応するドライブユニットから構成されている。
外部インターフェース回路16は、電子楽器10を他の電子楽器、パーソナルコンピュータなどの外部機器に接続可能とする接続端子を備えている。電子楽器10は、外部インターフェース回路16を介して、LAN(Local Area Network)、インターネットなどの通信ネットワークにも接続可能である。
波形メモリWMには、ピアノ、オルガン、バイオリン、トランペットなどの楽音の音響波形をそれぞれ表す複数の楽音波形データが記憶されている。音源回路17は、CPU13aによって指定された楽音波形データを波形メモリWMから読み出す。そして、前記読み出した楽音波形データを、CPU13aから供給されたパラメータの値に応じて修正してデジタル音信号を生成し、サウンドシステム18に供給する。また、音源回路17は、CPU13aから供給されたパラメータの値に応じて、各種楽音にリバーブ、コーラスなどの効果を付与する効果回路、フィルタなどを備えている。つまり、音源回路17は、パラメータに応じて楽音の発生態様を制御する楽音制御装置である。
サウンドシステム18は、音源回路17から供給されたデジタル音信号をアナログ音信号に変換するD/A変換器、前記変換したアナログ音信号を増幅するアンプ、及び増幅されたアナログ音信号を音響信号に変換して出力する左右一対のスピーカを備えている。また、サウンドシステム18は、他の楽器など(電子楽器10とは異なる電子楽器、アコースティック楽器、歌声など)の演奏(フレーズ)を表す音響信号をアナログ音信号(音響波形信号)に変換して出力するマイク、前記マイクから出力されたアナログ音信号をデジタル音信号に変換するA/D変換器を備えている。A/D変換器は、所定のサンプリング期間(例えば、1/44100秒)ごとに、前記取得したアナログ音信号の波高値を表わすサンプル値を計算して、コンピュータ部13へ供給する。
つぎに、入力操作子11について具体的に説明する。図2に示すように、電子楽器10は、各種パラメータを割り当て可能な複数の操作子RES=1,2,・・・,8,REM,LPn=1,2,・・・,8,RP,RSを有する。
操作子RES,REMは、所定の回転軸回りに回転可能なノブを有するロータリーエンコーダである。つまり、操作子RES,REMのノブを回すと、操作子RES,REMは、位相が90°ずれた2つのパルス列Pa,Pbを出力する。操作子RESのノブの回転方向が時計方向であるとき、パルス列Paの位相はパルス列Pbの位相よりも90°進む。一方、操作子RESのノブの回転方向が反時計方向であるとき、パルス列Paの位相はパルス列Pbの位相よりも90°遅れる。
操作子RESのノブの周囲には、複数(例えば16個)の発光ダイオードLRESが配置されている。また、操作子REMのノブを取り囲む環状の発光素子LREMが配置されている。発光素子LREMは、環状に配置された複数の発光ダイオードと、前記複数の発光ダイオードを覆うカバーとから構成されている。前記カバーは、前記複数の発光ダイオードから発せられた光を拡散させる。これにより、図2において斜線を付した部分が均一に発光する。また、発光素子LREMを構成する発光ダイオードは、赤色、緑色及び青色の発光ダイオードから構成されており、それぞれの発光量を制御可能に構成されている。これにより、発光素子LREM全体としての発光色を任意に設定可能である。
操作子LPn=1,2,・・・,8は、リニアポテンショメータである。操作子LPnは、スライド移動可能なレバーを備えており、レバーの位置に応じた指示値(電圧値)を出力する。操作子LPnの左側には、複数(例えば8個)の発光ダイオードLLPnが前記レバーの移動方向に沿って並べられている。
操作子RPは、ロータリーポテンショメータである。操作子RPは、所定の回転軸周りに回転可能なノブを備えており、前記ノブの回転角度(指標IRPの方向)に応じた指示値(電圧値)を出力する。
操作子RSは、ロータリースイッチである。操作子RSは、所定の回転軸周りに回転可能なノブを備えており、前記ノブの回転角度(指標IRSの方向)に応じた指示値(電圧値)を出力する。
(第1動作モード)
つぎに、電子楽器10の第1動作モードについて説明する。第1動作モードにおいては、操作子RES=1,2,・・・,8及び操作子REMは、楽音の発生態様をリアルタイムに変更する操作子として機能する。すなわち、操作子RESに楽音の発生態様を規定するパラメータがそれぞれ割り当てられる。操作子REMには、楽音の発生態様を規定するパラメータは割り当てられない。ユーザが操作子REMを手で操作すると、操作子RESにそれぞれ割り当てられたパラメータの値が同時に変化するように構成されている。上記のように、第1動作モードは、楽音の発生態様を手動で変化させるという用途を想定した動作モードである。
第1動作モードにおいて、CPU13aは、各種プログラムを実行することにより、図3に示すように、設定情報作成部SG、楽音信号発生指示部SD、パラメータ値決定部PSとして機能する。設定情報作成部SGは、操作子設定部SGRE及びパラメータ設定部SGPRを含む。また、パラメータ値決定部PSは、指示値計算部PSV及びパラメータ値計算部PSPRを含む。
つぎに、設定情報作成部SGについて説明する。第1動作モードにおいては、設定情報作成部SGは、ユーザの指示に従って、図4及び図5に示すような、操作子REMの指示値vMと操作子RESの指示値vSとの対応関係を表す操作子設定テーブルTBREを予め作成する。具体的には、ユーザは、まず、入力操作子11(例えば、タッチパネル)を操作して、操作子REMの指示値が「0」であるときの操作子RESの指示値vS1、及び操作子REMの指示値が「127」であるときの操作子RESの指示値vS2を入力する。ユーザによる入力操作を表す入力操作情報は、入力操作検出回路12を介して操作子設定部SGREに供給される。操作子設定部SGREは、前記入力された各指示値を操作子設定テーブルTBREとしてRAM13cに記憶する。なお、作成した操作子設定テーブルTBREをROM13bにも記憶しておき、第1動作モードを再開する際に、前記記憶しておいた操作子設定テーブルTBREを読み出して、前記読み出した操作子設定テーブルTBREを編集可能としても良い。
指示値vS1よりも指示値vS2が大きい場合には、操作子REMの指示値vMが増大すると、操作子RESの指示値vSが増大し、操作子REMの指示値vMが減少すると、操作子RESの指示値vSが減少する。一方、指示値vS1よりも指示値vS2が小さい場合には、操作子REMの指示値vMが増大すると、操作子RESの指示値vSが減少し、操作子REMの指示値vMが減少すると、操作子RESの指示値vSが増大する。また、指示値vS1と指示値vS2とが同じ値である場合には、操作子REMの指示値vMが増減しても、操作子RESの指示値vSは変化しない。
また、パラメータ設定部SGPRは、ユーザの指示に従って、図6に示すような、操作子RESに割り当てるパラメータ、及び操作子RESの指示値vSと前記パラメータの値との対応関係を表すパラメータ設定テーブルTBPRを予め作成する。説明を簡単にするために、本実施形態においては、操作子RES=1,2,・・・,8に手動演奏パートの楽音の発生態様を規定するパラメータが1つずつ割り当てられる例を説明する。しかし、1つの操作子RESに複数のパラメータが割り当てられても良い。また、操作子RES=1,2,・・・,8に自動演奏パートのうちの1つの演奏パート又は複数の演奏パートの楽音の発生態様を規定するパラメータが割り当てられても良い。
具体的には、ユーザは、入力操作子11(例えば、タッチパネル)を操作して、操作子RESの指示値vSが最小(「0」)であるときのパラメータの値pS1、及び操作子RESの指示値vSが最大(「127」)であるときのパラメータの値pS2を入力する。さらに、ユーザは、図7に示すような、操作子RESの指示値vSの変化に対するパラメータの値の変化の特性を表すテンプレートTP1〜TP5のうちの1つを選択して、そのテンプレートの番号tpを入力する。テンプレートTP1〜TP5は、パラメータの値pS1が「0」であって、且つパラメータの値pS2が「127」である場合における、指示値vSとパラメータの値p(vS)との関係を表したテーブルである。図8に示す例では、操作子RESの指示値vSが最大値(「127」)又は最小値(「0」)に近い範囲内において変化したとき、パラメータの値はあまり変化しないが、操作子RESの指示値vSが中央値(「64」)に近い範囲内において変化したとき、パラメータの値が大きく変化する。なお、テンプレートTP1〜TP5と同様のテーブルを、ユーザが作成可能に構成されていてもよい。
つぎに、楽音信号発生指示部SDについて説明する。鍵盤装置の鍵が押し下げられたとき、又は押し下げられていた鍵が解放されたとき、入力操作検出回路12は、楽音信号発生指示部SDに割り込み信号KIを供給する。このキーオン・キーオフ割り込み信号KIをトリガとして、楽音信号発生指示部SDは、鍵盤装置の鍵が押下されたことを表すキーオンデータKON、又は鍵が解放されたことを表すキーオフデータKOFFを鍵盤装置から取得する。キーオンデータKONは、押下された鍵の音高を表すノートナンバーNN、押し下げ強度を表すベロシティVLを含む。また、キーオフデータKOFFは、解放された鍵の音高を表すノートナンバーNNを含む。楽音信号発生指示部SDは、キーオンデータKONを取得したとき、前記キーオンデータKONに含まれるノートナンバーNN及びベロシティVLを音源回路17に供給して、前記供給したデータに対応する楽音信号を発生させる。楽音信号発生指示部SDは、キーオフデータKOFFを取得したとき、前記キーオフデータに含まれるノートナンバーNNを音源回路17に供給して、前記供給したデータに対応する楽音信号の発生を停止させる。
つぎに、パラメータ値決定部PSについて説明する。指示値計算部PSVは、操作子REM及び操作子RESの指示値を計算する。第1動作モードの開始時において、指示値計算部PSVは、操作子REMの指示値vMを「0」又は所定の初期値に設定する。操作子REMのノブが手動操作されると、入力操作検出回路12は、操作子REMが操作されたことを表す割り込み信号MIを指示値計算部PSVへ供給する。指示値計算部PSVは、割り込み信号MIに応答して、図9に示す指示値計算プログラムをROM13bから読み出して実行する。指示値計算部PSVは、ステップS10にて、指示値計算処理を開始する。つぎに、指示値計算部PSVは、ステップS11にて、操作子REMの指示値vMを計算する。具体的には、指示値計算部PSVは、操作子REMから出力された前記2つのパルス列Pa,Pbを、入力操作検出回路12を介して取得する。そして、パルス列Pa(又はパルス列Pb)を構成するパルスの数、及びパルス列Pa,Pbの位相のずれに基づいて、操作子REMの手動操作量ΔvMを計算する。操作子REMのノブの回転方向が時計方向である場合、手動操作量ΔvMは正値である。一方、操作子REMのノブの回転方向が反時計方向である場合、手動操作量ΔvMは負値である。指示値計算部PSVは、前記計算した手動操作量ΔvMを指示値vMに加算する。
したがって、ユーザが操作子REMのノブを時計方向に回すと、操作子REMの指示値vMはその回転角度に比例して増大する。一方、操作子REMのノブを反時計方向に回すと、操作子REMの指示値vMはその回転角度に比例して減少する。操作子REMの指示値vMの最大値は、例えば「127」である。また、操作子REMの指示値vMの最小値は、例えば「0」である。すなわち、操作子REMの指示値vMが「127」であるときに、操作子REMのノブを時計方向にさらに回しても、操作子REMの指示値vMは変化しない。また、操作子REMの指示値vMが「0」であるときに、操作子REMのノブを反時計方向にさらに回しても、操作子REMの指示値vMは変化しない。指示値計算部PSVは、発光素子LREMの発光色(表示態様)を、操作子REMの指示値vMに応じた色に設定する。電子楽器10は、操作子REMの現在の指示値vMを表示器14に表示可能であるが、ユーザは、発光素子LREMの発光色によっても、操作子REMのおおよその指示値vMを認識できる。
つぎに、指示値計算部PS
Vは、ステップS12にて、操作子RE
Sの指示値v
Sをそれぞれ計算する。具体的には、指示値計算部PS
Vは、操作子設定テーブルTB
REを参照して指示値v
S1,v
S2を取得し、操作子RE
Mの現在の指示値v
M、及び前記取得した指示値v
S1,v
S2を下記の数式(1)に適用する。これにより、操作子RE
Sの現在の指示値v
Sが線形補間演算される。
なお、第1動作モードにおいて、操作子RESが手動操作された場合には、その手動操作量ΔvSに応じて、指示値vSが補正される。具体的には、指示値計算部PSVは、次に説明する操作子オフセットOFSを計算し、前記計算された指示値vsに加算することにより指示値vsを補正する。第1動作モードの開始時において、操作子オフセットOFSは「0」に設定されている。そして、第1動作モード中に操作子RESが手動操作されると、指示値計算部PSVは、下記のような割り込み処理を実行して、操作子オフセットOFSを更新する。
第1動作モードにおいて操作子RESのノブが手動操作されると、入力操作検出回路12は、操作子RESが操作されたことを表す割り込み信号SIを指示値計算部PSVへ供給する。指示値計算部PSVは、割り込み信号SIに応答して、操作子RESから出力された前記2つのパルス列Pa,Pbを、入力操作検出回路12を介して取得する。そして、パルス列Pa(又はパルス列Pb)を構成するパルスの数、及びパルス列Pa,Pbの位相のずれに基づいて、操作子RESの手動操作量ΔvSを計算する。操作子RESの回転方向が時計方向である場合、手動操作量ΔvSは正値である。一方、操作子RESの回転方向が反時計方向である場合、手動操作量ΔvSは負値である。そして、指示値計算部PSVは、手動操作量ΔvSを操作子オフセットOFSに加算する。指示値計算部PSVは、ステップS13にて、操作子オフセットOFSを指示値vsに加算して指示値vsを補正する。ただし、操作子RESの指示値vSの最大値は、例えば「127」である。また、操作子RESの指示値vSの最小値は、例えば「0」である。そして、指示値計算部PSVは、ステップS14にて、前記計算した指示値vsをパラメータ値計算部PSPRへ供給し、ステップS15にて、指示値計算処理を終了する。
つぎに、パラメータ値計算部PS
PRについて説明する。パラメータ値計算部PS
PRは、指示値計算部PS
Vから供給された指示値v
Sに対応するパラメータの値をそれぞれ計算する。パラメータ値計算部PS
PRは、パラメータ設定テーブルTB
PRを参照して、パラメータの値p
S1,p
S2を取得するとともに、操作子RE
Sに割り当てられているテンプレートを参照して、指示値v
Sに対応するパラメータの値p(v
S)を取得する(図7参照)。そして、パラメータの値p
S1,p
S2,p(v
S)を下記の数式(2)に適用する。これにより、パラメータの値p
out(v
S)が計算される。
そして、パラメータ値計算部PSPRは、前記計算した値pout(vS)及び操作子RESに割り当てられているパラメータ名を音源回路17に供給する。音源回路17は、前記供給された値pout(vS)を用いて、楽音信号を発生する。また、パラメータ値計算部PSPRは、前記複数の発光ダイオードLRESのうちの1つであって、パラメータの値pout(vS)に対応した位置に配置されている発光ダイオードLRESを点灯させる。電子楽器10は、操作子RESの現在の指示値vS及び割り当てられているパラメータの現在の値を表示器14に表示することができるが、ユーザは、発光した発光ダイオードLRESの位置によってもパラメータの現在のおおよその値を認識できる。
第1動作モードにおいては、ユーザは、1つの操作子(すなわち、操作子REM)を操作するだけで複数のパラメータの値が変化するので、状況に応じて、楽音の発生態様を複雑に変化させることができる。しかも、ユーザは、指示値vMと指示値vS=1,2,・・・,8との対応関係を任意に設定可能である(操作子設定テーブルTBRE)。また、ユーザは、指示値vS=1,2,・・・,8とパラメータの値の対応関係を任意に設定可能である(パラメータ設定テーブルTBPR)。つまり、ユーザは、操作子REMの指示値vMの変化に対する、楽音の発生態様の変化を任意に設定できる。これによれば、ユーザの意図通りに楽音の発生態様を変化させることができる。さらに、ユーザが操作子RESを操作した場合には、その操作量に応じて、操作子設定テーブルTBREに基づいて計算された指示値vSが補正される。つまり、電子楽器10によれば、ユーザは、操作子REMを操作して操作子RES=1,2,・・・,8にそれぞれ割り当てられたパラメータの値を同時に変化させるだけでなく、操作子RES=1,2,・・・,8のうちの1つの操作子RESを操作することにより、その操作子RESに割り当てられたパラメータの値のみを変化させることもできる。
(第2動作モード)
つぎに、電子楽器10の第2動作モードについて説明する。上記の第1動作モードにおいては、ユーザが操作子REMを手で操作すると、前記操作に応じて楽音の発生態様が変化する。これに対し、第2動作モードにおいては、ユーザが操作子REMを操作しなくても、電子楽器10が、操作子REMの指示値vMの変動パターンを表すパターンデータPDに従って指示値vMを変化させて、楽音の発生態様を自動的に変化させる。具体的には、指示値計算部PSVは、他の楽器など(例えば、電子楽器、アコースティック楽器、歌声など)の演奏のテンポ(又は前記テンポに基づいて計算したテンポ)に同期してパターンデータPDを再生する。なお、上記の「パターンデータPDを再生する」とは、指示値計算部PSVが、パターンデータPDを構成するデータ(詳しくは後述するグリッドデータGD1〜GD256)を順次取得して、前記取得したデータに基づいて指示値vMを順次計算することを意味する。
上記のように、第2動作モードにおいては、基本的には、パターンデータPDに従ってパラメータの値が計算される。ただし、第1動作モードと同様に、操作子REM及び操作子RESは、楽音の発生態様をリアルタイムに変更する操作子として機能する。つまり、ユーザが操作子REM又は操作子RESを手で操作することにより、パターンデータPDに従って計算されたパラメータの値をリアルタイムに変更することができる。
また、第2動作モードにおいては、図10に示すように、操作子LPn=1,2,・・・,8は、パターンデータPDを入力又は編集するための操作子として機能する。操作子LPnの指示値の最大値は、「127」である。また、操作子LPnの指示値の最小値は、「0」である。
上記の変動パターン(パターンデータPD)は16個のセクションSC1〜SC16から構成されている。1つのセクションの長さは16分音符の長さに相当する。さらに、各セクションSC1〜SC16は、それぞれ16個のグリッドから構成されている。つまり、パターンデータPDは、256個(=セクション数×グリッド数)のグリッドG1〜G256において操作子REMの指示値vMとして出力する値を表すグリッドデータGD1〜GD256から構成されている。本実施形態においては、説明を簡単にするために、1つのセクションを構成する16個のグリッドデータは同じ値とする。そして、セクションSCx=1,2,・・・,16を構成するグリッドデータをパターンデータPDxと表記する。
また、第2動作モードにおいて、操作子RPは、図11に示すように、各セクションSCxにおける指示値vMの変動パターンをリアルタイムに変形させる操作子として機能する。操作子RPの指示値vRPは、例えば、各セクションSCxのアタックタイムに対応している。アタックタイムは、パターンデータPDを再生した際に、各セクションSCxにおいて、操作子REMの指示値vMが、前記設定した値(つまり、パターンデータPDx)に達する時間(グリッド数)に相当する。操作子RPの指示値vRPの最小値は「1」であって、その最大値は「16」である。操作子RPの指示値vRPが小さい場合には、操作子REMの指示値vMが、「0」から前記設定した値に素早く到達する。逆に、操作子RPの指示値vRPが大きい場合には、操作子REMの指示値vMが、「0」から前記設定した値にゆっくり近づいていく。例えば、操作子RPの指示値vRPが「1」である場合には、操作子REMの指示値vMは図11に実線で示すように階段状に変化する。また、例えば、操作子RPの指示値vRPが「16」である場合には、操作子REMの指示値vMは図11に一点鎖線で示すように、鋸歯状に変化する。なお、指示値vMが、1つ前のセクションの最後のグリッドにおける値から次のセクションの設定値に向かって、前記アタックタイムに応じた速度で変化するようにしてもよい。
また、操作子RSは、前記他の楽器などの演奏テンポに対するパターンデータPDの再生テンポの倍率を表すテンポ倍率を設定する操作子(テンポ倍率決定操作子)として機能する。ユーザは、操作子RSのスイッチ状態(指標IRSの方向)に応じて、例えば、「0.25」、「0.5」、「1」、「2」、及び「4」のうちの1つのテンポ倍率を選択できる。操作子RSは、ユーザによって選択されたテンポ倍率を表す信号(電圧値)を指示値vRSとして出力する。
第2動作モードにおいて、CPU13aは、各種プログラムを実行することにより、図12に示すように、楽音信号発生指示部SD、設定情報作成部SG、パターンデータ作成部PG、パターンデータ出力部PO、テンポ決定部TS、パラメータ値決定部PSなどとして機能する。テンポ決定部TSは、テンポ検出部TD及びテンポ計算部TCを含む。
楽音信号発生指示部SD、設定情報作成部SG及びパラメータ値計算部PSPRの動作は、第1動作モードにおける動作と同様であるので、それらの説明を省略する。
つぎに、パターンデータ作成部PGについて説明する。パターンデータ作成部PGは、ユーザの指示に従って、パターンデータPDを予め作成する。すなわち、ユーザは、操作子LPnを操作して、パターンデータPDを構成するデータを入力する。パターンデータPDの作成時において、パターンデータ作成部PGは、指示値vMの変動パターン(つまり、パターンデータPD)を表すグラフを表示器14に表示させる。パターンデータ作成部PGは、まず、操作子LP1〜LP8をパターンデータPD1〜PD8にそれぞれ対応させる(図10参照)。ユーザが、操作子LP1〜LP8を操作すると、それらの指示値に応じて表示器14に表示されているグラフが変化する。ユーザは、前記グラフの形状が所望の形状になるように操作子LP1〜LP8を操作する。そして、ユーザが図示しない決定スイッチを押すと、パターンデータ作成部PGは、操作子LP1〜LP8の指示値をパターンデータPD1〜PD8としてRAM13cに記憶する。つぎに、パターンデータ作成部PGは、操作子LP1〜LP8をパターンデータPD9〜PD16にそれぞれ対応させる。前半のセクションと同様に、ユーザが後半のセクションのパターンデータを入力すると、パターンデータ作成部PGは、操作子LP1〜LP8の指示値をパターンデータPD9〜PD16としてRAM13cに記憶する。なお、作成したパターンデータPDをROM13bにも記憶しておき、第2動作モードを再開する際に、前記ROM13bに記憶しておいたパターンデータPDを読み出して、前記読み出したパターンデータPDを編集可能としても良い。
つぎに、パターンデータ出力部POについて説明する。パターンデータ出力部POは、指示値計算部PSVからの要求に応じて、パターンデータPDを構成するグリッドデータGDyを指示値計算部PSVへ供給する。
つぎに、テンポ検出部TDについて説明する。テンポ検出部TDは、サウンドシステム18のA/D変換器から、前記他の楽器などの演奏を表す音響波形を構成するサンプル値を所定の時間間隔をおいて順次取得する。テンポ検出部TDは、所定数(例えば、500個)のサンプル値を取得するごとに、前記取得したサンプル値を用いて前記他の楽器などの演奏のテンポを計算する。例えば、テンポ検出部TDは、前記サンプル値の変化に基づいて複数の拍点を検出し、前記検出した拍点の間隔に基づいてテンポ値TV(単位はBPM=Beats Per Minute)を計算して、テンポ計算部TCに供給する。
つぎに、テンポ計算部TCについて説明する。テンポ計算部TCは、テンポ検出部TDからテンポ値TVを取得するごとに、入力操作検出回路12を介して、操作子RSの指示値vRSを取得する。テンポ計算部TCは、テンポ検出部TDから取得したテンポ値TVに操作子RSから取得した指示値vRSを乗算して得られたテンポ値TMPを指示値計算部PSVに供給する。
つぎに、指示値計算部PSVについて説明する。指示値計算部PSVは、パターンデータPDに基づいて、操作子REM及び操作子RESの指示値を計算する。まず、指示値計算部PSVの動作の概略を説明する。指示値計算部PSVは、割り込み信号KIを取得すると、パターンデータPDの再生を開始する。パターンデータPDの再生テンポは、テンポ値TMPが表すテンポに同期する。なお、第2動作モードにおいて、操作子REMが手動操作された場合には、手動操作量ΔvMに応じて、指示値vMが補正される。
そして、指示値計算部PSVは、指示値vMを計算又は補正するごとに、指示値vM及び操作子設定テーブルTBREに基づいて、操作子RES=1,2,・・・,8の指示値vS=1,2,・・・,8を計算してパラメータ値計算部PSPRへ供給する。なお、第2動作モードにおいて、操作子RESが手動操作された場合には、その手動操作量ΔvSに応じて、指示値vSが補正され、前記補正された指示値vsがパラメータ値計算部PSPRに供給される。
以下、第2動作モードにおける指示値計算処理について具体的に説明する。指示値計算部PSVは、割り込み信号KIを取得すると、割り込み要因が押鍵であるか離鍵であるかを判定する。前記割り込み要因が押鍵である場合、指示値計算部PSVは、図13A及び図13Bに示す指示値計算プログラムをROM13bから読み出して実行する。指示値計算部PSVは、ステップS20にて指示値計算処理を開始する。つぎに、指示値計算部PSVは、ステップS21にて、初期化処理を実行する。例えば、指示値計算部PSVは、処理対象のセクション番号xを「1」に設定する。また、指示値計算部PSVは、処理対象のグリッド番号yを「1」に設定する。また、指示値計算部PSVは、タイマー13dのカウント値tを「0」に設定する。また、指示値計算部PSVは、操作子オフセットOFS及び操作子オフセットOFMを「0」に設定する。ここで、操作子オフセットOFMについて説明しておく。なお、操作子オフセットOFSは、第1動作モードにおける操作子オフセットOFSと同様であるので、その説明を省略する。
操作子オフセットOFMは、指示値vMの補正量を表している。この補正量は、第2動作モードにおいて操作子REMが手動操作されるごとに、その手動操作量に応じて再計算される。
具体的には、操作子オフセットOFMは下記のような割り込みルーチンが実行されて計算される。第2動作モードにおいて操作子REMのノブが手動操作されると、入力操作検出回路12は、操作子REMが操作されたことを表す割り込み信号MIを指示値計算部PSVへ供給する。指示値計算部PSVは、割り込み信号MIに応答して、操作子REMから出力された前記2つのパルス列Pa,Pbを、入力操作検出回路12を介して取得し、前記パルス列Pa(又はパルス列Pb)を構成するパルスの数、及びパルス列Pa,Pbの位相のずれに基づいて、操作子REMの手動操作量ΔvMを計算する。操作子REMのノブの回転方向が時計方向である場合、手動操作量ΔvMは正値である。一方、操作子REMのノブの回転方向が反時計方向である場合、手動操作量ΔvMは負値である。指示値計算部PSVは、手動操作量ΔvMを操作子オフセットOFMに加算する。
再び指示値計算処理(図13A)の説明に戻る。指示値計算部PS
Vは、ステップS22にて、タイマー13dにカウントをスタートさせる。つぎに、指示値計算部PS
Vは、ステップS23にて、操作子RE
Mの指示値v
Mを計算する。具体的には、指示値計算部PS
Vは、まず、パターンデータPDを構成するグリッドデータのうち、現在の処理対象のグリッド番号yに対応するグリッドデータGD
yをパターンデータ出力部POから取得する。また、指示値計算部PS
Vは、入力操作検出回路12を介して、操作子RPの指示値v
RP(つまり、アタックタイム)を取得する。そして、指示値計算部PS
Vは、グリッドデータGD
y、及び指示値v
RPを、下記の数式(3)に適用することにより、操作子RE
Mの指示値v
Mを計算する。なお、“min[A,B]”は、「A」及び「B」のうちの小さい方が選択されることを意味する。
つぎに、指示値計算部PSVは、ステップS24にて、前記計算した指示値vMに操作子オフセットOFMを加算することにより、指示値vMを補正する。なお、操作子オフセットOFMは、上記の割り込みルーチンにおいて計算されている。
つぎに、指示値計算部PSVは、ステップS25にて、第1動作モードと同様に、操作子RESの指示値vSを計算する。
つぎに、指示値計算部PSVは、ステップS26にて、前記計算した指示値vSに操作子オフセットOFSを加算することにより、指示値vSを補正する。なお、操作子オフセットOFSは、上記第1動作モードと同様に計算されている。
つぎに、指示値計算部PS
Vは、ステップS27にて、指示値v
Sをパラメータ値計算部に供給する。つぎに、指示値計算部PS
Vは、ステップS28にて、次のグリッドの処理時刻まで待機する。具体的には、指示値計算部PS
Vは、タイマー13dからカウント値tを読み込むとともに、テンポ計算部TCからテンポ値TMPを読み込む。そして、テンポ値TMPを、下記の式(4)に適用して、次のグリッドの処理時刻までの時間Δtを計算する。
そして、指示値計算部PSVは、タイマー13dのカウント値tと前記計算した時間Δtを比較する。カウント値tが時間Δtよりも小さい場合、指示値計算部PSVは、「No」と判定して、再びステップS28を実行する。一方、カウント値tが時間Δt以上である場合、指示値計算部PSVは「Yes」と判定して、ステップS29に処理を進める。
つぎに、指示値計算部PSVは、ステップS29にて、現在の処理対象のグリッドは現在の処理対象のセクションの最終グリッドであるか否かを判定する。つまり、指示値計算部PSVは、グリッド番号yを「16」で除したときの剰余が「0」であるか否かを判定する。前記剰余が「0」とは異なるとき、指示値計算部PSVは、「No」と判定して、後述のステップS23に処理を進める。一方、前記剰余が「0」であるとき、指示値計算部PSVは、「Yes」と判定して、ステップS2aにて、セクション番号xをインクリメントする。つまり、処理対象のセクションを次のセクションに設定する。つぎに、指示値計算部PSVは、ステップS2bにて、最終セクション(セクションSC16)を処理済みか否かを判定する。セクション番号xが「16」以下であれば、指示値計算部PSVは、「No」と判定して、ステップS2dに処理を進める。一方、セクション番号xが「16」より大きければ、指示値計算部PSVは、ステップS2cにて、処理対象を先頭のセクションに設定する。つまり、指示値計算部PSVは、セクション番号xを「1」に設定する。
つぎに、指示値計算部PSVは、ステップS2dにて、グリッド番号yをインクリメントする。つぎに、指示値計算部PSVは、ステップS2eにて、終端グリッド(グリッドG256)を処理済みか否かを判定する。グリッド番号yが「256」以下であれば、指示値計算部PSVは、「No」と判定して、ステップS2gに処理を進める。一方、グリッド番号yが「256」より大きければ、指示値計算部PSVは、ステップS2fにて、処理対象を先頭のグリッドに設定する。つまり、指示値計算部PSVは、グリッド番号yを「1」に設定する。
つぎに、指示値計算部PSVは、ステップS2gにて、タイマー13dのカウント値tをリセットする。つまり、指示値計算部PSVは、カウント値tを「0」に設定する。これ以降、指示値計算部PSVは、ステップS23〜S2gからなる一連の処理を繰り返し実行する。ただし、指示値計算部PSVは、新たに割り込み信号KIを取得すると、その割り込み要因が押鍵であるか離鍵であるかを判定する。前記割り込み要因が押鍵である場合には、指示値計算部PSVは、ステップS21に処理を進める(リトリガモード)。なお、割り込み信号KIを無視して、常にステップS23〜S2gからなる一連の処理を繰り返しても良い(フリーランモード)。リトリガモードとフリーランモードのうちのいずれかをユーザが選択可能に構成されていても良い。また、ユーザが入力操作子11を用いてパターンデータPDの再生を指示すると、指示値計算部PSvがパターンデータPDの再生を開始するように構成しても良い。また、外部から音響信号を受信したことをトリガとして、指示値計算部PSvがパターンデータPDの再生を開始するように構成しても良い。
第2動作モードにおいては、ユーザが操作子を操作しなくても、複数のパラメータの値を自動的に変化させることができる。すなわち、前記他の楽器などの演奏のテンポ(又は前記テンポに基づいて計算したテンポ)に同期してパターンデータPDが再生される。これにより、前記他の楽器などの演奏に同期して、手動演奏に係る楽音の発生態様が変化する。このように、前記他の楽器などの演奏のテンポ(拍点)に合わせて電子楽器10の楽音の発生態様を変化させると、電子楽器10の演奏と他の楽器などの演奏との一体感が増し、単にランダムに楽音の発生態様を変化させたのとは異なる面白い演出が可能となる。第2動作モードにおいては、ユーザは、前記他の楽器などの演奏のテンポに合わせて操作子を操作する必要が無いので、手動演奏(例えば、鍵盤演奏)に集中することができる。また、ユーザは、操作子REMの指示値vMの変動パターンを任意に設定可能である。つまり、ユーザの意図通りに楽音の発生態様を変化させることができる。また、ユーザは、操作子RPを操作することにより、前記設定した変動パターンを変形させることができる。さらに、パターンデータPDの再生中に、ユーザが操作子REMを操作した場合には、その操作量に応じて、前記パターンデータPDに基づいて決定された指示値vMが補正される。また、パターンデータPDの再生中に、ユーザが操作子RESを操作した場合には、その操作量に応じて、前記パターンデータPD及び操作子設定テーブルTBREに基づいて決定された指示値vSが補正される。つまり、ユーザが操作子RP、操作子REM及び操作子RESのうちのいずれか1つ又は複数の操作子を操作することにより、前記パターンデータPDに基づいて決定された楽音の発生態様をさらに変化させることができる。また、ユーザは、パターンデータPDの再生中に、操作子RSを操作することにより、パターンデータPDの再生テンポを変更することができる。
なお、第2動作モードにおいては、パターンデータPDに従って操作子REM及び操作子RESの指示値vM及び指示値vSがそれぞれ変動するが、その変動に従って発光素子LREM及び発光ダイオードLRESの表示態様が変化する。例えば、指示値vMが小さいとき、発光素子LREMが青く発光し、指示値vMが大きくなるに従って、その発光色が黄色、赤色へと変化するように構成するとよい。これによれば、各操作子の指示値(又はパラメータの値)を視覚的に認識できる。
(第3動作モード)
つぎに、電子楽器10の第3動作モードについて説明する。まず、第3動作モードの概略を説明する。上記の第1動作モードにおいては、ユーザが操作子REMを手で操作すると、前記操作に応じて楽音の発生態様が変化する。これに対し、第3動作モードにおいては、ユーザが操作子REMを操作しなくても、音源回路17から出力された音響信号が表す音響波形のエンベロープに従って指示値vMを変化させることにより、楽音の発生態様を自動的に変化させる。例えば、複数の演奏パートの演奏を表すシーケンスデータを再生しながら鍵盤装置を用いて手動演奏する際、前記複数の演奏パートのうちの所定の演奏パート(例えば、ドラムパート)の音響波形のエンベロープに従って、手動演奏パートの楽音の発生態様を自動的に変化させる。
上記のように、第3動作モードにおいては、基本的には、音響波形のエンベロープに従ってパラメータの値が計算される。ただし、第1動作モードと同様に、操作子REM及び操作子RESは、楽音の発生態様をリアルタイムに変更する操作子として機能する。つまり、ユーザが操作子REM又は操作子RESを手で操作することにより、前記エンベロープに基づいて計算されたパラメータの値をリアルタイムに変更することができる。
第3動作モードにおいて、CPU13aは、各種プログラムを実行することにより、図14に示すように、設定情報作成部SG、楽音信号発生指示部SD、エンベロープ検出部ED、パラメータ値決定部PSなどとして機能する。
設定情報作成部SG、パラメータ値計算部PSPRの動作は、第1動作モードにおける動作と同様であるので、それらの説明を省略する。
つぎに、楽音信号発生指示部SDについて説明する。楽音信号発生指示部SDは、第1動作モードと同様に、押離鍵された鍵に対応するノートナンバーNN及びベロシティVLを音源回路17へ供給する。さらに、楽音信号発生指示部SDは、楽曲(又はフレーズ)の演奏を表すシーケンスデータを再生する。ユーザが入力操作子11を用いて1つのシーケンスデータを選択し、前記選択したシーケンスデータの再生を指示すると、楽音信号発生指示部SDは、前記選択されたシーケンスデータをROM13bから読み出すとともに、タイマー13dにカウントを開始させる。シーケンスデータは、複数の発音情報を含む。発音情報は、ノートナンバーNN及びベロシティVLに加え、発音タイミングを表すタイミング情報を含む。楽音信号発生指示部SDは、タイマー13dの現在のカウント値に一致するタイミング情報を含んでいる発音情報を検索し、前記検索した発音情報を構成するノートナンバーNN及びベロシティVLを音源回路17に供給する。
つぎに、エンベロープ検出部EDについて説明する。エンベロープ検出部EDは、入力した音響波形のエンベロープを検出して出力する。例えば、エンベロープ検出部EDは、音源回路17から1つのサンプル値を新たに取得するごとに、前記音響波形のエンベロープを構成する1つのエンベロープ値を出力する。現在のサンプリング期間よりも1つ前のサンプリング期間における出力としてのエンベロープ値の「2の補数」と前記新たに取得したサンプル値とを加算する。そして、前記加算結果と1つ前のサンプリング期間におけるエンベロープ値に応じた係数とを乗算し、前記乗算結果と前記1つ前のサンプリング期間における出力としてのエンベロープ値とを加算して、現在のサンプリング期間におけるエンベロープ値AMとして、指示値計算部PSVへ供給する(特開平09−97071参照)。
つぎに、指示値計算部PSVについて説明する。指示値計算部PSVは、エンベロープ検出部EDからエンベロープ値AMを取得するごとに、図15に示す指示値計算プログラムをROM13bから読み出して実行する。指示値計算部PSVは、ステップS30にて、指示値計算処理を開始する。つぎに、指示値計算部PSVは、ステップS31にて、前記取得したエンベロープ値AMを用いて、指示値vMを計算する。具体的には、指示値計算部PSVは、所定の係数(=指示値vMの最大値/サンプル値の最大値)を乗算する。この乗算結果が、指示値vMである。ただし、エンベロープ値AMが指示値vMの範囲内(「0」〜「127」)に収まるように正規化されている場合には、指示値計算部PSVは、ステップS31を実行せずに、ステップS32に処理を進める。つぎに、指示値計算部PSVは、ステップS32にて、第2動作モードと同様に、指示値vMを補正する。つぎに、指示値計算部PSVは、ステップS33にて、第1及び第2動作モードと同様に、指示値vSを計算する。つぎに、指示値計算部PSVは、ステップS34にて、第1及び第2動作モードと同様に、指示値vSを補正する。つぎに、指示値計算部PSVは、ステップS35にて、指示値vSをパラメータ値計算部PSPRへ供給し、ステップS36にて指示値計算処理を終了する。
第3動作モードにおいては、ユーザが操作子を操作しなくても、複数のパラメータの値を自動的に変化させることができる。すなわち、自動演奏パートを構成する複数の演奏パートから選択した1つの演奏パートの演奏に係る楽音のエンベロープに同期して、手動演奏に係る楽音の発生態様が変化する。このように、他の演奏パートの楽音のエンベロープに合わせて手動演奏パートの楽音の発生態様を変化させると、両演奏パートの演奏の一体感が増し、単にランダムに楽音の発生態様を変化させたのとは異なる面白い演出が可能となる。第3動作モードにおいては、ユーザは、他の演奏パートの楽音のエンベロープに合わせて操作子を操作する必要が無いので、手動演奏(例えば、鍵盤演奏)に集中することができる。また、ユーザが操作子REMを操作した場合には、その操作量に応じて、前記エンベロープに基づいて決定された指示値vMが補正される。また、ユーザが操作子RESを操作した場合には、その操作量に応じて、前記エンベロープ及び操作子設定テーブルTBREに基づいて決定された指示値vSが補正される。つまり、ユーザが操作子REM及び操作子RESのうちのいずれか1つ又は複数の操作子を操作することにより、前記エンベロープに基づいて決定された楽音の発生態様をさらに変化させることができる。
なお、第3動作モードにおいては、音響波形のエンベロープに従って操作子REM及び操作子RESの指示値vM及び指示値vSがそれぞれ変動するが、その変動に従って発光素子LREM及び発光ダイオードLRESの表示態様が変化する。これによれば、各操作子の指示値(又はパラメータの値)を視覚的に認識できる。
上記のように、電子楽器10によれば、状況に応じて、楽音の発生態様を複雑に変化させることができる。
さらに、本発明の実施にあたっては、上記実施形態に限定されるものではなく、本発明の目的を逸脱しない限りにおいて種々の変更が可能である。
上記実施形態においては、パラメータ値決定部PSにて決定されたパラメータの値に応じて、音源回路17にて生成される楽音信号の発生態様が制御される。しかし、これに代えて、予め記憶しておいたオーディオ波形信号を再生し、前記オーディオ波形信号が表す楽音の発生態様を、前記パラメータの値に応じて制御しても良い。また、リアルタイムに外部からオーディオ波形信号を取得し、前記取得したオーディオ波形信号が表す楽音の発生態様を、前記パラメータの値に応じて制御しても良い。
また、上記実施形態においては、本発明を電子楽器に適用した例を説明したが、本発明は、コンテンツを規定するパラメータを制御する装置であれば、いずれの装置にも適用可能である。例えば、本発明は、映像をリアルタイムに制作する映像制御装置に適用可能である。この場合、操作子RESに、映像のコントラスト、色調、明度などを規定するパラメータを割り当てて、これらを同時に変化させるとよい。また、前記パラメータの値に応じて映像及び楽音を同時に変化させても良い。
また、上記実施形態においては、図2に示す操作子は、ロータリーエンコーダ、ロータリーポテンショメータ、リニアポテンショメータなどから構成されている。しかし、前記操作子が他の装置から構成されていてもよい。例えば、操作子RES及び操作子REMがロータリーポテンショメータ又はリニアポテンショメータから構成されていてもよい。また例えば、前記操作子のうちのいずれか1つ又は複数の操作子に相当する図柄を表示器14に表示し、タッチパネルにおける前記図柄が表示された部分をタッチ操作することにより、前記操作子を操作したのと同様に動作するように構成してもよい。
また、上記実施形態においては、タッチパネルを用いて操作子設定テーブルTBREを設定している。これに代えて、操作子RESを用いて操作子設定テーブルTBREを設定してもよい。この場合、例えば、操作子設定テーブルTBREを設定する際に用いるプッシュ式のスイッチ(例えば、シフトスイッチ、最小値設定スイッチ及び最大値設定スイッチ)を設けるとよい。そして、シフトスイッチと最小値設定スイッチを同時に押すと、現在の各操作子RESの指示値vSが指示値vS1として設定され、シフトスイッチと最大値設定スイッチを同時に押すと、現在の各操作子RESの指示値vSが指示値vS2として設定されるように構成すればよい。つまり、指示値vS1を表すように各操作子RESを設定した状態でシフトスイッチと最小値設定スイッチを同時に押すと、各指示値vS1が操作子設定テーブルTBREのデータとして取り込まれる。また、指示値vS2を表すように各操作子RESを設定した状態でシフトスイッチと最大値設定スイッチを同時に押すと、各指示値vS2が操作子設定テーブルTBREのデータとして取り込まれる。なお、シフトスイッチを省略し、最小値設定スイッチを押すと、現在の各操作子RESの指示値vSが指示値vS1として設定され、最大値設定スイッチを押すと、現在の各操作子RESの指示値vSが指示値vS2として設定されるように構成してもよい。
また、上記のシフトスイッチに代えて、各操作子RESに対応したセレクトスイッチを設けてもよい。この場合、セレクトスイッチと最小値設定スイッチを同時に押すと、そのセレクトスイッチに対応する操作子RESの現在の値が、その操作子RESの指示値VS1として設定され、セレクトスイッチと最大値設定スイッチを同時に押すと、そのセレクトスイッチに対応する操作子RESの現在の値が、その操作子RESの指示値VS2として設定されるように構成すればよい。
また、上記実施形態においては、操作子RESが手動操作された場合、前記手動操作に相当する操作子オフセットOFSが指示値vSに加算される。しかし、操作子RESが手動操作されたとしても、前記手動操作を無視してもよい。また、上記の第2動作モード及び第3動作モードにおいては、操作子REMが手動操作された場合、前記手動操作に相当する操作子オフセットOFMが指示値vMに加算される。しかし、操作子REMが手動操作されたとしても、前記手動操作を無視してもよい。
また、上記実施形態においては、手動演奏パートの楽音の発生態様を変化させているが、自動演奏パートの楽音の発生態様を変化させてもよい。例えば、第3動作モードにおいて、手動演奏パートの楽音のエンベロープを用いて、自動演奏パートの楽音の発生態様を変化させてもよい。
また、上記実施形態においては、現在の指示値vMに対応する現在の指示値vSを線形補間演算している。しかし、他の演算式を用いてもよい。また、現在の指示値vMと現在の指示値vSとの関係を表すテーブルを設けて用いても良い。
また、上記実施形態においては、指示値計算部PSVにて計算した指示値vSに対応するパラメータの値を、パラメータ設定テーブルTBPRを参照して決定している。しかし、計算した指示値vSをパラメータの値として用いても良い。この場合、パラメータ設定テーブルTBPは、各操作子RESに割り当てられたパラメータ名のみを構成データとして有していればよい。したがって、パラメータ設定テーブルTBPRを簡略化できる。
また、上記実施形態においては、指示値計算部PSVにて計算した指示値vMに対応する指示値vSを、操作子設定テーブルTBREを参照して決定し、前記決定した指示値vSに対応するパラメータの値を、パラメータ設定テーブルTBPRを参照して決定している。しかし、指示値vMと各操作子RESに割り当てられたパラメータの値との対応関係を表すパラメータ設定テーブルを作成しておき、指示値vMに対応するパラメータの値を、前記パラメータ設定テーブルを参照して決定しても良い。これによれば、操作子設定テーブルTBREを省略できる。
また、上記の第2動作モードにおいて、複数のパターンデータPDを作成しておき、指示値計算部PSVは、前記複数のパターンデータPDを同時に再生してもよい。この場合、指示値計算部PSVは、各グリッドにおいて、前記複数のパターンデータPDをそれぞれ構成するグリッドデータを取得する。そして、指示値計算部PSVは、前記取得したグリッドデータを、前記割り当てた操作子RESの指示値vSとして、パラメータ値計算部PSPRへ供給すればよい。これによれば、操作子設定テーブルTBREを省略できるだけでなく、操作子RESごとに、指示値vSの変動パターンを詳細に設定できる。
また、上記の第2動作モードにおいては、説明を簡単にするために、パターンデータPDxを構成する16個のグリッドデータは同じ値とした(図10及び図11参照)。しかし、パターンデータPDxを構成する16個のグリッドデータが異なっていてもよい。つまり、各セクションにおいて、操作子REMの指示値vMが所定の特性に従って変化するようなパターンデータPDxを作成しても良い。例えば、図16に示すように予め設定された特性データD1〜D5のうちの1つをユーザが選択できるように構成しても良い。前記特性データD1〜D5は、1つのセクションにおける操作子REMの指示値vMの変化特性を表している。つまり、特性データD1〜D5は、それぞれ16個のグリッドデータから構成されている。この場合、操作子LPn=1,2,・・・,8は、前記選択した特性データを構成する各グリッドデータに乗算される係数を決定する操作子として機能する。
また、上記の第2動作モードにおいては、指示値vMの変動パターンの長さは、2小節分の長さに相当する。しかし、変動パターンの長さを変更してもよい。例えば、セクションの数を増やすことにより、変動パターンの長さが4小節分の長さに相当するように構成してもよい。また、例えば、セクションの数を減らすことにより、変動パターンの長さが1小節分の長さに相当するように構成してもよい。
また、上記の第2動作モードにおいては、操作子RPの指示値vRPは、各セクションのアタックタイムに対応している。しかし、操作子RPの指示値vRPが、各セクションにおける指示値vMの変動パターンの変形度を表す他のパラメータに対応していてもよい。例えば、操作子RPの指示値vRPが各セクションのディケイタイムに対応していてもよい。すなわち、この場合、各セクションの最終のグリッドにおいて指示値vMが「0」になるように、セクションの途中から、一定の割合で指示値vMを減衰させる。ディケイタイムは、指示値vMを減衰させている区間の長さ(グリッド数)に相当する。
また、上記の第2動作モードにおいては、他の楽器などの楽音の音響波形に基づいて、前記他の楽器などの演奏のテンポを検出しているが、指示値計算部PSVが、前記他の楽器などからテンポを表す情報又はテンポを表す情報を含む情報(例えば、MIDIクロック)を取得してもよい。そして、テンポ検出部TDは、前記取得した情報を用いてテンポを検出してもよい。また、例えば、テンポ検出部TDは、動画を表す情報を取得し、前記取得した情報を用いて、前記動作の再生テンポを検出して出力しても良い。例えば、テンポ検出部TDは、シーンの切り替わりのタイミングを検出して、前記タイミングを用いてテンポを検出しても良い。
また、上記の第3動作モードにおいては、エンベロープ検出部EDは、音源回路17から出力された自動演奏パートの楽音の音響波形のエンベロープを検出しているが、他の楽器などの音響波形のエンベロープを検出してもよい。
また、上記実施形態においては、操作子REM及び操作子RESは、手で操作する操作子であるが、これに代えて、足で操作する操作子(フットコントローラ)を採用してもよい。また、操作子REM及び操作子RESのうちのいずれか1つ又は複数の操作子(例えば、操作子REM)がフットコントローラに連動するように構成してもよい。