(57)【要約】【課題】エコー効果を生成するときのＣＰＵの負担を低減すること。【解決手段】スタートアドレスとＦナンバ加算値と複数エンベロープデータとを示す制御パラメータを算出するＣＰＵ３と、そのスタートアドレスにＦナンバ加算値を累算して読出アドレスを算出するＦナンバ累算器３２と、波形メモリ１２から読出アドレスに対応する読出波形データを読み出して楽音を生成する読出部３３と、複数エンベロープデータのうちの１つのエンベロープデータに基づいて楽音にエンベロープを付加するエンベロープ発生器３４、３５とを備えている。このとき、Ｆナンバ累算器３２は、エンベロープデータが所定フェーズに対応するときにＦナンバ加算値を累算しない。このとき、楽音発生装置は、エンベロープデータだけを変更するだけで、スタートアドレスにＦナンバ加算値を累算することを制御することができ、その累算を制御するときのＣＰＵ３の負担を軽減することができる。【選択図】図１
2007272020.tif 000002
【特許請求の範囲】
【請求項１】
スタートアドレスとＦナンバ加算値と複数エンベロープデータとを示す制御パラメータを入力装置の操作に応答して算出するＣＰＵと、
前記スタートアドレスに前記Ｆナンバ加算値を累算して読出アドレスを算出するＦナンバ累算器と、
複数アドレスに対応付けて複数波形データを記録する波形メモリから前記読出アドレスに対応する読出波形データを読み出して楽音を生成する読出部と、
前記複数エンベロープデータのうちの１つのエンベロープデータに基づいて前記楽音にエンベロープを付加するエンベロープ発生器とを具備し、
前記複数エンベロープデータは、前記楽音が発音される期間を区分する複数フェーズに対応し、
前記Ｆナンバ累算器は、前記エンベロープデータが所定フェーズに対応するときに前記Ｆナンバ加算値を累算しない
楽音発生装置。
【請求項２】
請求項１において、
前記Ｆナンバ累算器は、
セレクタと、
前記Ｆナンバ加算値と前記セレクタにより出力される値とを加算して前記読出アドレスを出力する加算器とを備え、
前記セレクタは、前記エンベロープデータが前記所定フェーズに対応するときに前記スタートアドレスを出力し、前記エンベロープデータが前記所定フェーズに対応しないときときに前記加算器により出力される値を出力する
楽音発生装置。
【請求項３】
請求項１において、
前記Ｆナンバ累算器は、
セレクタと、
ゲートと、
前記ゲートにより出力される値と前記セレクタにより出力される値とを加算して前記読出アドレスを出力する加算器とを備え、
前記セレクタは、前記操作の直後に前記スタートアドレスを出力し、前記スタートアドレスを出力した後に前記加算器により出力される値を出力し、
前記ゲートは、前記エンベロープデータが前記所定フェーズに対応するときに０を出力し、前記エンベロープデータが前記所定フェーズに対応しないときときに前記Ｆナンバ加算値を出力する
楽音発生装置。
【請求項４】
請求項２または請求項３のいずれかにおいて、
前記制御パラメータは、
第１制御パラメータと、
第２制御パラメータとを含み、
前記第１制御パラメータの複数エンベロープデータのうちの前記所定フェーズに対応するエンベロープエンベロープが示すフェーズ継続期間は、
前記第２制御パラメータの複数エンベロープデータのうちの前記所定フェーズに対応するエンベロープエンベロープが示すフェーズ継続期間と異なる
楽音発生装置。
【請求項５】
請求項４において、
前記前記所定フェーズは、前記複数フェーズのうちの最初のフェーズである
楽音発生装置。
【請求項６】
請求項５において、
前記制御パラメータは、前記楽音の大きさを示すラウドネスを更に示し、
前記第１制御パラメータが示すラウドネスは、前記第２制御パラメータが示すラウドネスと異なる
楽音発生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、楽音発生装置に関し、特に、楽音にエコー効果を付加するときに利用される楽音発生装置に関する。
【背景技術】
【０００２】
エコー効果をデジタル的に生成する方法が知られている。その方法としては、ＤＳＰの外部遅延回路を利用する方法とＣＰＵのマルチキーアサイナを利用する方法が例示される。ＣＰＵのマルチキーアサイナを利用する方法は、複数の楽音波形を多少の時間ずれを持たせつつ順々にアサインするものである。このような方法によれば、そのＣＰＵがその時間ずれを管理する必要があり、処理が複雑になり、そのＣＰＵの負担が大きい。エコー効果をデジタル的に生成するときのＣＰＵの負担を低減することが望まれている。
【０００３】
特開平０３−１１３４９９号公報には、変化の富んだチェイス効果を得ることができる電子楽器が開示されている。その電子楽器は、押鍵を示す１個のノート情報に応じて、前記ノート情報の示す楽音を時間間隔をおいて複数回発生させる電子楽器において、楽音を発生する毎に、今回楽音を発生した時点から次回楽音を発生する時点までの時間間隔を前回楽音を発生した時点から今回楽音を発生した時点までの時間間隔とは異なるように、楽音の発生タイミングを異ならせて設定する発生タイミング手段と、前記発生タイミング手段により設定される発生タイミングによって楽音を発生する楽音発生手段とを有することを特徴としている。
【０００４】
特開平１１−３０５７６８号公報には、マイクロコントローラやＣＰＵなどの制御手段に負担をかけず、且つ簡便な構成で、音色の変化を伴ったエコー効果や残響効果を奏することができる電子楽器の残響効果付加御装置が開示されている。その電子楽器の残響効果付加装置は、１つのキーオン情報に基づき、複数の楽音発生チャンネルに対して、同じタイミングで波形読出アドレスやエンベロープ係数を含む制御パラメータを転送し、発音開始を指示する制御手段と、任意の楽音波形を記憶する波形記憶手段と、制御手段から転送され複数の楽音発生チャンネルに割り振られた制御パラメータに基づき、上記波形記憶手段からの楽音波形データの読出を行ってフィルタ処理を行うと共に、この波形データにエンベロープの付与を行って楽音信号を生成する楽音信号生成手段と、該楽音信号生成手段で楽音発生チャンネル毎に生成された楽音信号に基づいて楽音を発生する楽音発生手段とを少なくとも有しており、前記制御手段は、前記１つのキーオン情報に基づき、アサインされた楽音発生チャンネル毎に実質異なるタイミングにて発音が開始されるように、楽音信号生成手段に対する制御パラメータの転送を行うと共に、アサインされた各楽音発生チャンネルに、少なくとも２つ以上の異なるフィルタ係数を設定することで、遅く発音されるチャンネルの楽音は、早く発音されるチャンネルの楽音に比べて、高調波成分が少なくなるように制御することを特徴としている。
【０００５】
【特許文献１】特開平０３−１１３４９９号公報
【特許文献２】特開平１１−３０５７６８号公報
【０００６】
しかしながら、特開平０３−１１３４９９号公報による方法では、ＣＰＵが複数の楽音発生間隔を計数する処理が必要となり、タイマー機能などを使わなければならず、また、異なるタイミングに複数回の楽音発生処理を行うために、その都度割り込みのためのオーバーヘッド（ワークメモリのプッシュポップ処理など）が発生してしまう。
その点、特開平１１−３０５７６８号公報による方法は、複数の楽音発生を１つのタイミングにて処理するために、上記タイマー機能や上記オーバーヘッドはなく、かなり改善された方法である。ただ、ＣＰＵの処理をいかに減らすかという観点からすれば、さらに改善の余地があった。つまり、特開平１１−３０５７６８号公報による方法では、複数の楽音発生毎に異なる遡りスタートアドレスを計算して設定しなければならなかった。よって、このようなＣＰＵ処理の負担増大は、キーオン操作から楽音発生までの時間遅れが指摘される１つの要因を形成していた。
本発明は、そのＣＰＵの負担を極力減らしたマルチキーアサイナによるエコー効果を得るものである。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明の課題は、エコー効果を生成するときのＣＰＵの負担を低減する楽音発生装置を提供することにある。
【課題を解決するための手段】
【０００８】
以下に、発明を実施するための最良の形態・実施例で使用される符号を括弧付きで用いて、課題を解決するための手段を記載する。この符号は、特許請求の範囲の記載と発明を実施するための最良の形態・実施例の記載との対応を明らかにするために付加されたものであり、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。
【０００９】
本発明による楽音発生装置は、スタートアドレスとＦナンバ加算値と複数エンベロープデータとを示す制御パラメータを入力装置の操作に応答して算出するＣＰＵ（３）と、そのスタートアドレスにＦナンバ加算値を累算して読出アドレスを算出するＦナンバ累算器（３２）と、複数アドレスに対応付けて複数波形データを記録する波形メモリ（１２）から読出アドレスに対応する読出波形データを読み出して楽音を生成する読出部（３３）と、複数エンベロープデータのうちの１つのエンベロープデータに基づいて楽音にエンベロープを付加するエンベロープ発生器（３４、３５）とを備えている。その複数エンベロープデータは、楽音が発音される期間を区分する複数フェーズに対応している。このとき、Ｆナンバ累算器（３２）は、エンベロープデータが所定フェーズに対応するときにＦナンバ加算値を累算しない。このとき、楽音発生装置は、エンベロープデータだけを変更するだけで、スタートアドレスにＦナンバ加算値を累算することを制御することができ、その累算を制御するときのＣＰＵ（３）の負担を軽減することができる。
【００１０】
Ｆナンバ累算器（３２）は、セレクタ（４１）と、Ｆナンバ加算値とセレクタ（４１）により出力される値とを加算して読出アドレスを出力する加算器（４３）とを備えている。セレクタ（４１）は、エンベロープデータが所定フェーズに対応するときにスタートアドレスを出力し、エンベロープデータが所定フェーズに対応しないときときに加算器（４３）により出力される値を出力することが好ましい。
【００１１】
Ｆナンバ累算器（３２）は、セレクタ（４１）と、ゲート（４２）と、ゲート（４２）により出力される値とセレクタ（４１）により出力される値とを加算して読出アドレスを出力する加算器（４３）とを備えている。セレクタ（４１）は、操作の直後にスタートアドレスを出力し、スタートアドレスを出力した後に加算器（４３）により出力される値を出力する。ゲート（４２）は、エンベロープデータが所定フェーズに対応するときに０を出力し、エンベロープデータが所定フェーズに対応しないときときにＦナンバ加算値を出力することが好ましい。
【００１２】
制御パラメータは、第１制御パラメータと、第２制御パラメータとを含んでいる。このとき、第１制御パラメータの複数エンベロープデータのうちの所定フェーズに対応するエンベロープエンベロープが示すフェーズ継続期間は、第２制御パラメータの複数エンベロープデータのうちの所定フェーズに対応するエンベロープエンベロープが示すフェーズ継続期間と異なることが好ましい。
【００１３】
所定フェーズは、複数フェーズのうちの最初のフェーズである。このとき、楽音発生装置は、エンベロープデータだけを変更するだけで、同一の波形データに基づいて生成される複数の楽音が発音されるタイミングをずらすことができ、その複数の楽音を合成することにより楽音にエコー効果を付加するときのＣＰＵ（３）の負担を軽減することができる。
【００１４】
制御パラメータは、楽音の大きさを示すラウドネスをさらに示している。このとき、第１制御パラメータが示すラウドネスは、第２制御パラメータが示すラウドネスと異なることが好ましい。
【発明の効果】
【００１５】
本発明による楽音発生装置は、エコー効果を生成するときのＣＰＵの負担を低減することができる。
【発明を実施するための最良の形態】
【００１６】
図面を参照して、本発明による楽音発生装置の実施の形態を記載する。その楽音発生装置は、図１に示されているように、電子楽器１に適用されている。電子楽器１は、バス２を介して複数のハードウェアが互いに双方向に情報を伝送することができるように接続されている。バス２は、アドレスバスとデータバスと信号バスとから形成される。その複数のハードウェアは、ＣＰＵ３とＲＯＭ５とＲＡＭ６とキーボード部７と操作パネル部８と楽音信号生成器１１と波形メモリ１２とＤＳＰ１４とＤ／Ａ変換器１５とアンプ１６とスピーカ１７とを含んでいる。
【００１７】
キーボード部７は、演奏するための複数の鍵を備えている鍵盤である。すなわち、その複数の鍵は、複数の白鍵と複数の黒鍵とから形成され、それぞれ、互いに異なる複数の音高に対応している。キーボード部７は、打鍵された鍵とその打鍵強度とを示す電気信号を出力する。操作パネル部８は、ＬＣＤと複数のスイッチとボリュームつまみとを備えている。そのＬＣＤは、液晶ディスプレイの表示面であり、その液晶ディスプレイは、ＣＰＵ３により生成された画面を表示し、たとえば、ボリュームと音色の設定状態とを表示する。操作パネル部８は、その複数のスイッチのうちの操作されたスイッチを示す電気信号をＣＰＵ３に出力し、そのボリュームつまみの角度を示す電気信号をＣＰＵ３に出力する。たとえば、ユーザは、操作パネル部８を操作して情報を生成し、たとえば、音色を設定する。
【００１８】
ＲＯＭ５は、読み出し専用のメモリであり、コンピュータプログラムと楽音発生に必要なパラメータデータとを記録している。ＲＡＭ６は、読み書き可能なメモリであり、処理段階のデータを一時記憶したり、エディット可能なパラメータデータを記憶したりする。ＲＡＭ６は、さらに、一部あるいは全部がバッテリーバックアップされ、電子楽器１の電源がＯＦＦとなっていても音色設定に関する必要なデータを格納保持している。
【００１９】
ＣＰＵ３は、ＲＯＭ５に記録されているコンピュータプログラムを実行して、ＲＡＭ６とキーボード部７と操作パネル部８と楽音信号生成器１１とＤＳＰ１４とを制御する。すなわち、ＣＰＵ３は、キーボード部７と操作パネル部８とを走査して鍵情報と音色ボリューム情報とを生成する。その鍵情報は、キーボード部７の鍵を識別する複数の鍵番号に対応付けて鍵ＯＮ／ＯＦＦとタッチ情報を示している。その鍵ＯＮ／ＯＦＦは、その鍵番号により識別される鍵が押鍵されているか離鍵されているかを示している。そのタッチ情報は、その鍵番号により識別される鍵が打鍵されたときの打鍵強度を示している。その音色ボリューム情報は、操作パネル部８のスイッチの操作により複数のチャンネルにそれぞれ設定された複数の音色と操作パネル部８のボリュームつまみの角度とを示している。ＣＰＵ３は、その鍵情報と音色ボリューム情報と鍵情報と音色ボリューム情報とに基づいて複数の制御パラメータを算出して楽音信号生成器１１に供給する。
【００２０】
波形メモリ１２は、複数の波形を記録している。その複数の波形は、電子楽器１が放音することができる複数の音色および音域（音高）に対応している。その波形は、それぞれ、電子楽器１から発音される楽音の波形（すなわち、時間とともに変化する量）を示し、アドレスを波形データに対応付けている。そのアドレスは、その波形の時刻に対応し、波形メモリ１２の中の位置を識別するアドレスを示している。その波形データは、そのアドレスに対応する時刻での波形の変位の瞬時値を示している。その複数の音色は、ヘッドアドレスとループトップアドレスとループエンドアドレスとに対応付けられている。ヘッドアドレスとループトップアドレスとループエンドアドレスとは、それぞれ、波形メモリ１２のアドレスを示している。ヘッドアドレスは、波形メモリ１２の中のその波形の先頭が記録されるアドレスを示している。ループトップアドレスは、ヘッドアドレスより順番が後のアドレスを示している。ループエンドアドレスは、ループトップアドレスより順番が後のアドレスを示している。その波形は、ヘッド部とループ部とから形成されている。そのヘッド部は、波形メモリ１２のヘッドアドレスからループトップアドレスまでに記録される波形の部分に対応している。ループ部は、ループトップアドレスからループエンドアドレスまでに記録される波形の部分に対応している。電子楽器１から発音される楽音の波形は、そのヘッド部と、そのヘッド部の後にループ部を繰り返すことにより形成される。波形メモリ１２は、外部から入力されるアドレスに対応する波形データを出力する。
【００２１】
楽音信号生成器１１は、波形メモリ１２を参照して、ＣＰＵ３により生成される複数の制御パラメータに基づいて、電子楽器１から放音される楽音を示すデジタル楽音信号を生成する。ＤＳＰ１４は、ＣＰＵ３により生成される複数の制御パラメータに基づいて効果を算出し、楽音信号生成器１１により生成されるデジタル楽音信号が示す楽音にその効果が付加された楽音を示すデジタル楽音信号を生成する。Ｄ／Ａ変換器１５は、ＤＳＰ１４により生成されたデジタル楽音信号をアナログ楽音信号に変換するデジタル−アナログ変換器である。アンプ１６は、Ｄ／Ａ変換器１５により生成されたアナログ楽音信号に対して簡単なフィルタ処理（たとえば、ノイズ除去）と増幅処理とを施し、そのアナログ楽音信号をスピーカ１１で発生させるために増幅するパワーアンプである。スピーカ１７は、複数個から形成され、アンプ１６により増幅されたアナログ楽音信号を可聴信号に変換して放音する。
【００２２】
図２は、ＣＰＵ３により算出される複数の制御パラメータを示している。その複数の制御パラメータの個数は、電子楽器１が同時に放音することができる複数の楽音の個数（すなわち、チャンネル数）に一致し、たとえば、６４個である。その制御パラメータは、その複数の楽音に１対１に対応し、それぞれ、波形データ読出用データとエンベロープ制御用データとラウドネスと制御用フラグとから形成されている。
【００２３】
波形データ読出用データは、スタートアドレスとＦナンバ加算値とループトップアドレスとループエンドアドレスとから形成されている。スタートアドレスは、その楽音のヘッド部の先頭の波形データが記録される波形メモリ１２のアドレスを示している。Ｆナンバ加算値は、波形メモリ１２のアドレスを算出するときに用いられる値である。ループトップアドレスは、その楽音のループ部の先頭の波形データが記録される波形メモリ１２のアドレスを示している。ループエンドアドレスは、その楽音のループ部の末尾の波形データが記録される波形メモリ１２のアドレスを示している。
【００２４】
エンベロープ制御用データは、４つのフェーズデータから形成されている。そのフェーズデータは、その楽音に付加されるエンベロープが区分される４つのフェーズ（ｐｈ０〜ｐｈ３またはｐｈ４〜ｐｈ７）に対応し、それぞれ、スピードデータＳＰＤと−／＋フラグデータとフェーズ終了値データＰＥＰとＦＡＣＣホールドとから形成されている。スピードデータＳＰＤは、対応するフェーズでレベルが単位時間当たりに変化する量の絶対値を示している。−／＋フラグデータは、そのレベルが単位時間当たりに変化する量の符号（−／＋）を示している。フェーズ終了値データＰＥＰは、対応するフェーズの末尾のレベルを示している。ＦＡＣＣホールドは、対応するフェーズでＦＡＣＣを累算するかどうかを示している。このとき、各フェーズが継続するフェーズ継続期間は、スピードデータＳＰＤと−／＋フラグデータとフェーズ終了値データＰＥＰとをエンベロープのレベルの初期値に基づいて適当に設定することにより、概ね任意に設定することができる。
【００２５】
ラウドネスは、その楽音の振幅エンベロープを制御するときに利用される値を示している。制御用フラグは、ＦＡＣＣクリアとｐｈクリアとＥＡＣＣクリアとフィルタ係数とＬ／Ｒフラグとから形成されている。ＦＡＣＣクリアは、ＦＡＣＣを記憶していたレジスタをクリアするかどうかを示している。ｐｈクリアは、フェーズを記憶していたレジスタをクリアするかどうかを示している。ＥＡＣＣクリアは、ＥＡＣＣを記憶していたレジスタをクリアするかどうかを示している。フィルタ係数は、その楽音に実施されるフィルタ（ハイパス、ロウパス、バンドパス、バンドリジェクト）に用いられる数値を示している。Ｌ／Ｒフラグは、その楽音を出力する系列をＬ側にするかＲ側にするかを示している。
【００２６】
ＣＰＵ３は、エコー効果を付加するときに、２つ以上の楽音に対応する２つ以上の制御パラメータを生成する。その制御パラメータは、さらに、ｐｈ０のフェーズデータとラウドネスとが互いに異なり、ｐｈ０のフェーズデータとラウドネスとを除く値が互いに等しい。なお、その制御パラメータは、ｐｈ０のフェーズデータが互いに異なり、ｐｈ０のフェーズデータを除く値が互いに等しくなるように算出されることもできる。
【００２７】
図３は、楽音信号生成器１１は、アサイメントメモリ３０とタイミングジェネレータ３１とＦナンバ累算器３２とサンプリング補間フィルタ３３とエンベロープ累算器３４と第１の乗算器３５と第２の乗算器３６と系列累算器３７とを備えている。
【００２８】
タイミングジェネレータ３１は、時分割処理を行う際に必要なクロックを生成する。アサイメントメモリ３０は、ＣＰＵ３により生成される複数の制御パラメータを記録し、タイミングジェネレータ３１により生成されるクロックに同期して、その複数の制御パラメータをＦナンバ累算器３２とサンプリング補間フィルタ３３と第２の乗算器３６とに出力する。
【００２９】
エンベロープ累算器３４は、そのＥＡＣＣクリアがクリアすることを示しているときに、エンベロープアキュムレート値ＥＡＣＣを記憶していたレジスタをクリアする。エンベロープ累算器３４は、さらに、そのレジスタに記憶されるエンベロープアキュムレート値ＥＡＣＣに、そのエンベロープ制御用データのうちの最初のフェーズデータのスピードデータＳＰＤを累算（−／＋フラグデータが＋を示すときに加算、−／＋フラグデータが−を示すときに減算）してエンベロープを算出する。エンベロープ累算器３４は、さらに、エンベロープアキュムレート値ＥＡＣＣがそのフェーズ終了値データＰＥＰに到達すると次のフェーズデータと用いてエンベロープアキュムレート値ＥＡＣＣを累算してエンベロープを算出する。エンベロープ累算器３４は、さらに、そのエンベロープアキュムレート値ＥＡＣＣが示すフェーズに対応するフェーズデータのＦＡＣＣホールドをＦナンバ累算器３２に出力する。
【００３０】
Ｆナンバ累算器３２は、そのＦＡＣＣクリアがクリアすることを示しているときに、フリークエンシーアキュムレート値ＦＡＣＣを記憶していたレジスタをクリアする。Ｆナンバ累算器３２は、さらに、そのレジスタに記録されているＦＡＣＣとエンベロープ累算器３４により出力されるＦＡＣＣホールドと制御パラメータのうちのスタートアドレスとＦナンバ加算値とループトップアドレスとループエンドアドレスとに基づいてフリークエンシーアキュムレート値ＦＡＣＣを算出し、フリークエンシーアキュムレート値ＦＡＣＣをそのレジスタに記録する。Ｆナンバ累算器３２は、さらに、そのフリークエンシーアキュムレート値ＦＡＣＣの整数部分を波形メモリ１２に出力し、そのフリークエンシーアキュムレート値ＦＡＣＣの小数部分をサンプリング補間フィルタ３３に出力する。このとき、波形メモリ１２は、その整数部分が示すアドレスに対応する波形データを出力する。
【００３１】
サンプリング補間フィルタ３３は、Ｆナンバ累算器３２から出力される小数部分に基づいて、波形メモリ１２から出力された波形データを補間処理する。サンプリング補間フィルタ３３は、その制御パラメータのうちのフィルタ係数に基づいて、その補間処理された波形データをフィルタ処理して、楽音信号を生成する。
【００３２】
第１の乗算器３５は、サンプリング補間フィルタ３３により生成される楽音信号にエンベロープ累算器３４により算出されるエンベロープを乗算した楽音信号を算出する。第２の乗算器３６は、第１の乗算器３５により算出される波形データにその制御パラメータのうちのラウドネスを乗算して楽音信号を算出する。
【００３３】
系列累算器３７は、その制御パラメータのうちのＬ／Ｒフラグに基づいて、第２の乗算器３６から出力された６４チャンネル分の楽音信号をＬ側の系列とＲ側の系列とに分類する。系列累算器３７は、さらに、Ｌ側の系列の楽音を合成してＬ側の系列の楽音信号を生成し、Ｒ側の系列の楽音を合成してＲ側の系列の楽音信号を生成する。
【００３４】
図４は、Ｆナンバ累算器３２を示している。Ｆナンバ累算器３２は、セレクタ４１とゲート４２と加算器４３と演算器４４とを備えている。セレクタ４１は、キーボード部７の鍵が押鍵されてから最初に出力するときに制御パラメータのうちのスタートアドレスを出力し、そのスタートアドレスを出力した後に加算器４３により出力される値を出力する。ゲート４２は、エンベロープ累算器３４から出力されるＦＡＣＣホールドが累算することを示しているのときに制御パラメータのうちのＦナンバ加算値を出力し、そのＦＡＣＣホールドが累算しないことを示しているのときに値０を出力する。加算器４３は、セレクタ４１により出力される値とゲート４２により出力される値とを加算した値を出力する。演算器４４は、加算器４３により出力される値が制御パラメータのループエンドアドレスより小さいときに加算器４３により出力される値を出力する。演算器４４は、加算器４３により出力される値がそのループエンドアドレスより大きいときに、ループトップアドレスからループエンドアドレスまでの範囲に含まれるように、加算器４３により出力される値からループトップアドレスとループエンドアドレスとの差の倍数を減算した値を出力する。
【００３５】
電子楽器１の動作は、エコー効果が付加されない楽音を生成する動作と、エコー効果が付加される楽音を生成する動作とを備えている。
【００３６】
エコー効果が付加される楽音を生成する動作は、発音される楽音にエコー効果が付加されるように操作パネル部８がユーザにより操作されたときに実行される。電子楽器１のＣＰＵ３は、キーボード部７の鍵が打鍵されたときに、その鍵に対応する１つの制御パラメータを算出する。１つの制御パラメータは、すべてのＦＡＣＣホールドが累算することを示している。電子楽器１の楽音信号発生器１１は、エンベロープアキュムレート値ＥＡＣＣを記憶していたレジスタをクリアし、フリークエンシーアキュムレート値ＦＡＣＣを記憶していたレジスタをクリアする。楽音信号発生器１１は、エンベロープアキュムレート値ＥＡＣＣに、そのエンベロープ制御用データのうちの最初のフェーズのスピードデータＳＰＤを累算（−／＋フラグデータが＋を示すときに加算、−／＋フラグデータが−を示すときに減算）してエンベロープを算出する。楽音信号発生器１１は、さらに、エンベロープアキュムレート値ＥＡＣＣがそのフェーズ終了値データＰＥＰに到達すると次のフェーズデータと用いてエンベロープアキュムレート値ＥＡＣＣを累算してエンベロープを算出する。楽音信号発生器１１は、さらに、その制御パラメータのスタートアドレスに制御パラメータのＦナンバ加算値を累算した値をＦＡＣＣとして算出する。楽音信号発生器１１は、さらに、そのＦＡＣＣがそのループエンドアドレスより大きいときに、ループトップアドレスからループエンドアドレスまでの範囲に含まれるように、そのＦＡＣＣからループトップアドレスとループエンドアドレスとの差の倍数を減算した値をＦＡＣＣとして出力する。
【００３７】
楽音信号発生器１１は、さらに、そのＦＡＣＣの整数部分を波形メモリ１２に出力して、その整数部分が示すアドレスに対応する波形データを読み出す。楽音信号発生器１１は、そのＦＡＣＣの小数部分に基づいてその波形データを補間処理し、その制御パラメータのうちのフィルタ係数に基づいてその補間処理された波形データをフィルタ処理して楽音信号を生成する。
【００３８】
楽音信号発生器１１は、さらに、その楽音信号にそのエンベロープを付加し、その制御パラメータのうちのラウドネスを付加して楽音信号を生成する。電子楽器１は、その制御パラメータのうちのＬ／Ｒフラグに基づいてその楽音信号をＬ側の系列とＲ側の系列とに分類し、Ｌ側の系列の楽音を合成してＬ側の系列の楽音信号を生成し、Ｒ側の系列の楽音を合成してＲ側の系列の楽音信号を生成する。電子楽器１は、Ｌ側の系列の楽音信号をスピーカ１７のＬ側から放音し、Ｒ側の系列の楽音信号をスピーカ１７のＲ側から放音する。
【００３９】
電子楽器１のＣＰＵ３は、キーボード部７の打鍵された鍵が離鍵されたときに、その鍵に対応する１つの制御パラメータを算出する。その制御パラメータは、ＦＡＣＣクリアとＥＡＣＣクリアとがレジスタをクリアしないことを示している。電子楽器１は、その鍵が打鍵されたときと同様にして楽音を放音する。すなわち、楽音信号発生器１１は、エンベロープアキュムレート値ＥＡＣＣにスピードデータＳＰＤを累算してエンベロープを算出する。楽音信号発生器１１は、さらに、エンベロープアキュムレート値ＥＡＣＣがそのフェーズ終了値データＰＥＰに到達すると次のフェーズデータと用いてエンベロープアキュムレート値ＥＡＣＣを累算してエンベロープを算出する。楽音信号発生器１１は、さらに、スタートアドレスにＦナンバ加算値を累算した値をＦＡＣＣとして算出する。楽音信号発生器１１は、さらに、そのＦＡＣＣがそのループエンドアドレスより大きいときに、ループトップアドレスからループエンドアドレスまでの範囲に含まれるように、そのＦＡＣＣからループトップアドレスとループエンドアドレスとの差の倍数を減算した値をＦＡＣＣとして出力する。楽音信号発生器１１は、さらに、そのＦＡＣＣの整数部分を波形メモリ１２に出力して、その整数部分が示すアドレスに対応する波形データを読み出す。楽音信号発生器１１は、そのＦＡＣＣの小数部分に基づいてその波形データを補間処理し、その制御パラメータのうちのフィルタ係数に基づいてその補間処理された波形データをフィルタ処理して楽音信号を生成する。楽音信号発生器１１は、さらに、その楽音信号にそのエンベロープを付加し、その制御パラメータのうちのラウドネスを付加して楽音信号を生成する。電子楽器１は、その制御パラメータのうちのＬ／Ｒフラグに基づいてその楽音信号をＬ側の系列とＲ側の系列とに分類し、Ｌ側の系列の楽音を合成してＬ側の系列の楽音信号を生成し、Ｒ側の系列の楽音を合成してＲ側の系列の楽音信号を生成する。電子楽器１は、Ｌ側の系列の楽音信号をスピーカ１７のＬ側から放音し、Ｒ側の系列の楽音信号をスピーカ１７のＲ側から放音する。
【００４０】
エコー効果が付加される楽音を生成する動作は、発音される楽音にエコー効果が付加されないように操作パネル部８がユーザにより操作されたときに実行される。電子楽器１のＣＰＵ３は、キーボード部７の鍵が打鍵されたときに、その鍵に対応する複数の制御パラメータを算出する。その複数の制御パラメータは、波形データ読出用データと制御用フラグとが互いに一致している。その複数の制御パラメータは、さらに、エンベロープ制御用データのうちの最初のフェーズｐｈ０のフェーズデータを除くフェーズデータｐｈ１〜ｐｈ３が互いに一致している。その複数の制御パラメータは、さらに、エンベロープ制御用データのうちの最初のフェーズｐｈ０のフェーズデータが互いに異なっている。すなわち、フェーズｐｈ０のフェーズデータが示すフェーズ継続期間は、その複数の制御パラメータごとに異なるように、算出され、フェーズｐｈ０のフェーズデータのＦＡＣＣホールドは、フェーズｐｈ０でＦＡＣＣを累算しないことを示している。その複数の制御パラメータは、さらに、ラウドネスが互いに異なっている。
【００４１】
電子楽器１の楽音信号発生器１１は、エンベロープアキュムレート値ＥＡＣＣを記憶していたレジスタをクリアし、フリークエンシーアキュムレート値ＦＡＣＣを記憶していたレジスタをクリアする。楽音信号発生器１１は、エンベロープアキュムレート値ＥＡＣＣに、そのエンベロープ制御用データのうちの最初のフェーズのスピードデータＳＰＤを累算（−／＋フラグデータが＋を示すときに加算、−／＋フラグデータが−を示すときに減算）してエンベロープを算出する。楽音信号発生器１１は、さらに、エンベロープアキュムレート値ＥＡＣＣがそのフェーズ終了値データＰＥＰに到達すると次のフェーズデータと用いてエンベロープアキュムレート値ＥＡＣＣを累算してエンベロープを算出する。楽音信号発生器１１は、さらに、そのエンベロープアキュムレート値ＥＡＣＣが示すフェーズに対応するフェーズデータのＦＡＣＣホールドが累算しないことを示すときに、制御パラメータのうちのスタートアドレスをＦＡＣＣとして算出する。楽音信号発生器１１は、さらに、そのＦＡＣＣホールドが累算することを示すときに、その制御パラメータのスタートアドレスに制御パラメータのＦナンバ加算値を累算した値をＦＡＣＣとして算出する。楽音信号発生器１１は、さらに、そのＦＡＣＣがそのループエンドアドレスより大きいときに、ループトップアドレスからループエンドアドレスまでの範囲に含まれるように、そのＦＡＣＣからループトップアドレスとループエンドアドレスとの差の倍数を減算した値をＦＡＣＣとして出力する。
【００４２】
楽音信号発生器１１は、さらに、そのＦＡＣＣの整数部分を波形メモリ１２に出力して、その整数部分が示すアドレスに対応する波形データを読み出す。楽音信号発生器１１は、そのＦＡＣＣの小数部分に基づいてその波形データを補間処理し、その制御パラメータのうちのフィルタ係数に基づいてその補間処理された波形データをフィルタ処理して楽音信号を生成する。
【００４３】
楽音信号発生器１１は、さらに、その楽音信号にそのエンベロープを付加し、その制御パラメータのうちのラウドネスを付加して楽音信号を生成する。電子楽器１は、その制御パラメータのうちのＬ／Ｒフラグに基づいてその楽音信号をＬ側の系列とＲ側の系列とに分類し、Ｌ側の系列の楽音を合成してＬ側の系列の楽音信号を生成し、Ｒ側の系列の楽音を合成してＲ側の系列の楽音信号を生成する。電子楽器１は、Ｌ側の系列の楽音信号をスピーカ１７のＬ側から放音し、Ｒ側の系列の楽音信号をスピーカ１７のＲ側から放音する。
【００４４】
電子楽器１のＣＰＵ３は、キーボード部７の打鍵された鍵が離鍵されたときに、その鍵に対応する複数の制御パラメータを算出する。その複数の制御パラメータは、互いに一致し、各々のＦＡＣＣホールドが累算することを示し、ＦＡＣＣクリアとＥＡＣＣクリアとがレジスタをクリアしないことを示している。電子楽器１は、その鍵が打鍵されたときと同様にして楽音を放音する。すなわち、楽音信号発生器１１は、エンベロープアキュムレート値ＥＡＣＣにスピードデータＳＰＤを累算してエンベロープを算出する。楽音信号発生器１１は、さらに、エンベロープアキュムレート値ＥＡＣＣがそのフェーズ終了値データＰＥＰに到達すると次のフェーズデータと用いてエンベロープアキュムレート値ＥＡＣＣを累算してエンベロープを算出する。楽音信号発生器１１は、さらに、スタートアドレスにＦナンバ加算値を累算した値をＦＡＣＣとして算出する。楽音信号発生器１１は、さらに、そのＦＡＣＣがそのループエンドアドレスより大きいときに、ループトップアドレスからループエンドアドレスまでの範囲に含まれるように、そのＦＡＣＣからループトップアドレスとループエンドアドレスとの差の倍数を減算した値をＦＡＣＣとして出力する。楽音信号発生器１１は、さらに、そのＦＡＣＣの整数部分を波形メモリ１２に出力して、その整数部分が示すアドレスに対応する波形データを読み出す。楽音信号発生器１１は、そのＦＡＣＣの小数部分に基づいてその波形データを補間処理し、その制御パラメータのうちのフィルタ係数に基づいてその補間処理された波形データをフィルタ処理して楽音信号を生成する。楽音信号発生器１１は、さらに、その楽音信号にそのエンベロープを付加し、その制御パラメータのうちのラウドネスを付加して楽音信号を生成する。電子楽器１は、その制御パラメータのうちのＬ／Ｒフラグに基づいてその楽音信号をＬ側の系列とＲ側の系列とに分類し、Ｌ側の系列の楽音を合成してＬ側の系列の楽音信号を生成し、Ｒ側の系列の楽音を合成してＲ側の系列の楽音信号を生成する。電子楽器１は、Ｌ側の系列の楽音信号をスピーカ１７のＬ側から放音し、Ｒ側の系列の楽音信号をスピーカ１７のＲ側から放音する。
【００４５】
このような電子楽器１よれば、エンベロープ制御用データのフェーズｐｈ０のスピードデータＳＰＤと−／＋フラグデータとフェーズ終了値データＰＥＰとだけが互いに異なる複数の制御パラメータから生成される複数の楽音は、図５に示されているように、発音が開始されるタイミングが異なっている。この結果、電子楽器１は、エンベロープ制御用データのフェーズｐｈ０のスピードデータＳＰＤと−／＋フラグデータとフェーズ終了値データＰＥＰとだけが異なる制御パラメータを生成するだけで、発音が開始されるタイミングが異なる複数の楽音を放音することができ、エコー効果が付加された楽音を放音することができる。このような制御パラメータは、エンベロープ制御用データのフェーズｐｈ０のスピードデータＳＰＤと−／＋フラグデータとフェーズ終了値データＰＥＰとをその複数の楽音に対応付けるテーブルを用いることにより、ＣＰＵ３の負担を大きく増加させないで算出することができる。たとえば、電子楽器１は、特開平１１−３０５７６８号公報に記載されるような読み出し波形のスタートアドレスから遡ったアドレスをスタートアドレスとしてその複数の楽音を生成することときより、楽音にエコー効果を付加するときのＣＰＵ３の負担を軽減することができる。
【００４６】
本発明による楽音発生装置の実施の他の形態は、既述の実施の形態におけるＦナンバ累算器３２のセレクタ４１が他のセレクタに置換され、ゲート４２が削除されている。このとき、そのセレクタは、そのＦＡＣＣホールドが累算しないことを示しているときに制御パラメータのうちのスタートアドレスを出力し、そのＦＡＣＣホールドが累算することを示しているときに加算器４３により出力される値を出力する。加算器４３は、セレクタ４１により出力される値とＦナンバ加算値とを加算した値を出力する。演算器４４は、加算器４３により出力される値が制御パラメータのループエンドアドレスより小さいときに加算器４３により出力される値を出力する。演算器４４は、加算器４３により出力される値がそのループエンドアドレスより大きいときに、ループトップアドレスからループエンドアドレスまでの範囲に含まれるように、加算器４３により出力される値からループトップアドレスとループエンドアドレスとの差の倍数を減算した値を出力する。このようなＦナンバ累算器は、既述の実施の形態におけるＦナンバ累算器３２と同様にして、ＦＡＣＣホールドが累算することを示すフェーズデータを用いてエンベロープが算出されているときにＦＡＣＣを累算し、ＦＡＣＣホールドが累算しないことを示すフェーズデータを用いてエンベロープが算出されているときにＦＡＣＣを累算しない。
【００４７】
このようなＦナンバ累算器を備える電子楽器は、既述の実施の形態における電子楽器１と同様にして、エコー効果が付加された楽音を生成するときに、ＣＰＵの負担を低減することができる。
【図面の簡単な説明】
【００４８】
【図１】図１は、本発明による楽音発生装置の実施の形態を示すブロック図である。
【図２】図２は、制御パラメータを示す図である。
【図３】図３は、楽音信号生成器を示すブロック図である。
【図４】図４は、Ｆナンバ累算器を示すブロック図である。
【図５】図５は、楽音の波形を示すタイムチャートである。
【符号の説明】
【００４９】
１  ：電子楽器
２  ：バス
３  ：ＣＰＵ
５  ：ＲＯＭ
６  ：ＲＡＭ
７  ：キーボード部
８  ：操作パネル部
１１：楽音信号生成器
１２：波形メモリ
１４：ＤＳＰ
１５：Ｄ／Ａ変換器
１６：アンプ
１７：スピーカ
３０：アサイメントメモリ
３１：タイミングジェネレータ
３２：Ｆナンバ累算器
３３：サンプリング補間フィルタ
３４：エンベロープ累算器
３５：第１の乗算器
３６：第２の乗算器
３７：系列累算器
４１：セレクタ
４２：ゲート
４３：加算器
４４：演算器
【図１】
2007272020.tif 000003
【図２】
2007272020.tif 000004
【図３】
2007272020.tif 000005
【図４】
2007272020.tif 000006
【図５】
2007272020.tif 000007