(第1実施形態)
本発明の第1実施形態に係る制御装置Cが適用された電子打楽器10(電子ドラムセット)について説明する。図1に示すように、電子打楽器10は、複数の電子パッドPD1,PD2,・・・及び制御装置Cを有している。各電子パッドは、アコースティックドラムセットを構成する各打楽器(スネアドラム、キックドラム、タム、ハイハット、シンバルなど、)を模擬した装置である。各電子パッドは、ドラムスティック、ブラシなどで打撃される打面部と、前記打面部の振動の態様(振動波形)を検出して、前記検出した振動の態様を表す打撃信号を出力するセンサ部を有する。なお、アコースティックドラムセットを構成する打楽器に、前記打楽器の打面の振動を検出し、前記振動の態様を表す打撃信号を出力するピックアップ装置を取り付けた装置も電子パッドとみなす。制御装置Cは、各電子パッドから取得した前記信号に応じた打撃音を生成する楽音生成装置20と、楽音生成装置20の動作を規定する設定情報SIを作成又は編集する際に用いられる設定装置30を有する。
つぎに、楽音生成装置20の構成について説明する。楽音生成装置20は、図2に示すように、設定操作子21、操作子インターフェース回路22、表示器23、表示制御回路24、音源回路25、サウンドシステム26、コンピュータ部27、記憶装置28及び外部インターフェース回路29を備えている。
設定操作子21は、楽音生成装置20の操作パネルに設けられている。ユーザは、主に、後述する設定装置30を用いて、楽音生成装置20の設定情報SIを作成又は編集する。ただし、ユーザは、設定操作子21を用いて、設定情報SIを作成又は編集することもできる。設定操作子21は、操作子インターフェース回路22に接続されている。本発明の演奏操作子としての各電子パッドも、操作子インターフェース回路22に接続されている。
操作子インターフェース回路22は、複数の電子パッドPD1,PD2,・・・をそれぞれ接続するための複数の接続端子IN1,IN2,・・・を有している。以下の説明において、接続端子INn(=1,2,・・・,12)に接続されている電子パッドを電子パッドPDn(=1,2,・・・,12)と表記する。本実施形態では、12個の接続端子を備えているが、接続端子の数は12個に限られない。また、ユーザは、必ずしも全ての接続端子に電子パッドを接続する必要はない。例えば、6〜7個の電子パッドを接続し、シンプルな電子ドラムセットを構成しても良いし、全ての接続端子に電子パッドを1つずつ接続して、複雑な電子ドラムセットを構成してもよい。操作子インターフェース回路22は、各電子パッドの操作内容を表す操作情報(つまり打撃信号)を、バス2aを介して、コンピュータ部27に供給する。
表示器23は、液晶ディスプレイ(LCD)、7セグLEDなどによって構成され、文字、図形などを表示する。この表示器23は、表示制御回路24によって制御される。表示制御回路24は、バス2aを介して、後述のコンピュータ部27から表示器23に表示する画像を表す画像データを取得し、前記取得した画像データに基づいて、表示器23を制御する。
音源回路25は、複数の楽音の波形を表す波形データを記憶した波形メモリを含み、この波形メモリから、後述するコンピュータ部27によって指定された波形データを読み出してディジタル楽音信号を生成し、サウンドシステム26に供給する。すなわち、音源回路25は、打撃された電子パッドに対応する打奏音を表わすディジタル楽音信号を生成して、サウンドシステム26に供給する。サウンドシステム26は、音源回路25から供給されたディジタル楽音信号をアナログ楽音信号にD/A変換するD/A変換器、変換したアナログ楽音信号を増幅するアンプ、及び増幅されたアナログ楽音信号を音響信号に変換して出力するスピーカを備えている。
コンピュータ部27は、バス2aにそれぞれ接続されたCPU27a、タイマ27b、ROM27c及びRAM27dからなる。CPU27aは、各電子パッドから取得した打撃信号に応じて、発音のために必要な楽音情報(波形データを指定する情報、音の強さを表す情報など)を音源回路25に供給する。タイマ27bは、CPU27aによって予め設定された周期で、割り込み信号をCPU27aに出力する。ROM27cは、楽音生成装置20に予め組み込まれている半導体メモリ(例えば、書き換え可能なフラッシュメモリ)であり、各種プログラム及び各種データを記憶している。これらの各種プログラム及び各種データは予め各記録媒体に記録されていてもよいし、後述する外部インターフェース回路29を介して外部から取り込んでもよい。RAM27dは、各種プログラムの実行過程において必要なデータを一時的に記憶する半導体メモリである。
例えば、RAM27dには、現在の設定情報SIが記憶されている。図3に示すように、設定情報SIは、複数のパラメータから構成されている。具体的には、設定情報SIは、トリガ設定情報TIと音色設定情報VIを含む。トリガ設定情報TIは、電子パッドPDnの機種を特定するためのパッドタイプPTnを含む。パッドタイプPTnは、パッドの機種名又はピックアップ装置の機種名を表している。
また、トリガ設定情報TIは、クロストークが発生したか否かを判定する際に用いられる、スレッショルドレベルTHn、ウェイトタイムWTn、リジェクトタイムRTnを含む。図4に示すように、CPU27aは、電子パッドPDnから出力された打撃信号を逐次サンプリングし、打撃信号のエンベロープ(振幅の変化)を表すエンベロープ値EVnを計算する。電子パッドPDnの状態は、3つの状態(ウェイト状態、リジェクト状態及びアイドル状態)に区分される。前記計算したエンベロープ値EVnが、スレッショルドレベルTHnを超えたタイミングt1から、ウェイトタイムWTnを経過したタイミングt2までの期間をウェイト状態と呼ぶ。なお、ウェイトタイムWTnは、タイミングt1からエンベロープ値が最大に達するまでにかかる時間よりも少し短い。言い換えれば、タイミングt1からウェイトタイムWTnを経過した時点においては、打撃の強度の指標として採用可能な程度にエンベロープ値が大きくなっている。前記タイミングt2からリジェクトタイムRTnを経過するタイミングt3までの期間をリジェクト状態と呼ぶ。前記タイミングt3から、エンベロープ値EVnが徐々に小さくなってスレッショルドレベルTHnを下回り、再びエンベロープ値EVnが大きくなって、スレッショルドレベルTHnを越えるタイミングt1までの期間をアイドル状態と呼ぶ。また、詳しくは後述するように、エンベロープ値EVnは逐次更新されるが、前記タイミングt2におけるエンベロープ値EVnは所定の時間td(ウェイトタイムWTnに比べて十分に長い時間(例えば、ウェイトタイムWTnの30倍以上))だけ保持される。つまり、同図において破線で示すように、実際には、タイミングt2以降もエンベロープ値は変化するが、同図において太い実線で示すように、前記タイミングt2から前記所定の時間tdを経過するまでは、エンベロープ値EVnは更新されない。なお、ウェイト状態においては、エンベロープ値のピーク値がラッチされる。
さらに、トリガ設定情報TIは、接続端子INnに接続された電子パッドPDnに発生し得るクロストークの強さを計算するためのクロストーク係数Cn,mを含む。クロストーク係数Cn,mは、電子パッドPDnが打撃されない状態で電子パッドPDmが打撃された場合における、電子パッドPDnから出力された打撃信号の強度と電子パッドPDmから出力された打撃信号の強度との比に相当する。なお、未設定であるパラメータの値は「N/A」である。
音色設定情報VIは、電子パッドPDnに割り当てる音色を特定する情報を含む。例えば、音色設定情報VIは、電子パッドPDnに割り当てる音色の名称である音色名VNnを含む。
ユーザは、トリガ設定情報TI及び音色設定情報VIに名称をそれぞれ付すことができ、トリガ設定情報TI及び音色設定情報VIを別々の情報として、ROM27c又は後述する記憶装置28に記憶させることができる。ROM27c又は記憶装置28に記憶されているトリガ設定情報TI及び音色設定情報VIは、ユーザによる指示に従ってそれぞれ読み出され、現在の設定情報SIとして用いられる。ただし、現在の設定情報SIを構成するトリガ設定情報TIと音色設定情報VIを互いに関連付けてROM27c又は記憶装置28に記憶してもよい。この場合、トリガ設定情報TI及び音色設定情報VIのいずれか一方を選択すれば、前記指定した情報に関連付けられた他方の情報が自動的に選択されるように構成しても良い。
また、記憶装置28は、HDD、FDD、CD−ROM、MO、DVDなどの大容量の不揮発性記録媒体と、同各記録媒体に対応するドライブユニットを含み、各種データ及びプログラムの記憶及び読出しを可能にしている。これらのデータ及びプログラムは予め記憶装置28に記憶されていてもよいし、外部インターフェース回路29を介して外部から取り込まれてもよい。
外部インターフェース回路29は、楽音生成装置20を設定装置30、MIDI対応の外部機器などに、無線又は有線で接続可能にするとともに、インターネットなどの通信ネットワークに接続可能にしている。楽音生成装置20に、一台の外部機器のみが接続されるようにしてもよいし、複数の外部機器が同時に接続され、楽音生成装置20及び複数の外部機器によってネットワークが形成されるようにしてもよい。
つぎに、設定装置30の構成について説明する。設定装置30は、タブレット型コンピュータ、携帯電話などの携帯情報端末で構成され、所定のパラメータ設定プログラムを実行することにより、楽音生成装置20の設定情報SIを構成する各種パラメータを入力する装置(ユーザインターフェース)として機能する。
設定装置30は、図5に示すように、設定操作子31、表示器32、表示制御回路33、タッチパネル34、操作子インターフェース回路35、サウンドシステム36、コンピュータ部37、記憶装置38及び外部インターフェース回路39を備えている。設定操作子31は、設定装置30の電源をオン・オフするための電源スイッチ、ソフトウェアの実行中に他のソフトウェアを選択する選択画面を表示器32に表示するためのホームボタンなどからなる。設定操作子31は、後述する操作子インターフェース回路35に接続されている。
表示器32は、液晶ディスプレイ(LCD)によって構成され、表示画面に文字、図形などを表示する。この表示器32示は、表示制御回路33によって制御される。表示制御回路33は、バス3aを介して、後述のコンピュータ部37から表示器32に表示する画像を表す画像データを取得し、前記取得した画像データに基づいて、表示器32を制御する。
タッチパネル34は、表示器32の表示画面に重なるようにして配置されている。タッチパネル34も操作子インターフェース回路35に接続されていて、操作子インターフェース回路35によって制御されて、ユーザによってタッチされた位置の座標を表す座標データを操作子インターフェース回路35に出力する。以降の説明において、表示器32に表示されたアイコンであって、オン・オフ操作が可能なボタン型のアイコンを単にボタンという。また、ボタン型のアイコンの表示領域に対応するタッチパネル34の操作領域を指、ペンなどでタッチすることを、単に「ボタンを押す」という。また、ボタンを押した指、ペンなどをタッチパネル34から離すことを、単に「ボタンを離す」という。
操作子インターフェース回路35は、設定操作子31の操作及びタッチパネル34の操作に関する各種データを、バス3aを介して、コンピュータ部37に供給する。
サウンドシステム36は、コンピュータ部37から供給されたディジタル楽音信号(例えば、警告音)をアナログ楽音信号にD/A変換するD/A変換器、変換したアナログ楽音信号を増幅するアンプ、及び増幅されたアナログ楽音信号を音響信号に変換して出力するスピーカを備えている。
コンピュータ部37は、CPU37a、タイマ37b、ROM37c及びRAM37dからなる。CPU37aは、後述するパラメータ設定ガイドプログラムを実行することにより、ユーザに各種パラメータを設定するための操作を実施させ、前記操作に従って、楽音生成装置20のCPU27aに各種パラメータを設定させる。タイマ37bは、CPU37aによって予め設定された周期で、割り込み信号をCPU37aに出力する。ROM37cは、設定装置30に予め組み込まれている半導体メモリ(例えば、書き換え可能なフラッシュメモリ)であり、各種プログラム及び各種データを記憶している。これらの各種プログラム及び各種データは予めROM37cに記録されていてもよいし、後述する外部インターフェース回路39を介して外部から取り込まれてもよい。RAM37dは、各種プログラムの実行過程において必要なデータを一時的に記憶する半導体メモリである。
また、記憶装置38は、フラッシュROM又はハードディスクなどの大容量の不揮発性記録媒体であり、各種データ及びプログラムの記憶及び読出しを可能にしている。これらのデータ及びプログラムは予め記憶装置38に記憶されていてもよいし、外部インターフェース回路39を介して外部から取り込まれてもよい。
外部インターフェース回路39は、設定装置30を楽音生成装置20、MIDI対応の外部機器などに、無線又は有線で接続可能にするとともに、インターネットなどの通信ネットワークに接続可能にしている。設定装置30に、一台の外部機器のみが接続されるようにしてもよいし、複数の外部機器が同時に接続され、設定装置30及び複数の外部機器によってネットワークが形成されるようにしてもよい。
つぎに、制御装置Cの動作について説明する。楽音生成装置20の電源を投入すると、CPU27aは、所定のトリガ設定情報TI及び音色設定情報VIを記憶装置28から読み出して、現在の設定情報SIとして利用可能な状態に設定する。例えば、CPU27aは、最新のトリガ設定情報TI及び音色設定情報VIを読み出す。これにより、電子打楽器10は、演奏可能な状態になる。また、この状態においては、楽音生成装置20は、設定装置30と通信可能である。電子打楽器10を演奏する際の制御装置Cの動作は、従来と同様であるので、その説明を省略する。
つぎに、楽音生成装置20の設定情報SIを作成又は編集する際の制御装置Cの動作について説明する。まず、設定装置30の動作について説明し、その後に、楽音生成装置20の動作について説明する。
設定装置30の電源を投入すると、CPU37aは、オペレーティングシステムを起動し、表示器32に、プログラム選択画面を表示する。プログラム選択画面には、ROM37c及び記憶装置38に記憶されている各種プログラムのアイコンが表示される。そして、ユーザが、各種パラメータを設定するための操作内容を順に表示するパラメータ設定ガイドプログラムのアイコンにタッチすると、CPU37aは、図6に示すように、ステップS10にて、パラメータ設定ガイド処理を開始する。
つぎに、CPU37aは、ステップS11にて初期化処理を実行する。この初期化処理においては、図7に示すように、新たに設定情報SIを作成するか、現在の設定情報SIを編集するかのいずれか一方をユーザに選択させる画像が表示される。具体的には、新規作成ボタンCN及び編集開始ボタンECが表示される。新規作成ボタンCNには、「Create New Setting」と表示されている。また、編集開始ボタンECには、「Edit Current Setting」と表示されている。ユーザが、設定情報SIを新たに作成することを選択した場合(新規作成ボタンCNにタッチした場合)には、CPU37aは、現在の設定情報SIを構成する各パラメータを初期化することを表す情報を、楽音生成装置20に送信する。これにより、現在の設定情報SIを構成する全てのパラメータが「N/A」に設定される。そして、CPU37aは、現在の設定情報を楽音生成装置20から受信する。一方、ユーザが現在の設定情報SIを編集することを選択した場合(編集開始ボタンECにタッチした場合)には、CPU37aは、現在の設定情報SIを構成する各パラメータを初期化することを表す情報を楽音生成装置20に送信することなく、現在の設定情報SIを楽音生成装置20から受信する。
つぎに、CPU37aは、ステップS12にて、電子パッドPDnのパッドタイプ及び電子パッドPDnに割り当てる音色を、ユーザに選択させる。ステップS12においては、図8に示すような、電子パッドPDnのパッドタイプを選択する画像及び電子パッドPDnに割り当てる音色を選択する画像が表示される。すなわち、表示器32の表示画面の上部には、接続端子IN1〜接続端子IN12にそれぞれ対応した12個のボタンPS1〜ボタンPS12が表示される。ボタンPS1〜ボタンPS12は、矩形の枠を有する。前記受信した設定情報SIのパッドタイプPTnに応じた画像が、ボタンPSnの枠内に表示される。ただし、パッドタイプPTnが未設定である場合、ボタンPSnの枠内に「N/A」と表示される。また、表示器32の表示画面の上端部には、次の設定へ進む際に押されるボタンNXが表示される。
ユーザは、ボタンPS1〜ボタンPS12のうちの1つのボタンを押して、設定対象の電子パッドを選択する。ユーザが電子パッドを打撃すると、楽音生成装置20が設定装置30に前記打撃された電子パッドを特定する情報を供給するように構成してもよい。これにより、設定対象の電子パッドが選択されるように構成してもよい。前記選択された電子パッドに対応するボタンの色が反転する。これにより、ユーザは、いずれの電子パッドが現在の設定対象として選択されているかを認識できる。
ボタンPS1〜ボタンPS12の下方には、前記選択された電子パッドPDnのパッドタイプPTnを設定するためのボタンTYが表示される。ボタンTYには、前記受信した設定情報SIに基づいて、前記選択された電子パッドPDnのパッドタイプPTnが表示される。ただし、パッドタイプPTnが未設定である場合、ボタンTYに「N/A」と表示される。ユーザが、ボタンTYにタッチすると、選択可能なパッドタイプのリストが表示される。このリストは、各パッドタイプが属するカテゴリー(キックドラム類、スネアドラム類、シンバル類、タム類など)ごとに作成されている。また、このリストの中には、アコースティックドラムセットを構成する打楽器に取りつけられるピックアップ装置の機種名も含まれている。ユーザは、前記表示されたリストのうち、前記選択した電子パッドPDnのパッドタイプを選択する。すると、前記選択されたパッドタイプが属するカテゴリーに対応する画像が、ボタンPSnの枠内に表示される。例えば、前記選択されたパッドタイプがキックドラム類に属する場合には、キックドラムを表す画像が表示される。また、例えば、前記選択されたパッドタイプがピックアップ装置である場合には、ピックアップ装置の画像が表示される。
また、ボタンTYの下方には、前記選択した電子パッドPDnに音色を割り当てるためのボタンNMが表示される。ボタンNMには、前記受信した設定情報SIに基づいて、前記選択された電子パッドPDnの音色名VNnが表示される。ただし、音色名VNnが未設定である場合、ボタンNMに「N/A」と表示される。ユーザが、ボタンNMにタッチすると、選択可能な音色のリストが表示される。ユーザは、前記表示されたリストのうち、前記選択した電子パッドPDnに割り当てる音色を選択する。
CPU37aは、設定対象の電子パッドPDnを特定する情報n、前記選択されたパッドタイプPTn及び音色名VNnを楽音生成装置20に送信する。楽音生成装置20は、現在の設定情報SIのうち、前記送信された情報nに対応する電子パッドPDnに関するパラメータを更新する。つまり、楽音生成装置20は、前記送信されたパッドタイプPTn及び音色名VNnに基づいて、現在の設定情報SIを更新する。なお、パッドタイプPTごとにスレッショルドレベルTH、ウェイトタイムWT及びリジェクトタイムRTが予め決定され、ROM27cに記憶されている。CPU27aは、前記選択されたパッドタイプPTnに応じて、スレッショルドレベルTHn、ウェイトタイムWTn及びリジェクトタイムRTnを更新する。
ただし、アコースティックドラムセットを構成する打楽器にピックアップ装置を取り付けることにより構成された電子パッドの場合には、ピックアップ装置の特性のみならず、前記打楽器の特性も考慮する必要がある。そこで、この場合、ユーザは、ステップS12において、設定装置30を用いて、パッドタイプPTnを選択するとともに、スレッショルドレベルTHn、ウェイトタイムWTn及びリジェクトタイムRTnを入力する。具体的には、前記選択されたパッドタイプPTnがピックアップ装置であるとき、スレッショルドレベルTHn、ウェイトタイムWTn及びリジェクトタイムRTnにそれぞれ対応した3つのスライダーが表示器32に表示される。ユーザは、前記スライダーをスライド操作して、スレッショルドレベルTHn、ウェイトタイムWTn及びリジェクトタイムRTnを入力する。
そして、CPU37aは、設定対象の電子パッドPDnを特定する情報n、前記選択されたパッドタイプPTn及び音色名VNn、並びにスレッショルドレベルTHn、ウェイトタイムWTn及びリジェクトタイムRTnを楽音生成装置20に送信する。楽音生成装置20は、現在の設定情報SIのうち、前記送信された情報nに対応する電子パッドPDnに関するパラメータを更新する。つまり、楽音生成装置20は、前記送信されたパッドタイプPTn及び音色名VNn、並びにスレッショルドレベルTHn、ウェイトタイムWTn及びリジェクトタイムRTnに基づいて、現在の設定情報SIを更新する。
1つの電子パッドのパッドタイプ及び音色の設定が終了すると、ユーザは、他のパッドを選択して、前記選択した他の電子パッドのパッドタイプ及び音色を設定する。このように、ユーザは、パッドタイプ及び音色の設定が必要な各電子パッドについて、同様の操作を繰り返す。そして、パッドタイプ及び音色の設定が終了すると、ユーザは、ボタンNXを押す。ボタンNXが押されると、CPU37aは、ステップS13に処理を進める。
つぎに、CPU37aは、ステップS13にて、クロストーク係数を設定するための操作手順を表示器32に表示して、ユーザ操作をガイドする、クロストーク係数設定ガイドプログラムをROM12cから読み出して実行する。CPU37aは、図9に示すように、ステップS130にて、クロストーク係数設定ガイド処理を開始する。つぎに、CPU37aは、ステップS131にて、楽音生成装置20に、後述するクロストーク係数設定処理(図11A及び図11B)を開始するように指示する。つぎに、CPU37aは、ユーザに、各電子パッドを3回ずつ打撃させる。具体的には、CPU37aは、ステップS132にて、打撃対象の電子パッドを指定するためのインデックスkを「1」に設定する。つぎに、CPU37aは、ステップS133にて、接続端子INkに電子パッドが接続されているか否かを判定する。具体的には、パッドタイプPTkが「N/A」であるか否かを判定する。パッドタイプPTkが設定済みであるときは、接続端子INkに電子パッドが接続されていると判定される。一方、パッドタイプPTkが未設定である場合には、接続端子INkに電子パッドが接続されていないと判定される。なお、接続端子INkに電子パッドが接続されていたとしても、パッドタイプPTkが未設定(「N/A」)であれば、接続端子INkに電子パッドが接続されていないと判定される。接続端子INkに電子パッドが接続されていないと判定された場合、CPU37aは、後述のステップS137に処理を進める。一方、接続端子INkに電子パッドが接続されていると判定された場合には、ステップS134にて、図10に示すような、接続端子INkに接続されている電子パッドPDkを打撃することを指示する画像が表示される。この画像には、残りの打撃回数を表す数字が含まれている。前記打撃することを指示した電子パッドPDkが打撃されるごとに、前記残りの打撃回数が減少する。ユーザは、前記指示に従って、電子パッドPDkを3回打撃する。すると、楽音生成装置20は、前記打撃された電子パッドPDkとは異なる電子パッドに関するクロストーク係数を更新する。楽音生成装置20によるクロストーク係数の設定処理については後述する。つぎに、CPU37aは、ステップS135にて、楽音生成装置20から、電子パッドPDkが打撃されたことを表す楽音情報(MIDIデータ)を受信する。つぎに、CPU37aは、ステップS136にて、前記受信した楽音情報を用いて、前記打撃することを指示した電子パッドPDkの打撃回数が3回に達したか否かを判定する。前記打撃することを指示した電子パッドPDkの打撃回数が3回に満たない場合、CPU37aは、「No」と判定してステップ134に処理を進める。一方、前記打撃することを指示した電子パッドPDkの打撃回数が3回に達したとき、CPU37aは、「Yes」と判定して、ステップS137に処理を進める。つぎに、CPU37aは、ステップS137にて、インデックスkをインクリメントする。そして、CPU37aは、ステップS138にて、全ての電子パッドが打撃されたか否かを判定する。具体的には、CPU37aは、インデックスkが「12」を越えたか否かを判定する。インデックスkが「12」を超えていれば、全ての電子パッドが打撃されたと判定される。一方、インデックスkが「12」以下であれば、未だ打撃されていない電子パッドが存在すると判定される。未だ打撃されていない電子パッドが存在する場合、CPU37aは、「No」と判定して、ステップS133に処理を進める。一方、全ての電子パッドが打撃された場合、CPU37aは、「Yes」と判定して、ステップS139にて、楽音生成装置20に、クロストーク係数設定処理を終了するように指示する。そして、CPU37aは、ステップS13aにて、クロストーク係数設定ガイドプログラムを終了し、パラメータ設定ガイドプログラムに戻る。そして、CPU37aは、ステップS14にて、パラメータ設定ガイドプログラムを終了する。
つぎに、楽音生成装置20の動作について説明する。CPU27aは、設定装置30からの指示に応答して、図11A及び図11Bに示すクロストーク係数設定プログラムをROM27cから読み出して実行する。CPU27aは、ステップS20にて、クロストーク係数設定処理を開始する。つぎに、CPU27aは、ステップS21にて、初期化処理を実行する。例えば、クロストーク係数Cn=1〜12,m=1〜12を「0」に設定する。また、各電子パッドの打撃信号のエンベロープ値EVn=1〜12を保持中であるか否かを表す保持フラグHFiを「非保持中」に設定する。また、以下説明する処理対象のパッドを選択するためのインデックスiを「1」に設定する。
つぎに、CPU27aは、ステップS22にて、接続端子INiにパッドが接続されているか否かを判定する。具体的には、CPU27aは、パッドタイプPTiが未設定であれば、「No」と判定して、ステップS23にて、インデックスiをインクリメントし、ステップS22に処理を進める。なお、インデックスiをインクリメントした結果、その値が最大値である「12」を超える場合には、その値を「1」に設定する。一方、パッドタイプPTiが設定済みであれば、ステップS24に処理を進める。
つぎに、CPU27aは、ステップS24にて、保持フラグHFiを参照して、エンベロープ値EViが保持中であるか否かを判定する。保持フラグHFiが「保持中」であれば、CPU27aは、「Yes」と判定して、処理をステップS26に進める。一方、保持フラグHFiが「非保持中」であれば、CPU27aは、「No」と判定して、ステップS25にて、電子パッドPDiの打撃信号を取得し、エンベロープ値EViを計算する。なお、ウェイト状態においては、CPU27aは、打撃信号に基づいてエンベロープ値を計算し、そのピーク値をラッチする。つまり、新たに計算したエンベロープ値が前回までに計算したエンベロープ値よりも大きいとき、前記新たに計算したエンベロープ値を記憶する。
つぎに、CPU27aは、ステップS26〜ステップS28を実行して、電子パッドPDi(以下、処理対象の電子パッドPDiと呼ぶ)にクロストークが発生したか否かを判定する。なお、クロストーク係数設定処理は高速に実行される。すなわち、設定装置30において、打撃対象として選択された電子パッドPDkが一度打撃されたとき、楽音生成装置20において、各電子パッドにクロストークが発生したか否かの判定が実行される。
まず、CPU27aは、ステップS26にて、処理対象の電子パッドPDiがウェイト状態からリジェクト状態に遷移したか否か(ウェイト状態に遷移してからウェイトタイムWTiを経過したか否か)を判定する。処理対象の電子パッドPDiがウェイト状態、リジェクト状態及びアイドル状態のうちのいずれかの状態のままであるとき、アイドル状態からウェイト状態に遷移したとき、及びリジェクト状態からアイドル状態に遷移したときのうちのいずれかの場合、CPU27aは、ステップS2fに処理を進める。一方、処理対象の電子パッドPDiがウェイト状態からリジェクト状態に遷移したとき(ウェイト状態に遷移してからウェイトタイムWTiを経過したとき)、CPU27aは、ステップS27にて、保持フラグHFiを「保持中」に設定し、エンベロープ値EViを保持し始める。エンベロープ値EViが保持開始されてから所定の時間tdを経過すると、保持フラグHFiは「非保持中」に設定される。
つぎに、CPU27aは、ステップS28にて、処理対象の電子パッドPDiにクロストークが発生したか否かを判定する。具体的には、CPU27aは、処理対象以外の電子パッドのエンベロープ値EVj≠iにクロストーク係数Ci,jをそれぞれ乗算する。なお、インデックスjは、「1」〜「12」のうち、インデックスiとは異なる任意の数である。前記乗算結果と処理対象の電子パッドのエンベロープ値EViとを比較する。全ての前記乗算結果が、エンベロープ値EViよりも大きいとき、CPU27aは、「Yes」と判定して、ステップS2fに処理を進める。一方、前記乗算結果のうちの少なくとも1つが、エンベロープ値EVi以下であるとき、CPU27aは、「No」と判定して、ステップS29にて、エンベロープ値EVi及び音色名VNiに基づいて楽音情報を生成して音源回路25に供給し、処理対象の電子パッドの打撃に対応した楽音を発生させる。つぎに、CPU27aは、ステップS2aにて、前記楽音情報(又は前記楽音情報に相当するMIDIデータ)を設定装置30に供給する(図9のステップS135参照)。
つぎに、CPU27aは、ステップS2bにて、エンベロープ値EV1〜EV12のうち、最大のエンベロープ値EVpを選択する。つぎに、CPU27aは、ステップS2cにて、処理対象の電子パッドPDiが真に打撃されたか否かを判定する。すなわち、CPU27aは、前記選択したエンベロープ値EVpのインデックスpの値が処理対象の電子パッドのインデックスiの値と同じであるか否かを判定する。インデックスpの値がインデックスiの値と同じとき、CPU27aは、「Yes」と判定して、ステップS2fに処理を進める。一方、インデックスpの値がインデックスiの値と異なるとき、CPU27aは、「No」と判定して、ステップS2dにて、処理対象の電子パッドのエンベロープ値EViと前記選択したエンベロープ値EVpとの比R(=EVi/EVp)を計算する。つぎに、前記計算した比Rが、クロストーク係数Ci,pよりも大きいとき、CPU27aは、ステップS2eにて、クロストーク係数Ci,pを前記計算した比Rに更新する。そして、CPU27aは、ステップS2fにて、設定装置30からクロストーク係数設定処理を終了することを指示されているか否かを判定する。設定装置30からクロストーク係数設定処理を終了することを指示されていないときには、CPU27aは、「No」と判定して、ステップS2gにて、処理対象の電子パッドのインデックスiをインクリメントし、ステップS22に処理を進める。ただし、インデックスiをインクリメントした結果、その値が最大値である「12」を超える場合には、その値を「1」に設定する。以降、CPU27aは、ステップS22〜S2gを繰り返し実行する。ステップS2fにおいて、設定装置30からクロストーク係数設定処理を終了することを指示されているとき、CPU27aは、「Yes」と判定して、ステップS2hにて、クロストーク係数設定処理を終了する。
つぎに、楽音生成装置20のクロストーク係数設定処理の具体例を説明する。この例では、説明を簡単にするために、3つの電子パッドPD1〜PD3が接続端子IN1〜IN3にそれぞれ接続されているものとする。そして、設定装置30において、電子パッドPD1〜PD3が順に打撃対象として選択され、ユーザは、電子パッドPD1〜PD3をそれぞれ3回ずつ順に打撃する。いずれか1つの電子パッドが打撃されると、他の2つの電子パッドも振動するものとする。つまり、1つの電子パッドが打撃されると、他の電子パッドにクロストークが発生する。
まず、エンベロープ値EV1〜EV3、及びクロストーク係数C1,3〜C3,3、保持フラグHF1〜HF3、インデックスiが初期化される(ステップS21)。
電子パッドPD1が打撃されたとき、電子パッドPD1が最初に振動し始め、電子パッドPD2及び電子パッドPD3は、電子パッドPD1よりも遅れて振動し始める。以下、電子パッドPD1、電子パッドPD2、電子パッドPD3の順に振動し始める例を説明する。また、この例においては、振動開始の順と同じ順で、各電子パッドがウェイト状態からリジェクト状態に遷移したと判定されるものとする。つまり、最初にウェイト状態からリジェクト状態に遷移したと判定される電子パッドは、電子パッドPD1とする。したがって、図12Aに示すように、電子パッドPD1の状態がウェイト状態からリジェクト状態に遷移する以前においては、クロストーク係数は更新されない(i=1〜3、ステップS26:No)。なお、この間において、エンベロープ値EV1〜EV3は逐次更新される(i=1〜3、ステップS25)。
電子パッドPD1がウェイト状態からリジェクト状態に遷移すると(i=1、ステップS26)、図12Bに示すように、エンベロープ値EV1が保持開始される(ステップS27)。つまり、このタイミングから所定の時間tdを経過するまでの期間においては、エンベロープ値EV1は更新されない。この例では、保持されるエンベロープ値EV1は「100」である。なお、このタイミングにおいて、電子パッドPD2及び電子パッドPD3も振動し始めており、既にアイドル状態からウェイト状態に遷移している。最新のエンベロープ値EV2は「43」である。また、最新のエンベロープ値EV3は「30」である。ただし、エンベロープ値EV2及びエンベロープ値EV3は未だ保持開始されていない。言い換えれば、エンベロープ値EV2及びエンベロープ値EV3は更新され得る。したがって、この後、エンベロープ値EV2が計算されたとき(i=2、ステップS25)、エンベロープ値EV2が多少増加する可能性がある。また、この後、エンベロープ値EV3が計算されたとき(i=3、ステップS25)、エンベロープ値EV3が多少増加する可能性がある。
つぎに、クロストーク係数C1,2及びクロストーク係数C1,3に、エンベロープ値EV2及びエンベロープ値EV3がそれぞれ乗算される(ステップS28)。クロストーク係数C1,2及びクロストーク係数C1,3は「0」であり、エンベロープ値EV2及びエンベロープ値EV3は「43」及び「30」である。一方、エンベロープ値EV1が「100」であるので、前記乗算結果よりも、エンベロープ値EV1が大きい。したがって、エンベロープ値EV1及び音色名VN1に基づいて、楽音が発生され(ステップS29)、前記楽音に対応するMIDIデータが設定装置30へ送信される(ステップS2a)。これにより、残りの打撃回数が「2回」に設定される。
つぎに、最大のエンベロープ値EVp=1が選択される(ステップS2b)。この場合、インデックスiの値が「1」であり、インデックスpの値も「1」であるので、クロストーク係数は更新されない(ステップS2c:No)。
つぎに、電子パッドPD2態がウェイト状態からリジェクト状態に遷移するまで、ステップS22〜S2gが繰り返し実行される。この間においては、ステップS26にて「No」と判定されるので、クロストーク係数は更新されない。なお、この間において、エンベロープ値EV1は更新されないが、エンベロープ値EV2及びエンベロープ値EV3は逐次更新される(i=2又は3、ステップS25)。
電子パッドPD2がウェイト状態からリジェクト状態に遷移すると(i=2、ステップS26)、図12Cに示すように、エンベロープ値EV2が保持開始される(ステップS27)。この例では、保持されるエンベロープ値EV2は「45」である。また、最新のエンベロープ値EV3は「33」である。ただし、エンベロープ値EV3は未だ保持開始されていない。言い換えれば、エンベロープ値EV3は更新され得る。したがって、この後、エンベロープ値EV3が計算されたとき(i=3、ステップS25)、エンベロープ値EV3が多少増加する可能性がある。
つぎに、クロストーク係数C2,1及びクロストーク係数C2,3に、エンベロープ値EV1及びエンベロープ値EV3がそれぞれ乗算される(ステップS28)。クロストーク係数C2,1及びクロストーク係数C2,3は「0」である。エンベロープ値EV1は「100」であり、エンベロープ値EV3は「33」である。一方、エンベロープ値EV2は「45」であるので、前記乗算結果よりも、エンベロープ値EV2が大きい。したがって、エンベロープ値EV2及び音色名VN2に基づいて、楽音が発生され(ステップS29)、前記楽音に対応するMIDIデータが設定装置30へ送信される(ステップS2a)。この場合、打撃対象とは異なる電子パッドに関する楽音が発音され、その楽音に関するMIDIデータが設定装置30に送信される。したがって、残りの打撃回数は「2回」のままである。
つぎに、最大のエンベロープ値EVp=1が選択される(ステップS2B)。この場合、インデックスiの値が「2」であるのに対し、インデックスpの値が「1」であるので、比R(=EV2/EV1=45/100=0.45)が計算される(ステップS2d)。そして、クロストーク係数C2,1が比R(=「0.45」)に更新される(ステップS2e)。
つぎに、電子パッドPD3がウェイト状態からリジェクト状態に遷移するまで、ステップS22〜S2gが繰り返し実行される。この間においては、ステップS26にて「No」と判定されるので、クロストーク係数は更新されない。なお、この間において、エンベロープ値EV1及びエンベロープ値EV2は更新されないが、エンベロープ値EV3は逐次更新される(i=3、ステップS25)。
つぎに、電子パッドPD3がウェイト状態からリジェクト状態に遷移すると(i=3、ステップS26)、図12Dに示すように、エンベロープ値EV3が保持開始される(ステップS27)。この例では、保持されるエンベロープ値EV3は「35」である。
つぎに、クロストーク係数C3,1及びクロストーク係数C3,2に、エンベロープ値EV1及びエンベロープ値EV2がそれぞれ乗算される(ステップS28)。クロストーク係数C3,1及びクロストーク係数C3,2は「0」である。エンベロープ値EV1は「100」であり、エンベロープ値EV2は「45」である。一方、エンベロープ値EV3は「35」であるので、前記乗算結果よりも、エンベロープ値EV3が大きい。したがって、エンベロープ値EV3及び音色名VN3に基づいて、楽音が発生され(ステップS29)、前記楽音に対応するMIDIデータが設定装置30へ送信される(ステップS2a)。この場合、打撃対象とは異なる電子パッドに関する楽音が発音され、その楽音に関するMIDIデータが設定装置30に送信される。したがって、残りの打撃回数は「2回」のままである。
つぎに、最大のエンベロープ値EVp=1が選択される(ステップS2b)。この場合、インデックスiの値が「3」であるのに対し、インデックスpの値は「1」であるので、比R(=EV3/EV1=35/100=0.35)が計算される(ステップS2d)。そして、クロストーク係数C2,1が「0.35」に更新される(ステップS2e)。つぎに、インデックスiの値が再び「1」に設定される(ステップS2g、S22及びS23)。つまり、再び電子パッドPD1が処理対象として選択される。
電子パッドPD1の2回目の打撃の前においては、各電子パッドはリジェクト状態又はアイドル状態である(ステップS26:No)ので、クロストーク係数は更新されない。また、電子パッドPD1が再び打撃される前に、所定の時間tdが経過し、エンベロープ値EV1〜EV3は更新可能になる。
電子パッドPD1が再び打撃されると、1回目の打撃における手順と同様の手順で、クロストーク係数C2,1及びC3,1が更新される。例えば、電子パッドPD1が処理対象として選択されているとき、ステップS2dにおいて、エンベロープ値EV1が「100」)であり、エンベロープ値EV2が「50」である場合を想定する。この場合の比R(=「0.5」)は、1回目の打撃時に計算したクロストーク係数C2,1(=「0.45」)よりも大きいので、クロストーク係数C2,1が更新される(C2,1=「0.5」)。また、例えば、電子パッドPD1が処理対象として選択されているとき、ステップS2dにおいて、エンベロープ値EV1が「100」)であり、エンベロープ値EV2が「30」である場合を想定する。この場合、比R(=「0.30」)が1回目の打撃時に計算したクロストーク係数C2,1(=「0.45」)よりも小さいので、クロストーク係数C2,1は更新されない。
3回目の打撃における手順は、2回目の打撃における手順と同様である。電子パッドPD1が3回打撃されると、設定装置30において、電子パッドPD2が打撃対象として選択される。電子パッドPD2が打撃される前に、所定の時間tdが経過し、エンベロープ値EV1〜EV3は更新可能になる。
電子パッドPD2が打撃されたとき、電子パッドPD2が最も先に振動し始め、電子パッドPD1及び電子パッドPD3は、電子パッドPD2よりも僅かに遅れて振動し始める。以下、電子パッドPD2、電子パッドPD3、電子パッドPD1の順に振動し始める例を説明する。クロストーク係数設定処理においては、電子パッドPD1〜PD3が順に(循環的に)選択され、ステップS26において、現在選択されているパッドがウェイト状態からリジェクト状態に遷移したか否かが判定される。したがって、ステップS26が実行されるタイミングによっては、最初に振動し始めた電子パッドPD2よりも先に、電子パッドPD1又は電子パッドPD2がウェイト状態からリジェクト状態に遷移したと判定される場合もある。以下、最初にウェイト状態からリジェクト状態に遷移したと判定される電子パッドは、電子パッドPD1とする。2番目にウェイト状態からリジェクト状態に遷移したと判定される電子パッドは、電子パッドPD2とする。そして、最後にウェイト状態からリジェクト状態に遷移したと判定される電子パッドは、電子パッドPD3とする。
図13Aに示すように、電子パッドPD1がウェイト状態からリジェクト状態に遷移する以前においては、クロストーク係数は更新されない(i=1〜3、ステップS26:No)。なお、この間において、エンベロープ値EV1〜EV3は逐次更新される(i=1〜3、ステップS25)。
電子パッドPD1がウェイト状態からリジェクト状態に遷移すると(i=1、ステップS26)、図13Bに示すように、エンベロープ値EV1が保持開始される(ステップS27)。つまり、このタイミングから所定の時間tdが経過するまでの期間においては、エンベロープ値EV1は更新されない。この例では、保持されるエンベロープ値EV1は「45」である。なお、このタイミングにおいて、電子パッドPD2及び電子パッドPD3も振動し始めており、既にアイドル状態からウェイト状態に遷移している。最新のエンベロープ値EV2は「98」である。また、最新のエンベロープ値EV3は「30」である。
つぎに、クロストーク係数C1,2及びクロストーク係数C1,3に、エンベロープ値EV2及びエンベロープ値EV3がそれぞれ乗算される(ステップS28)。クロストーク係数C1,2及びクロストーク係数C1,3は「0」であり、エンベロープ値EV2及びエンベロープ値EV3は「98」及び「30」である。一方、エンベロープ値EV1が「45」であるので、前記乗算結果よりも、エンベロープ値EV1が大きい。したがって、エンベロープ値EV1及び音色名VN1に基づいて、楽音が発生され(ステップS29)、前記楽音に対応するMIDIデータが設定装置30へ送信される(ステップS2a)。この場合、打撃対象とは異なる電子パッドに関する楽音が発音され、その楽音に関するMIDIデータが設定装置30に送信される。したがって、残りの打撃回数は「3回」のままである。
つぎに、最大のエンベロープ値EVp=2が選択される(ステップS2b)。この場合、インデックスiの値が「1」であるのに対し、インデックスpの値が「2」であるので、比R(=EV2/EV1=45/98=0.46)が計算される(ステップS2d)。そして、クロストーク係数C2,1が比R(=「0.46」)に更新される(ステップS2e)。
つぎに、電子パッドPD2がウェイト状態からリジェクト状態に遷移するまで、ステップS22〜S2gが繰り返し実行される。この間においては、ステップS26にて「No」と判定されるので、クロストーク係数は更新されない。なお、この間において、エンベロープ値EV1は更新されないが、エンベロープ値EV2及びエンベロープ値EV3は逐次更新される(i=2又は3、ステップS25)。
電子パッドPD2がウェイト状態からリジェクト状態に遷移すると(i=2、ステップS26)、図13Cに示すように、エンベロープ値EV2が保持開始される(ステップS27)。この例では、保持されるエンベロープ値EV2は「100」である。また、最新のエンベロープ値EV3は「33」である。ただし、エンベロープ値EV3は未だ保持開始されていない。言い換えれば、エンベロープ値EV3は更新され得る。したがって、この後、エンベロープ値EV3が計算されたとき(i=3、ステップS25)、エンベロープ値EV3が多少増加する可能性がある。
つぎに、クロストーク係数C2,1及びクロストーク係数C2,3に、エンベロープ値EV1及びエンベロープ値EV3がそれぞれ乗算される(ステップS28)。クロストーク係数C2,1は「0.45」であり、クロストーク係数C2,3は「0」である。エンベロープ値EV1は「45」であり、エンベロープ値EV3は「33」である。一方、エンベロープ値EV2は「100」であるので、前記乗算結果よりも、エンベロープ値EV2が大きい。したがって、エンベロープ値EV2及び音色名VN2に基づいて、楽音が発生され(ステップS29)、前記楽音に対応するMIDIデータが設定装置30へ送信される(ステップS2a)。これにより、残りの打撃回数が「2回」に設定される。
つぎに、最大のエンベロープ値EVp=2が選択される(ステップS2b)。この場合、インデックスiの値が「2」であり、インデックスpの値「2」であるので、クロストーク係数は更新されない(ステップS2c:No)。
つぎに、電子パッドPD3がウェイト状態からリジェクト状態に遷移するまで、ステップS22〜S2gが繰り返し実行される。この間においては、ステップS26にて「No」と判定されるので、クロストーク係数は更新されない。なお、この間において、エンベロープ値EV1及びエンベロープ値EV2は更新されないが、エンベロープ値EV3は逐次更新される(i=3、ステップS25)。
つぎに、電子パッドPD3がウェイト状態からリジェクト状態に遷移すると(i=3、ステップS26)、図13Dに示すように、エンベロープ値EV3が保持開始される(ステップS27)。この例では、保持されるエンベロープ値EV3は「35」である。
つぎに、クロストーク係数C3,1及びクロストーク係数C3,2に、エンベロープ値EV1及びエンベロープ値EV2がそれぞれ乗算される(ステップS28)。クロストーク係数C3,1は「0.3」であり、クロストーク係数C3,2は「0」である。エンベロープ値EV1は「45」であり、エンベロープ値EV2は「100」である。一方、エンベロープ値EV3は「35」であるので、前記乗算結果よりも、エンベロープ値EV3が大きい。したがって、エンベロープ値EV3及び音色名VN3に基づいて、楽音が発生され(ステップS29)、前記楽音に対応するMIDIデータが設定装置30へ送信される(ステップS2a)。この場合、打撃対象とは異なる電子パッドに関する楽音が発音され、その楽音に関するMIDIデータが設定装置30に送信される。したがって、残りの打撃回数は「2回」のままである。
つぎに、最大のエンベロープ値EVp=2が選択される(ステップS2b)。この場合、インデックスiの値が「3」であるのに対し、インデックスpの値は「1」であるので、比R(=EV3/EV2=35/100=0.35)が計算される(ステップS2d)。そして、クロストーク係数C3,2が「0.35」に更新される(ステップS2e)。つぎに、インデックスiの値が再び「1」に設定される(ステップS2g、S22及びS23)。つまり、再び電子パッドPD1が処理対象として選択される。
電子パッドPD2の2回目の打撃の前においては、各電子パッドはリジェクト状態又はアイドル状態である(ステップS26:No)ので、クロストーク係数は更新されない。また、電子パッドPD2が再び打撃される前に、所定の時間tdが経過し、エンベロープ値EV1〜EV3は更新可能になる。
電子パッドPD2の2回目の打撃及び3回目の打撃においても、上述した手順と同様の手順でクロストーク係数が更新される。また、電子パッドPD3が打撃対象として選択されて打撃されている間においても、上述の手順と同様の手順でクロストーク係数が更新される(図14A〜図14D参照)。なお、図14A〜図14Dの例では、最初にウェイト状態からリジェクト状態に遷移したと判定される電子パッドは、電子パッドPD2とした。2番目にウェイト状態からリジェクト状態に遷移したと判定される電子パッドは、電子パッドPD3とした。そして、最後にウェイト状態からリジェクト状態に遷移したと判定される電子パッドは、電子パッドPD1とした。
電子パッドPD1〜PD12を打撃して演奏する際、CPU27aは、ステップS22〜S2aと同様の処理を実行して、上述のクロストーク係数設定処理によって設定したクロストーク係数を用いて、クロストークが発生したか否かを判定(ステップS28)し、真に打撃されたと判定された電子パッドに関する楽音を発生する(ステップS29)。
上記のように構成した第1実施形態によれば、各パラメータの設定手順を表す画像が表示器32の表示画面に表示される。ユーザは、前記表示された画像に従って電子パッドPDn又はタッチパネル34を操作すれば、パラメータが設定される。つまり、ユーザがパラメータの設定手順を誤る虞がない、したがって、ユーザは、パラメータを滞りなく設定できる。とくに、クロストーク係数を設定するに際し、ユーザは、表示器32の表示内容に従って、電子パッドPD1〜PD12を3回ずつ順に打撃していくだけで、楽音生成装置20において、クロストーク係数Cn,mを設定できる。このように、ユーザは、従来よりも簡単に全てのパラメータを設定することができる。
(第2実施形態)
次に、本発明の第2実施形態について説明する。第2実施形態の構成は、第1実施形態の構成と同様である。ただし、楽音生成装置20が実行するクロストーク係数設定処理の一部が第1実施形態とは異なる。以下、第2実施形態の説明において、第1実施形態と同じ構成に関しては、第1実施形態の符号と同じ符号を用い、それらの説明を省略する。
上述の第1実施形態では、クロストークの発生源ごとにクロストーク係数が設定されている。しかし、第2実施形態では、図15に示すように、各電子パッドPDn(=1,2,・・・,12)に対し、1つのクロストーク係数Cn(=1,2,・・・,12)と、クロストークの発生源となる電子パッドのリストである発生源リストLn(=1,2,・・・,12)とが設定される。
第2実施形態において、クロストーク係数Cn及び発生源リストLnを設定するに際し、設定装置30のCPU37aは、第1実施形態と同じクロストーク設定ガイド処理(図6)を実行する。一方、クロストーク係数Cn及び発生源リストLnを設定するに際し、楽音生成装置20のCPU27aは、第1実施形態のクロストーク係数設定処理と同様の処理を実行する。ただし、CPU27aは、図10AにおけるステップS21において、クロストーク係数C1〜C12を初期化するとともに、発生源リストL1〜L12を初期化する。すなわち、CPU27aは、クロストーク係数C1〜C12を「0」に設定する。また、発生源リストL1〜L12を空の状態(各リストの要素が存在しない状態)に設定する。つまり、CPU27aは、電子パッドPD1〜電子パッドPD12にクロストークが発生しない状態に設定する。
また、CPU27aは、図11BにおけるステップS2eに代えて、図16に示すステップS3e1,S3e2を実行する。すなわち、ステップS3e1において、比Rが前回の打撃時に計算されたクロストーク係数Ciよりも大きいとき、CPU27aは、クロストーク係数Ciを比Rに更新する。また、CPU27aは、ステップS3e2において、発生源リストLiに、電子パッドPDpを追加する。ただし、既に、発生源リストLiに電子パッドPDpが含まれている場合は、CPU27aは、ステップS3e2を実行することなく、ステップS2fに処理を進める。
また、CPU27aは、図11AにおけるステップS28に代えて、図17に示すように、ステップS38にて、クロストーク値Ciと発生源リストLiに含まれる電子パッドPDjのエンベロープ値EVjとを乗算する。全ての前記乗算結果が、エンベロープ値EViよりも大きいとき、CPU27aは、「Yes」と判定して、ステップS2fに処理を進める。一方、前記乗算結果のうちの少なくとも1つが、エンベロープ値EVi以下であるとき、CPU27aは、「No」と判定して、ステップS29に処理を進める。
上記のように構成した第2実施形態によっても、第1実施形態と同様の効果が得られる。また、第2実施形態においては、CPU27aは、電子パッドPDiにクロストークが発生したか否かを判定するに際し、発生源リストLiを参照して、クロストークの発生源となり得る電子パッドPDjのみに関する計算を実行する。したがって、第2実施形態によれば、計算量を削減できる。
さらに、本発明の実施にあたっては、上記実施形態に限定されるものではなく、本発明の目的を逸脱しない限りにおいて種々の変更が可能である。
上記第1実施形態及び第2実施形態においては、制御装置Cは、楽音生成装置20及び設定装置30から構成されている。しかし、制御装置Cが一体的に構成されていてもよい。つまり、設定装置30が楽音生成装置20に組み込まれていても良い。さらに、楽音生成装置20、設定装置30、及び電子パッドPD1〜PD12が一体的に構成されていてもよい。また、上記第1実施形態及び第2実施形態は、本発明を電子ドラムセットに適用した例であるが、本発明を他の電子楽器に適用してもよい。例えば、複数の音板を有していて、前記音板の振動を検出し、前記検出した振動に対応する楽音を生成するマリンバ型の電子楽器に適用してもよい。
また、CPU27aは、ステップS26において、電子パッドPDnがウェイト状態に遷移してからウェイトタイムWTnを経過したときのエンベロープ値が、所定の閾値MLよりも小さい場合、電子パッドPDnがウェイト状態からリジェクト状態に遷移したと判定するのではなく、電子パッドPDnがウェイト状態からアイドル状態に遷移したとみなしてもよい。
また、CPU27aは、ステップS2dにおいて、比Rを計算している。しかし、これに代えて、エンベロープ値EVpとエンベロープ値EViとの差を計算してもよい。例えば、電子パッドPD1(例えばスネア)を打撃したとき、電子パッドPD2(例えばタム)も振動した場合、エンベロープ値EV1からエンベロープ値EV2を減算した値をクロストーク係数C1,2として記憶してもよい。そして、各電子パッドPDnを打撃して演奏する際、エンベロープ値EV1からエンベロープ値EV2を減算した値が、クロストーク係数C1,2より十分大きければ、電子パッドPD1は真に打撃されたと判定されるようにしてもよい。