(57)【特許請求の範囲】
【請求項１】
音高情報を入力するための鍵を備えた鍵盤と、
該鍵盤の鍵に加えられた押鍵力を検出する押鍵力検出手段と、
該検出された押鍵力を積分して仮想的なハンマの速度を算出するハンマ速度算出手段と、
該算出されたハンマ速度に基づいて仮想的なハンマの動作位置を算出するハンマ動作位置算出手段と、
該算出されたハンマ動作位置およびハンマ速度に基づいて当該鍵に対応する楽音を発音する楽音発音手段と
を有することを特徴とする電子楽器。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、押鍵に応じた楽音の発音を行う電子楽器に関する。
【０００２】
【従来の技術】
従来、押鍵に応じて楽音の発音を行う電子楽器として、たとえば特開平６−９５６７６号公報に記載のものが知られている。かかる電子楽器は、鍵の移動距離（変位）を元にして仮想のハンマの位置を計算し、この計算されたハンマの位置に基づいて楽音を発音していた。
【０００３】
【発明が解決しようとする課題】
しかしながら、上記従来の電子楽器では、鍵の移動距離を基にして楽音を発音するので、速くて短い押鍵操作をした場合に当該鍵が発音すべき条件にあっても発音されないことがあった。
【０００４】
図５は、鍵の変位または鍵に加えた押鍵力の推移を示す図であり、図中、縦軸は変位または押鍵力の大きさを示し、横軸は時間を示している。曲線Ａ，Ｂは、ともに鍵の変位の推移を示すグラフであり、曲線Ａは、押鍵し続けたときの鍵の変位を示し、曲線Ｂは、キーオフの時点ＫＯＦＦで離鍵したときの鍵の変位を示している。また、曲線Ｃ，Ｄは、ともに押鍵力の推移を示すグラフであり、曲線Ｃは、曲線Ａに対応する押鍵力の推移を示し、曲線Ｄは、曲線Ｂに対応する押鍵力の推移を示している。同図から分かるように、鍵が与えられた押鍵力と鍵の変位とは比例していない。これは、鍵が慣性を有し且つ鍵を含む系が完全な剛体でないために、鍵に与えられた力はすべて鍵の変位に用いられずに、その一部は鍵を変形させることに用いられるからである。したがって、鍵の変位を基に発音を行おうとすると、速くて短い押鍵操作、すなわち図５に示すように、押鍵力が鍵の変形に用いられている（図中、Ｅで示す部分）ときにキーオフされるような押鍵操作では、発音すべき条件に達している（図中、キーオフの時点ＫＯＦＦは発音すべき条件に十分到達している）にも拘わらず、楽音の発音がなされないことがあった。
【０００５】
本発明は、上記問題に鑑みてなされたもので、発音すべき条件に到達している押鍵力が与えられたすべての鍵の楽音を発音させることが可能な電子楽器を提供することを目的とする。
【０００６】
【課題を解決するための手段】
上記目的を達成するため本発明は、音高情報を入力するための鍵を備えた鍵盤と、該鍵盤の鍵に加えられた押鍵力を検出する押鍵力検出手段と、該検出された押鍵力を積分して仮想的なハンマの速度を算出するハンマ速度算出手段と、該算出されたハンマ速度に基づいて仮想的なハンマの動作位置を算出するハンマ動作位置算出手段と、該算出されたハンマ動作位置およびハンマ速度に基づいて当該鍵に対応する楽音を発音する楽音発音手段とを有することを特徴とする。
【０００７】
本発明の構成に依れば、押鍵力検出手段により、鍵盤の鍵に加えられた押鍵力が検出され、ハンマ速度検出手段により、その検出された押鍵力を積分することにより仮想的なハンマの速度が検出され、ハンマ動作位置算出手段により、その算出されたハンマ速度に基づいて仮想的なハンマの動作位置が算出され、楽音発生手段により、その算出されたハンマ動作位置およびハンマ速度に基づいて当該鍵に対応する楽音が発音されるので、鍵に与えられた押鍵力を正確に算出でき、この押鍵力に応じて楽音を発音させることができる。
【０００８】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【０００９】
図１は、本発明の実施の一形態に係る電子楽器の概略構成を示すブロック図である。
【００１０】
同図において、本実施の形態の電子楽器は、音高情報を入力するための鍵盤１と、各種パラメータ情報等を入力するためのスイッチ群や各種情報を表示するディスプレイ等が配設された操作パネル２と、時間を計時するとともに、予め設定された時間毎にＣＰＵ６に対してタイマ割り込み信号を出力するタイマ３と、鍵盤１の各鍵の押下状態を検出するための鍵インタフェース４と、操作パネル２の各スイッチの状態を検出したり、各種情報を前記ディスプレイに表示できるデータにデータ変換したりするためのパネルインタフェース５と、装置全体の制御を司るＣＰＵ６と、該ＣＰＵ６が実行する制御プログラムやテーブルデータ等を記憶するＲＯＭ７と、各種パラメータ情報、演算結果、および各種入力情報等を一時的に記憶するＲＡＭ８と、前記鍵盤１から入力された音高情報や各種パラメータに応じて楽音信号を合成する楽音合成回路９と、該楽音合成回路９からの楽音信号を音響に変換する、たとえばスピーカ等からなるサウンドシステム１０とにより構成されている。そして、各構成要素４〜９は、バス１１を介して相互に接続されている。
【００１１】
図２は、前記鍵盤１の構造を示す断面図である。
【００１２】
同図に示すように、鍵２１は、たとえば樹脂により形成され、その後端部に設けられた鍵支持部２１ａを介して、鍵支持部材である鍵盤フレーム２２に上下動自在に係合されている。鍵２１には、ハンマ回転軸２４を介してハンマ２３が回転自在に連結されている。ハンマ２３は、鍵２１に加えられた押鍵力Ｆを押鍵力検出部２５に伝達するための押鍵力伝達部２３ａを有し、また、ハンマ２３の重心は長手方向の先端部２３ｂにあるようにしている。
【００１３】
フレーム２２には、更に、演奏者が押鍵したときに鍵２１が横揺れするのを防止するための鍵ガイド２６、ハンマ２３の回転範囲を規制するためのハンマ上限ストッパ２７およびハンマ下限ストッパ２８が配設されている。ハンマ下限ストッパ２８は、本実施の形態では、たとえばクッション部材（図示せず）が内蔵された圧電センサにより構成され、位置センサとしての役割をも果たしている。ハンマ２３には上述のように重心が与えられているため、鍵２１に力が加わっていないときには、ハンマ２３はハンマ下限ストッパ２８に当接されている。したがって、ハンマ下限ストッパ２８が位置センサとして機能するときには、ＣＰＵ６は、その圧電センサの出力をチェックし、圧力が加わっていない場合に鍵２１が押鍵されていると判別し、圧力が加わっている場合に鍵２１が離鍵されていると判別する。
【００１４】
押鍵力検出部２５は、各鍵毎に独立した、一端（両端でもよい）が固定された梁２５ａと、ハンマ２３の押鍵力伝達部２３ａを支持するために該梁２５ａ上に設けたハンマ支持部２５ｂと、ハンマ支持部２４ａに加わった押鍵力を算出するために、梁２５ａの歪み（変位でもよい）を検出するフォトリフレクタ２５ｃとにより主として構成されている。本実施の形態では、梁２５ａはバネ定数ｋがかなり大きい板バネにより形成され、具体的には、たとえば２ｋｇ重の力を加えたときに０．５ｍｍ程度歪むものが用いられている。これは、ハンマ支持部２５ｂには、押鍵力伝達部２３ａが常に当接され、実際に押鍵力伝達部２３ａに押鍵力Ｆが加えられたときにのみ、その押鍵力Ｆを検出するようにするためである。このように、押鍵力検出部２５は、押鍵力Ｆを各鍵毎に独立に検出して、その検出信号を前記鍵インターフェイス４に送出する。
【００１５】
鍵盤１の各構成要素からなる系は、たとえば鍵２１が樹脂製であることから明らかなように、完全な剛体ではないため、前記図５で説明した鍵に与えられた押鍵力と鍵の変位とは比例関係ではないということは、この系でも成り立っている。
【００１６】
以上のように構成された電子楽器が行う制御処理を、以下、図３および４を参照して説明する。
【００１７】
図３は、ＣＰＵ６が実行するタイマ割り込み処理の手順を示すフローチャートであり、本タイマ割り込み処理は、タイマ３が所定周期ｆ（Ｈｚ）で発生する割り込み信号に応じて実行される。
【００１８】
同図において、まず、ハンマ位置Ｐ［ＫＣ］が、所定値０．０４ｍより小さいか否かを判別する（ステップＳ１）。ここで、ハンマ位置Ｐ［ＫＣ］は、前記ＲＡＭの所定位置に確保された領域の内容を示し、具体的には、キーコードＫＣの鍵のハンマの位置を示している。すなわち、ＲＡＭ８には、鍵盤１に配設された鍵の個数のハンマ位置Ｐ［ＫＣ］記憶領域が確保されている。これは、本実施の形態では、鍵の押下状態に拘わらずすべての鍵について、本演算処理を行っているからである。また、所定値０．０４ｍは、ハンマが鍵から離れたか否かを判別するための閾値である。ピアノ等のアコースティック鍵盤楽器では、所定の位置で鍵からハンマが離れ、そのときにハンマに与えられた力に応じた強さでハンマが弦に当たり、楽音が発音される。この所定の位置を各鍵ともに０．０４ｍとしている。
【００１９】
前記ステップＳ１の判別で、Ｐ［ＫＣ］＜０．０４ｍのとき、すなわちハンマが鍵から離れていないときにはステップＳ２に進み、前記フォトリフレクタ２５ｃから検出された歪みに応じて押鍵力を検出し、前記ＲＡＭ８の所定位置に確保された領域Ｆ（以下、この内容も「押鍵力Ｆ」という）に格納する。
【００２０】
続くステップＳ３では、まず、次式により押鍵力Ｆからハンマ２３に加わる力を算出し、この算出値を前記ＲＡＭ８の所定位置に確保された領域Ｆ１（以下、この内容を「ハンマ印加力Ｆ１」という）に格納する。
【００２１】
Ｆ１  ＝  ０．２×Ｆ
ただし、値０．２は、押鍵力Ｆをハンマ２３の位置に応じて換算し、ハンマ印加力Ｆ１を算出するための換算定数である。このような換算定数を用いるのは、ハンマ２３が質点でない剛体であるとともに、その重心が、前述のように先端部２３ｂ（図２参照）にあるためである。
【００２２】
次に、次式によりハンマ２３の速度を算出し、前記ＲＡＭ８の所定位置に確保された領域Ｖ［ＫＣ］（以下、この内容を「ハンマ速度Ｖ［ＫＣ］」という）に格納する。
【００２３】
Ｖ［ＫＣ］  ＝  Ｖ［ＫＣ］＋（Ｆ１−０．１４７）／０．０１５ｆ
ただし、値０．１４７（ｋｇ重）は、ハンマ２３に加わる重力（ハンマ２３の質量×重力加速度）を示し、値０．０１５（ｋｇ）は、ハンマの質量を示し、値ｆ（Ｈｚ＝１／ｓ）は、前記割り込み周波数を示している。この数式で、（Ｆ１−０．１４７）を求めるのは、ハンマ２３に加わっている実質的な力を算出するためであり、この実質的な力を値０．０１５ｆで除算するのは、１／ｆ（ｓ）間にハンマ２３に加わったハンマ２３の速度を算出するためである。そして、この算出した１／ｆ（ｓ）間の速度を前回のハンマ速度Ｖ［ＫＣ］に加算することにより、現在のハンマ速度Ｖ［ＫＣ］を算出することができる。
【００２４】
さらに、この現在のハンマ速度Ｖ［ＫＣ］を用いて、次式により現在のハンマ位置Ｐ［ＫＣ］を算出し、この算出値でハンマ位置Ｐ［ＫＣ］を更新する。
【００２５】
Ｐ［ＫＣ］  ＝  Ｐ［ＫＣ］＋Ｖ［ＫＣ］／ｆ
ただし、値ｆ（Ｈｚ）は、前記割り込み周期を示している。この数式で、Ｖ［ＫＣ］／ｆにより、１／ｆ（ｓ）間にハンマ２３が移動した位置が算出され、この算出した位置を前回のハンマ位置Ｐ［ＫＣ］に加算することにより、現在のハンマ位置Ｐ［ＫＣ］が算出される。
【００２６】
続くステップＳ４では、ハンマ位置Ｐ［ＫＣ］が“０”以下か否かを判別し、Ｐ［ＫＣ］＞０のときには直ちに本割り込み処理を終了し、一方、Ｐ［ＫＣ］≦０のときには、ハンマ位置Ｐ［ＫＣ］およびハンマ速度Ｖ［ＫＣ］を“０”で初期化した（ステップＳ５）後に、本割り込み処理を終了する。
【００２７】
前記ステップＳ１の判別でＰ［ＫＣ］≧０．０４ｍのとき、すなわちハンマが鍵から離れたときにはステップＳ６に進み、まず、次式によりハンマ速度Ｖ［ＫＣ］を更新する。
【００２８】
Ｖ［ＫＣ］  ＝  Ｖ［ＫＣ］−９．８／ｆ
ただし、値９．８（ｍ／ｓ２）は、重力加速度を示し、値ｆ（Ｈｚ）は、前記割り込み周波数を示している。この数式で、９．８／ｆにより、１／ｆ（ｓ）間にハンマ２３に加わった速度、すなわちハンマ２３が１／ｆ（ｓ）間に自由落下したときに加わった速度が算出される。これは、ステップＳ６に移行したときにはハンマは鍵から離れて、ハンマ２３には何の力も加えられていないものとみなされ、ハンマ２３は自由落下したとみなせるからである。
【００２９】
次に、前記ステップＳ３の第３番目の式と同様に、次式によりハンマ位置Ｐ［ＫＣ］を更新する。
【００３０】
Ｐ［ＫＣ］  ＝  Ｐ［ＫＣ］＋Ｖ［ＫＣ］／ｆ
そして、ステップＳ７では、ハンマ位置Ｐ［ＫＣ］が値０．０５ｍ以上であるか否かを判別する。ここで、値０．０５（ｍ）は、仮想的な弦にハンマ２３が当たるときのハンマ２３の下限値（位置）を示している。
【００３１】
ステップＳ７の判別で、Ｐ［ＫＣ］≧０．０５ｍのとき、すなわちハンマ２３が仮想的な弦に当たったときには、このときのハンマ速度Ｖ［ＫＣ］に応じたベロシティでキーオン（ＫＯＮ）信号を前記楽音合成回路９に送出し（ステップＳ８）、前記ステップＳ５と同様に、ハンマ位置Ｐ［ＫＣ］およびハンマ速度Ｖ［ＫＣ］を“０”で初期化した（ステップＳ９）後に、本割り込み処理を終了する。
【００３２】
前記ステップＳ７の判別で、Ｐ［ＫＣ］＜０．０５ｍのとき、すなわちハンマ２３が仮想的な弦に当たらないときには、このときのハンマ速度Ｖ［ＫＣ］が“０”より大きいか否かを判別する（ステップＳ１０）。
【００３３】
ステップＳ１０の判別で、Ｖ［ＫＣ］＞０のとき、すなわちハンマ２３が垂直上方の速度を有し、仮想的な弦に当たる可能性があるときには直ちに本割り込み処理を終了する一方、Ｖ［ＫＣ］≦０のとき、すなわちハンマ２３が垂直下方の速度しか有さず、仮想的な弦に当たる可能性がないときには前記ステップＳ９に進む。
【００３４】
図４は、ＣＰＵ６が実行するキーオフ（ＫＯＦＦ）処理サブルーチンの手順を示すフローチャートであり、本キーオフ処理サブルーチンは、メインルーチン中の一処理である。メインルーチンにはこれ以外の処理も行われるが、本発明の特徴を説明する上で必須の処理ではないため、この処理以外の処理の説明を省略する。
【００３５】
図４において、まず、発音しているすべての鍵について、当該位置センサからの出力をチェックする（ステップＳ２１）。
【００３６】
次に、ステップＳ２１のチェックで位置センサが離鍵を示したものがあれば、当該鍵に対応するキーコードの楽音、すなわち現在発音中の楽音の発音を中止するために、キーオフ（ＫＯＦＦ）信号を前記楽音合成回路９に送信した（ステップＳ２２）後に、本キーオフ処理サブルーチンを終了する。
【００３７】
以上説明したように本実施の形態では、ハンマ２３に与えられた押鍵力を積分してハンマ２３の速度を算出し、この速度に基づいてハンマ２３の位置を算出し、この位置に基づいて当該鍵に対応する楽音を発音するように構成したので、発音すべき条件に到達している押鍵力が与えられたすべての鍵の楽音を発音させることができる。
【００３８】
なお、本実施の形態では、すべての鍵についてハンマの位置を計算している、すなわちすべての鍵について図３の処理を実行しているが、これに限らず、前記位置センサからの出力をチェックすることにより、動作中のハンマを検出し、このハンマの位置のみを計算するようにすれば、ＣＰＵ１の演算量を減少させることができる。また、検出された押鍵力Ｆが所定の閾値を所定期間超えたときに押鍵の開始を検出し、この押鍵が検出された鍵についてのみハンマの位置を計算するようにすれば、ＣＰＵ１の演算量をさらに減少させることができる。
【００３９】
また、仮想的なハンマの質量を、実際のピアノのように音高に応じて異なるようにし、これにより、演算に用いるパラメータを変更するようにしてもよい。
【００４０】
さらに、図３のステップＳ６で説明したように、鍵と仮想的なハンマとの連携が離れると、重力加速度による演算、すなわちハンマ２３に加わる力（変数）Ｆ１に影響されない演算によってハンマ位置Ｐ［ＫＣ］が計算されるようになるので、予めハンマ２３が仮想的な弦に当たるタイミングを計算することができる。この計算されたタイミングに応じてＣＰＵ１の演算量を減少させたり、発音が予測されるキーオンイベントを発音チャンネルに割り当てる準備をしたりするようにしてもよい。
【００４１】
【発明の効果】
以上説明したように、本発明に依れば、押鍵力検出手段により、鍵盤の鍵に加えられた押鍵力が検出され、ハンマ速度検出手段により、その検出された押鍵力を積分することにより仮想的なハンマの速度が検出され、ハンマ動作位置算出手段により、その算出されたハンマ速度に基づいて仮想的なハンマの動作位置が算出され、楽音発生手段により、その算出されたハンマ動作位置およびハンマ速度に基づいて当該鍵に対応する楽音が発音されるので、発音すべき条件に到達している押鍵力が与えられたすべての鍵の楽音を発音させることが可能となる効果を奏する。
【図面の簡単な説明】
【図１】本発明の実施の一形態に係る電子楽器の概略構成を示すブロック図である。
【図２】図１の鍵盤の構造を示す断面図である。
【図３】図１のＣＰＵが実行するタイマ割り込み処理の手順を示すフローチャートである。
【図４】図１のＣＰＵが実行するキーオフ処理サブルーチンの手順を示すフローチャートである。
【図５】鍵の変位または鍵に加えた押鍵力の推移を示す図である。
【符号の説明】
１  鍵盤
６  ＣＰＵ（押鍵力検出手段、ハンマ速度算出手段、ハンマ動作位置算出手段、楽音発音手段）
９  楽音合成回路（楽音発音手段）
２１  鍵
２５  押鍵力検出部（押鍵力検出手段）
【図１】
0003584585.tif 000002
【図２】
0003584585.tif 000003
【図３】
0003584585.tif 000004
【図４】
0003584585.tif 000005
【図５】
0003584585.tif 000006