(57)【要約】    【課題】  アコースティックピアノによって発音される楽音のリリース部分の音色をよりリアルに再現することができる楽音発生装置および楽音発生方法を実現するためのプログラムを提供する。    【解決手段】  リリース部波形データ４３を、複数のベロシティＫ波形データ４４（ただし、“Ｋ”は、Ａ，Ｂ，Ｃ，Ｄのいずれかを示す）によって構成し、各ベロシティＫ波形データ４４を、それぞれ、複数のキーオンタイムｋ波形データ４５（ただし、“ｋ”は、ａ，ｂ，ｃ，ｄのいずれかを示す）によって構成しておく。すなわち、ベロシティおよびキーオン時間に対応付けて、異なった波形データを複数種類用意しておく。そして、生成すべき楽音のベロシティおよびキーオン時間を検出し、その検出結果に応じて、波形データを１つ選択し、この選択した波形データに基づいて、当該楽音のリリース部の楽音信号を生成する。【選択図】    図４
2006030515.tif 000002
【特許請求の範囲】
【請求項１】
リリース部分の楽音を生成するための基礎となるリリース部波形データを複数種類記憶する波形記憶手段と、
演奏情報を入力する入力手段と、
該入力手段によって入力された演奏情報に基づいて、イニシャル・ベロシティを検出する検出手段と、
該検出手段によって検出されたイニシャル・ベロシティに応じて、前記波形記憶手段から、少なくとも１つのリリース部波形データを選択する選択手段と、
該選択手段によって選択されたリリース部波形データに基づいて、当該音色の楽音のリリース部分を生成する楽音生成手段と
を有することを特徴とする楽音発生装置。
【請求項２】
リリース部分の楽音を生成するための基礎となるリリース部波形データを複数種類記憶する波形記憶手段と、
演奏情報を入力する入力手段と、
該入力手段によって入力された演奏情報に基づいて、キーオン時間を検出する検出手段と、
該検出手段によって検出されたキーオン時間に応じて、前記波形記憶手段から、少なくとも１つのリリース部波形データを選択する選択手段と、
該選択手段によって選択されたリリース部波形データに基づいて、当該音色の楽音のリリース部分を生成する楽音生成手段と
を有することを特徴とする楽音発生装置。
【請求項３】
リリース部分の楽音を生成するための基礎となるリリース部波形データを複数種類記憶する波形記憶手段と、
演奏情報を入力する入力手段と、
該入力手段によって入力された演奏情報に基づいて、イニシャル・ベロシティおよびキーオン時間を検出する検出手段と、
該検出手段によって検出されたイニシャル・ベロシティおよびキーオン時間に応じて、前記波形記憶手段から、少なくとも１つのリリース部波形データを選択する選択手段と、
該選択手段によって選択されたリリース部波形データに基づいて、当該音色の楽音のリリース部分を生成する楽音生成手段と
を有することを特徴とする楽音発生装置。
【請求項４】
演奏情報を入力する入力ステップと、
該入力ステップによって入力された演奏情報に基づいて、イニシャル・ベロシティを検出する検出ステップと、
リリース部分の楽音を生成するための基礎となるリリース部波形データを複数種類記憶する波形記憶手段から、前記検出ステップによって検出されたイニシャル・ベロシティに応じて、少なくとも１つのリリース部波形データを選択する選択ステップと、
該選択ステップによって選択されたリリース部波形データに基づいて、当該音色の楽音のリリース部分を生成する楽音生成ステップと
を有する楽音発生方法をコンピュータに実行させるためのプログラム。
【請求項５】
演奏情報を入力する入力ステップと、
該入力ステップによって入力された演奏情報に基づいて、キーオン時間を検出する検出ステップと、
リリース部分の楽音を生成するための基礎となるリリース部波形データを複数種類記憶する波形記憶手段から、前記検出ステップによって検出されたキーオン時間に応じて、少なくとも１つのリリース部波形データを選択する選択ステップと、
該選択ステップによって選択されたリリース部波形データに基づいて、当該音色の楽音のリリース部分を生成する楽音生成ステップと
を有する楽音発生方法をコンピュータに実行させるためのプログラム。
【請求項６】
演奏情報を入力する入力ステップと、
該入力ステップによって入力された演奏情報に基づいて、イニシャル・ベロシティおよびキーオン時間を検出する検出ステップと、
リリース部分の楽音を生成するための基礎となるリリース部波形データを複数種類記憶する波形記憶手段から、前記検出ステップによって検出されたイニシャル・ベロシティおよびキーオン時間に応じて、少なくとも１つのリリース部波形データを選択する選択ステップと、
該選択ステップによって選択されたリリース部波形データに基づいて、当該音色の楽音のリリース部分を生成する楽音生成ステップと
を有する楽音発生方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、打鍵情報に応じて、楽音信号のリリース部分（立ち下がり部分）の音色を変化させるようにした楽音発生装置に関する。
【背景技術】
【０００２】
打鍵情報に応じて、楽音信号のリリース部分の音色を変化させるようにした楽音発生装置は、従来から知られている。
【０００３】
このような楽音発生装置として、楽音信号のリリース部分を生成するための楽音波形データを複数種類記憶しておき、該記憶された複数種類の楽音波形データから、検出した離鍵タッチに応じていずれかを選択し、該選択した楽音波形データに基づいて、当該離鍵された鍵に対応する楽音信号のリリース部分を生成するようにしたものがある（たとえば、特許文献１参照）。
【特許文献１】特公平５−４６９５５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、アコースティックピアノでは、発音された楽音のリリース部分の音色は、対応する鍵の離鍵タッチだけでなく、押鍵タッチによっても変化する。
【０００５】
しかし、上記従来の楽音発生装置では、生成目的の楽音信号のリリース部分を、対応する鍵の離鍵タッチに基づいて生成するようにしているので、押鍵タッチに応じた、当該リリース部分の音色変化を再現することができなかった。
【０００６】
本発明は、この点に着目してなされたものであり、アコースティックピアノによって発音される楽音のリリース部分の音色をよりリアルに再現することができる楽音発生装置および楽音発生方法を実現するためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、請求項１に記載の楽音発生装置は、リリース部分の楽音を生成するための基礎となるリリース部波形データを複数種類記憶する波形記憶手段と、演奏情報を入力する入力手段と、該入力手段によって入力された演奏情報に基づいて、イニシャル・ベロシティを検出する検出手段と、該検出手段によって検出されたイニシャル・ベロシティに応じて、前記波形記憶手段から、少なくとも１つのリリース部波形データを選択する選択手段と、該選択手段によって選択されたリリース部波形データに基づいて、当該音色の楽音のリリース部分を生成する楽音生成手段とを有することを特徴とする。
【０００８】
上記目的を達成するため、請求項２に記載の楽音発生装置は、リリース部分の楽音を生成するための基礎となるリリース部波形データを複数種類記憶する波形記憶手段と、演奏情報を入力する入力手段と、該入力手段によって入力された演奏情報に基づいて、キーオン時間を検出する検出手段と、該検出手段によって検出されたキーオン時間に応じて、前記波形記憶手段から、少なくとも１つのリリース部波形データを選択する選択手段と、該選択手段によって選択されたリリース部波形データに基づいて、当該音色の楽音のリリース部分を生成する楽音生成手段とを有することを特徴とする。
【０００９】
上記目的を達成するため、請求項３に記載の楽音発生装置は、リリース部分の楽音を生成するための基礎となるリリース部波形データを複数種類記憶する波形記憶手段と、演奏情報を入力する入力手段と、該入力手段によって入力された演奏情報に基づいて、イニシャル・ベロシティおよびキーオン時間を検出する検出手段と、該検出手段によって検出されたイニシャル・ベロシティおよびキーオン時間に応じて、前記波形記憶手段から、少なくとも１つのリリース部波形データを選択する選択手段と、該選択手段によって選択されたリリース部波形データに基づいて、当該音色の楽音のリリース部分を生成する楽音生成手段とを有することを特徴とする。
【００１０】
上記目的を達成するため、請求項４〜６に記載の各プログラムは、それぞれ請求項１〜３と同様の技術的思想によって実現できる。
【発明の効果】
【００１１】
請求項１または４に記載の発明によれば、入力された演奏情報に基づいて、イニシャル・ベロシティが検出され、該検出されたイニシャル・ベロシティに応じて、波形記憶手段から、少なくとも１つのリリース部波形データが選択され、該選択されたリリース部波形データに基づいて、当該音色の楽音のリリース部分が生成されるので、アコースティックピアノによって発音される楽音のリリース部分の音色をよりリアルに再現することができる。
【００１２】
請求項２または５に記載の発明によれば、入力された演奏情報に基づいて、キーオン時間が検出され、該検出されたキーオン時間に応じて、波形記憶手段から、少なくとも１つのリリース部波形データが選択され、該選択されたリリース部波形データに基づいて、当該音色の楽音のリリース部分が生成されるので、請求項１または４に記載の発明と同様の効果が得られる。
【００１３】
請求項３または６に記載の発明によれば、入力された演奏情報に基づいて、イニシャル・ベロシティおよびキーオン時間が検出され、該検出されたイニシャル・ベロシティおよびキーオン時間に応じて、波形記憶手段から、少なくとも１つのリリース部波形データが選択され、該選択されたリリース部波形データに基づいて、当該音色の楽音のリリース部分が生成されるので、請求項１または４に記載の発明と同様の効果が得られる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００１５】
図１は、本発明の一実施の形態に係る楽音発生装置の概略構成を示すブロック図である。
【００１６】
同図に示すように、本実施の形態の楽音発生装置は、鍵盤操作子１と、ペダル操作子２と、各種情報を入力するための複数のスイッチを含む設定操作子３と、鍵盤操作子１、ペダル操作子２および設定操作子３に含まれる各操作子の操作状態を検出する操作子インターフェース４と、装置全体の制御を司るＣＰＵ５と、該ＣＰＵ５が実行する制御プログラムや各種テーブルデータ等を記憶するＲＯＭ６と、楽曲データ、各種入力情報および演算結果等を一時的に記憶するＲＡＭ７と、タイマ割込み処理における割込み時間や各種時間を計時するタイマ８と、各種情報等を表示する、たとえば液晶ディスプレイ（ＬＣＤ）および発光ダイオード（ＬＥＤ）等を備えた表示装置９と、前記制御プログラムを含む各種アプリケーションプログラムや各種楽曲データ、各種データ等を記憶する外部記憶装置１０と、上記記憶された楽曲データ等を楽音信号に変換する音源回路１１と、該音源回路１１からの楽音信号に各種効果を付与するための効果回路１２と、該効果回路１２からの楽音信号を音響に変換する、たとえば、ＤＡＣ（Digital-to-Analog Converter）やアンプ、スピーカ等のサウンドシステム１３とにより構成されている。
【００１７】
上記構成要素４〜１２は、バス１４を介して相互に接続され、ＣＰＵ５にはタイマ８が接続され、音源回路１１には効果回路１２が接続され、効果回路１２にはサウンドシステム１３が接続されている。
【００１８】
外部記憶装置１０としては、たとえば、フレキシブルディスクドライブ（ＦＤＤ）、ハードディスクドライブ（ＨＤＤ）、ＣＤ−ＲＯＭドライブおよび光磁気ディスク（ＭＯ）ドライブ等を挙げることができる。そして、外部記憶装置１０には、前述のように、ＣＰＵ５が実行する制御プログラムも記憶でき、ＲＯＭ６に制御プログラムが記憶されていない場合には、この外部記憶装置１０に制御プログラムを記憶させておき、それをＲＡＭ７に読み込むことにより、ＲＯＭ６に制御プログラムを記憶している場合と同様の動作をＣＰＵ５にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。
【００１９】
本実施の形態の楽音発生装置は、演奏者が鍵盤操作子１およびペダル操作子２等を用いてリアルタイムに演奏することによって楽音を発生させたり、前記記憶された楽曲データを自動再生することによって楽音を発生させたりすることができるように構成されている。そして、発生させる楽音の指示は、本実施の形態では、ＭＩＤＩ（Musical Instrument Digital Interface）イベントを用いて行うようにしている。具体的には、演奏者が鍵盤操作子１のある鍵を押鍵すると、その押鍵に対応する、ＭＩＤＩのキーオンイベントを発生させ、離鍵すると、その離鍵に対応する、ＭＩＤＩのキーオフイベントを発生させる。ペダル操作子２やその他の操作子についても同様に、操作された操作子に対応するＭＩＤＩのイベントを発生させる。また、楽曲データは、ＭＩＤＩのイベント列によって形成されている。もちろん、ＭＩＤＩイベントを用いて楽音の指示を行うようにしたのは、典型的な手法であるという理由に過ぎず、他の指示方法を用いても構わない。
【００２０】
図２は、音源回路１１の詳細な構成を示すブロック図である。
【００２１】
同図に示すように、音源回路１１は、ＭＩＤＩデコーダ２０によって生成される各種パラメータを格納するために、該各パラメータのそれぞれに対応して設けられたレジスタ２１ａ〜２１ｉからなる発音制御レジスタ２１と、該発音制御レジスタ２１に格納された各種パラメータに基づいて、波形メモリ（ＷＴ）２３に記憶されている波形データのアドレスを発生するアドレスジェネレータ（ＡＤＧ）２２と、楽音信号を生成するための基礎になる波形データを複数種類記憶する波形メモリ２３と、ＭＩＤＩデコーダ２０によって生成されるＥＧ（envelope generator）パラメータに基づいて、楽音信号のエンベロープを生成するＥＧ２４と、乗算器２５および２６とによって構成されている。
【００２２】
なお、ＭＩＤＩデコーダ２０は、本実施の形態では、ＲＯＭ６に記憶されたＭＩＤＩデコード処理をＣＰＵ５に実行させることによって実現されるので、音源回路１１の構成要素ではないが、説明の都合上、図２中に記載されている。ＭＩＤＩデコーダ２０は、入力されたＭＩＤＩイベントに基づいて（解釈することにより）各種パラメータを生成する機能を営んでいる。
【００２３】
波形メモリ２３には、複数の音色のそれぞれについて、当該音色の楽音信号を生成するための基礎となる波形データが記憶されている。
【００２４】
図４（ａ）は、波形データのフォーマットの一例を示す図であり、同図（ａ）に示すように、各音色の波形データ４１は、それぞれ、アタック／サスティン部波形データ４２と、リリース部波形データ４３とによって構成されている。
【００２５】
図４（ｂ）は、ある波形データに基づいて生成した楽音信号波形の一例を示す図である。同図（ｂ）に示すように、楽音信号は、大きく分けて、アタック部、サスティン部およびリリース部の３つの部分によって形成される。アタック部とは、押鍵後楽音が立ち上がって行き、最大音量に達するまでの部分（時間ｔ０−ｔ１の部分）を言い、サスティン部とは、楽音が最大音量から離鍵に至るまで徐々に減衰していく部分（時間ｔ１−ｔ２の部分）を言い、リリース部とは、離鍵後楽音が急激に減衰し消音するまでの部分（時間ｔ２−ｔ３の部分）を言う。本実施の形態では、アタック部からサスティン部までの楽音信号は、アタック／サスティン部波形データ４２に基づいて生成し、リリース部の楽音信号は、リリース部波形データ４３に基づいて生成するようにしている。
【００２６】
アタック／サスティン部波形データ４２は、リリース部全体の楽音信号を生成するための基礎となる波形データと、サスティン部の一部の楽音信号を生成するための基礎となる波形データとによって構成されている。そして、サスティン部全体の楽音信号は、当該サスティン部の一部のための波形データをループ読み出しすることで、生成するようにしている。
【００２７】
図４（ａ）に戻り、リリース部波形データ４３は、複数のベロシティＫ波形データ４４（ただし、“Ｋ”は、Ａ，Ｂ，Ｃ，Ｄのいずれかを示す）によって構成され、各ベロシティＫ波形データ４４は、それぞれ、複数のキーオンタイムｋ波形データ４５（ただし、“ｋ”は、ａ，ｂ，ｃ，ｄのいずれかを示す）によって構成されている。つまり、ベロシティＫ波形データ内のキーオンタイムｋ波形データは、ベロシティが“Ｋ”であり、かつキーオンタイムが“ｋ”であるときに、アコースティックピアノで実際に発音された、リリース部の楽音信号をサンプリングしたものである。そして、生成すべき楽音のベロシティおよびキーオン時間が決まると、それに応じて、波形データを１つ選択するようにしている。
【００２８】
このように、各リリース部波形データを複数の波形データによって構成し、その中から目的の波形データを選択するようにしたのは、リリース部の楽音の音色は、押鍵時のベロシティやキーオン時間（押鍵から離鍵に至るまでの時間）に応じて変化する（具体的には、ベロシティが大きいほど、高調波成分の多いノイジーな音色となり、キーオン時間が短いほど、高調波成分の多いノイジーな音色となる）ので、その楽音を生成する基礎となる波形データも、ベロシティおよびキーオン時間に対応付けて用意しておく必要があるからである。ただし、ベロシティおよびキーオン時間の双方に対応付けるのではなく、いずれか一方に対応付けて波形データを用意し、その一方が決まると、波形データが１つ決まるようにしておき、この波形データに基づいて、リリース部の楽音信号を生成するようにしてもよい。
【００２９】
図２に戻り、アドレスジェネレータ２２は、発音制御レジスタ２１内のレジスタ２１ａ〜２１ｆにそれぞれ記憶されたパラメータ値に基づいて、読み出すべき波形サンプルの、波形メモリ２３上のアドレスを生成する。ここで、波形サンプルとは、波形データを構成する個々のデータを言う。つまり、波形サンプルの集合体が、波形データである。なお、アドレスジェネレータ２２の詳細な構成およびアドレスの生成方法については、図３を用いて後述する。
【００３０】
次に、発音制御レジスタ２１を構成する９つのレジスタ２１ａ〜２１ｉについて説明する。
【００３１】
レジスタ２１ａは、アタックスタートアドレス（ＡＳＡ）を格納するレジスタ（以下、「ＡＳＡレジスタ」という）である。アタックスタートアドレスとは、アタック／サスティン部波形データ４２の先頭アドレスを意味し、絶対アドレスである。
【００３２】
レジスタ２１ｂは、ループスタートアドレス（ＬＳＡ）を格納するレジスタ（以下、「ＬＳＡレジスタ」という）である。ループスタートアドレスとは、アタック／サスティン部波形データ４２中、ループ読み出しを行う波形データの先頭アドレスを意味し、相対アドレスである。
【００３３】
レジスタ２１ｃは、ループエンドアドレス（ＬＥＡ）を格納するレジスタ（以下、「ＬＥＡレジスタ」という）である。ループエンドアドレスとは、アタック／サスティン部波形データ４２中、ループ読み出しを行う波形データの末尾アドレスを意味し、相対アドレスである。
【００３４】
レジスタ２１ｄは、リリーススタートアドレス（ＲＳＡ）を格納するレジスタ（以下、「ＲＳＡレジスタ」という）である。リリーススタートアドレスとは、リリース部波形データ４３の先頭アドレスを意味し、絶対アドレスである。
【００３５】
レジスタ２１ｅは、アドレスの進み量（Ｆナンバ（ＦＮ））を格納するレジスタ（以下、「ＦＮレジスタ」という）である。アドレスの進み量とは、現在読み出し中の波形サンプルのアドレスと次に読み出すべき波形サンプルのアドレスとの差分を意味する。そして、この進み量は、生成指示されている楽音、つまり入力されたＭＩＤＩイベント中の音色番号およびキーコード（ノートナンバ）と、録音サンプリング周波数（波形データを作成したときのサンプリング周波数）と、サンプリング周波数（波形データを読み出すときのサンプリング周波数）とに基づいて算出される。
【００３６】
レジスタ２１ｆは、生成指示されている楽音のオクターブを示すＯＣＴパラメータを格納するレジスタ（以下、「ＯＣＴレジスタ」という）である。ＯＣＴパラメータの値は、入力されたＭＩＤＩイベント中のキーコード（ノートナンバ）に基づいて算出される。
【００３７】
レジスタ２１ｇは、ボリューム（Ｖｏｌ）パラメータを格納するレジスタ（以下、「Ｖｏｌレジスタ」という）である。Ｖｏｌパラメータの値は、入力されたＭＩＤＩイベント中のベロシティに基づいて算出される。
【００３８】
レジスタ２１ｈは、ＥＧパラメータを格納するレジスタ（以下、「ＥＧパラメータレジスタ」という）である。ＥＧパラメータの値は、入力されたＭＩＤＩイベント中の音色番号、キーコードおよびベロシティに基づいて算出される。
【００３９】
レジスタ２１ｉは、キーオン（ＫＯＮ）パラメータを格納するレジスタ（以下、「ＫＯＮレジスタ」という）である。ＫＯＮパラメータは、“１”と“０”のいずれかの値を採り、ＫＯＮレジスタ２１ｉに“１”が格納されたときには、発音が指示され、“０”が格納されたときには、消音が指示される。
【００４０】
ＥＧ２４は、ＥＧパラメータレジスタ２１ｈに格納されているＥＧパラメータおよびＫＯＮレジスタ２１ｉに格納されているＫＯＮパラメータに基づいて、楽音信号のエンベロープを生成する。つまり、前記図４（ｂ）に示すように、アタック部では、急峻に立ち上がり、サスティン部では、徐々に減衰し、リリース部では、急激に減衰するような楽音信号波形のエンベロープを生成する。
【００４１】
乗算器２５は、ＥＧ２４から出力されたエンベロープと、Ｖｏｌレジスタ２１ｇに格納されているＶｏｌパラメータの値とを乗算することにより、エンベロープのレベル（振幅）を調整する。
【００４２】
乗算器２６は、波形メモリ２３から読み出された波形サンプルと、乗算器２５から出力されたエンベロープとを乗算することにより、波形サンプルにエンベロープを付与する。
【００４３】
図３は、アドレスジェネレータ２２の詳細な構成を示すブロック図である。
【００４４】
同図において、ＦＮレジスタ２１ｅから読み出されたＦＮパラメータは、シフトレジスタ３１に格納される。シフトレジスタ３１には、ＯＣＴレジスタ２１ｆから読み出されたＯＣＴパラメータが供給され、シフトレジスタ３１は、ＦＮパラメータの値をＯＣＴパラメータの値だけビットシフトして、加算器３２に出力する。
【００４５】
加算器３２は、シフトレジスタ３１からの出力値とゲート３９からの出力値とを加算し、その加算結果、すなわち、読み出すべき波形サンプルの相対アドレスを、減算器３３、加算器３４および遅延器３６に出力する。
【００４６】
加算器３４は、加算器３２からの出力値にセレクタ３５からの出力値を加算し、読み出すべき波形サンプルの絶対アドレスを算出する。セレクタ３５の入力側には、ＡＳＡレジスタ２１ａから読み出されたアタックスタートアドレス（ＡＳＡ）およびＲＳＡレジスタ２１ｄから読み出されたリリーススタートアドレス（ＲＳＡ）が供給され、セレクタ３５のセレクト端子には、ＫＯＮレジスタ２１ｉから読み出されたＫＯＮパラメータが供給される。セレクタ３５は、ＫＯＮパラメータの値が“１”のときには、アタックスタートアドレス（ＡＳＡ）を選択して出力し、ＫＯＮパラメータの値が“０”のときには、リリーススタートアドレス（ＲＳＡ）を選択して出力する。
【００４７】
加算器３２からの出力値は、遅延器３６を介してセレクタ３８の入力側に供給される。さらに、加算器３２からの出力値は、減算器３３により、ＬＥＡレジスタ２１ｃから読み出されたループエンドアドレス（ＬＥＡ）だけ減算され、その減算結果のうち、最上位ビット（ＭＳＢ）は、セレクタ３８のセレクト端子に供給され、最上位ビット以外は、加算器３７に供給される。加算器３７は、この最上位ビット以外と、ＬＳＡレジスタ２１ｂから読み出されたループスタートアドレス（ＬＳＡ）とを加算し、その加算結果をセレクタ３８の入力側に出力する。
【００４８】
セレクタ３８は、セレクト端子に供給された最上位ビットが“１”のとき、すなわち、加算器３２からの出力値が、ループエンドアドレス（ＬＥＡ）より大きいとき、加算器３７からの出力値を選択してゲート３９に供給する一方、セレクト端子に供給された最上位ビットが“０”のとき、すなわち、加算器３２からの出力値が、ループエンドアドレス（ＬＥＡ）より小さいとき、遅延器３６からの出力値を選択してゲート３９に供給する。
【００４９】
ゲート３９には、キーオンパルス（ＫＯＮＰ）／キーオフパルス（ＫＯＦＦＰ）生成回路４０が接続されている。図５は、ＫＯＮＰ／ＫＯＦＦＰ生成回路４０がキーオンパルス（ＫＯＮＰ）／キーオフパルス（ＫＯＦＦＰ）を生成するタイミングを示す図であり、同図に示すように、ＫＯＮＰ／ＫＯＦＦＰ生成回路４０は、ＫＯＮパラメータの値が“０”から“１”に変化するときに、キーオンパルス（ＫＯＮＰ）を生成し、ＫＯＮパラメータの値が“１”から“０”に変化するときに、キーオフパルス（ＫＯＦＦＰ）を生成する。そして、ＫＯＮＰ／ＫＯＦＦＰ生成回路４０からキーオンパルス（ＫＯＮＰ）／キーオフパルス（ＫＯＦＦＰ）が発生する度に、ゲート３９はリセットされて、値“０”を加算器３２に出力する。
【００５０】
次に、アドレスジェネレータ２２の制御動作を、図６を参照して説明する。
【００５１】
図６は、アドレスジェネレータ２２によって生成されるアドレスの推移の一例を示す図であり、縦軸がアドレスを示し、横軸が時間を示している。
【００５２】
図３において、まず、ＫＯＮパラメータの値が“０”から“１”に変化すると、シフトレジスタ３１からの出力値は、加算器３２により、ゲート３９からの出力値（この場合、“０”）と加算される。つまり、シフトレジスタ３１からの出力値は、そのまま加算器３４に供給される。加算器３４は、シフトレジスタ３１からの出力値とアタックスタートアドレス（ＡＳＡ）とを加算し、この加算結果を、波形サンプル（アタック部のスタートアドレス（または近傍）の波形サンプル）の読み出しアドレスとして、波形メモリ２３に出力する。
【００５３】
次の動作周期（サンプリング周期）では、遅延器３６、セレクタ３８およびゲート３９を介してフィードバックされた、前周期のシフトレジスタ３１からの出力値と、現周期のシフトレジスタ３１からの出力値とが、加算器３２によって加算（累算）され、この加算結果に、加算器３４によって、アタックスタートアドレス（ＡＳＡ）が加算されて、その加算結果が、次の波形サンプルの読み出しアドレスとして、波形メモリ２３に出力される。
【００５４】
以下、同様の動作が繰り返されて、図６の時間Ｔ０−Ｔ１のように、所定の傾きを有する直線状にアドレスが生成される。
【００５５】
加算器３２から出力される相対アドレスが、ループエンドアドレス（ＬＥＡ）を越えると、減算器３３は、最上位ビット“１”をセレクタ３８に出力するので、セレクタ３８からは、加算器３７からの出力値が選択されて、ゲート３９に供給される。すなわち、ループエンドアドレス（ＬＥＡ）を越えた分のアドレスが、ループスタートアドレス（ＬＳＡ）に加算されて、加算器３２に供給される。加算器３２は、このアドレス値に、シフトレジスタ３１からの出力値を加算する。そして、この加算結果が、ループエンドアドレス（ＬＥＡ）を越えるまで、上述の動作が繰り返されて、図６の時間Ｔ１−Ｔ２のように、ループスタートアドレス（ＬＳＡ）を下限とし、ループエンドアドレス（ＬＥＡ）を上限として、所定の傾きを有する直線状にアドレスが生成される。
【００５６】
このようなループスタートアドレス（ＬＳＡ）を下限とし、ループエンドアドレス（ＬＥＡ）を上限とするアドレス生成は、キーオフイベントが発生されるまで継続され、キーオフイベントが発生されると、ＫＯＮパラメータの値が“１”から“０”に変化するので、シフトレジスタ３１からの出力値は、加算器３２により、ゲート３９からの出力値（この場合、“０”）と加算される。つまり、シフトレジスタ３１からの出力値は、そのまま加算器３４に供給される。加算器３４は、シフトレジスタ３１からの出力値とリリーススタートアドレス（ＲＳＡ）とを加算し、この加算結果を、波形サンプル（リリース部のスタートアドレス（または近傍）の波形サンプル）の読み出しアドレスとして、波形メモリ２３に出力する。
【００５７】
次の動作周期では、遅延器３６、セレクタ３８およびゲート３９を介してフィードバックされた、前周期のシフトレジスタ３１からの出力値と、現周期のシフトレジスタ３１からの出力値とが、加算器３２によって加算（累算）され、この加算結果に、加算器３４によって、リリーススタートアドレス（ＲＳＡ）が加算されて、その加算結果が、次の波形サンプルの読み出しアドレスとして、波形メモリ２３に出力される。
【００５８】
以下、同様の動作が、読み出し中のリリース部波形データの末尾アドレスまで繰り返されて、図６の時間Ｔ３−Ｔ４のように、所定の傾きを有する直線状にアドレスが生成される。
【００５９】
なお、リリース部波形データ４３のデータサイズは、アタック／サスティン部波形データ４２のデータサイズより小さいので、リリース部波形データ４３の末尾アドレス（相対アドレス）は、ループエンドアドレス（ＬＥＡ）を越えることはない。したがって、リリース部波形データ４３を読み出している場合に、減算器３３から最上位ビット“１”が出力されることはあり得ないので、リリース部波形データ４３の一部をループ読み出ししてしまうという誤動作は起こり得ない。
【００６０】
なお、音源回路１１は、本実施の形態では、ハードウェアによって構成したが、これに限らず、可能な限りソフトウェアによって構成するようにしてもよい。
【００６１】
以上のように構成された楽音発生装置が実行する制御処理を、図７を参照して詳細に説明する。
【００６２】
図７は、本実施の形態の楽音発生装置、特にＣＰＵ５が実行するＭＩＤＩデコード処理の手順を示すフローチャートである。
【００６３】
本ＭＩＤＩデコード処理は、取り込んだＭＩＤＩイベントがキーオンイベントであるときに実行されるキーオン処理（ステップＳ３〜Ｓ８）と、取り込んだＭＩＤＩイベントがキーオフイベントであるときに実行されるキーオフ処理（ステップＳ１０〜Ｓ１２）と、取り込んだＭＩＤＩイベントがその他イベントであるときに実行されるその他処理（ステップＳ１３）とによって構成されている。
【００６４】
キーオン処理では、まず、発音割り当てされていない空きチャンネルを探し、その空きチャンネルに発音割り当てし（ステップＳ３）、次に、取り込んだＭＩＤＩイベントに含まれるチャンネル（ＣＨ）情報に基づいて音色パラメータを取得し、取得した音色パラメータを対応するレジスタに格納するＣＨ／音色パラメータ変換処理を行う（ステップＳ４）。このＣＨ／音色パラメータ変換処理では、アタックスタートアドレス（ＡＳＡ）、ループスタートアドレス（ＬＳＡ）、ループエンドアドレス（ＬＥＡ）およびＥＧパラメータを取得し、それぞれ、ＡＳＡレジスタ２１ａ、ＬＳＡレジスタ２１ｂ、ＬＥＡレジスタ２１ｃおよびＥＧパラメータレジスタ２１ｈに格納する。なお、ＣＨ／音色パラメータ変換処理で用いる変換方法は、公知のものを用いればよいので、その説明は省略する。
【００６５】
次に、取り込んだＭＩＤＩイベントに含まれるノートナンバに基づいて音高パラメータを取得し、取得した音高パラメータを対応するレジスタに格納するノートナンバ／音高パラメータ変換処理を行う（ステップＳ５）。このノートナンバ／音高パラメータ変換処理では、ＦナンバおよびＯＣＴパラメータを取得し、それぞれ、ＦＮレジスタ２１ｅおよびＯＣＴレジスタ２１ｆに格納する。なお、ノートナンバ／音高パラメータ変換処理で用いる変換方法も、公知のものを用いればよいので、その説明は省略する。
【００６６】
そして、キーオン時間を計時するために、前記タイマ８をリセット（スタート開始）し（ステップＳ６）、取り込んだＭＩＤＩイベントに含まれるベロシティを記憶し（ステップＳ７）、ＫＯＮレジスタ２１ｉに“１”を設定する（ステップＳ８）。
【００６７】
キーオフ処理では、まず、取り込んだＭＩＤＩイベントによって消音が指示された、発音中の楽音を検索し（ステップＳ１０）、次に、このＭＩＤＩイベントに含まれるＣＨ情報、キーオンイベントが発生した後、このキーオンイベントに対応するキーオフイベントが発生するまでの時間（タイマ８によって計時された時間）および前記ステップＳ７で記憶しておいたベロシティに基づいて、読み出すべきリリース部波形データ４３を決定し、その先頭アドレスをＲＳＡレジスタ２１ｄに設定する（ステップＳ１１）。そして、ＫＯＮレジスタ２１ｉに“０”を設定する（ステップＳ１２）。
【００６８】
このように、本ＭＩＤＩデコード処理では、主として、取り込んだＭＩＤＩイベントに基づいてパラメータを取得し、このパラメータを、発音制御レジスタ２１内の対応するレジスタ２１ａ〜２１ｉに設定する処理のみを行い、その後の楽音生成処理に関する処理はなされていない。これは、本実施の形態では、発音制御レジスタ２１にパラメータを設定すると、その後の楽音生成処理は、音源回路１１側で自動的に行われるように構成されているからである。なお、音源回路１１による楽音生成処理は、既に図２および図３を用いて詳細に説明したので、繰り返さない。
【００６９】
以上説明したように、本実施の形態では、押鍵タッチに基づいて、読み出すべきリリース部波形データを選択するようにしたので、アコースティックピアノによって発音される楽音のリリース部分の音色をよりリアルに再現することができる。
【００７０】
なお、アコースティックピアノ（グランドピアノ）には、３つのペダルが設けられ、そのうちの中央のペダルは、ソステヌートペダルと呼ばれている。ソステヌートペダルは、このペダルを踏み込む前から押鍵されて発音中の音のみを持続させるものである。このように、ソステヌートペダルを踏み込んだときの状態、つまり、特定の音のみが持続している状態のときに、本発明を適用すると、特に有効である。具体的には、ペダル操作子２のうち、ソステヌートペダルに対応するものが操作されたときには、リリース部の楽音信号を、複数のリリース部波形データから選択したものに基づいて生成する一方、ソステヌートペダルに対応するものが操作されないときには、波形データを選択せずに、特定のリリース部波形データに基づいて生成する。
【００７１】
また、本実施の形態では、リリース部の楽音信号は、選択された１つのリリース部波形データに基づいて生成するようにしたが、これに限らず、少数の複数個（たとえば、２個）のリリース部波形データを選択し、これに基づいて生成するようにしてもよい。
【００７２】
さらに、音源方式として、本実施の形態では、波形メモリ音源方式を採用したが、これに限らず、たとえばＦＭ音源方式などの他の音源方式を採用してもよい。ＦＭ音源方式を採用した場合、複数のリリース部波形のそれぞれを生成するために、複数の演算パラメータ群を用意しておき、押鍵タッチが検出されると、この押鍵タッチに基づいて、いずれかの演算パラメータ群を選択し、選択された演算パラメータ群に基づいて、目的のリリース部波形を生成するようにすればよい。
【００７３】
なお、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵ５やＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【００７４】
この場合、記憶媒体から読出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００７５】
プログラムコードを供給するための記憶媒体としては、たとえば、フレキシブルディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。また、通信ネットワークを介してサーバコンピュータからプログラムコードが供給されるようにしてもよい。
【００７６】
また、コンピュータが読出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【００７７】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ５などが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００７８】
【図１】本発明の一実施の形態に係る楽音発生装置の概略構成を示すブロック図である。
【図２】図１の音源回路の詳細な構成を示すブロック図である。
【図３】図１のアドレスジェネレータの詳細な構成を示すブロック図である。
【図４】図１の波形メモリに記憶される波形データを説明するための図である。
【図５】図３のＫＯＮＰ／ＫＯＦＦＰ生成回路がキーオンパルス（ＫＯＮＰ）／キーオフパルス（ＫＯＦＦＰ）を生成するタイミングを示す図である。
【図６】図３のアドレスジェネレータによって生成されるアドレスの推移の一例を示す図である。
【図７】図１の楽音発生装置、特にＣＰＵが実行するＭＩＤＩデコード処理の手順を示すフローチャートである。
【符号の説明】
【００７９】
１…鍵盤操作子（入力手段），４…操作子インターフェース（入力手段），５…ＣＰＵ（検出手段、選択手段、楽音生成手段），１１…音源回路（楽音生成手段），２３…波形メモリ（波形記憶手段）
【図１】
2006030515.tif 000003
【図２】
2006030515.tif 000004
【図３】
2006030515.tif 000005
【図４】
2006030515.tif 000006
【図５】
2006030515.tif 000007
【図６】
2006030515.tif 000008
【図７】
2006030515.tif 000009