(57)【要約】【課題】アコースティックピアノの物理的発音機構を模擬した構成で、アコースティックピアノにおけるリリース制御をリアルに再現する。【解決手段】キーオンデータ、キーオフデータ、離鍵位置データ、ダンパーペダル位置データ、ソステヌートペダルオンデータ、及び、ソステヌートペダルオフデータの少なくともいずれか１のデータを受信部２３が受信したときに、仮想ダンパー位置生成部２４は、受信したデータに基づき、仮想ダンパー位置データを生成して、ＥＧ２９に出力する。仮想ダンパー位置データは、アコースティックピアノの物理的発音機構における弦の振動を抑制するために設けられたダンパーの位置を擬似的に表す。ＥＧ２９は仮想ダンパー位置データのみに基づいて音量エンベロープ信号のリリースレートを制御する。楽音信号の音量は仮想ダンパー位置データに基づくリリースレートに従って減衰する。【選択図】図２
2010113024.tif 000002
【特許請求の範囲】
【請求項１】
弦の振動を抑制するために設けられたダンパーを備えたアコースティックピアノの物理的発音機構を模擬した電子的な楽音発音制御を行う楽音制御装置であって、
発音開始を示すキーオンデータ、消音開始を示すキーオフデータ、離鍵操作時の鍵の操作方向の位置を示す離鍵位置データ、ダンパーペダルの操作方向の位置を示すダンパーペダル位置データ、ソステヌートペダルのオン状態を示すソステヌートペダルオンデータ、及び、ソステヌートペダルのオフ状態を示すソステヌートペダルオフデータの少なくともいずれか１つのデータを供給する供給手段と、
前記供給手段からキーオンデータ、キーオフデータ、離鍵位置データ、ダンパーペダル位置データ、ソステヌートペダルオンデータ、及びソステヌートペダルオフデータの少なくともいずれか１つのデータを受信する受信手段と、
前記受信手段で受信したデータに基づき、仮想ダンパー位置データを生成する仮想ダンパー位置生成手段であって、前記仮想ダンパー位置データは、アコースティックピアノの物理的発音機構における弦の振動を抑制するために設けられたダンパーの位置を擬似的に表すデータであるものと、
前記受信手段で受信したキーオンデータに基づき楽音信号を発生する楽音信号発生手段と、
前記楽音信号発生手段で発生した楽音信号に音量の時間的変化を与える音量エンベロープ信号を付与するエンベロープ付与手段と、
前記仮想ダンパー位置生成手段により生成された仮想ダンパー位置データに基づいて、前記エンベロープ付与手段で用いる音量エンベロープ信号のリリースレートを制御するリリース制御手段と、
前記エンベロープ付与手段によりエンベロープ付与された後の楽音信号を発音する発音手段と
を具えることを特徴とする楽音制御装置。
【請求項２】
前記仮想ダンパー位置生成手段は、
ソステヌートペダルオンデータ又はキーオンデータのいずれか一方のデータを受信したときに、仮想ダンパー位置データの値を所定の最大値に設定する第１設定手段と、
ソステヌートペダルオフデータ及びキーオフデータを受信しているときに、離鍵位置データ及びダンパーペダル位置データを受信した場合には、該受信した離鍵位置データ及びダンパーペダル位置データとを比較して、該比較結果に応じて仮想ダンパー位置データの値を設定し、離鍵位置データ又はダンパーペダル位置データのいずれか一方のみを受信した場合には、該受信した離鍵位置データ又はダンパーペダル位置データに基づき仮想ダンパー位置データの値を設定する第２設定手段と
を含んで構成されることを特徴とする請求項１に記載の楽音制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、自然楽器の音響特性と同様の音響効果を得るようにした楽音制御装置に関し、特に、ピアノの音響特性と同様の音響効果を得るようにしたリリース制御を行うための構成に関する。
【背景技術】
【０００２】
アコースティック（自然楽器）のピアノは、鍵を押し込む操作（押鍵操作）に応じて、該押鍵操作された鍵に対応する弦がハンマによって打撃されて振動することで演奏音を発する。そして、押し込まれた鍵を離す操作（離鍵操作）に応じて、当該鍵に対応するダンパーが対応する弦に接触して当該弦の振動を抑制することで、演奏音が消音される。アコースティックピアノに備わるダンパーは、対応する鍵の操作状態、ダンパーペダルの操作状態、及びソステヌートペダルの操作状態という複数の動作要因によって複合的に制御される。演奏者は、鍵、ダンパーペダル、及びソステヌートペダルを操作して、ダンパーの位置（ダンパーと弦の距離）を制御することで、発音中の楽音の消音（音量の減衰）を制御する。
【０００３】
一方、電子的に楽音を生成する電子楽器においては、発音すべき楽音信号の音量の時間的変化を、エンベロープジェネレータが発生する音量エンベロープ信号により制御する。音量エンベロープ信号は、一般的に、アタックレート、ディケイレート、サスティンレート、及びリリースレートというパラメータにより制御される。
【０００４】
従来、アコースティックピアノの楽音を電子的に模倣する電子鍵盤楽器（以下、電子ピアノ）において、演奏用操作子としてリリース制御用のペダル操作子（ダンパーペダル等）を具えた機種が従来あった。この種の電子ピアノでは、ダンパーペダルの位置を検出して、該検出したペダルの位置に応じてリリースを制御したり、離鍵操作時の鍵の位置を検出して、該検出した鍵の位置に応じてリリースを制御したりすることが知られていた（例えば、下記特許文献１を参照）。
【特許文献１】特開平１０−１６１６５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、従来の電子ピアノ等におけるリリース制御では、ダンパーペダルの位置や離鍵操作時の鍵の位置など、ダンパーの動作要因となる各部材を、個別的にリリースレートの決定要素として捉えており、各部材毎にその操作状態（操作子の位置）に対応するリリースレートを求めて、リリース制御を行っていたに過ぎなかった。すなわち、従来の電子ピアノ等におけるリリース制御には、アコースティックピアノにおける物理的発音機構（リリース制御機構）を模擬して、複数の動作要因によって複合的に制御されるダンパーの位置を唯一のパラメータとしてリリースレートを決定するという発想がなかった。それに伴い、リリース制御を行うための処理の構成は、電子ピアノのハードウェア構成（登載するペダルの種類や、離鍵位置の検出機構の有無など）に固定的に結びついた汎用性に乏しいものであった。
【０００６】
この発明は、上記の点に鑑みてなされたもので、電子的に楽音信号を発生する楽音制御装置において、アコースティックピアノの物理的発音機構（リリース制御機構）を模擬した構成で、アコースティックピアノにおけるリリース制御をリアルに再現することを目的とし、また、そのようなリリース制御を合理的で汎用性の高い構成で実現することができる楽音制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
この発明は、弦の振動を抑制するために設けられたダンパーを備えたアコースティックピアノの物理的発音機構を模擬した電子的な楽音発音制御を行う楽音制御装置であって、発音開始を示すキーオンデータ、消音開始を示すキーオフデータ、離鍵操作時の鍵の操作方向の位置を示す離鍵位置データ、ダンパーペダルの操作方向の位置を示すダンパーペダル位置データ、ソステヌートペダルのオン状態を示すソステヌートペダルオンデータ、及び、ソステヌートペダルのオフ状態を示すソステヌートペダルオフデータの少なくともいずれか１つのデータを供給する供給手段と、前記供給手段からキーオンデータ、キーオフデータ、離鍵位置データ、ダンパーペダル位置データ、ソステヌートペダルオンデータ、及びソステヌートペダルオフデータの少なくともいずれか１つのデータを受信する受信手段と、前記受信手段で受信したデータに基づき、仮想ダンパー位置データを生成する仮想ダンパー位置生成手段であって、前記仮想ダンパー位置データは、アコースティックピアノの物理的発音機構における弦の振動を抑制するために設けられたダンパーの位置を擬似的に表すデータであるものと、前記受信手段で受信したキーオンデータに基づき楽音信号を発生する楽音信号発生手段と、前記楽音信号発生手段で発生した楽音信号に音量の時間的変化を与える音量エンベロープ信号を付与するエンベロープ付与手段と、前記仮想ダンパー位置生成手段により生成された仮想ダンパー位置データに基づいて、前記エンベロープ付与手段で用いる音量エンベロープ信号のリリースレートを制御するリリース制御手段と、前記エンベロープ付与手段によりエンベロープ付与された後の楽音信号を発音する発音手段とを具えることを特徴とする楽音制御装置である。
【０００８】
キーオンデータ、キーオフデータ、離鍵位置データ、ダンパーペダル位置データ、ソステヌートペダルオンデータ、及び、ソステヌートペダルオフデータの少なくともいずれか１つのデータを受信したときに、受信したデータに基づき、仮想ダンパー位置データを生成する。仮想ダンパー位置データは、アコースティックピアノの物理的発音機構における弦の振動を抑制するために設けられたダンパーの位置を擬似的に表すデータである。この仮想ダンパー位置データに基づいて音量エンベロープ信号のリリースレートを制御することで、楽音信号を消音するときに、該仮想ダンパー位置データに基づくリリースレートに従って当該楽音信号の音量が減衰する。
【０００９】
また、この発明によれば、前記仮想ダンパー位置生成手段は、ソステヌートペダルオンデータ又はキーオンデータのいずれか一方のデータを受信したときに、仮想ダンパー位置データの値を所定の最大値に設定する第１設定手段と、ソステヌートペダルオフデータ及びキーオフデータを受信しているときに、離鍵位置データ及びダンパーペダル位置データを受信した場合には、該受信した離鍵位置データ及びダンパーペダル位置データとを比較して、該比較結果に応じて仮想ダンパー位置データの値を設定し、離鍵位置データ又はダンパーペダル位置データのいずれか一方のみを受信した場合には、該受信した離鍵位置データ又はダンパーペダル位置データに基づき仮想ダンパー位置データの値を設定する第２設定手段とを含んで構成されるよう構成されてよい。
【００１０】
第１設定手段により、ソステヌートペダルオンデータ又はキーオンデータのいずれか一方のデータの受信に応じて仮想ダンパー位置データの値を所定の最大値に設定することが優先される。第２設定手段により、ソステヌートペダルオフデータ及びキーオフデータを受信しているときに、離鍵位置データ及びダンパーペダル位置データを受信した場合には、該受信した離鍵位置データ及びダンパーペダル位置データのうちでいずれの値（例えば、値の大きいほう）を仮想ダンパー位置データの値に設定し、離鍵位置データ又はダンパーペダル位置データいずれか一方のみを受信した場合には、受信したデータの値を仮想ダンパー位置データの値に設定する。
【発明の効果】
【００１１】
この発明よれば、キーオンデータ、キーオフデータ、離鍵位置データＡｘ、ダンパーペダル位置データＢｘ４０、ソステヌートペダルオンデータ（Ｂｘ４２）、又はソステヌートペダルオフデータ（Ｂｘ４２）の少なくともいずれか１つを受信して、該受信したデータのに基づいて、仮想ダンパー位置データを生成して、この生成した仮想ダンパー位置データをリリースレートを決定するパラメータとすることで、複数の動作要因により複合的にダンパーの位置（ダンパーと弦の距離）を制御するアコースティックピアノの物理的発音機構（リリース制御機構）を模擬した構成で、アコースティックピアノにおけるリリース制御をリアルに再現することができるという優れた効果を奏する。
また、上記の複数のデータのいずれか１つを受信したときに仮想ダンパー位置データを生成することに加えて、仮想ダンパー位置データの決定要因として、仮想ダンパー位置データをより大きい値に設定するイベントデータが優先するよう構成されることで、仮想ダンパー位置データに基づくリリース制御を、合理的で汎用性の高い構成で実現することができるという優れた効果を奏する。
【発明を実施するための最良の形態】
【００１２】
以下、添付図面を参照して、この発明に係る楽音制御装置の一実施形態について詳細に説明する。
【００１３】
図１は、この発明に係る、弦の振動を抑制するために設けられたダンパーを備えたアコースティックピアノの物理的発音機構を模擬した電子的な楽音発音制御を行う楽音制御装置を適用したピアノ型電子鍵盤楽器（電子ピアノ）のハードウェア構成例を示すブロック図である。電子ピアノ１において、ＣＰＵ２、フラッシュメモリ３、およびＲＡＭ４は電子ピアノ１の全体的な動作を制御する制御部（マイクロコンピュータ）である。この制御部に対して、操作部５、表示部６、および音源部７がバスライン８を介して接続される。フラッシュメモリ３は、ＣＰＵ２が実行する各種制御プログラムやデータテーブル等が記憶される。ＣＰＵ２は、各種制御プログラムを実行して、電子ピアノ１の各部の動作を制御する。
【００１４】
操作部５には、楽音信号の発音開始及び消音開始を指示する鍵や、リリース制御（消音制御）用のペダル操作子（ダンパーペダル、及びソステヌートペダル）など、演奏を行うための演奏用操作子と、音色パラメータなどのパラメータの設定を行うための設定操作子とが含まれる。操作部５には、ユーザが行った操作を検出する検出手段が含まれており、操作部５の操作に応じた検出信号が、ＣＰＵ１０に供給される。ＣＰＵ２は、供給された検出信号に基づきＭＩＤＩイベントデータ（ＭＩＤＩメッセージ）を含む各種データを生成して、該生成した各種データに基づいて処理を実行する。また、表示部６は、ＣＰＵ２の制御に基づき各種情報を表示するためのものである。なお、ＭＩＤＩイベントデータは、ＭＩＤＩ規格（ＭＩＤＩは“Musical Instrument Digital Interface”の略）に準拠した形式の演奏データである。電子楽器の種々の演奏動作についてＭＩＤＩイベントデータが定義されている。
【００１５】
音源部７は、あらかじめメモリの各アドレスに１サンプルずつ記録された波形データを再生することで楽音を生成する波形メモリ音源方式の音源であって、操作部５を用いた演奏操作により楽音信号の発生開始が指示されたときに、ＣＰＵ２から供給される各種ＭＩＤＩイベントデータに基づいて楽音信号の生成を開始して、楽音信号の消音開始が指示されたときに、ＣＰＵ２から供給される各種ＭＩＤＩイベントデータに基づいて楽音信号の消音を開始する。アンプ９は、音源部７から出力された楽音信号を所定のゲイン値で増幅して、スピーカ１０に出力する。スピーカ１０は、アンプ９で増幅された楽音信号を発音する。楽音信号の消音制御（リリース制御）は、アコースティックピアノにおいて、弦の振動を抑制するために設けられたダンパーの位置を物理的に制御することで行なわれるが、物理的発音機構を持たない電子ピアノ１においては、音量エンベロープ信号のリリースレートを電子的に制御することで行なわれる。この発明は、リリースレートの値を決定要素として「仮想ダンパー位置データ」というパラメータを設定すること、詳しくは、アコースティックピアノの物理的発音機構を模擬した構成で「仮想ダンパー位置データ」を生成する点に特長がある。
【００１６】
図２は、図１に示す電子ピアノ１の楽音生成機能の構成を説明するための機能的ブロック図である。なお、図２に示す各ブロックの動作は、図１に示すＣＰＵ２、フラッシュメモリ３、ＲＡＭ４、操作部５、音源部７、アンプ９、及びスピーカ１０により実現されるものである。
【００１７】
図２において、鍵盤ユニット２０、ダンパーペダルユニット２１、及びソステヌートペダルユニット２２は、ユーザが演奏操作を入力し、該演奏操作に対応するＭＩＤＩイベントデータを発生するモジュール（演奏入力機能）である。これに対して、符号２３〜３０までの各ブロックは、演奏操作に応じて電子的に楽音信号を生成するモジュール（音源機能）である。なお、本明細書で「モジュール」という用語は、楽音生成機能を構成する１つの機能的要素を指す。
【００１８】
鍵盤ユニット２０は、それぞれ音高が割り当てられた複数の鍵（この例では８８鍵）からなる鍵盤と、各鍵の操作方向の位置を検出する検出機構（キーセンサ）とを含んで構成される。ユーザは所望の音高に対応する鍵を操作して、その音高の楽音の発音を指示する。鍵盤ユニット２０は、ユーザの操作に応じた鍵の変位を１鍵毎に検出して、検出結果に基づくＭＩＤＩイベントデータを発生し、発生したＭＩＤＩイベントデータを受信部２３に出力する。鍵盤ユニット２０が発生するＭＩＤＩイベントデータは、キーオンデータ９ｘと、キーオフデータ８ｘと、離鍵操作時の鍵の操作方向の位置を示す離鍵位置データＡｘ（ポリフォニックキープレッシャー）である。
【００１９】
キーセンサは、各鍵毎の操作方向の位置を連続値で検出することができるセンサであれば、従来から電子ピアノや自動ピアノ等に登載されている適宜のキーセンサを適用してよい。鍵盤楽器用のキーセンサの具体的な構成例としては、「特開２００４‐２１３０４３号公報」に記載された光学式キーセンサなどがある。この光学式キーセンサは、各鍵の下面に取り付けられたシャッターと、該シャッターの下方に設けられた発光部及び受光部を含むセンサボックスからなり、発光部が照射した光を受光部で受光して、該受光量に応じた出力信号を出力するものである。このキーセンサによれば、鍵が押し込まれると、該鍵に取り付けられたシャッターにより発光部から照射された光が遮られるので、その結果、受光部の受光量が鍵の操作方向の位置に応じて変化し、鍵の操作方向の位置に応じたアナログ信号を得ることができる。
【００２０】
離鍵位置データＡｘの値は、キーセンサの出力信号をＡＤ変換した値であって、「０」〜「１２７」の１２８段階のＭＩＤＩ値をエンド位置からレスト位置までの範囲に割り当てて、離鍵操作時の鍵の操作方向の位置を表すデータとする。「鍵の操作方向」とは、押鍵操作の方向、及び離鍵操作の方向であって、鍵盤面に対して略垂直方向である。従って、「鍵の操作方向」における「操作」には、鍵の水平方向の操作（鍵盤面に対して平行方向のスライド操作）は含まない。なお、以下、単に「鍵の位置」という場合、「鍵の操作方向の位置」を指す。
【００２１】
図３は、鍵の操作方向の位置（キーセンサの出力信号）と鍵の操作状態の関係を説明する図である。図３において、縦軸は鍵の操作方向の位置であって、図面上方がレスト位置、図面下方がエンド位置を示す。なお、レスト位置とは、鍵の初期位置（操作されていない状態）であり、エンド位置とは、鍵を押し切った位置である。また、横軸は時間である。同図において、説明の便宜上、鍵の操作方向の位置について、閾値Ｋ２、Ｋ２Ａ、Ｋ２Ｂ、Ｋ２Ｃ、及びＫ４の４点の閾値を設定する。閾値は、鍵の操作状態の判断基準となる。符号３１は鍵の軌道である。鍵の軌道３１のうち符号４０で示す部分が「押鍵操作」に対応する。押鍵操作とは、鍵をレスト位置からエンド位置の方向に押し込む操作である。また、符号４１で示す部分が「離鍵操作」に対応する。離鍵操作とは、押鍵操作により押し込まれた鍵をレスト位置の方向へ戻す操作である。
【００２２】
鍵の操作状態を表す概念として、「キーオン」と「キーオフ」との２つの概念がある。本明細書では、「キーオン」及び「キーオフ」の２つの概念について、「鍵盤的キーオン」及び「鍵盤的キーオフ」と、「音源的キーオン」及び「音源的キーオフ」とを区別している。「鍵盤的キーオン」及び「鍵盤的キーオフ」は、図２の鍵盤ユニット２０において、鍵の操作状態を判断する概念である。また、「音源的キーオン」及び「音源的キーオフ」は、音源機能（図２の受信部２３）において鍵の操作状態を判断する概念である。
【００２３】
「鍵盤的キーオン」は、押鍵操作された鍵の位置が、所定の鍵盤的キーオン位置（例えばエンド位置）に到達した時点（図３では「（１）」の時点）から、離鍵操作の開始後、所定の鍵盤的キーオフ位置（例えば閾値Ｋ２）をエンド位置側からレスト位置側に越えた時点（図３では「（３）」の時点）までをいう。また、「鍵盤的キーオフ」は、前記鍵盤的キーオン以外の状態、すなわち、鍵がレスト位置にある状態、若しくは、押鍵操作中（つまり、押鍵操作された鍵の位置がレスト位置から所定のキーオン位置に到達する前まで）をいう。
【００２４】
鍵盤ユニット２０は、鍵の位置が所定の鍵盤的キーオン位置（図３ではエンド位置）に到達した時点（図３では「（１）」の時点）で、その鍵の操作状態が「鍵盤的キーオン」になったものと判断して、その鍵についてキーオンデータ９ｘを発生する。つまりキーオンデータ９ｘの発生は、鍵盤的キーオンの開始を意味する。また、鍵盤ユニット２０は、鍵盤的キーオン中の鍵の位置が所定の鍵盤的キーオフ位置（図３では閾値Ｋ２）を越えた時点（図３では「（３）」の時点）で、その鍵の操作状態が「鍵盤的キーオフ」になったものと判断して、その鍵についてキーオフデータ８ｘを発生する。つまりキーオフデータ８ｘの発生は、鍵盤的キーオフの開始（鍵盤的キーオンの終了）を意味する。
【００２５】
また、鍵盤ユニット２０は、鍵盤的キーオン中の鍵について、離鍵操作が開始した時点から離鍵位置データＡｘを発生する。つまり、離鍵位置データＡｘが発生するのは、鍵の位置が図３の（２）〜（３）の期間にあるときのみである。
【００２６】
一方、「音源的キーオン」は、押鍵操作された鍵の位置が所定のキーオン位置（例えばエンド位置）に到達した時点（図３では「（１）」の時点）から、離鍵操作が開始した時点まで（図３では「（２）」の時点）をいう。また、「音源的キーオフ」は、前記鍵盤的キーオン以外の状態、すなわち、鍵がレスト位置にある状態、若しくは、押鍵操作中（所定のキーオン位置に到達する前まで）、若しくは、離鍵操作中（図３における「（２）」から「（３）」）をいう。符号２３〜３０で示す音源機能では、後述する通り、「音源的キーオン」の開始にあわせて楽音信号の発音を開始して、「音源的キーオフ」の開始（音源的キーオンの終了）にあわせて当該楽音信号の消音を開始する。
【００２７】
図２に戻ると、ダンパーペダルユニット２１は、足踏み操作式のペダル操作子（ダンパーペダル）と、該ペダルの操作方向の位置（踏み込み量）を連続値で検出するダンパーペダルセンサを含んで構成され、検出結果に応じたダンパーペダル位置データＢｘ４０を発生し、発生したダンパーペダル位置データＢｘ４０を受信部２３に出力する。ダンパーペダルユニット２１に含まれるダンパーペダルは、アコースティックピアノに備わるダンパーペダルの作用と同等な演奏効果、すなわち、全ての音高に対応するダンパーを一斉に動かす作用と同等な演奏効果を得るためのペダルである。ダンパーペダルの操作方向は、ペダルの踏み込み方向及び戻し方向であって、鍵盤面に対して略垂直方向である。
【００２８】
ダンパーペダルセンサは、ダンパーペダルの操作方向の位置（踏み込み量）を、操作にあわせてリアルタイムで検出できる構造であれば、どのようなものであってもよい。ダンパーペダルセンサは、一例として、当該ペダルを軸支する回転部材の回転角度を連続値で検出する角度センサにより構成され、ペダル踏み込み操作に応じて該回転部材が回転し、その回転角度を当該ダンパーペダルの操作方向の位置として検出するものを適用することができる。なお、以下において、「ダンパーペダルの操作方向の位置」を単に「ダンパーペダル位置」ともいう。また、ダンパーペダルセンサの配置場所は、ダンパーペダル位置を検出できるのであれば、ペダル部分に限らず、例えば鍵盤付近など電子ピアノ本体側であってもよい。
ダンパーペダル位置データＢｘ４０の値は、ダンパーセンサの出力信号をＡＤ変換した値であって、「０」〜「１２７」のＭＩＤＩ値が割り当てられているが、センサの検出分解はペダル可動範囲に対して４〜５段階の分解能で、ダンパーペダル位置を表すデータとする。
【００２９】
ソステヌートペダルユニット２２は、足踏み操作式のペダル操作子（ソステヌートペダル）と、該ペダルの操作状態をオン・オフの２値で検出するソステヌートペダルセンサを含んで構成され、検出結果に応じたソステヌートペダルデータＢｘ４２を発生し、発生したソステヌートペダルデータＢｘ４２を受信部２３に出力する。受信部２３に出力されるソステヌートペダルデータＢｘ４２は、当該ペダルの操作状態がオン状態であることを示すソステヌートペダルオンデータ、又は、当該ペダルの操作状態がオフ状態であることを示すソステヌートペダルオフデータのいずれかである。ソステヌートペダルユニット２２に含まれるソステヌートペダルは、アコースティックピアノに備わるソステヌートペダルの作用と同等な演奏効果、すなわち、当該ペダルを踏み込んだときに押鍵操作中の鍵に対応するダンパーについて、弦から離れた状態でロックする作用と同等な演奏効果を得るためのペダルである。Ｂｘ４２の値は、「０」〜「１２７」のＭＩＤＩ値が割り当てられており、「０」をソステヌートペダルオンデータに割り当て、「１２７」をソステヌートペダルオフデータに割り当てる。
【００３０】
受信部２３は、鍵盤ユニット２０、ダンパーペダルユニット２１、及びソステヌートペダルユニット２２から出力された各ＭＩＤＩイベントデータ（キーオンデータ９ｘ、キーオフデータ８ｘ、離鍵位置データＡｘ、ダンパーペダル位置データＢｘ４０、及びソステヌートペダルデータＢｘ４２（ソステヌートペダルオンデータ、又はソステヌートペダルオフデータ））を受信したときに、後述する図８，９に示す処理を実行して該受信したＭＩＤＩイベントデータを解釈し、該受信したＭＩＤＩイベントデータを仮想ダンパー位置データ生成部２４、位相生成部２５、及びエンベロープ生成部２９に転送するインターフェース機能を担うモジュールである。
【００３１】
受信部２３は、また、受信部２３は、前記各部から受信したＭＩＤＩイベントデータに基づいて、各種イベントデータの現在値を保持するレジスタを具える。前記レジスタには、「音源的キーオフ」又は「音源的キーオン」いずれかを示す値を保持するキーオン・キーオフレジスタと、離鍵位置データＡｘの現在値を保持するＡｘレジスタと、現在のダンパーペダル位置データＢｘ４０の現在値を保持するＢｘ４０レジスタと、ソステヌートペダルオン又はソステヌートペダルオフのいずれかを示す値を保持するＢｘ４２レジスタとが含まれる。キーオン・キーオフレジスタ、Ａｘレジスタ、及びＢｘ４２レジスタは、それぞれ、鍵盤を構成する各鍵毎（音高毎）に１つずつ設けられている。また、Ｂｘ４０レジスタは、全ての音高で１つのレジスタを共有する。これらレジスタは、ＲＡＭ４に設けられるものとする。
【００３２】
仮想ダンパー位置データ生成部２４は、受信部２３から転送されたＭＩＤＩイベントデータに基づき「仮想ダンパー位置データ」を生成するモジュールである。「仮想ダンパー位置データ」は、アコースティックピアノにおいて弦の振動を抑制するために設けられたダンパーの位置を擬似的に表すデータである。仮想ダンパー位置データ生成部２４によって生成された仮想ダンパー位置データは、エンベロープ生成部２９に供給され、該エンベロープ生成部２９が生成するエンベロープ信号のリリースレートを制御する唯一のパラメータとして利用される。
【００３３】
アコースティックピアノにおいてダンパーは、各鍵（音高）に対応して設けらており、対応する音高の弦と接触する部分にフェルトを有し、消音時に該フェルトが当該弦に接触して、対応する音高の演奏音をミュートし、対応する音高の演奏音の発音時に、該フェルトが弦から離れて、弦の振動（演奏音の発音）を可能とするものである。ダンパーの動作要因には、（１）対応する鍵の操作と、（２）ダンパーペダルの操作と、（３）ソステヌートペダルの操作との３通りの要因がある。鍵の操作に対するダンパーの動作は、押鍵操作に応じてダンパーが弦から離れて、離鍵操作に応じて、鍵の位置（離鍵位置）に比例してダンパーと弦の距離（弦に対するダンパーの位置）が近づく、というものである。ダンパーペダルの操作に対するダンパーの動作は、ダンパーペダルの踏み込み量（ペダンパーペダルの操作方向の位置）に比例してダンパーと弦の距離（弦に対するダンパーの位置）が遠ざかる、というものである。ソステヌートペダルの操作に対するダンパーの動作は、当該ペダルを踏んだとき押鍵されている鍵に対応するダンパーが弦から離れた状態（弦から最も遠い位置）でロックされる、というものである。
【００３４】
仮想ダンパー位置データ生成部２４は、後述する仮想ダンパー位置データ設定及び生成処理により、キーオンデータ９ｘ、キーオフデータ８ｘ、離鍵位置データＡｘ、ダンパーペダル位置データＢｘ４０、及びソステヌートペダルデータＢｘ４２（ソステヌートペダルオンデータ、又はソステヌートペダルオフデータ）の少なくともいずれか１つに基づき、仮想ダンパー位置データを生成することで、複数の動作要因により複合的にダンパーの位置（ダンパーと弦の距離）を制御するアコースティックピアノの物理的発音機構（リリース制御機構）の構成をシミュレートする。
【００３５】
仮想ダンパー位置データは、所定の最小値から所定の最大値までの仮想的ダンパーの仮想的可動範囲の位置を、「０」〜「１２７」までの１２８段階の値で表すデータである。アコースティックピアノにおけるダンパーの可動範囲とは、当該ダンパーが弦に完全に接触した状態（弦をミュートしている状態）からダンパーが弦から最も離れた状態（弦から最も遠い位置）までである。仮想ダンパー位置データの最小値は、アコースティックピアノにおけるダンパーが弦に完全に接触した状態（弦をミュートしている状態）に対応する。これは、例えば鍵が操作されていない（レスト位置にある）ときのダンパーの位置に対応する。
また、仮想ダンパー位置データの最大値は、アコースティックピアノにおけるダンパーが弦から最も離れた状態（弦から最も遠い位置）に対応している。これは、押鍵操作によって発音開始が指示されたときのダンパーの位置、ダンパーペダルが最大値まで踏み込まれたときのダンパーの位置、或いは、ソステヌートペダルによるダンパーのロック動作が作用しているときのダンパーの位置などに対応している。
【００３６】
位相生成部２５、アドレス生成部２６、波形メモリ１１、補間部２７、及び、乗算部２８は、楽音信号生成処理を行うブロックである。
位相生成部２５には、受信部２３からキーナンバ（音高）とキーオンデータ９ｘ（若しくは、キーナンバとキーオフデータ８ｘ）が転送される。位相生成部２５は、キーオンデータ９ｘが入力されたときに、該キーオンデータ９ｘとともに入力されたキーナンバ（該キーオンデータ内で規定されているキーナンバ）に応じた位相情報を生成する。具体的には、発音すべき音高（キーナンバ）に対応するＦナンバ（小数部を含む値）をサンプリング周期毎に累算し、その累算結果が位相情報となる。位相情報は、整数部と小数部とからなる。位相情報の整数部はアドレス生成部２６に供給され、また、位相情報の小数部は補間部２７に供給される。
【００３７】
アドレス生成部２６は、位相生成部２５から入力された位相情報の整数部に、当該波形データの先頭アドレス等を加算して、波形メモリ１１をアクセスするために用いるアドレス信号を生成して、該生成したアドレス信号を用いて波形メモリ１１をアクセスし、波形メモリ１１のアドレスから波形サンプルを読み出す。この実施例では、波形メモリ１１に記憶された波形データはアタック部の波形とループ部の波形とからなるものを想定しているので、アドレス生成部２６は、アドレス生成部２６から出力されたアドレス信号を用いて波形データのアタック部を一通り読み出した後、波形メモリのループ読み出し区間が指定するループ部を繰り返し読み出す処理を行う。
【００３８】
波形メモリ１１からは、サンプリング周期毎に、アドレス生成部２６から出力されたアドレス信号が指定するアドレスから波形サンプルが出力される。補間部２７は、サンプリング周期毎に、位相生成部２５から供給された位相情報の小数部を用いて、波形メモリ１１から読み出された波形サンプルをサンプル間補間して、サンプル間補間済みの波形サンプルを乗算部２８に出力する。ここで行なわれるサンプル間補間は、例えば、隣接する波形サンプル（直前のサンプリング周期で読み出した波形サンプル）を用いた２つの波形サンプル間を適宜の補間演算により補間してもよいし、２以上の波形サンプルを用いた補間演算であってもよい。
【００３９】
エンベロープ生成部（ＥＧ）２９は、受信部２３からキーナンバ（音高）とキーオンデータ９ｘ（若しくはキーナンバとキーオフデータ８ｘ）が転送されるとともに、後述する仮想ダンパー位置データ生成部２４から出力された仮想ダンパー位置データが入力され、入力された各データに基づき、発音すべき楽音信号の音量の時間的変化を制御するための音量エンベロープ信号を生成して、生成した音量エンベロープ信号をサンプリング周期毎に乗算部２８に出力する。なお、以下では、「音量エンベロープ信号」のことを、単に「エンベロープ信号」ということもある。
【００４０】
図４は、エンベロープ生成部２９が生成するピアノ音色用の音量エンベロープ信号を説明するための図であって、縦軸にエンベロープ信号の音量レベルをとり、横軸に時間をとる。エンベロープ信号の形状は、アタックレート、ディケイレート、サスティンレート、及びリリースレートという複数のパラメータにより制御されるものであって、各パラメータの値は、基本的には、受信部２３から転送された各種ＭＩＤＩイベントデータ（現在設定中の音色や、発音すべき楽音信号の音量（ベロシティ）、音高（キーナンバ）等）に基づき設定される。
しかし、エンベロープ信号のパラメータのうちリリースレートの値については、仮想ダンパー位置データ生成部２４により生成された仮想ダンパー位置データに基づき決定される。この点に本願発明の主要な特徴がある。
【００４１】
エンベロープ信号のパラメータのうちのアタックレートは、発音開始タイミング直後の音の出始めから音量レベルの最大値（アタックレベル）に達するまでの時間を制御するパラメータであって、符号３２で示す部分（アタック部）の傾きを作る。ディケイレートは、最大振幅からサスティンレベルに音が減衰するまでの時間を制御するパラメータであって、符号３３で示す部分（ディケイ部）の傾きを作る。サスティンレートは、サスティンレベルから完全に減衰するまでの時間を制御するパラメータであって、符号３４で示す部分（サスティン部）の傾きを作る。サスティンレートが示す音量の減衰特性は、アコースティックピアノの演奏音の自然減衰（ダンパーにより弦の振動を抑制しない場合の音量減衰）の特性に相当するものである。そして、リリースレートは、消音開始タイミングから音量が完全に減衰するまでの時間を制御するパラメータであって、符号３５で示す部分（リリース部）の傾きを作る。
【００４２】
エンベロープ生成部（ＥＧ）２９は、「音源的キーオン」開始（前記図３では「（１）」の時点）後から、サンプリング周期毎に、エンベロープ信号のパラメータのうちアタックレート、ディケイレート及びサスティンレートの値を順に出力して、アタック、ディケイ及びサスティンの各部に対応するエンベロープ信号を生成する。また、エンベロープ生成部（ＥＧ）２９は、「音源的キーオフ」の開始（前記図３では「（２）」の時点）後から、サンプリング周期毎に、エンベロープ信号のパラメータのうちリリースレートの値を出力して、リリース部に対応するエンベロープ信号を生成する。すなわち、「音源的キーオフ」の開始にあわせてリリース制御を開始して、リアルタイムで変化する仮想ダンパー位置データに基づき決定されるリリースレートに基づいたリリース部の形成が行われる。
【００４３】
乗算部２８は、補間部２７から出力された補間済み波形サンプルに、エンベロープ生成部２９から出力された音量エンベロープ信号を乗算することにより、波形サンプルにエンベロープ（音量の時間変化）を付与する。乗算部２８でエンベロープ付与した波形サンプルは、サンプリング周期毎に、デジタル・アナログ変換器、アンプ、スピーカ等を含むスピーカシステム３０に出力される。スピーカシステム３０は、上記の各部の動作により生成され、エンベロープ付与された楽音信号を発音する。
【００４４】
次に、図２の各部の動作について、図５〜図１１に示すフローチャートを参照して説明する。なお、以下の説明では、説明の便宜上、図５〜図１１に示す各処理を実行する主体を、その動作を担うモジュール（鍵盤ユニット２０等）として説明するが、いずれの処理もハードウェア的に処理を実行する主体はＣＰＵ２である。
【００４５】
図５は、図２の鍵盤ユニット２０の動作手順を説明するフローチャートである。このフローチャートに示す一連の処理は、ＣＰＵ２が実行するソフトウェアプログラムによって実現されるもので、鍵盤を構成する８８個の鍵の１つずつ毎に起動する。また、この処理は、各鍵について、所定周期（例えば５０ｍｓ）毎に起動する処理である。８８個の各鍵毎に５０ｍｓ毎に当該処理が起動することで、鍵盤ユニット２０は、各鍵の操作状態を所定周期毎にチェックする。
【００４６】
図５のステップＳ１において、鍵盤ユニット２０は、キーセンサの出力信号を取得して、鍵の現在位置を検出する。鍵の位置の値（キーセンサの出力信号）は、前述のとおりエンド位置からレスト位置までの範囲（鍵の操作方向の可動範囲）を１２８段階の分解能で示すデータである。ステップＳ２において、鍵盤ユニット２０は、前記ステップＳ１で検出した鍵の位置が、前回の処理で検出した値から変化しているかどうかを判断する。
【００４７】
前記ステップＳ１で検出した鍵の位置が、前回の処理で検出した値から変化している場合（ステップＳ２のＮＯ）、鍵盤ユニット２０は、ステップＳ３以下の処理を行う。
また、鍵の位置が前回の処理で検出した値から変化していない場合（ステップＳ２のＹＥＳ）には、鍵盤ユニット２０は、当該鍵について今回の処理を終了する。当該ステップＳ２をＹＥＳに分岐するのは、当該鍵が操作されずにレスト位置にある状態が継続している場合や、打鍵操作中の鍵が押し込まれた状態が継続している場合（図３に示す軌道３１では、エンド位置が継続している平らな部分）等である。
【００４８】
ステップＳ３においては、鍵盤ユニット２０は、検出した鍵の前回の操作状態が「鍵盤的キーオフ」であるかどうかを判断する。「鍵盤的キーオフ」でない（鍵盤的キーオン中）の場合には、ステップＳ３をＮＯに分岐して、処理をステップＳ６に進める。
【００４９】
鍵盤的キーオフ中の場合（ステップＳ３のＹＥＳ）、鍵盤ユニット２０は、ステップＳ４において、当該鍵の今回の位置が鍵盤的キーオン位置であるかどうか調べる。図３の例では、エンド位置を鍵盤的キーオン位置に設定しているので、この例に従えば、ステップＳ４において鍵の位置がエンド位置に達したかどうかを調べる。鍵の位置が鍵盤的キーオン位置（エンド位置）に達していた場合（ステップＳ４のＹＥＳ）、鍵盤ユニット２０は、今回の処理タイミングで鍵の位置が鍵盤的キーオン位置に到達したものと判断して、ステップＳ５においてキーオンデータ９ｘを生成する。キーオンデータ９ｘは、音源部７に発音開始を指示するコマンドと、処理対象とする音高（当該鍵の音高）を示すキーナンバ、及び押鍵操作の強さを示すベロシティデータ等を含む。
【００５０】
一方、鍵盤的キーオフ中（ステップＳ３のＹＥＳ）、且つ、その位置が前記鍵盤的キーオン位置（エンド位置）でなければ（ステップＳ４のＮＯ）、鍵盤ユニット２０は、当該鍵の操作状態を図３において符号４０で示す押鍵操作中（つまり、レスト位置からエンド位置に向かって押し込まれる過程にある）と判断する。この場合は、鍵盤ユニット２０は、このタイミングでは当該鍵についてＭＩＤＩイベントデータの生成を行わずに、当該鍵について今回の処理を終了する。
【００５１】
鍵盤的キーオン中の場合（ステップＳ３のＮＯ）、鍵盤ユニット２０は、ステップＳ６において、当該鍵の今回の位置が、鍵盤的キーオフ位置であるかどうか判断する。図３の例では、閾値Ｋ２を鍵盤的キーオフ位置に設定しているので、鍵の位置が閾値Ｋ２よりもレスト位置側であるかを調べる。鍵の位置が閾値Ｋ２よりもレスト位置側であれば（ステップＳ６のＹＥＳ）、鍵盤ユニット２０は、今回の処理タイミングで鍵盤的キーオンが終了したものと判断し、ステップＳ７において、キーオフデータ８ｘを生成する。キーオフデータ８ｘは、音源部７に対して発音終了（消音開始）を指示するコマンドと、処理対象とする音高（当該鍵の音高）を示すキーナンバを含むデータである。
【００５２】
鍵盤的キーオン中（ステップＳ３のＮＯ）であり、且つ、その位置が鍵盤的キーオフ位置（閾値Ｋ２）よりもエンド位置側であれば（ステップＳ６のＮＯ）とは、当該鍵の操作状態が図３において符号４１で示す離鍵操作中である場合に限られる。離鍵操作中とは、鍵盤的キーオン位置（エンド位置）まで押し込まれた鍵が、レスト位置に向かって戻りつつある状態である。その場合、鍵盤ユニット２０は、ステップＳ８において、前記ステップＳ１で検出した鍵の位置に応じた離鍵位置データＡｘを生成する。離鍵位置データＡｘは、離鍵操作時の鍵の操作方向の位置（前記ステップＳ１で検出した鍵の位置）を表すデータと、そのデータがどの音高のデータであるかを示す情報（キーナンバ）を含む。
【００５３】
ステップＳ９では、前記ステップＳ５で生成されたキーオンデータ９ｘ，前記ステップＳ７で生成されたキーオフデータ８ｘ，又は前記ステップＳ８で生成された離鍵位置データＡｘを受信部２３へ出力する。
【００５４】
図６は、図２のダンパーペダルユニット２１の動作手順を説明するフローチャートである。このフローチャートに示す一連の処理は、ＣＰＵ２が実行するソフトウェアプログラムによって実現されるもので、所定周期（例えば１０ｍｓ）毎に起動する。すなわち、ダンパーペダルユニット２１の処理の起動周期は、前記図５に示す鍵盤ユニット２０の処理の起動周期よりも短い周期である。
【００５５】
ステップＳ１０において、ダンパーペダルユニット２１は、ダンパーペダルセンサの出力信号を取得して、ダンパーペダルの現在位置を検出る。なお、ダンパーペダルセンサは、前述のとおり、ペダルの踏み込み量（ダンパーペダルの位置）を、ペダル可動範囲に対して４〜５段階の分解能で検出する回転角度センサを想定している。ダンパーペダルの現在位置に前回の検出値から変化があれば（ステップＳ１１のＮＯ）、ダンパーペダルユニット２１は、ステップＳ１２において、検出したダンパーペダルの位置に応じたダンパーペダル位置データＢｘ４０を生成して、生成したダンパーペダル位置データＢｘ４０を受信部２３へ出力する。
【００５６】
また、図７は、図２のソステヌートペダルユニット２２の動作手順を説明するフローチャートである。このフローチャートに示す一連の処理は、ＣＰＵ２が実行するソフトウェアプログラムによって実現されるもので、ソステヌートペダルの操作が検出される毎に起動する。ソステヌートペダルセンサの出力信号は、オン又はオフの２値である。したがって、図７のステップＳ１３において、ソステヌートペダルユニット２２は、ソステヌートペダルが押し込まれる操作を検出したときにソステヌートペダルオンデータ、該ソステヌートペダルの押し込みを戻す操作を検出したときにソステヌートペダルオフデータ、のソステヌートペダルデータＢｘ４２を生成し、ステップＳ１４において該生成したソステヌートペダルデータＢｘ４２を受信部２３へ出力する。
【００５７】
図８及び図９は、図２の受信部２３の動作手順を説明するフローチャートである。受信部２３は、上記図５、図６及び図７の処理により、鍵盤ユニット２０、ダンパーペダルユニット２１、及びソステヌートペダルユニット２２のいずれかから、キーオンデータ９ｘ、キーオフデータ８ｘ、離鍵位置データＡｘ、ダンパーペダル位置データＢｘ４０、ソステヌートペダルオンデータ（Ｂｘ４２）、及びソステヌートペダルオフデータ（Ｂｘ４２）のいずれかのＭＩＤＩイベントデータを受信したときに、図８及び図９に示す処理を実行する。この処理は、ＣＰＵ２が実行するソフトウェアプログラムにより実現されるものである。
【００５８】
受信部２３は、鍵盤ユニット２０からキーオンデータ９ｘを受信したときには（ステップＳ１５のＹＥＳ）、該受信したキーオンデータ９ｘに含まれるキーナンバが示す音高に該当するキーオン・キーオフレジスタの値をキーオン（音源的キーオン）に変更し（ステップＳ１６）、当該受信したキーオンデータ９ｘと、該受信したキーオンデータ９ｘに含まれるキーナンバを位相生成部２５及びエンベロープ生成部２９に転送して、当該受信したキーオンデータ９ｘに基づく楽音信号の発音を開始させる（ステップＳ１７）。また、受信部２３は、今回受信したキーオンデータ９ｘに含まれるキーナンバ（処理対象としている音高）について、後述する図１０の仮想ダンパー位置データ生成及び設定処理（ステップＳ１８）を開始させる。
【００５９】
また、鍵盤ユニット２０から離鍵位置データＡｘを受信したときに（ステップＳ１９のＹＥＳ）、該受信した離鍵位置データＡｘに含まれるキーナンバが示す音高に該当するキーオン・キーオフレジスタの現在値がキーオン（音源的キーオン）中かどうかを判断することで、今回受信した離鍵位置データＡｘの音高の楽音信号が現時点で発音中かどうかを判断する。当該音高に該当するキーオン・キーオフレジスタの現在値がキーオンであれば（ステップＳ２０のＹＥＳ）、当該受信した離鍵位置データＡｘは、当該キーナンバが示す音高の発音に対しての初めて受信した離鍵位置データＡｘであり、今回の離鍵位置データＡｘ受信のタイミングが図３において（２）で示すタイミングに対応する。この場合、今回受信した離鍵位置データＡｘに対応する音高の音源的キーオフ（消音）を開始するものと判断できる。
【００６０】
ステップＳ２０をＹＥＳに分岐した場合、受信部２３は、ステップＳ２１において、今回受信した離鍵位置データＡｘに含まれるキーナンバが示す音高について発音（音源的キーオン）を終了する、つまり、当該音高に該当する現在発音中の楽音信号を消音するためのキーオフデータ８ｘを生成し、ステップＳ２２において、前記キーナンバが示す音高に該当するキーオン・キーオフレジスタの値をキーオン（音源的キーオン）からキーオフ（音源的キーオフ）に変更する。そして、受信部２３は、位相生成部２５及びエンベロープ生成部２９に、前記生成したキーオフデータＢｘと、該キーオフデータＢｘに含まれるキーナンバを転送して、今回受信した離鍵位置データＡｘの音高に該当する楽音信号の消音開始を指示する（ステップＳ２３）。
なお、「楽音信号の消音」処理は、エンベロープ信号のリリース部の出力を開始して、現在のリリースレートに従って楽音信号の音量を減衰させる処理（リリース制御）を含む。本願発明は、消音制御のうちのエンベロープ信号のリリースレートの決定（リリース制御）に特徴があるもので、それ以外の消音制御に関連する処理については、電子ピアノ等の分野で従来から知られる技術を適宜援用してよい。
【００６１】
受信部２３は、ステップＳ２３の後、Ａｘ用データ変換テーブルに基づき、当該受信した離鍵位置データＡｘの値を仮想ダンパー位置データに対応する値に変換し（ステップＳ２４）、当該変換後の値でＡｘレジスタを変更する（変換後の値をＡｘレジストへ上書きする）ことで、今回受信した離鍵位置データＡｘの音高に該当するＡｘレジスタの現在値を変更する（ステップＳ２５）。
なお、Ａｘ用データ変換テーブルは、フラッシュメモリ３、又はＲＡＭ４に予め記憶されたデータテーブルであって、離鍵位置データＡｘの値（鍵の位置）毎に、各Ａｘの値が仮想ダンパー位置データのとりうる値（仮想的ダンパーの仮想的可動範囲）のうちのどの値に相当するかを規定しているテーブルである。
【００６２】
ここで、Ａｘ用データ変換テーブルの趣旨について説明する。仮想ダンパー位置データ生成部２４は、離鍵位置データＡｘとダンパーペダル位置データＢｘ４０に対して、それぞれのデータ示す位置データに基づく仮想ダンパー位置データを生成する。離鍵位置データＡｘの値とダンパーペダル位置データＢｘ４０の値とは、一方が鍵の位置位置、他方がペダルの操作位置を表すデータであるから、互いに関連性を持たない独立した値である。したがって、仮想ダンパー位置データ生成部２４においては、これらの値を、そのまま仮想ダンパー位置データとして扱うのではなく、それぞれ仮想ダンパー位置という同じ仮想的可動範囲の値に変換して扱うことが好ましい。すなわち、アコースティックピアノの物理的発音機構においては、離鍵操作時の鍵の操作方向の位置（鍵の深さ）とダンパーの踏み込み量とが物理的に同じ値（例えば互いに１ｃｍずつ動かした場合など）であったとしても、離鍵の深さに応じたダンパーの変位量と、ダンパーペダル踏み込み量に応じたダンパーの変位量とは、それぞれ異なっている。アコースティックピアノの物理的発音機構の構成を模擬することを意図した本願実施例に係る楽音制御装置においては、上記離鍵操作に対するダンパーの動作特性と、ダンパーペダル操作に対するダンパーの動作特性との違いを吸収するために、離鍵位置データＡｘを仮想ダンパー位置データに対応する値に変換するＡｘ用データ変換テーブルが用意されている。
【００６３】
一方、鍵盤ユニット２０から離鍵位置データＡｘを受信したときに（ステップＳ１９のＹＥＳ）、該受信した離鍵位置データＡｘに含まれるキーナンバが示す音高に該当するキーオン・キーオフレジスタの値が既にキーオフ（音源的キーオフ）であれば（ステップＳ２０のＮＯ）、今回受信した離鍵位置データＡｘの音高に該当する楽音信号は現時点で既に消音制御中である。この場合、受信部２３は、Ａｘ用データ変換テーブルに基づき、当該受信した離鍵位置データＡｘの値を仮想ダンパー位置データに対応する値に変換し（ステップＳ２６）、当該変換後の値でＡｘレジスタを変更する（変換後の値をＡｘレジストへ上書きする）ことで、今回受信した離鍵位置データＡｘの音高に該当するＡｘレジスタの現在値を変更する（ステップＳ２７）。
【００６４】
そして、受信部２３は、前記ステップＳ２５又は前記ステップＳ２７におけるＡｘレジスタの変更後に、今回受信した離鍵位置データＡｘに含まれるキーナンバ（処理対象としている音高）について、後述する図１０の仮想ダンパー位置データ生成及び設定処理（ステップＳ２８）を仮想ダンパー位置データ生成部２４に開始させる。
【００６５】
また、鍵盤ユニット２０からキーオフデータ８ｘを受信したときに（ステップＳ２９のＹＥＳ）、該受信したキーオフデータ８ｘに含まれるキーナンバが示す音高に該当するキーオン・キーオフレジスタの現在の値が音源的キーオンの場合には（ステップＳ３０のＹＥＳ）、受信部２３は、当該キーオン・キーオフレジスタの値を音源的キーオフに変更して（ステップＳ３１）、前記受信したキーオフデータ８ｘの音高に該当する楽音信号について、前記ステップＳ２３と同様な消音開始処理を開始させる（ステップＳ３２）。
【００６６】
受信部２３は、前記ステップＳ２９で受信したキーオフデータ８ｘに対応する離鍵位置データＡｘを生成して（ステップＳ３３）、該生成された離鍵位置データＡｘをデータ変換テーブルに基づき仮想ダンパー位置データに変換して（ステップＳ３４）、当該変換後の値でＡｘレジスタを変更する（変換後の値をＡｘレジストへ上書きする）ことで、今回受信したキーオフデータ８ｘの音高に該当するＡｘレジスタの現在値を変更する（ステップＳ３５）。
ステップＳ３０をＹＥＳに分岐する場合というのは、音源的キーオンの後、離鍵位置データＡｘが発生することなく、キーオフデータ８ｘが発生するケース（例えば、離鍵速度が速い場合等）である。したがって、受信部２３は、ステップＳ３０をＹＥＳに分岐した場合には、今回受信したキーオフデータ８ｘに対応する離鍵操作について離鍵位置データＡｘを得るために、前記ステップＳ３１の処理により鍵盤的キーオフ位置（閾値Ｋ２）に対応する位置を示す離鍵位置データＡｘを生成する。
【００６７】
また、鍵盤ユニット２０からキーオフデータ８ｘを受信したときに（ステップＳ２９のＹＥＳ）、該受信したキーオフデータ８ｘに含まれるキーナンバが示す音高に該当するキーオン・キーオフレジスタの現在の値が既にキーオフ（音源的キーオン）である場合には（ステップＳ３０のＮＯ）、受信部２３は、ステップＳ３６〜Ｓ３８において、前記ステップＳ３３〜Ｓ３５と同様な処理を行い、鍵盤的キーオフ位置（閾値Ｋ２）に対応する位置を示す離鍵位置データＡｘを生成して、該生成された離鍵位置データＡｘをデータ変換テーブルに基づき仮想ダンパー位置データに変換し、当該変換後の値で、今回受信したキーオフデータ８ｘの音高に該当するＡｘレジスタの現在値を変更する。
前記ステップＳ３０をＮＯに分岐する場合というのは、今回受信したキーオフデータ８ｘに含まれるキーナンバ（今回処理対象となっている音高）について、今回キーオフデータ８ｘを受信する前に既に、離鍵位置データＡｘを受信部２３から受信して、既に音源的キーオフ中の場合、つまり楽音の消音制御（リリース制御）が始まっている場合である。
【００６８】
そして、受信部２３は、前記ステップＳ３５又はＳ３８により今回処理対象となっている音高についてＡｘレジスタの値を変更した後に、今回受信したキーオフデータ８ｘに含まれるキーナンバ（処理対象としている音高）について、後述する図１０の仮想ダンパー位置データ生成及び設定処理を仮想ダンパー位置データ生成部２４に開始させる（ステップＳ３９）。
【００６９】
また、鍵盤ユニット２０からダンパーペダル位置データＢｘ４０を受信した場合には（ステップＳ４０のＹＥＳ）、受信部２３は、Ｂｘ４０用データ変換テーブルに基づき、該受信したＢｘ４０の値を仮想ダンパー位置データに変換し（ステップＳ４１）、当該変換後の値でＢｘ４０レジスタを変更する（変換後の値をＢｘ４０レジスタに上書きする）ことで、今回受信したダンパーペダル位置データＢｘ４０に対応する仮想ダンパー位置データでＢｘ４０レジスタの現在値を変更する（ステップＳ４２）。Ｂｘ４０用データ変換テーブルは、フラッシュメモリ３、又はＲＡＭ４に予め記憶されたもので、ダンパーペダル位置データＢｘ４０の値（ダンパーペダルの位置）毎に、各Ｂｘ４０の値が仮想ダンパー位置データのとりうる値（仮想的ダンパーの仮想的可動範囲）のうちのどの値に相当するかを規定しているテーブルである。Ｂｘ４０用データ変換テーブルの趣旨は、Ａｘ用データ変換テーブルについて前述したのと同様に、ダンパーペダル操作に対するダンパーの動作特性との違いを吸収するために、ダンパーペダル位置データＢｘ４０を仮想ダンパー位置データに対応する値に変換する点にある。
ステップＳ４３において、受信部２３は、前記ステップＳ４２におけるＢｘ４０レジスタの変更後に、現時点でキーオン・キーオフレジスタの値が音源的キーオン中の全てのキーナンバ（現在発音中の全ての音高）について、後述する図１０の仮想ダンパー位置データ生成及び設定処理を仮想ダンパー位置データ生成部２４に開始させる。
【００７０】
また、鍵盤ユニット２０からソステヌートペダルデータＢｘ４２を受信した場合（ステップＳ４４のＹＥＳ）、受信部２３は、該受信したＢｘ４２がソステヌートペダルオンデータか、ソステヌートペダルオフデータかを判断する（ステップＳ４５）。
【００７１】
ソステヌートペダルオンデータを受信した場合（ステップＳ４５のＹＥＳ）、受信部２３は、全ての音高についてキーオン・キーオフレジスタの値を調べて、その値が「キーオン（音源的キーオン）に設定されているキーオン・キーオフレジスタを全て検出し（ステップＳ４６）、該検出した全てのキーオン・キーオフレジスタに該当する各キーナンバ（音高）についてＢｘ４２レジスタの値をソステヌートペダルオンに変更する（ステップＳ４７）。これにより、現在音源的キーオン中の全ての音高についてソステヌートペダルの操作状態がオンに設定される。
【００７２】
一方、ソステヌートペダルオフデータを受信した場合（ステップＳ４５のＮＯ）、受信部２３は、全ての音高に対応するＢｘ４２レジスタのうちで、今回ソステヌートペダルデータＢｘ４２を受信した時点で、その値がソステヌートペダルオンになっている音高のＢｘ４２レジスタについて、その値をソステヌートペダルオフに変更する（ステップＳ４８）。
【００７３】
受信部２３は、前記ステップＳ４７又はＳ４８によりＢｘ４２レジスタの値を変更した後、ステップＳ４９において、処理対象となる各音高について後述する仮想ダンパー位置データ生成及び設定処理を仮想ダンパー位置データ生成部２４に開始させる。すなわち、前記ステップＳ４８を経由した場合には、該ステップＳ４８で値が変更された全てのＢｘ４２レジスタに該当する音高が、また、前記ステップＳ４７を経由した場合には、前記ステップＳ４６で検出した全てのキーナンバ（音高）すべてが、後述する図１０の処理の処理対象となる。
【００７４】
なお、上記ステップＳ２５、Ｓ２７、Ｓ３５、又はＳ３８において更新されたＡｘレジスタの値については、当該鍵について次回のキーオンが発生した時にリセットされる。
【００７５】
図１０は、仮想ダンパー位置データ生成部２４の動作手順を説明するフローチャートである。この処理（仮想ダンパー位置データ生成及び設定処理）は、前記図８及び図９のステップＳ１８、Ｓ２８、Ｓ３９、Ｓ４３、及びＳ４９において呼び出されて、処理対象とされた個々の音高それぞれについて個々に実行される。当該処理の要点は、前記図８及び図９の処理により更新されたキーオン・キーオフレジスタ、Ａｘレジスタ、Ｂｘ４０レジスタ、及びＢｘ４２レジスタの現在値に基づき、仮想ダンパー位置データのデータを生成して、設定する点にある。以下では、１つの鍵（音高）について仮想ダンパー位置データを生成して、設定する処理について説明する。なお、この処理は、ＣＰＵ２が実行するソフトウェアプログラムにより実現されるものである。
【００７６】
当該鍵のＢｘ４２レジスタの現在値が「ソステヌートペダルオン」であれば（ステップＳ５０のＹＥＳ）、仮想ダンパー位置データ生成部２４は、仮想ダンパー位置データの値を所定の最大値に設定する（ステップＳ５１）。また、当該鍵のキーオン・キーオフレジスタの現在値がキーオンの場合（ステップＳ５２のＹＥＳ）、仮想ダンパー位置データ生成部２４は、仮想ダンパー位置データの値を所定の最大値に設定する（ステップＳ５３）。仮想ダンパー位置データの最大値とは、前述の通り、ダンパーが弦から最も離れた状態（弦から最も遠い位置）に対応した位置を示すデータである。従って、この処理により、ソステヌートペダルオンデータを受信したときにキーオン中の鍵があった場合、又は、キーオンデータ９ｘを受信した場合に、アコースティックピアノにおけるステヌートペダルの操作に対するダンパーのロック動作、又は、押鍵操作に応じてダンパーが弦から離れる動きをシミュレートすることができる。
【００７７】
当該鍵についてＢｘ４２レジスタの現在値がソステヌートペダルオフ、及び、キーオン・キーオフレジスタの現在値がキーオフのときに（ステップＳ５０のＮＯ、ステップＳ５２のＮＯ）、当該鍵についてＡｘレジスタの値が閾値Ｋ２以下（閾値Ｋ２よりもエンド側の値）の場合（ステップＳ５４のＮＯ）、Ａｘレジスタの現在値とＢｘ４０レジスタの現在値を比較して、Ｂｘ４０レジスタの現在値（ダンパーペダル位置）の方が大きければ（ステップＳ５５のＹＥＳ）、Ｂｘ４０レジスタの現在値を仮想ダンパー位置データの値に設定する（ステップＳ５６）。Ａｘレジスタの現在値の方がＢｘ４０レジスタの現在値によりも大きければ（ステップＳ５５のＮＯ）、Ａｘレジスタの現在値を仮想ダンパー位置データの値に設定する（ステップＳ５７）。
アコースティックピアノにおいて、鍵の操作によるダンパー制御と、ダンパーペダル操作によるダンパー制御とが同時ある場合、より大きくダンパーを動かしている操作に応じてダンパー位置が決定されるのであるから、前記ステップＳ５５において、仮想ダンパー位置データの決定要因として、仮想ダンパー位置データをより大きい値に設定するイベントデータを優先することは、合理的である。
【００７８】
また、当該鍵についてＢｘ４２レジスタの現在値がソステヌートペダルオフ、及び、キーオン・キーオフレジスタの現在値がキーオフのときに（ステップＳ５０のＮＯ、ステップＳ５２のＮＯ）、当該鍵についてＡｘレジスタの値が閾値Ｋ２より大きい場合（ステップＳ５４のＹＥＳ）には、仮想ダンパー位置データ生成部２４は、Ｂｘ４０レジスタの現在値を仮想ダンパー位置データの値に設定する（ステップＳ５６）。また、この実施例の構成ではないが、離鍵位置データＡｘを受信しない構成（離鍵位置データＡｘの検出機構を持たない機種）の場合には、Ａｘレジスタに値がない。つまり、常にＡｘレジスタの値が閾値Ｋ２より大きい値（初期値）となっている。
【００７９】
そして、前記ステップＳ５１、Ｓ５３、Ｓ５６、又はＳ５７で設定された仮想ダンパー位置データが前回の値から変化していれば（ステップＳ５８のＹＥＳ）、当該設定した仮想ダンパー位置データをエンベロープ生成部２９に転送して、該エンベロープ生成部２９にリリースレートを変更する処理を行わせる（ステップＳ５９）。
【００８０】
図１１は、エンベロープ生成部（ＥＧ）２９が行うリリースレート変更処理の手順を示すフローチャートである。この処理は、前記図１０のステップＳ５９から呼び出される処理であって、該図１０の処理が処理対象としていた音高を処理対象として、１音高ずつについて実行される。ここで、前記図１０の処理は、上述の通り、図８及び図９のステップＳ１８、Ｓ２８、Ｓ３９、Ｓ４３、及びＳ４９のいずれから立ち上げられたかによって、その処理対象とする音高の数が異なっている。図１０の処理は、１音高分の処理であるから、処理対象とする音高の数が複数ある場合には、該処理対象とする音高の数だけ図１０に示す処理が起動する。以下に説明する図１１の「リリースレート変更処理」は、図１０の処理が処理対象としていた１音高に対して１つずつ実行されるものであるから、図１０の処理が複数立ち上げられた場合には、図１１の処理も複数実行される。
なお、この処理は、ＣＰＵ２が実行するソフトウェアプログラムにより実現されるものである。
【００８１】
ＥＧ２９は、前記ステップＳ５１、Ｓ５３、Ｓ５６、又はＳ５７で設定された仮想ダンパー位置データに基づきエンベロープ信号のリリースレートを決定して（ステップＳ６０）、該決定した値にリリースレートを変更する（ステップＳ６１）。アコースティックピアノのリリースの特性は、ダンパーが弦から離れた状態になるほど、リリースがゆるやかな傾きになり、ダンパーが弦に近いほどリリースが急になる。したがって、リリースレートの設定は、仮想ダンパー位置データを参照して、仮想ダンパー位置データが最大値のときはリリースレートを最もゆるやかな傾きの値に設定し、仮想ダンパー位置データが小さくなるにつれてリリースレートの傾きが徐々に急になるよう値を設定する。この設定には、例えば、仮想ダンパー位置データの値毎に対応するリリースレートの値を規定したテーブル（リリースレート変換テーブル）を予め用意しておき、そのテーブルを参照して仮想ダンパー位置データをリリースレートへ変更するようにして行う。これにより、ＥＧ２９は、仮想ダンパー位置データに基づき決定されたリリースレートを持つエンベロープ信号を生成する。
【００８２】
ＥＧ２９は、音源的キーオンのタイミングから、サンプリング周期毎に、アタックレート、ディケイレート及びサスティンレートの値を順に出力して、アッタク部、ディケイ部、及びサスティン部からなるエンベロープ信号を生成する。そして、音源的キーオフのタイミングに応じて、ＥＧ２９は、前記ステップＳ６１で新たに設定したリリースレートに従うエンベロープ信号で楽音信号のリリース制御（消音制御）を行う。これにより、仮想ダンパー位置データの現在値に応じたリリース制御が行われる。よって、鍵盤的キーオン中に（つまり、楽音信号の発音制御中又は消音制御中に）、鍵の操作（離鍵位置データ）や、ダンパーペダルの操作によって、仮想ダンパー位置データが更新されて、リリースレートが更新されれば、リリースレートがリアルタイムで変化することになる。
【００８３】
以上説明した通り、この発明の一実施例を適用した電子ピアノ１は、仮想ダンパー位置データ生成部２４を備わることにより、各鍵についてキーオンデータ９ｘ、キーオフデータ８ｘ、離鍵位置データＡｘ、ダンパーペダル位置データＢｘ４０、ソステヌートペダルオン（Ｂｘ４２）、又はソステヌートペダルオフデータ（Ｂｘ４２）の少なくともいずれか１つを受信したときに、該受信したデータに基づいて仮想ダンパー位置データを生成して、この生成した仮想ダンパー位置データをリリースレートを決定するパラメータとすることで、複数の動作要因により複合的にダンパーの位置（ダンパーと弦の距離）を制御するアコースティックピアノの物理的発音機構（リリース制御機構）を模擬した構成で、アコースティックピアノにおけるリリース制御をリアルに再現することができる。
【００８４】
上記実施例では、本願発明を適用する電子楽器（電子ピアノ１）の操作部５の構成として、鍵盤ユニット２０、ダンパーペダルユニット２１、およびソステヌートペダルユニット２２を具える例について説明したが、鍵盤ユニット２０、ダンパーペダルユニット２１、およびソステヌートペダルユニット２２のいずれかのユニットを持たない電子楽器においても、本願発明の楽音制御（図８、図９、図１０および図１１の処理）を適用することができる。その場合、電子楽器に実装されていないユニットについては、そのユニットから発生すべきデータが発生していないだけであり、受信部２３が実行する処理は、上記図８〜図１１の処理に何ら変更を加える必要がない。すなわち、図８および図９の処理においては、実装されていないユニットから発生すべきデータの受信判断ステップで、常にデータ受信なし（ＮＯ）と判断されるだけとなる。また、鍵盤ユニット２０については、離鍵位置データを発生できない（例えば検出機構を持たない）ユニット、つまりキーオンデータおよびキーオフデータのみを発生するユニットを実装した電子鍵盤楽器にも、本願発明をそのまま適用することができる。更に、本願発明の楽音制御（図８、図９、図１０および図１１の処理）は、離鍵位置データＡｘの解像度が異なる鍵盤ユニットを登載した電子楽器においても、アルゴリズムの変更なしにそのまま適用できる。その場合は、離鍵位置データＡｘの解像度にあわせたＡｘ用データ変換テーブルを用意することが望ましい。このように、上記実施例の発明は、仮想ダンパー位置データにお基づくリリース制御を、合理的で汎用性の高い構成で実現することができるという優れた効果を奏する。
【００８５】
また、上記図８及び図９に示す変更例として、ステップＳ２４、Ｓ２６，Ｓ３４，Ｓ３７、及びＳ４１のテーブル変換処理を行わずに、離鍵位置データＡｘの値又はダンパーペダル位置データＢｘ４０の値を、そのまま仮想ダンパー位置データとして扱う処理構成としてもよい。
【００８６】
なお、上記実施例では、電子ピアノ１をユーザが演奏する場合を想定して、楽音信号のリリース制御を説明したが、これに限らず、キーオンデータ９ｘ、キーオフデータ８ｘ、離鍵位置データＡｘ、ダンパーペダル位置データＢｘ４０、ソステヌートペダルオン（Ｂｘ４２）、又はソステヌートペダルオフデータ（Ｂｘ４２）の少なくともいずれか１つを含む自動演奏データを再生する場合（自動演奏）にも、本発明に係るリリース制御を適用することができる。その場合、図２の受信部２３に対するＭＩＤＩイベントデータの供給元である鍵盤ユニット２０、ダンパーペダルユニット２１、及びソステヌートペダルユニット２２を、自動演奏データの供給手段に読み替えればよい。
【００８７】
また、上記実施例では、離鍵位置データＡｘが１２８段階の分解能で離鍵操作時の鍵の操作方向の位置を表すデータとしたが、例えば、図３の閾値Ｋ２、Ｋ２Ａ，Ｋ２Ｂ，Ｋ２Ｃ及びＫ４で区切られた４区間について４段階の離鍵位置データＡｘを出力する構成など、レスト位置からエンド位置までの範囲に設定された数ポイントの区間毎に離鍵位置データＡｘの値が出力される構成であってもよい。
また、上記のように数ポイントの区間毎に離鍵位置データＡｘの値を出力する構成とした場合、鍵盤ユニット２０に含まれるキーセンは、鍵の位置を連続量で検出するものである必要はなく、鍵の操作方向の位置について、数ポイントの閾値の通過を検出できる構成（例えば、図３の閾値Ｋ２、Ｋ２Ａ，Ｋ２Ｂ，Ｋ２Ｃ及びＫ４の各閾値の通過を検出する構成）であってよい。
【００８８】
また、上記実施例では、本発明に係る楽音制御装置を電子ピアノに適用する例について説明したが、いわゆる電子ピアノに限らず、例えば、シンセサイザー、電子オルガンなどの電子楽器や、電子的に楽音信号を生成する処理を実行させる機能を有する楽音信号生成装置など、電子的に楽音信号を生成する機能を有する装置、コンピュータに楽音信号を生成する処理を実行させるソフトウェアプログラムに対して、本発明を適用可能であり、特にピアノ系音色の楽音信号の生成について本発明が顕著な効果を発揮する。
【図面の簡単な説明】
【００８９】
【図１】この発明の一実施形態に係る電子鍵盤楽器（電子ピアノ）の電気的ハードウェア構成の一例を示すブロック図。
【図２】図１の電子ピアノの楽音生成機能の構成を説明するための機能的ブロック図。
【図３】鍵の操作方向の位置（キーセンサの出力信号）と鍵の操作状態について説明するための図。
【図４】ピアノ音色のエンベロープ信号を説明するための図。
【図５】図２の鍵盤ユニットの動作を説明するフローチャート。
【図６】図２のダンパーペダルユニットの動作を説明するフローチャート。
【図７】図２のソステヌートペダルユニットの動作を説明するフローチャート。
【図８】図２の受信部の動作を説明するフローチャート。
【図９】図２の受信部の動作を説明するフローチャートであって、前記図８に示すフローチャートの続き。
【図１０】図２の仮想ダンパー位置データ生成部の動作を説明するフローチャート。
【図１１】図２のエンベロープ生成部のリリースレートの変更動作を説明するフローチャート。
【符号の説明】
【００９０】
１  電子ピアノ、２  ＣＰＵ、３  フラッシュメモリ、４  ＲＡＭ、５  操作部、６  表示部、７  音源部、８  バスライン、９  アンプ、１０  スピーカ、２０  鍵盤ユニット、２１  ダンパーペダルユニット、２２  ソステヌートペダルユニット、２３  受信部、２４  仮想ダンパー位置データ生成部、２５  位相生成部、２６  アドレス生成部、２７  補間部、２８  乗算部、２９  エンベロープ生成部、３０  スピーカシステム、３１  軌道、３２  アタック部、３３  ディケイ部、３４  サスティン部、３５  リリース部
【図１】
2010113024.tif 000003
【図２】
2010113024.tif 000004
【図３】
2010113024.tif 000005
【図４】
2010113024.tif 000006
【図５】
2010113024.tif 000007
【図６】
2010113024.tif 000008
【図７】
2010113024.tif 000009
【図８】
2010113024.tif 000010
【図９】
2010113024.tif 000011
【図１０】
2010113024.tif 000012
【図１１】
2010113024.tif 000013