(57)【要約】  【課題】  ボディ振動等を原因とするノイズによる誤発音を防止し得る手段を有する電子弦楽器を提供すること。  【解決手段】  本発明の電子弦楽器によれば、弦振動検出手段により所定の弦に対して弦振動の振幅レベルの増大が検出された時刻と他の弦に対して弦振動の振幅レベルの増大が検出された時刻との差、並びに、前記弦振動検出手段により所定の弦に対して検出された弦振動の振幅レベルと他の弦に対して検出された弦振動の振幅レベルとの差に基づいて、判定手段により、他の弦による振動に起因するものであると判定されると、発音開始の指示がなされない。よって、他の弦の打弦によって生じるボディ振動等を原因とするノイズによる誤発音を防止し得る。  【選択図】    図５
2005189369.tif 000002
【特許請求の範囲】
【請求項１】
複数の弦の各々について弦振動のピッチと振幅レベルとを検出する弦振動検出手段と、その弦振動検出手段により弦振動の振幅レベルの増大が検出された場合に、その検出されたピッチと振幅レベルとに基づく発音の開始を指示する発音開始指示手段とを備えている電子弦楽器において、
前記弦振動検出手段により所定の弦に対して弦振動の振幅レベルの増大が検出された時刻と他の弦に対して弦振動の振幅レベルの増大が検出された時刻との差、並びに、前記弦振動検出手段により所定の弦に対して検出された弦振動の振幅レベルと他の弦に対して検出された弦振動の振幅レベルとの差に基づいて、前記所定の弦の振動が他の弦の振動によるものであるか否かを判定する判定手段を備え、
前記発音開始指示手段は、前記判定手段により他の弦の振動によるものでないと判定された場合は発音開始を指示し、他の弦の振動によるものであると判定された場合は発音開始を指示しないものであることを特徴とする電子弦楽器。
【請求項２】
前記判定手段は、前記弦振動検出手段により所定の弦に対して弦振動の振幅レベルの増大が検出された時刻と他の弦に対して弦振動の振幅レベルの増大が検出された時刻との差が所定の閾値以下であり、且つ、前記所定の弦に対して前記弦振動検出手段により検出された弦振動の振幅レベルが他の弦に対して検出された弦振動の振幅レベルの所定の割合以下である場合に、前記所定の弦の振動が他の弦の振動によるものであると判定するものであることを特徴とする請求項１記載の電子弦楽器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子弦楽器に関し、特に、ボディ振動に基づくノイズによる誤発音を防止する電子弦楽器に関する。
【背景技術】
【０００２】
特開平７−１１０６８７号公報（特許文献１）には、電子弦楽器などにおける弦振動をピックアップにて検出し、ＤＳＰ（Digital Signal Processor）を用いてデジタル的にピッチ検出を行なうピッチ情報検出装置が記載されている。特許文献１に記載されるようなピッチ情報検出装置を有するギターシンセサイザーのような電子弦楽器では、ピッチ情報検出装置により検出されたピッチ情報に基づいて音源が駆動され、それによって発音が行なわれる。
【特許文献１】特開平７−１１０６８７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
電子弦楽器において、例えば、ダウンストロークによって複数弦を強く鳴動させた場合、第２弦の振動に基づくボディ振動やブリッジ振動、ピックアップのクロストーク（所定の弦の振動を検出するためのピックアップが、他の弦の振動をも検出してしまうこと）等によって、隣接する第１弦において、発音される程度に十分大きな振幅のノイズが検出されることがある。
【０００４】
図６は、ダウンストロークされた第２弦及び第１弦に対して検出されたオシロ波形図であり、図６において、Ｗ１は第１弦のオシロ波形であり、Ｗ２は第２弦のオシロ波形である。この図６によれば、第２弦が弾かれたことに起因する弦の振幅レベルのピークの検出後（時刻Ｔ１）、隣接する第１弦において、第１弦が実際に弾かれたことに起因する弦の振幅レベルのピークが検出される前に（時刻Ｔ２）、第２弦の振動に起因するノイズＮが検出されている。
【０００５】
特許文献１に記載されるピッチ情報検出装置を有する電子弦楽器の場合、そのようなノイズＮも有効な弦振動として検出され、それによって、第１弦をピックにより弾く前にこのノイズＮによる誤発音が生じ、全体として不自然な演奏になってしまうことがあるという問題点があった。
【０００６】
本発明は、上述した問題点を解決するためになされたものであり、ボディ振動等を原因とするノイズによる誤発音を防止し得る手段を有する電子弦楽器を提供することを目的としている。
【課題を解決するための手段】
【０００７】
この目的を達成するために、請求項１記載の電子弦楽器は、複数の弦の各々について弦振動のピッチと振幅レベルとを検出する弦振動検出手段と、その弦振動検出手段により弦振動の振幅レベルの増大が検出された場合に、その検出されたピッチと振幅レベルとに基づく発音の開始を指示する発音開始指示手段とを備えているものであって、前記弦振動検出手段により所定の弦に対して弦振動の振幅レベルの増大が検出された時刻と他の弦に対して弦振動の振幅レベルの増大が検出された時刻との差、並びに、前記弦振動検出手段により所定の弦に対して検出された弦振動の振幅レベルと他の弦に対して検出された弦振動の振幅レベルとの差に基づいて、前記所定の弦の振動が他の弦の振動によるものであるか否かを判定する判定手段を備え、前記発音開始指示手段は、前記判定手段により他の弦の振動によるものでないと判定された場合は発音開始を指示し、他の弦の振動によるものであると判定された場合は発音開始を指示しないものである。
【０００８】
この請求項１記載の電子弦楽器によれば、弦振動検出手段により、所定の弦に対して弦振動のピッチと振幅レベルとが検出されると、その弦振動検出手段により、弦振動の振幅レベルの増大が検出された場合に、判定手段により、その所定の弦に対して検出された弦振動が他の弦の振動によるものであるかが判定される。この判定手段では、該弦振動検出手段により所定の弦の振幅レベルの増大が検出された時刻と他の弦の振幅レベルの増大が検出された時刻との差、並びに、前記弦振動検出手段により所定の弦に対して検出された弦振動の振幅レベルと他の弦に対して検出された弦振動の振幅レベルとの差に基づいて、前記所定の弦の振動が他の弦の振動によるものであるか否かを判定するものである。この判定手段により他の弦の振動によるものでないと判定された場合は、発音開始手段により発音開始が指示され、一方で、他の弦の振動によるものであると判定された場合は、発音開始手段による発音開始の指示は行なわれない。
【０００９】
請求項２記載の電子弦楽器は、請求項１記載の電子弦楽器において、前記判定手段は、前記弦振動検出手段により所定の弦に対して弦振動の振幅レベルの増大が検出された時刻と他の弦に対して弦振動の振幅レベルの増大が検出された時刻との差が所定の閾値以下であり、且つ、前記所定の弦に対して前記弦振動検出手段により検出された弦振動の振幅レベルが他の弦に対して検出された弦振動の振幅レベルの所定の割合以下である場合に、前記所定の弦の振動が他の弦の振動によるものであると判定するものである。
【発明の効果】
【００１０】
請求項１記載の電子弦楽器によれば、弦振動検出手段により所定の弦に対して弦振動の振幅レベルの増大が検出された時刻と他の弦に対して弦振動の振幅レベルの増大が検出された時刻との差、並びに、前記弦振動検出手段により所定の弦に対して検出された弦振動の振幅レベルと他の弦に対して検出された弦振動の振幅レベルとの差に基づいて、判定手段により、他の弦による振動に起因するものであると判定されると、発音開始の指示がなされない。よって、他の弦の打弦によって生じるボディ振動等を原因とするノイズに起因する誤発音を防止し得る。従って、誤発音による不自然な演奏にならないという効果がある。
【００１１】
請求項２記載の電子弦楽器によれば、請求項１記載の電子弦楽器の奏する効果に加えて、所定の弦に対して弦振動の振幅レベルの増大が検出された時刻と他の弦に対して弦振動の振幅レベルの増大が検出された時刻との差が所定の閾値以下であり、且つ、該所定の弦の振幅レベルが他の弦の振幅レベルの所定の割合以下であると判定手段により判定された場合には、発音開始の指示がなされない。よって、他の弦の打弦によって生じるボディ振動等を原因とするノイズに起因する誤発音をさらにより精度良く防止し得るという効果がある。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の好ましい実施例について、添付図面を参照して説明する。図１は、本発明の電子弦楽器１の構成を示すブロック図である。
【００１３】
図１に示すように、ピックアップ４によって検出された弦の振動は、アンチエイリアス用のローパスフィルタ（ＬＰＦ）６を介してＡ／Ｄ変換器（Ａ／Ｄ）８に供給される。Ａ／Ｄ変換器は、所定のサンプリング周期（例えば３２ＫＨｚ）で弦振動をデジタル化し、デジタル弦信号としてＤＳＰ１０に供給する。なお、図１には、ピックアップ４と、ＬＰＦ６と、Ａ／Ｄ変換器８とを示したが、実際には、これらは電子弦楽器１の全ての弦にそれぞれ設けられ、デジタル化された各弦の信号がそれぞれＤＳＰ１０に供給される。ＤＳＰ１０は、各弦について、ピッチおよびエンベロープレベルを検出し、これらの検出値をＣＰＵ５０に供給する。
【００１４】
ＣＰＵ５０は、これらの検出値を入力し、所定の処理を行って、ＭＩＤＩインタ−フェイス５８を介して、ノートオン、ノートオフ、ベンドなどのＭＩＤＩメッセージを出力する。これらのＭＩＤＩメッセージは、図示しない音源に入力され、音源は、これらのメッセージに対応する楽音を発生する。
【００１５】
ＲＯＭ５２は、このＣＰＵ５０が実行するプログラムや、検出されたピッチと音階との対応関係を示すテーブルや固定値などを記憶するものである。ＲＡＭ５４は、ＣＰＵ５０がプログラムを実行する際に使用するワークエリアとして使用される読み書きのできるメモリであり、後述する各種フラグが記憶されたり、リングバッファとして使用される。
【００１６】
操作子５６は、演奏者が各種パラメータを設定するもので、音量を設定するボリュームや、音色を選択するスイッチなどが備えられ、ＣＰＵ５０がこれらの操作子の設定状態を読み込んで音源に送るＭＩＤＩメッセージのパラメータを制御する。
【００１７】
以下の説明では、一つの弦から得られるデジタル弦信号について説明するが、他の弦についてはそれぞれ独立して同じ処理が行われるものである。
【００１８】
図２は、ＤＳＰ１０の処理機能を説明するもので、図３に示すＤＳＰ１０の各部の波形と対比しながら説明する。Ａ／Ｄ変換器８から供給されたデジタル弦信号は、乗算器１１，１２，１３，１４，１５と、１サンプル遅延回路１６，１７，１８，１９と、加算器２０とによって構成されるローパスフィルタ２１に供給される。このローパスフィルタ２１は、デジタル弦信号を波形成形するために設けられている。このローパスフィルタ２１の出力信号は、正のピーク検出手段２２と、負のピーク検出手段２４とに供給される。正のピーク検出手段２２は、加算器２６を有し、この加算器２６の減算入力端子にローパスフィルタ２１の出力信号が供給されている。この加算器２６の出力信号には、乗算器２８によって係数Ｋが乗算される。この係数（０＜Ｋ＜１）は、制御部３０から供給される。制御部３０は、加算器２６の出力信号が負のとき、大きな値のＫ（例えば、０．９９）を乗算器２８に供給し、加算器２６の出力信号が正のとき、小さな値のＫ（例えば、０．０１）を乗算器２８に供給する。
【００１９】
この乗算器２８の出力信号は、加算器３２の減算入力端子に供給され、この加算器３２の出力信号は、１サンプル遅延回路３４（遅延回路３４）に供給され、この遅延回路３４の出力信号は、加算器３２の加算入力端子に供給されている。また、この遅延回路３４の出力信号は、加算器２６の加算入力端子にも供給されている。従って、これら加算器２６，３２と、乗算器２８と、遅延回路３４とは、回帰型デジタルフィルタを構成している。
【００２０】
ピーク検出手段２２において、Ｋの値が０に近ければ、加算器２６の出力は、入力値と今までの積分値（現サンプルまでの積分値）との差に近い値となり、Ｋの値が１に近ければ、加算器２６の出力は、入力値とその１サンプル前の値との差に近い値になる。
【００２１】
ここで、仮に、図３Ａに示すような正弦波信号がローパスフィルタ２１から加算器２６に入力された場合、当初には遅延回路３４の出力は零であるので、加算器２６の出力は、零から入力正弦波を減算した値となり、これは、図３Ｂに示すように負となる。従って、Ｋの値は大きく、例えば１に近い値となる。そのため、積分回路の積分作用が小さくなり、図３Ｃに示すように、正弦波の値が大きくなるに従って、加算器３２の出力も大きくなる。この加算器３２の出力を遅延回路３４で１サンプル遅延させた信号から入力正弦波を減算した加算器２６の出力は、入力正弦波が正のピークに到達するまでは負の値を維持する。
【００２２】
入力正弦波が正のピークに到達し、以後、入力正弦波の値が小さくなると、加算器２６の出力信号が負から正に変化し、Ｋの値は０に近い値となる。これによって積分回路の積分作用が大きくなり、加算器３２の出力信号は、図３Ｂに示すように、入力正弦波の正のピーク値までを積分した値から徐々に値が小さくなっていく。これは、Ｋの値が完全に１ではないからである。この間、加算器３２の出力の遅延回路３４による遅延出力（正の値）から、入力正弦波（正のピークから値が減少しつつある）を加算器２６によって減算するので、加算器２６の出力は正の値を維持している。
【００２３】
そして、入力正弦波が負のピークを越えて、増加に転じると、加算器２６の出力も正の値であるが、減少を始め、入力正弦波が負から正に変わった頃に、加算器２６の出力は負の値となる。これによって、Ｋの値は１に近い値となり、積分回路の積分機能は小さくなり、加算器３２の出力は入力正弦波に追従して値が大きくなる。この間、加算器２６の出力は負の値を維持し、入力正弦波が正のピークに到達すると、加算器２６の出力は負から正に変化する。
【００２４】
以下、同様にして動作するので、入力正弦波の正のピークが、加算器２６の出力の負から正への変化点（零クロス点）に対応する。
【００２５】
また、ピーク検出手段２４は、ピーク検出手段２２とほぼ同様に構成されている。同等部分には、同一符号の末尾にａの符号を付して、その説明を省略する。但し、ピーク検出手段２２では、加算器２６の減算入力端子にデジタル弦信号を、加算端子に遅延回路３４の出力信号が供給されていたのに対し、ピーク検出手段２４では、加算器２６ａの２つの加算入力端子に遅延回路３４ａの出力信号及びデジタル弦信号が供給されている点で異なる。これは、ローパスフィルタ２１の出力信号の負のピークを検出するためである。
【００２６】
なお、参考のため、図３Ｄに加算器２６ａの出力を、図３Ｅに加算器３２ａの出力を示す。図３Ｄ及び図３Ｅからも、加算器２６ａの出力が負から正に変化する変化点（零クロス点）が、入力信号のピークに対応することが判る。
【００２７】
これらのピーク検出手段２２，２４の出力信号は、ピッチ測定手段３６に供給される。ピッチ測定手段３６は、零クロス検出手段３８，４０（ゼロクロス３８，４０）を有し、零クロス検出手段３８は、ピーク検出手段２２からの出力信号を受け、これが負から正に変化する零クロスのとき、出力信号を発生する。同様に、零クロス検出手段４０は、ピーク検出手段２４からの出力信号を受け、これが負から正に変化する零クロスのとき、出力信号を発生する。
【００２８】
零クロス検出手段３８の出力信号は、ＳＲフリップ・フロップ４２のＲ入力端子に供給され、零クロス検出手段４０の出力信号は、ＳＲフリップ・フロップ４２のＳ入力端子に供給されている。従って、このＳＲフリップ・フロップ４２のＱ出力端子は、図３Ｆに示すように、ローパスフィルタ２１の出力信号の負のピークから正のピークへ向かうまでの間、出力信号を発生する。
【００２９】
このＳＲフリップ・フロップ４２の出力信号は、カウント手段４３（カウンタ４３）に供給される。カウント手段４３は、ＳＲフリップ・フロップ４２のＱ出力端子のハイの期間およびローの期間のサンプル数をカウントする。このカウント値によって弦の振動のピッチを検出することができる。但し、サンプル数は、サンプリング周波数による分解能しか持たないため、ピッチ検出の精度が不足する場合がある。そのような場合には、上記したような零クロス検出において、サンプル間の補間をし、サンプル数の少数部分として拡張すればよい。このようにして検出されたピッチは、ＰＩＴＣＨ出力からバスを介してＣＰＵ５０に供給され、ＳＲフリップ・フロップ４２の出力信号（図３Ｆ）は、ＣＰＵ５０に対する割り込み信号ＩＮＴとして供給される。
【００３０】
一方、Ａ／Ｄ変換器８から供給されたデジタル弦信号は、エンベロープフォロア４６に入力され、エンベロープレベルが検出される。このエンベロープフォロア４６は、供給されたデジタル弦信号を整流し、さらに積分するものであって、検出されたエンベロープレベルは、ＥＮＶ出力からバスを介してＣＰＵ５０に供給される。
【００３１】
図４は、ＤＳＰ１０のＳＲフリップ・フロップ４２の出力信号により起動されるピーク割り込みルーチンを表すフローチャートである。この電子弦楽器１の電源が投入されることにより起動されるメインルーチンは、図示しないが、メインルーチンでは、操作子５６により設定されたパラメータを読み込んだり、ここで説明するピーク割り込みルーチンを受け付けるように設定するなどの処理を行う。このメインルーチンは、本発明の要旨ではないので、その説明を省略する。
【００３２】
以下、このピーク割り込みルーチンの説明は、説明を容易にするために、電子弦楽器１における所定の１本の弦についてのみ説明するが、他の弦に対しても同様の処理がなされているものとする。
【００３３】
この割り込みルーチンでは、まず、その割り込み時刻をＲＡＭ５４の所定の記憶領域に記憶する（Ｓ１）。なお、この割り込み時刻は、ＣＰＵ５０に備えられている非図示のタイマによってカウントされる。
【００３４】
Ｓ１の処理後、エンベロープフォロア４６が供給するエンベロープレベルをリングバッファＡに記憶する（Ｓ２）。なお、リングバッファは、ＲＡＭ５４の内部の所定の記憶領域であり、検出されたエンベロープレベルの値を数十個記憶するものである。このリングバッファは、電子弦楽器１における各弦毎にそれぞれ独立して設けられており、リングバッファＡをはじめとする各リングバッファは、対応する弦に対して検出されたエンベロープの値をそれぞれ記憶する。
【００３５】
次にフラグであるＧＡＴＥが「１」に設定されているか否かを確認する（Ｓ４）。このフラグＧＡＴＥは、ＲＡＭ５４に設けられた有効なデジタル弦信号が検出されたか否かを示すフラグであり、各弦毎のフラグＧＡＴＥがＲＡＭ５４に設けられている。このフラグＧＡＴＥは、有効なデジタル弦信号が検出されていない状態では「０」を有し、有効なデジタル弦信号が検出されると、このフラグＧＡＴＥは「１」に設定される。なお、電子弦楽器１の電源投入時には、フラグＧＡＴＥは初期状態として「０」に設定されている。
【００３６】
Ｓ４の処理により確認した結果、フラグＧＡＴＥが「１」ではない場合は（Ｓ４：Ｎｏ）、リングバッファＡを調べ、エンベロープレベルが急激に大きくなったかを否かを確認し（Ｓ６）、エンベロープレベルが急激に大きくなったと判断した場合は（Ｓ６：Ｙｅｓ）、その原因が、隣接する弦の振動に起因するボディ振動等により生じたノイズによるものであるか否か、具体的には、Ｓ６の処理により確認されたエンベロープの急激な増大は、有効なデジタル弦振動によるもの、又は、隣接する弦の振動に起因するボディ振動等によって生じたノイズによるもののいずれであるかを確認する（Ｓ７）。なお、このＳ７の判断処理の詳細については後述する。
【００３７】
Ｓ７の処理により確認した結果、Ｓ６で確認されたエンベロープレベルが急激に大きくなった原因がボディ振動等によって生じたノイズでない、即ち、有効なデジタル弦信号であると判断された場合には（Ｓ７：ノイズでない）、フラグＧＡＴＥを「１」に設定し（Ｓ８）、Ｓ１の処理で記憶した割り込み時刻をGateOnTimeとしてＲＡＭ５４の所定の記憶領域に記憶する（Ｓ９）。
【００３８】
Ｓ９の処理後、ピッチが確定したか否かを判断する（Ｓ１０）。このピッチが確定したか否かを判断する処理は、カウント手段４３がカウントした値が、安定した値を供給するようになったか否かを判断するものであるが、本発明の要旨ではないので、詳細な説明は省略する。
【００３９】
ピッチが確定したと判断した場合は、フラグであるNoteStateを「１」に設定する（Ｓ１２）。ここで、フラグNoteStateは、ピッチが確定したか否かを示すフラグであり、ピッチが確定した場合には「１」に設定され、ピッチが確定されていない場合には「０」が設定される。
【００４０】
Ｓ１２の処理により、フラグNoteStateが「１」に設定されると、その確定したピッチに対応する音階（ノートナンバー）と、エンベロープレベルに対応するベロシティ値を取得し、これらのパラメータを含むノートオンメッセージをＭＩＤＩインターフェイス５８から出力する（Ｓ１４）。確定したピッチに対応する音階は、ＲＯＭ５２に記憶されているピッチと音階の関係を表すテーブルから読出すことにより取得される。また、ピッチが確定した時は、すでにエンベロープレベルが最大値をとっていることがあるので、ベロシティ値は、リングバッファＡに記憶されているエンベロープレベル値のうち最大値に基づいて決定される。
【００４１】
一方で、Ｓ７の処理により、エンベロープレベルが急激に大きくなった原因が、隣接する弦の振動に起因するボディ振動等により生じたノイズであると判断された場合には（Ｓ７：ノイズである）、この割り込みルーチンを終了する。よって、このＳ７の処理により、エンベロープレベルの急激な増大が、隣接する弦の振動に起因するノイズによるものであると判断された場合には、ＭＩＤＩインターフェイス５８からノートオンメッセージは出力されない。よって、隣接する弦の振動に起因するノイズが原因で生じる誤発音を防止し得る。
【００４２】
一方、Ｓ６の処理で、エンベロープレベルが急激に大きくなったと判断しなかった場合（Ｓ６：Ｎｏ）とＳ１０の処理でピッチが確定されなかったと判断した場合（Ｓ１０：Ｎｏ）は、このルーチンを終了する。
【００４３】
また、Ｓ４の処理で、フラグＧＡＴＥが１に設定されていると判断した場合（Ｓ４：Ｙｅｓ）は、リングバッファＡを調べ、エンベロープレベルが所定の閾値Ａより小さくなったか、またはエンベロープレベルは閾値Ａより大きくても減衰が急であるか否かを判断する（Ｓ１６）。エンベロープレベルが閾値Ａより小さくなった、またはエンベロープレベルは閾値Ａより大きいが減衰が急であると判断した場合（Ｓ１６：Ｙｅｓ）は、フラグＧＡＴＥを「０」に設定する（Ｓ１８）。
【００４４】
次に、フラグNoteStateが「１」に設定されているか否かを判断する（Ｓ２０）。フラグNoteStateが「１」に設定されていないと判断した場合（Ｓ２０：Ｎｏ）は、このルーチンを終了する。これは、一度エンベロープレベルが急激に大きくなったが、すぐに小さくなった場合であり、ノイズなどが入力されたためである。
【００４５】
一方、Ｓ２０の処理で、フラグNoteStateが「１」に設定されていると判断した場合（Ｓ２０：Ｙｅｓ）は、フラグNoteStateを「０」に設定し（Ｓ２２）、ノートオン情報に含まれていたノートと同じノートのノートオフ情報を送信する（Ｓ２８）。
【００４６】
また、Ｓ１６の処理で、エンベロープレベルが閾値Ａより大きく、且つ減衰が急ではないと判断した場合（Ｓ１６：Ｎｏ）は、ピッチ変化があったか否か、即ち、変化したピッチが確定したか否かを判断する（Ｓ３０）。Ｓ３０の処理においてピッチが確定していないと判断した場合（Ｓ３０：Ｎｏ）は、何もせずにこの処理を終了し、一方で、ピッチが確定したと判断した場合（Ｓ３０：Ｙｅｓ）は、フラグNoteStateが「１」か否かを判断する（Ｓ３２）。このフラグNoteStateが「１」ではない場合は、エンベロープレベルは急激に大きくなったが、まだピッチが確定されていなかったということであるので、フラグNoteStateを「１」に設定し（Ｓ３８）、その確定したピッチに対応する音階（ノートナンバー）と、エンベロープレベルに対応するベロシティ値を得、これらのパラメータを含むノートオンメッセージをＭＩＤＩインターフェイス５８から出力する（Ｓ４０）。
【００４７】
一方、Ｓ３２の処理でNoteStateが「１」であると判断した場合（Ｓ３２：Ｙｅｓ）は、今回検出されたピッチに対応するベンド情報を音源へ送信し（Ｓ３６）、この処理を終了する。
【００４８】
ここで、図５を参照して、このＳ７の判断処理について詳細に説明する。図５は、上述のＳ７の判断処理部分の流れを説明するフローチャートである。このＳ７の判断処理は、図５に示すように、Ｓ７１〜Ｓ７３の判断処理が行なわれることにより、Ｓ６の処理で確認されたエンベロープが急激に大きくなった原因が、隣接する弦の振動に起因するノイズであるか否かを判断する処理である。
【００４９】
Ｓ６の判断処理において「Ｙｅｓ」の分岐が選択され、Ｓ７の判断処理へ処理が移行すると、まず、現在検出中の弦に隣接する弦に対するフラグＧＡＴＥが「１」であるか否かを確認する（Ｓ７１）。ここで、Ｓ７１の処理では、例えば、現在検出中の弦が第１弦であれば、隣接する弦である第２弦のフラグＧＡＴＥの値が確認され、また、現在検出中の弦が第２弦であれば、隣接する弦である第１弦及び第３弦のフラグＧＡＴＥの値が確認される。
【００５０】
Ｓ７１の処理により確認した結果、隣接する弦に対するフラグＧＡＴＥが「１」でなければ（Ｓ７１：Ｎｏ）、Ｓ６の処理により確認されたエンベロープの急激な増大は、隣接する弦の振動が原因になり得ないので、その隣接する弦の振動に起因するボディ振動等によって生じたノイズではないと判断される。
【００５１】
一方、Ｓ７１の処理により確認した結果、隣接する弦に対するフラグＧＡＴＥが「１」である場合には（Ｓ７１：Ｎｏ）、その隣接する弦のフラグＧＡＴＥが「１」に設定された時間（GateOnTime）とＳ１の処理により記憶した割り込み時刻との時間差は所定の閾値（例えば、３ｍｓ）以下であるか否かを確認する（Ｓ７２）。
【００５２】
Ｓ７２の処理により確認した結果、隣接する弦における現在のGateOnTimeとＳ１の処理により記憶した割り込み時刻との時間差が所定の閾値を越えていれば（Ｓ７２：Ｎｏ）、Ｓ６の処理により確認されたエンベロープの急激な増大は、隣接する弦の振動に起因するものではなく、独立して生じたものであるので、その隣接する弦の振動に起因するボディ振動等によって生じたノイズではないと判断される。
【００５３】
一方、Ｓ７２の処理により確認した結果、隣接する弦における現在のGateOnTimeとＳ１の処理により記憶した割り込み時刻との時間差が所定の閾値以下である場合には（Ｓ７２：Ｙｅｓ）、リングバッファＡに記憶される現在のエンベロープレベルの値が、隣接する弦における現在のエンベロープレベルの値より十分に小さい（例えば、半分以下である）か否かを確認する（Ｓ７３）。
【００５４】
Ｓ７３の処理により確認した結果、リングバッファＡに記憶される現在のエンベロープレベルの値が、隣接する弦における現在のエンベロープレベルの値より十分に小さいと判断されないならば（Ｓ７３：Ｎｏ）、Ｓ６の処理により確認されたエンベロープの急激な増大は、隣接する弦の振動とは無関係に打弦されたものであるので、その隣接する弦の振動に起因するボディ振動等によって生じたノイズではないと判断される。
【００５５】
一方、Ｓ７３の処理により確認した結果、リングバッファＡに記憶される現在のエンベロープレベルの値が、隣接する弦における現在のエンベロープレベルの値より十分に小さければ（Ｓ７３：Ｙｅｓ）、Ｓ６の処理により確認されたエンベロープの急激な増大は、その隣接する弦の振動に起因するボディ振動等によって生じたノイズであると判断される。
【００５６】
従って、このＳ７の判断処理によれば、（１）隣接する弦における現在のGateOnTimeとＳ１の処理により記憶した割り込み時刻との時間差が閾値以下であり、且つ、（２）リングバッファＡに記憶される現在のエンベロープレベルの値が、隣接する弦における現在のエンベロープレベルの値より十分に小さい場合には、Ｓ６の処理により確認されたエンベロープの急激な増大は、隣接する弦の振動によって生じるボディ振動等に起因するノイズであると判断される。このように、エンベロープの急激な増大に対して、他の弦、特に、隣接する弦の振動に起因するボディ振動等によって生じたノイズであるか否かを検証することによって、そのような、他の弦の振動が基で生じたノイズにより生じる誤発音を防止させることができる。
【００５７】
以上のように、本発明の電子弦楽器によれば、所定の弦に対して検出された弦振動が、他の弦、特に、隣接する弦の振動に起因して発生するノイズによるものであると判定されると、発音開始の指示がされないので、そのような他の弦の振動に起因するノイズによる誤発音を防止し得、不自然な演奏となることを抑制することができる。
【００５８】
なお、請求項１記載の発音開始指示手段は、ピーク割り込みルーチン（図４）におけるＳ１４の処理が該当し、請求項１記載の判定手段としては、ピーク割り込みルーチン（図４）におけるＳ７の処理（図５に示したＳ７１〜Ｓ７３の処理に相当する）が該当する。
【００５９】
以上、実施例に基づき本発明を説明したが、本発明は上述した実施例に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変更が可能であることは容易に推察できるものである。
【００６０】
例えば、上記実施例では、Ｓ７の処理において、所定の弦に隣接する弦の振動による影響のみを考慮するように構成したが、その所定の弦以外の全ての弦の振動の影響を考慮するように構成してもよい。
【図面の簡単な説明】
【００６１】
【図１】本発明の電子弦楽器１の構成を示すブロック図である。
【図２】ＤＳＰの処理機能を説明する図である。
【図３】ＤＳＰにおいて処理された各部の波形を示す図である。
【図４】ＣＰＵの割り込みルーチンを表すフローチャートである。
【図５】図４のＳ７の判断処理の詳細を示す図である。
【図６】ダウンストロークされた第２弦及び第１弦に対して検出されたオシロ波形図である。
【符号の説明】
【００６２】
１            電子弦楽器
４            ピックアップ（弦振動検出手段）
１０          ＤＳＰ
５０          ＣＰＵ
５２          ＲＯＭ
５４          ＲＡＭ
【図１】
2005189369.tif 000003
【図２】
2005189369.tif 000004
【図３】
2005189369.tif 000005
【図４】
2005189369.tif 000006
【図５】
2005189369.tif 000007
【図６】
2005189369.tif 000008