(57)【要約】【課題】  波形メモリに記憶された楽音波形データを読み出して発音する場合において、入力された音高が記憶されている楽音波形データの最低音高より低域側にずれた場合でも、発音する音のクオリティを高く維持できるようにする。【解決手段】  ＲＯＭ４は、所定の時間間隔でサンプリングされた楽音波形データを先頭アドレスから順に記憶している。ＣＰＵ１は、鍵盤２の演奏に応じて入力される音高によってＲＯＭ４から楽音波形データを読み出す時間間隔を指定するが、その指定した時間間隔がＲＯＭ４の所定の時間間隔以下である場合には、指定した時間間隔でＲＯＭ４の楽音波形データを先頭アドレスから順に読み出し、指定した時間間隔が所定の時間間隔よりも大きい場合には、ＲＯＭ４の楽音波形データを先頭アドレスよりも後の開始アドレスから順に読み出す。【選択図】  図１
2006133342.tif 000002
【特許請求の範囲】
【請求項１】
所定の時間間隔でサンプリングされた楽音波形データを先頭アドレスから順に記憶している記憶手段と、
入力される音高によって前記記憶手段から楽音波形データを読み出す時間間隔を指定する指定手段と、
前記指定手段によって指定された時間間隔が前記所定の時間間隔以下である場合には当該指定された時間間隔で前記記憶手段の楽音波形データを前記先頭アドレスから順に読み出し、前記指定手段によって指定された時間間隔が前記所定の時間間隔よりも大きい場合には前記記憶手段の楽音波形データを前記先頭アドレスよりも後の開始アドレスから順に読み出す読出手段と、
を備えた楽音制御装置。
【請求項２】
前記指定手段によって指定された時間間隔が前記所定の時間間隔よりも大きい場合には、前記読出手段によって読み出された楽音波形データのエンベロープのパラメータを修正する修正手段をさらに備えたことを特徴とする請求項１に記載の楽音制御装置。
【請求項３】
前記読出手段は、前記指定手段によって指定された時間間隔が前記所定の時間間隔よりも大きい場合には前記記憶手段の楽音波形データを前記先頭アドレスよりも後のアドレスで当該楽音波形データのゼロクロスの開始アドレスから順に読み出すことを特徴とする請求項１に記載の楽音制御装置。
【請求項４】
前記記憶手段は、記憶している楽音波形データの先頭アドレスから後のアドレスで当該楽音波形データがゼロクロスとなるアドレスと音高とを対応させたテーブルを記憶し、前記読出手段は、前記テーブルにおいて、前記入力された音高に応じた時間間隔に最も近く、且つ、当該音高に応じた時間間隔よりも小さい時間間隔の音高に応じたアドレスを指定し、そのアドレスから順に前記記憶手段の楽音波形データを読み出すことを特徴とする請求項１に記載の楽音制御装置。
【請求項５】
楽音の音高を入力する第１のステップと、
前記第１のステップによって入力された音高に応じて、所定の時間間隔でサンプリングされた楽音波形データを先頭アドレスから順に記憶している記憶手段から楽音波形データを読み出す時間間隔を当該音高によって指定する第２のステップと、
前記第２のステップによって指定された時間間隔が前記所定の時間間隔以下である場合には当該指定された時間間隔で前記記憶手段の楽音波形データを前記先頭アドレスから順に読み出し、前記第２のステップによって指定された時間間隔が前記所定の時間間隔よりも大きい場合には前記記憶手段の楽音波形データを前記先頭アドレスよりも後の開始アドレスから順に読み出す第３のステップと、
を実行する楽音制御処理のプログラム。
【請求項６】
前記第２のステップによって指定された時間間隔が前記所定の時間間隔よりも大きい場合には、前記第３のステップによって読み出された楽音波形データのエンベロープのパラメータを修正する第４のステップをさらに有することを特徴とする請求項５に記載の楽音制御処理のプログラム。
【請求項７】
前記第３のステップは、前記第２のステップによって指定された時間間隔が前記所定の時間間隔よりも大きい場合には前記記憶手段の楽音波形データを前記先頭アドレスよりも後のアドレスで当該楽音波形データのゼロクロスの開始アドレスから順に読み出すことを特徴とする請求項５に記載の楽音制御処理のプログラム。
【請求項８】
前記記憶手段は、記憶している楽音波形データの先頭アドレスから後のアドレスで当該楽音波形データがゼロクロスとなるアドレスと音高とを対応させたテーブルを記憶し、前記第３のステップは、前記テーブルにおいて、前記入力された音高に応じた時間間隔に最も近く、且つ、当該音高に応じた時間間隔よりも小さい時間間隔の音高に対応したアドレスを指定し、そのアドレスから順に前記記憶手段の楽音波形データを読み出すことを特徴とする請求項５に記載の楽音制御処理のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、楽音制御装置および楽音制御処理のプログラムに関し、特に、所定の時間間隔でサンプリングされた楽音波形データを波形メモリから読み出して発音を制御する楽音制御装置および楽音制御処理のプログラムに関するものである。
【背景技術】
【０００２】
従来、自然楽器からの楽音信号をサンプリングした楽音波形データを波形メモリに記憶させて、シンセサイザー、電子ピアノ、電子オルガン、単体のキーボードなどの電子楽器の演奏に応じて、その波形メモリから楽音波形データを読み出して発音を制御する技術が知られている。自然楽器においては、楽音信号の波形は音の高さすなわち音高によって異なる。このため、自然楽器を摸擬して発音する電子楽器においては、各音色の楽器ごとに複数の音高に対応する楽音波形データを波形メモリに記憶する構成になっている。
ある提案の電子楽器においては、発明の実施の形態、図面に記載されているように、鍵盤などの演奏操作子の演奏が通常の演奏の場合には、波形メモリから読み出されるＰＣＭ波形データは、波形のスタートアドレスから読み出されて発音される。一方、演奏操作子の演奏がレガート演奏である場合、又は、鍵盤タッチの強さが一定以上の強い音である場合には、あらかじめ定められた読出しスタートポイントがＲＯＭから読み出されて、そのスタートポイントからのＰＣＭ波形データが波形メモリから読み出されて発音される。したがって、アコースティックなピアノやオルガンにおいて、音と音の間をなめらかに、切れ目なく感じさせるレガート演奏の発音が、電子楽器においても実現できる。（特許文献１参照）
【特許文献２】特開９−４４１６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記特許文献１においては、レガート演奏のように特別な演奏が行われた場合に、波形メモリの読出ポイントを変更するものである。しかしながら、波形メモリに記憶されている楽音波形データを読み出して発音する従来の電子楽器においては、通常の演奏においても波形の先頭アドレスから順に読み出した場合に不具合が発生するという課題があった。
自然楽器の楽音信号又はソフトウェアによって生成した楽音信号をサンプリングして、各サンプリングの楽音波形データとして波形メモリに記憶する構成においては、サンプリングレートを高くしてサンプリングの時間間隔を小さくすればするほど、発音する音のクオリティを高くすることができる。しかし、波形メモリに記憶される楽音波形データが増加するのでメモリ容量を多く必要とし、製品のコストアップを招くことになる。このため、従来の電子楽器においては、音と音のつながりを考慮する必要度が大きい高域側の楽音波形データを密にして多く記憶し、音と音のつながりを考慮する必要度が小さい低域側の楽音波形データを疎にして少なく記憶している。そして、波形メモリに記憶されていない楽音波形データに対する音高を発音する場合には、発音すべき音高より高い音高で記憶されている楽音波形データを、読み出しの時間間隔を大きくして読み出すことにより、発音すべき音高の楽音波形データとして代行させることによって、音のクオリティと製品コストとのトレードオフを行っている。
しかしながら、このような従来の電子楽器の構成においては、演奏によって入力された音高、又は、ＭＩＤＩデータのように外部機器から入力された音高が、記憶されている楽音波形データの最低音高より低域側にずれるほど、読み出し速度が遅くなるため発音開始タイミングが遅れたり、楽音波形の立ち上がりの部分であるアタックが間延びすることにより、音のクオリティが著しく低下していた。
本発明は、このような従来の課題を解決するためのものであり、波形メモリに記憶された楽音波形データを読み出して発音する場合において、入力された音高が記憶されている楽音波形データの最低音高より低域側にずれた場合でも、発音する音のクオリティを高く維持できるようにすることを目的とする。
【課題を解決するための手段】
【０００４】
請求項１に記載の楽音制御装置は、所定の時間間隔でサンプリングされた楽音波形データを先頭アドレスから順に記憶している記憶手段（第１実施形態および第２実施形態においては、図１のＲＯＭ４に相当する）と、入力される音高によって記憶手段から楽音波形データを読み出す時間間隔を指定する指定手段（第１実施形態および第２実施形態においては、図２の楽音波形生成部１１の機能に相当する）と、指定手段によって指定された時間間隔が所定の時間間隔以下である場合には、指定された時間間隔で記憶手段の楽音波形データを先頭アドレスから順に読み出し、指定手段によって指定された時間間隔が所定の時間間隔よりも大きい場合には、記憶手段の楽音波形データを先頭アドレスよりも後の開始アドレスから順に読み出す読出手段（第１実施形態および第２実施形態においては、図２の楽音波形生成部１１の機能に相当する）と、を備えた構成になっている。
【０００５】
請求項１の楽音制御装置において、請求項２に記載したように、指定手段によって指定された時間間隔が所定の時間間隔よりも大きい場合には、読出手段によって読み出された楽音波形データのエンベロープのパラメータを修正する修正手段（第１実施形態においては、図２のエンベロープ乗算部１２の機能に相当する）をさらに備えたような構成にしてもよい。
【０００６】
請求項１の楽音制御装置において、請求項３に記載したように、読出手段は、指定手段によって指定された時間間隔が所定の時間間隔よりも大きい場合には、記憶手段の楽音波形データを先頭アドレスよりも後のアドレスで楽音波形データのゼロクロスの開始アドレスから順に読み出すような構成にしてもよい。
【０００７】
請求項１の楽音制御装置において、請求項４に記載したように、記憶手段は、記憶している楽音波形データの先頭アドレスから後のアドレスで楽音波形データがゼロクロスとなるアドレスと音高とを対応させたテーブル（実施形態においては、図１０に示すテーブルに相当する）を記憶し、読出手段は、テーブルにおいて、入力された音高に応じた時間間隔に最も近く、且つ、音高に応じた時間間隔よりも小さい時間間隔の音高に対応したアドレスを指定し、そのアドレスから順に記憶手段の楽音波形データを読み出すような構成にしてもよい。
【０００８】
請求項５に記載の楽音制御処理のプログラムは、楽音の音高を入力する第１のステップと、第１のステップによって入力された音高に応じて、所定の時間間隔でサンプリングされた楽音波形データを先頭アドレスから順に記憶している記憶手段（第１実施形態および第２実施形態においては、図１のＲＯＭ４に相当する）から楽音波形データを読み出す時間間隔を、音高によって指定する第２のステップ（第１実施形態および第２実施形態においては、図７のステップＳＢ２の処理に相当する）と、第２のステップによって指定された時間間隔が所定の時間間隔以下である場合には、指定された時間間隔で記憶手段の楽音波形データを先頭アドレスから順に読み出し、第２のステップによって指定された時間間隔が所定の時間間隔よりも大きい場合には、記憶手段の楽音波形データを先頭アドレスよりも後の開始アドレスから順に読み出す第３のステップ（第１実施形態および第２実施形態においては、図８の楽音波形アドレス設定処理に相当する）と、を実行する構成になっている。
【０００９】
請求項５の楽音制御処理のプログラムにおいて、請求項６に記載したように、第２のステップによって指定された時間間隔が所定の時間間隔よりも大きい場合には、第３のステップによって読み出された楽音波形データのエンベロープのパラメータを修正する第４のステップ（第１実施形態においては、図９のエンベロープのパラメータ設定処理に相当する）をさらに有するような構成にしてもよい。
【００１０】
請求項５の楽音制御処理のプログラムにおいて、請求項７に記載したように、第３のステップは、第２のステップによって指定された時間間隔が前記所定の時間間隔よりも大きい場合には、記憶手段の楽音波形データを先頭アドレスよりも後のアドレスで、楽音波形データのゼロクロスの開始アドレスから順に読み出すような構成（実施形態においては、図８のステップＳＣ５およびステップＳＣ６の処理に相当する）にしてもよい。
【００１１】
請求項５の楽音制御処理のプログラムにおいて、請求項８に記載したように、記憶手段は、記憶している楽音波形データの先頭アドレスから後のアドレスで楽音波形データがゼロクロスとなるアドレスと音高とを対応させたテーブル（第２実施形態においては、図１０に示すテーブルに相当する）を記憶し、第３のステップは、テーブルにおいて、入力された音高に応じた時間間隔に最も近く、且つ、音高に応じた時間間隔よりも小さい時間間隔の音高に対応するアドレスを指定し、そのアドレスから順に記憶手段の楽音波形データを読み出すような構成（第２実施形態においては、図１１の処理に相当する）にしてもよい。
【発明の効果】
【００１２】
本発明の楽音制御装置および楽音制御処理のプログラムによれば、波形メモリに記憶された楽音波形データを読み出して発音する場合において、入力された音高が記憶されている楽音波形データの最低音高より低域側にずれた場合でも、発音する音のクオリティを高く維持できるという効果が得られる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明による楽音制御装置の第１実施形態および第２実施形態について、電子鍵盤楽器を例に採って説明する。
図１は、第１実施形態における電子鍵盤楽器の構成を示すブロック図である。ＣＰＵ１は、システムバスを介して、鍵盤２、スイッチ部３、ＲＯＭ４、ＲＡＭ５、表示部６、Ｄ／Ａ変換器７に接続されており、これら各部との間で指令およびデータを授受して、この電子鍵盤楽器全体を制御する。
【００１４】
鍵盤２は、押鍵に応じてその鍵に対応する音高、押鍵の強弱に応じたベロシティなどをＣＰＵ１に入力する。スイッチ部３は、スタートスイッチ、音色指定スイッチなどで構成されている。ＲＯＭ４には、ＣＰＵ１によって実行される楽音制御処理のプログラム、複数種類の楽器の音色に対応し、各音色における複数の音高に対応した楽音波形データの群、発音のエンベロープのパラメータ、種々の変数の初期値などがあらかじめ記憶されている。ＲＡＭ５は、ＣＰＵ１のワークエリアであり、ＣＰＵ１によって処理されるデータを一時的に記憶する。例えば、スイッチ部３で設定された音色、鍵盤２から入力された音高に対応するエンベロープのパラメータを一時的に記憶する。また、楽音制御処理の実行に必要なレジスタ、フラグ、および変数のエリアがＲＡＭ５に設けられている。表示部６は、スイッチ部３で設定された演奏モードや設定された発音の楽器などを表示する。Ｄ／Ａ変換器７は、ＣＰＵ１から入力された発音開始命令に応じて、ＲＯＭ４から読み出された楽音波形データをディジタルからアナログに変換してサウンドシステム８に出力して発音させ、ＣＰＵ１から入力された発音終了命令に応じてサウンドシステム８からの発音を停止させる。
【００１５】
図２は、楽音生成機能に関するブロック図である。楽音波形生成部１１は、発音開始指令に応じて、音色（ＴＯＮＥ）、音高（ＰＩＴＣＨ）に対応する楽音波形データ１４を読み出してエンベロープ乗算部１２に入力する。エンベロープ乗算部１２は、楽音波形生成部１１から入力された楽音波形データに対して、音色（ＴＯＮＥ）、音高（ＰＩＴＣＨ）に応じたエンベロープのパラメータ１５から形成されるエンベロープを乗算して楽音信号を増幅器１３に入力する。増幅器１３は、エンベロープ乗算部１２から入力された楽音信号を増幅して発音する。図２において、楽音波形生成部１１およびエンベロープ乗算部１２はＣＰＵ１の機能であり、増幅器１３はＤ／Ａ変換器７およびサウンドシステム８の機能である。また、楽音波形データ１４およびエンベロープのパラメータ１５は、上記したように、ＲＯＭ４にあらかじめ記憶されており、エンベロープのパラメータ１５はＲＡＭ５に一時的に記憶される。
【００１６】
図３（Ａ）、（Ｂ）は、ＲＯＭ４に記憶されている楽音波形データ、および、エンベロープのパラメータの内容を示す図である。図３（Ａ）において、ＴＰ［］は音色パラメータであり、種々の楽器に対応する複数の音色パラメータＴＰ［０］、ＴＰ［１］…が記憶されている。図３（Ｂ）において、各ＴＰ［０］、ＴＰ［１］…に対応して、楽音波形データＷＡＶ［０］、ＷＡＶ［１］…が記憶されている。図３（Ａ）の各音色パラメータＴＰ［０］、ＴＰ［１］…において、ＡＤＲ＿Ｓは対応する楽音波形データの先頭アドレス、ＰＩＴＣＨ＿Ｓは対応する楽音波形データのオリジナルピッチ、ＩＬないしＲＲは、対応するエンベロープのパラメータである。
【００１７】
このエンベロープのパラメータは、ＡＤＳＲ（アタック、ディケイ、サスティン、リリース）方式のパラメータであり、図４にアタック区間、ディケイ区間、サスティン区間、リリース区間におけるエンベロープの音量レベルの推移を示している。図４に示すように、波形のレベルの初期値であるイニシャルレベルＩＬ、立ち上がりの波形のレベルの目標値であるアタックレベルＡＬ、立ち上がりの傾きであるアタックレートＡＲ、減衰のレベルの目標値であるディケイレベルＤＬ、減衰の傾きであるディケイレートＤＲ、発音持続中のレベルの目標値であるサスティンレベルＳＬ、発音持続中の減衰の傾きであるサスティンレートＳＲ、消音の減衰の傾きであるリリースレートＲＲで構成されている。このパラメータの中で特に、アタックレベルＡＬおよびアタックレートＡＲは、音のクオリティに最も影響を及ぼす重要な部分である。
【００１８】
図５は、ＲＡＭ５に一時的に記憶されるデータエリアを示す図である。ＴＯＮＥはスイッチ部３にいて設定されて現在発音されている楽音波形データの音色、ＰＩＴＣＨは鍵盤２の押鍵された鍵番号に応じて指定されて現在発音されている楽音波形データの音高、ＡＤＲは、現在発音されている楽音波形データのアドレスのエリアを示している。また、ＩＬ、ＡＬ、ＡＲ、ＤＬ、ＤＲ、ＳＬ、ＳＲ、ＲＲは、現在発音されている楽音波形データに対して、図２のエンベロープ乗算部１２において乗算されているエンベロープを形成するイニシャルレベル、アタックレベル、アタックレート、ディケイレベル、ディケイレート、サスティンレベル、サスティンレート、リリースレートのパラメータのエリアである。
【００１９】
図６は、ＣＰＵ１によって実行されるメインルーチンのフローチャートである。初期処理（ステップＳＡ１）の後、スイッチ部３をサーチするスイッチ処理（ステップＳＡ２）、鍵盤２をサーチする鍵盤処理（ステップＳＡ３）、表示処理などのその他の処理（ステップＳＡ４）を繰り返し実行する。
【００２０】
図７は、メインルーチンにおけるステップＳＡ３の鍵盤処理のフローチャートである。鍵盤２をサーチして、各鍵の状態が押鍵であるか、離鍵であるか、又は変化なしであるかを検出する（ステップＳＢ１）。任意の鍵が押鍵がされたときは、その押鍵に対応するピッチすなわち音高を図５のＰＩＴＣＨにストアする（ステップＳＢ２）。次に、楽音波形アドレスの設定処理（ステップＳＢ３）、エンベロープのパラメータの設定処理（ステップＳＢ４）、発音開始処理（ステップＳＢ５）を行う。ステップＳＢ１において、任意の鍵が離鍵されたときは、消音処理を行う（ステップＳＢ６）。ステップＳＢ５の発音開始処理の後、ステップＳＢ６の消音処理の後、又は、ステップＳＢ１において鍵盤２の状態に変化がない場合には、メインルーチンに戻る。
【００２１】
図８は、図７の鍵盤処理におけるステップＳＢ３の楽音波形アドレス設定処理のフローチャートである。まず、ＲＯＭの対応する楽音波形データＴＰ［ＴＯＮＥ］の先頭アドレスＴＰ［ＴＯＮＥ］．ＡＤＲ＿ＳをレジスタＡＤＲ＿Ｓにストアし、ＲＯＭの対応する楽音波形データＴＰ［ＴＯＮＥ］のオリジナルピッチＴＰ［ＴＯＮＥ］．ＰＩＴＣＨ＿ＳをレジスタＰＩＴＣＨ＿Ｓにストアする（ステップＳＣ１）。そして、ＰＩＴＣＨの音高がＰＩＴＣＨ＿Ｓの音高以上であるか否かを判別する（ステップＳＣ２）。すなわち、押鍵された音高がＲＯＭから読み出した楽音波形データの音高以上であるか否かを判別する。ＰＩＴＣＨの音高がＰＩＴＣＨ＿Ｓの音高以上である場合には、レジスタＡＤＲ＿Ｓの音高をＲＡＭのＡＤＲにストアする（ステップＳＣ３）。したがって、この場合にはＲＯＭの対応する楽音波形データの先頭アドレスを読み出しの開始アドレスとして指定する。
【００２２】
ステップＳＣ２において、ＰＩＴＣＨの音高がＰＩＴＣＨ＿Ｓの音高より小さい（低い）場合には、下記の演算式によって求めた値をＲＡＭのＡＤＲにストアする（ステップＳＣ４）。
ＡＤＲ＝ＡＤＲ＿Ｓ＋（ＰＩＴＣＨ＿Ｓ−ＰＩＴＣＨ）×Ｃ１
なお、この演算式において、Ｃ１はあらかじめ設定された係数である。
したがって、この場合にはＲＯＭの対応する楽音波形データの先頭アドレスよりも押鍵に応じた音高のピッチからオリジナルピッチの差に係数を乗算した値だけ後のアドレスをＲＯＭの対応する楽音波形データを読み出す開始アドレスとして指定する。次に、ＡＤＲの開始アドレスにおける楽音波形データがゼロクロスポイントであるか否かを判別する（ステップＳＣ５）。ゼロクロスポイントでない場合には、ＡＤＲのアドレスを１つデクリメントして先頭アドレス側に戻し、読み出しの開始アドレスを更新する（ステップＳＣ６）。そして、再びステップＳＣ５においてＡＤＲの開始アドレスにおける楽音波形データがゼロクロスポイントであるか否かを判別する。ＡＤＲの開始アドレスの楽音波形データがゼロクロスポイントになったとき、又は、ステップＳＣ３においてＡＤＲに楽音波形データの先頭アドレスをストアした後は、図７のフローチャートに戻って、ステップＳＢ４に移行する。
【００２３】
図９は、図７におけるステップＳＢ４のエンベロープのパラメータ設定処理のフローチャートである。まず、図３（Ａ）に示したＲＯＭにおいて、現在の音色に対応するエンベロープＴＰ［ＴＯＮＥ］のパラメータであるＩＬないしＲＲをＲＡＭにコピーする（ステップＳＤ１）。次に、指定ピッチで発音させる場合の、アタック領域の発音時間Ｔ１、および、図８の楽音波形アドレスでのアドレス修正分に対応する発音時間Ｔ２を下記の演算式で求める（ステップＳＤ２）。
Ｔ１＝（（ＡＬ−ＩＬ）／ＡＲ）／ＦＳ×（ＰＩＴＣＨ＿Ｓ／ＰＩＴＣＨ）
Ｔ２＝（ＡＤＲ−ＡＤＲ＿Ｓ）／ＦＳ×（ＰＩＴＣＨ＿Ｓ／ＰＩＴＣＨ）
なお、この演算式において、ＦＳはサンプリング周波数である。
【００２４】
Ｔ１を求める演算式において、（ＡＬ−ＩＬ）／ＡＲは、図４に示したアタック領域において、レベル差（ＡＬ−ＩＬ）を傾き（ＡＲ）で除算した値であり、アタック領域の長さを、楽音波形データのサンプリングの時間間隔を単位として表わしたものとなる。したがって、この発音時間をサンプリング周波数ＦＳで除算した値は、オリジナルピッチで発音させる場合のアタック領域の発音時間となる。そして、この発音時間にオリジナルピッチと発音の指定ピッチとの比（ＰＩＴＣＨ＿Ｓ／ＰＩＴＣＨ）の値を乗算すると、指定ピッチで発音させる場合のアタック領域の発音時間Ｔ１が求まる。
【００２５】
また、Ｔ２を求める演算式において、（ＡＤＲ−ＡＤＲ＿Ｓ）はアタック領域の区間において、図８の発音波形アドレスの設定処理で修正された開始アドレスから先頭アドレスまでの読み飛ばしたアドレス数である。このアドレス数をサンプリング周波数ＦＳで除算した値は、オリジナルピッチで発音させる場合の、上記のアドレス数に対応した時間間隔である。この時間間隔にオリジナルピッチと発音の指定ピッチとの比（ＰＩＴＣＨ＿Ｓ／ＰＩＴＣＨ）の値を乗算すると、指定ピッチで発音させる場合の、開始アドレスの修正分に対応する発音時間Ｔ２が求まる。
【００２６】
次に、Ｔ１の値がＴ２の値よりも大きいか否かを判別する（ステップＳＤ３）。Ｔ１の値がＴ２の値よりも大きい場合には、ＡＤＲの変更によってアタックレベルの到達ポイントに対応する楽音波形データのアドレスが異ならないようにするために、下記の演算式によってアタックレートであるＡＲの値を修正する（ステップＳＤ４）。
ＡＲ＝ＡＲ×Ｔ１／（Ｔ１−Ｔ２）
ただし、修正したアタックレートがこのシステムにおいて取り得る最大値であるＡＲ＿ＭＡＸより大きい場合には、ＡＲをＡＲ＿ＭＡＸとする。
ステップＳＤ３において、Ｔ１の値がＴ２の値以下である場合には、ＡＲををＡＲ＿ＭＡＸとする。ステップＳＤ４又はステップＳＤ５において、ＡＲの値を設定した後は、図７のフローチャートに戻り、ステップＳＢ５の発音開始に移行する。
【００２７】
以上のように、この第１実施形態によれば、ＲＯＭ４は、所定の時間間隔でサンプリングされた楽音波形データを先頭アドレスから順に記憶している。ＣＰＵ１は、鍵盤２の演奏に応じて入力される音高によってＲＯＭ４から楽音波形データを読み出す時間間隔を指定するが、その指定した時間間隔がＲＯＭ４の所定の時間間隔以下である場合には、指定した時間間隔でＲＯＭ４の楽音波形データを先頭アドレスから順に読み出し、指定した時間間隔が所定の時間間隔よりも大きい場合には、ＲＯＭ４の楽音波形データを先頭アドレスよりも後の開始アドレスから順に読み出す。
したがって、ＲＯＭ４に記憶された楽音波形データを読み出して発音する場合において、入力された音高が記憶されている楽音波形データの最低音高より低域側にずれた場合でも、発音開始タイミングが遅れたり、アタックが間延びすることがないので、発音する音のクオリティを高く維持できる。
【００２８】
また、上記第１実施形態によれば、ＣＰＵ１は、指定した時間間隔が所定の時間間隔よりも大きい場合には、ＲＯＭ４から読み出した楽音波形データのエンベロープのパラメータを修正する。
したがって、指定した時間間隔で楽音波形データを読み出した場合と、所定の時間間隔で楽音波形データを読み出した場合とで、エンベロープにおけるレベルの目標値の到達ポイントに対応する楽音波形データのアドレスが異なることがない。
【００２９】
また、上記第１実施形態によれば、ＣＰＵ１は、指定した時間間隔が所定の時間間隔よりも大きい場合には、ＲＯＭ４の楽音波形データを先頭アドレスよりも後のアドレスで、且つ、楽音波形データのゼロクロスの開始アドレスから順に読み出す。
したがって、楽音波形データを読み出す開始アドレスが先頭アドレスでない場合でも、楽音波形データのゼロクロスポイント以外のアドレスから発音が開始されることがないのでノイズを発生することがなく、発音する音のクオリティを高く維持できる。
【００３０】
次に、本発明の第２実施形態について説明する。第２実施形態における電子鍵盤楽器の構成は、図１に示した第１実施形態の構成と同じであり、ＲＯＭ４の楽音波形データの構成は、図３に示した第１実施形態の場合と同じである。また、第２実施形態におけるＡＤＳＲ方式のエンベロープの特性およびＲＡＭ５のデータも図４および図５に示した第１実施形態と同じである。さらに、第２実施形態におけるメインルーチンのフローチャートおよび鍵盤処理のフローチャートも、図６および図７に示した第１実施形態の場合と同じである。ただし、ＲＯＭ４には図１０に示すテーブルがあらかじめ記憶されている。第１実施形態においては、図８および図９に示したように、楽音波形データの開始アドレスおよびエンベロープのパラメータを演算によって求めたが、第２実施形態においては、図１０のテーブルを検索して楽音波形データの開始アドレスおよびエンベロープのパラメータを求める。なお、第１実施形態と同じ構成および同じ動作については説明を省略するとともに、第１実施形態の図面を適宜援用して第２実施形態を説明する。
【００３１】
図１０において、ＰＰ［０］〜ＰＰ［ＰＰＮ］は、複数の楽器の音色に対応する音色パラメータＴＰ［０］、ＴＰ［１］、…において、各音色パラメータのピッチ領域ごとのパラメータである。各パラメータＰＰ［］において、ＰＩＴＣＨは領域境界のピッチであり、ＰＰ［］はピッチが小さい順すなわち音高が低い順に配列されている。最終データＰＰ［ＰＰＮ］においてはＰＩＴＣＨは−１になっている。ＡＤＲは、各ピッチ領域における楽音波形データの読み出しの開始アドレスであるゼロクロスポイントのアドレスであり、ＰＩＴＣＨが小さいほど、楽音波形データの先頭アドレスから後に離れた値になっている。最終データＰＰ［ＰＰＮ］においては、ＡＤＲは楽音波形データの先頭アドレスになっている。ＡＲは、各ピッチ領域のパラメータＰＰ［］におけるエンベロープのアタックレートであり、例えば各ピッチ領域でのＡＤＲに対応して、アタックレベルの到達ポイントに対応する楽音波形データのアドレスが異ならないように調整された値が設定されている。
【００３２】
次に、第２実施形態における鍵盤処理において、図７のステップＳＢ３の楽音波形アドレスの設定処理について、図１１のフローチャートを参照して説明する。まず、ＰＰ［］を指定する変数ｎを０にセットして（ステップＳＥ１）、ｎの値をインクリメントしながら、以下の処理を実行する。押鍵に応じた音色ＴＯＮＥに対応する音色パラメータＴＰ［ＴＯＮＥ］において、ｎで指定するピッチ領域ごとのパラメータＰＰ［ｎ］の領域境界のピッチＰＩＴＣＨが最終データＰＰ［ＰＰＮ］の−１であるか否かを判別する（ステップＳＥ２）。ＰＩＴＣＨが−１でない場合には、ＴＰ［ＴＯＮＥ］におけるパラメータＰＰ［ｎ］のＰＩＴＣＨが、押鍵の音高に対応する指定ピッチＰＩＴＣＨよりも大きい（高い）か否かを判別する（ステップＳＥ３）。
【００３３】
ＴＰ［ＴＯＮＥ］におけるＰＰ［ｎ］のＰＩＴＣＨが指定ピッチＰＩＴＣＨ以下である場合には、ｎの値をインクリメントして（ステップＳＥ４）、次のＰＰ［ｎ］のＰＩＴＣＨを指定する。そして、ステップＳＥ２においてＰＰ［ｎ］のＰＩＴＣＨが−１であるか否かを判別する。ＰＩＴＣＨが−１でない場合にはステップＳＥ３に移行して、ＰＰ［ｎ］のＰＩＴＣＨが指定ピッチＰＩＴＣＨより大きいか否かを判別する。すなわち、変数ｎの値をインクリメントしながら、指定ピッチＰＩＴＣＨに最も近く、且つ、指定ピッチＰＩＴＣＨよりも大きいＰＰ［ｎ］のＰＩＴＣＨをテーブルから検索する。
【００３４】
ステップＳＥ３において、ＰＰ［ｎ］のＰＩＴＣＨが指定ピッチＰＩＴＣＨより大きい場合、すなわち、指定ピッチＰＩＴＣＨに最も近く、且つ、指定ピッチＰＩＴＣＨよりも大きいＰＰ［ｎ］のＰＩＴＣＨをテーブルから検索した場合には、ＡＤＲにそのＰＰ［ｎ］のＰＩＴＣＨのアドレスをストアする（ステップＳＥ５）。そして、図７の鍵盤処理に戻り、ステップＳＢ４に移行する。
【００３５】
図１２は、第２実施形態における鍵盤処理のステップＳＢ４のエンベロープのパラメータ設定処理のフローチャートである。この処理では、図１０に示したＲＯＭのエンベロープのパラメータにおいて、アタックレートＡＲを除く他のパラメータＩＬ〜ＲＲを図５に示したＲＡＭの対応するエリアにコピーする（ステップＳＦ１）。次に、図１１で指定したアドレスのＰＰ［ｎ］のＡＲをＲＡＭの対応するエリアにコピーする（ステップＳＦ２）。そして、図７の鍵盤処理に戻る。
【００３６】
以上のように、この第２実施形態によれば、第１実施形態と同様に、ＲＯＭ４は、所定の時間間隔でサンプリングされた楽音波形データを先頭アドレスから順に記憶している。ＣＰＵ１は、鍵盤２の演奏に応じて入力される音高によってＲＯＭ４から楽音波形データを読み出す時間間隔を指定するが、その指定した時間間隔がＲＯＭ４の所定の時間間隔以下である場合には、指定した時間間隔でＲＯＭ４の楽音波形データを先頭アドレスから順に読み出し、指定した時間間隔が所定の時間間隔よりも大きい場合には、ＲＯＭ４の楽音波形データを先頭アドレスよりも後の開始アドレスから順に読み出す。
したがって、ＲＯＭ４に記憶された楽音波形データを読み出して発音する場合において、第１実施形態と同様に、入力された音高が記憶されている楽音波形データの最低音高より低域側にずれた場合でも、発音開始タイミングが遅れたり、アタックが間延びすることがないので、発音する音のクオリティを高く維持できる。
【００３７】
また、第１実施形態と同様に、ＣＰＵ１は、指定した時間間隔が所定の時間間隔よりも大きい場合には、ＲＯＭ４から読み出した楽音波形データのエンベロープのパラメータを修正するとともに、ＲＯＭ４の楽音波形データを先頭アドレスよりも後のアドレスで、且つ、楽音波形データのゼロクロスの開始アドレスから順に読み出す。
したがって、指定した時間間隔で楽音波形データを読み出した場合と、所定の時間間隔で楽音波形データを読み出した場合とで、エンベロープにおけるレベルの目標値の到達ポイントに対応する楽音波形データのアドレスが異なることがないとともに、楽音波形データを読み出す開始アドレスが先頭アドレスでない場合でも、楽音波形データのゼロクロスポイント以外のアドレスから発音が開始されることがないのでノイズを発生することがなく、発音する音のクオリティを高く維持できる。
【００３８】
さらに、第２実施形態によれば、ＲＯＭ４から読み出した楽音波形データのエンベロープのパラメータを修正する処理、および、ＲＯＭ４の楽音波形データを先頭アドレスよりも後のアドレスで、且つ、楽音波形データのゼロクロスの開始アドレスから順に読み出す処理を、演算によって行う代わりにＲＯＭ４にあらかじめ記憶されたテーブルを検索して求めるので、処理時間を短縮することができる。
【００３９】
なお、上記第１実施形態および第２実施形態においては、指定した時間間隔が所定の時間間隔よりも大きい場合には、ＲＯＭ４から読み出した楽音波形データのエンベロープのアタックレートを修正するようにしたが、変形例として、他のパラメータを修正するような構成にしてもよい。
また、上記第１実施形態および第２実施形態においては、音色および各音高に応じて複数の楽音波形データを使用する構成にしたが、さらに押鍵のベロシティに応じて複数の楽音波形データを使い分ける構成にしてもよい。
また、上記第１実施形態および第２実施形態においては、電子鍵盤楽器を例に採って本発明の楽音制御装置を説明したが、本発明の楽音制御装置は電子鍵盤楽器に限定されず、他の電子楽器にも適用することができる。変形例として、電子弦楽器、電子管楽器、電子打楽器に適用する構成でもよい。
【００４０】
また、上記実施形態においては、ＲＯＭ４にあらかじめ記憶された楽音制御処理のプログラムをＣＰＵ１が実行する装置の発明について説明したが、汎用のパソコン、電子鍵盤装置、および外部音源を組み合わせたシステムによって本発明を実現することも可能である。すなわち、フレキシブルディスク（ＦＤ）、ＣＤ、ＭＤなどの記憶媒体に記録されている楽音制御処理のプログラムをパソコンのハードディスクなどの不揮発性メモリにインストールしたり、インターネットなどのネットワークからダウンロードした楽音制御処理のプログラムを不揮発性メモリにインストールして、そのプログラムをパソコンのＣＰＵが実行することも可能である。この場合には、プログラムの発明やそのプログラムを記録した記録媒体の発明を実現できる。
【００４１】
すなわち、本発明によるプログラムは、
楽音の音高を入力する第１のステップと、前記第１のステップによって入力された音高に応じて、所定の時間間隔でサンプリングされた楽音波形データを先頭アドレスから順に記憶している記憶手段から楽音波形データを読み出す時間間隔を当該音高によって指定する第２のステップと、前記第２のステップによって指定された時間間隔が前記所定の時間間隔以下である場合には当該指定された時間間隔で前記記憶手段の楽音波形データを前記先頭アドレスから順に読み出し、前記第２のステップによって指定された時間間隔が前記所定の時間間隔よりも大きい場合には前記記憶手段の楽音波形データを前記先頭アドレスよりも後の開始アドレスから順に読み出す第３のステップと、を実行する。
【００４２】
前記第２のステップによって指定された時間間隔が前記所定の時間間隔よりも大きい場合には、前記第３のステップによって読み出された楽音波形データのエンベロープのパラメータを修正する第４のステップをさらに有する。
【００４３】
前記第３のステップは、前記第２のステップによって指定された時間間隔が前記所定の時間間隔よりも大きい場合には前記記憶手段の楽音波形データを前記先頭アドレスよりも後のアドレスで当該楽音波形データのゼロクロスの開始アドレスから順に読み出す。
【００４４】
前記記憶手段は、記憶している楽音波形データの先頭アドレスから後のアドレスで当該楽音波形データがゼロクロスとなるアドレスと音高とを対応させたテーブルを記憶し、前記第３のステップは、前記テーブルにおいて、前記入力された音高に応じた時間間隔に最も近く、且つ、音高に応じた時間間隔よりも小さい時間間隔の音高に対応するアドレスを指定し、そのアドレスから順に記憶手段の楽音波形データを読み出す。
【図面の簡単な説明】
【００４５】
【図１】本発明の実施形態における電子鍵盤楽器の構成を示すブロック図。
【図２】本発明の楽音生成機能に関するブロック図。
【図３】図１のＲＯＭに記憶されている楽音波形データおよびエンベロープのパラメータを示す図。
【図４】ＡＤＳＲ方式のエンベロープの音量レベルの推移を示す図。
【図５】図１のＲＡＭに一時的に記憶されるデータエリアを示す図。
【図６】図１のＣＰＵによって実行されるメインルーチンのフローチャート。
【図７】図６における鍵盤処理のフローチャート。
【図８】第１実施形態における鍵盤処理の楽音波形アドレス設定処理のフローチャート。
【図９】第１実施形態における鍵盤処理のエンベロープのパラメータ設定処理のフローチャート。
【図１０】第２実施形態におけるＲＯＭのテーブルの構成を示す図。
【図１１】第２実施形態における鍵盤処理の楽音波形アドレス設定処理のフローチャート。
【図１２】第２実施形態における鍵盤処理のエンベロープのパラメータ設定処理のフローチャート。
【符号の説明】
【００４６】
１  ＣＰＵ
２  鍵盤
３  スイッチ部
４  ＲＯＭ
５  ＲＡＭ
６  表示部
７  Ｄ／Ａ変換器
８  サウンドシステム
【図１】
2006133342.tif 000003
【図２】
2006133342.tif 000004
【図３】
2006133342.tif 000005
【図４】
2006133342.tif 000006
【図５】
2006133342.tif 000007
【図６】
2006133342.tif 000008
【図７】
2006133342.tif 000009
【図８】
2006133342.tif 000010
【図９】
2006133342.tif 000011
【図１０】
2006133342.tif 000012
【図１１】
2006133342.tif 000013
【図１２】
2006133342.tif 000014