(57)【要約】【課題】ＤＳＰ装置などのような高価で規模の大きい回路を用いることなく、且つ、リアルタイムで楽音波形が飽和するのを防止できるようにする。【解決手段】楽音波形を生成する６４個の発音チャンネル８１１を含む楽音生成部８と、発音チャンネル８１１ごとに楽音波形の振幅の時間的変化を規定するエンベロープを生成するアンプ・エンベロープ・ジェネレータ１０３と、発音チャンネル８１１のエンベロープの現在値を所定時間が経過するごとに取得して、その現在値に基づいてエンベロープの形状を規定するレベルデータを補正する制御部１とを具備する。【選択図】　　　　図１
2004144865.tif 000002
【特許請求の範囲】
【請求項１】
楽音波形を生成する複数の発音チャンネルを含む楽音生成手段と、
前記発音チャンネルごとに前記楽音波形の振幅の時間的変化を規定するエンベロープを生成するエンベロープ生成手段と、
前記発音チャンネルのエンベロープの現在値を所定時間が経過するごとに取得して、その現在値に基づいてエンベロープの形状を規定するレベルデータを補正するエンベロープ補正手段と、
を具備することを特徴とする楽音発生装置。
【請求項２】
前記エンベロープ補正手段は、前記複数の発音チャンネルにおけるエンベロープの現在値を合計して、その合計値が所定の制限値を超えている場合には所定の変化割合に基づいて修正された補正係数を前記レベルデータに乗算することを特徴とする請求項１記載の楽音発生装置。
【請求項３】
楽音波形を生成する複数の発音チャンネルを含む楽音生成手段と、
前記発音チャンネルごとに前記楽音波形の振幅の時間的変化を規定するエンベロープを生成するエンベロープ生成手段と、
ボリューム値に基づいて楽音の音量を制御する音量制御手段と、
前記発音チャンネルのエンベロープの現在値を所定時間が経過するごとに取得して、その現在値に基づいて前記ボリューム値を補正するボリューム補正手段と、
を具備することを特徴とする楽音発生装置。
【請求項４】
前記ボリューム補正手段は、前記複数の発音チャンネルにおけるエンベロープの現在値を合計して、その合計値が所定の制限値を超えている場合にはその合計値と制限値に基づいて規定された補正係数を前記ボリューム値に乗算することを特徴とする請求項３記載の楽音発生装置。
【請求項５】
楽音波形を生成する複数の発音チャンネルを含む楽音生成手段における各発音チャンネルごとに前記楽音波形の振幅の時間的変化を規定するエンベロープを生成する第１のステップと、
前記発音チャンネルのエンベロープの現在値を所定時間が経過するごとに取得する第２のステップと、
前記第２のステップが前記エンベロープの現在値を取得するたびにその現在値に基づいてエンベロープの形状を規定するレベルデータを補正する第３のステップと、
を実行することを特徴とする楽音発生処理のプログラム。
【請求項６】
楽音波形を生成する複数の発音チャンネルを含む楽音生成手段における各発音チャンネルごとに前記楽音波形の振幅の時間的変化を規定するエンベロープを生成する第１のステップと、
前記発音チャンネルのエンベロープの現在値を所定時間が経過するごとに取得する第２のステップと、
前記第２のステップが前記エンベロープの現在値を取得するたびにその現在値に基づいて楽音の音量を制御するボリューム値を補正する第３のステップと、
を実行することを特徴とする楽音発生処理のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、楽音発生装置および楽音発生処理のプログラムに関する。
【０００２】
【従来の技術】
従来、複数の発音チャンネルによって楽音を発音する楽音発生装置が知られている。このような従来の楽音発生装置においては、一般に採用されている波形生成方式により各発音チャンネルの楽音波形が合成される。波形生成方式として、正弦波合成方式、差分値合成方式（米国特許第４，４７５，４３１号）、ＰＤ（Ｐｈａｓｅ　Ｄｉｓｔｏｔｉｏｎ）音源方式などを実施するに際し、回路規模を大きくすることなく、その処理されるデータのＳ／Ｎ比を改善した音源装置の提案がなされている。
【０００３】
提案されている音源装置の構成では、複数の波形を種々作成し、この複数の波形のそれぞれに付加すべきものとして設定されたエンベロープ波形の各ステップでの到達値を示すレベルデータについて、各エンベロープ波形のレベルデータのうち、最大値のレベルデータを各エンベロープ毎に検出し、この各エンベロープ毎の最大値のレベルデータを総和して、その総和が予め決められた値を超えるときには、その超過する大きさに見合う補正値を求めて、その設定されたレベルデータを補正する（特許文献１参照）。
【０００４】
【特許文献１】
実公平７−４６９５９号公報（第２頁左欄第２〜４行、第２６〜３９行、第３頁左欄第２７〜３２行）
【０００５】
【発明が解決しようとする課題】
しかしながら、上記従来の提案においては、初めに手動設定された各エンベロープ波形データでのレイト（Ｒ）およびレベル（Ｌ）のうち、特にレベル（Ｌ）の最大レベル値を抽出して累算し、（その累算値が）所定値を超えるときには、その超過分に相当する減算値を求めて、そのエンベロープレベルを補正する構成になっている。このため、楽音波形が飽和するのをリアルタイムで防止することができないという課題があった。この対策として、ＤＳＰ（ディジタル・シグナル・プロッセッサ）装置を用いて、圧縮効果やリミット効果によって楽音波形が飽和するのを防止するような楽音発生装置もあるが、この場合には、高価なＤＳＰ装置の採用によって、回路規模が大きくなるとともに製品コストが高くなってしまうという課題があった。
【０００６】
本発明は、上記課題を解決するものであり、ＤＳＰ装置などのような高価で規模の大きい回路を用いることなく、且つ、リアルタイムで楽音波形が飽和するのを防止できる楽音発生装置および楽音発生処理のプログラムを提供する。
【０００７】
【課題を解決するための手段】
本発明による楽音発生装置は、楽音波形を生成する複数の発音チャンネルを含む楽音生成手段（実施形態においては、図１の楽音生成部８に相当する）と、発音チャンネルごとに楽音波形の振幅の時間的変化を規定するエンベロープを生成するエンベロープ生成手段（実施形態においては、図３のアンプ・エンベロープ・ジェネレータ１０３に相当する）と、発音チャンネルのエンベロープの現在値を所定時間が経過するごとに取得して、その現在値に基づいてエンベロープの形状を規定するレベルデータを補正するエンベロープ補正手段（実施形態においては、図１の制御部１に相当する）とを具備する構成になっている。
【０００８】
この場合において、エンベロープ補正手段は、複数の発音チャンネルにおけるエンベロープの現在値を合計して、その合計値が所定の制限値を超えている場合には所定の変化割合に基づいて修正された補正係数をレベルデータに乗算するように構成してもよい。
【０００９】
また、本発明による楽音発生装置は、楽音波形を生成する複数の発音チャンネルを含む楽音生成手段（実施形態においては、図１の楽音生成部８に相当する）と、発音チャンネルごとに楽音波形の振幅の時間的変化を規定するエンベロープを生成するエンベロープ生成手段（実施形態においては、図３のアンプ・エンベロープ・ジェネレータ１０３に相当する）と、ボリューム値に基づいて楽音の音量を制御する音量制御手段と、発音チャンネルのエンベロープの現在値を所定時間が経過するごとに取得して、その現在値に基づいてボリューム値を補正するボリューム補正手段（実施形態においては、図１の制御部１に相当する）とを具備する構成になっている。
【００１０】
この場合において、ボリューム補正手段は、複数の発音チャンネルにおけるエンベロープの現在値を合計して、その合計値が所定の制限値を超えている場合にはその合計値と制限値に基づいて規定された補正係数をボリューム値に乗算するように構成してもよい。
【００１１】
本発明による楽音発生処理のプログラムは、楽音波形を生成する複数の発音チャンネルを含む楽音生成手段（実施形態においては、図１の楽音生成部８に相当する）における各発音チャンネルごとに楽音波形の振幅の時間的変化を規定するエンベロープを生成する第１のステップ（実施形態においては、図１の制御部１および図３のアンプ・エンベロープ・ジェネレータ１０３の機能に相当する）と、発音チャンネルのエンベロープの現在値を所定時間が経過するごとに取得する第２のステップ（実施形態においては、図１の制御部１の機能に相当する）と、第２のステップがエンベロープの現在値を取得するたびにその現在値に基づいてエンベロープの形状を規定するレベルデータを補正する第３のステップ（実施形態においては、図１の制御部１の機能に相当する）とを実行する構成になっている。
【００１２】
また、本発明による楽音発生処理のプログラムは、楽音波形を生成する複数の発音チャンネルを含む楽音生成手段（実施形態においては、図１の楽音生成部８に相当する）における各発音チャンネルごとに楽音波形の振幅の時間的変化を規定するエンベロープを生成する第１のステップ（実施形態においては、図１の制御部１および図３のアンプ・エンベロープ・ジェネレータ１０３の機能に相当する）と、発音チャンネルのエンベロープの現在値を所定時間が経過するごとに取得する第２のステップ（実施形態においては、図１の制御部１の機能に相当する）と、第２のステップがエンベロープの現在値を取得するたびにその現在値に基づいて楽音の音量を制御するボリューム値を補正する第３のステップ（実施形態においては、図１の制御部１の機能に相当する）とを実行する構成になっている。
【００１３】
【発明の実施の形態】
以下、本発明による楽音発生装置の第１乃至第３の実施形態について、図を参照して説明する。
図１は、第１の実施形態における楽音発生装置としての電子鍵盤楽器の構成を示すブロック図である。制御部１は、ＣＰＵなどで構成され、そのシステムバスを介して、鍵盤２、スイッチ部３、ＲＯＭ４、ＲＡＭ５、スライダ６、表示部７、および楽音生成部８に接続され、これらとの間でコマンドやデータを授受して、この電子鍵盤楽器全体を制御している。
【００１４】
鍵盤２は、ユーザの演奏操作に応じて押鍵や離鍵の演奏情報を制御部１に入力する。スイッチ部３は、楽器音である音色を選択する音色選択スイッチ、ＲＡＴＥ（補正係数変化レート）を設定又は設定解除するためのＲＡＴＥ設定モードスイッチ、および、その他のスイッチで構成され、ユーザの操作に応じてオン又はオフの情報を制御部１に入力する。ＲＯＭ４は、制御部１によって実行される制御プログラム、様々なデータを変換するためのテーブルなどを格納している。この制御プログラムの中に、本発明の楽音発生処理のプログラムが組み込まれている。ＲＡＭ５は、制御部１のワークエリアであり、制御プログラムの実行に必要な各種レジスタやフラグなどのデータエリアが設けられている。ＲＡＭ５のデータエリアについては、さらに後述する。スライダ６は、ユーザのスライド操作（又は、回転操作）に応じて、ＲＡＴＥを設定する。表示部７は、制御部１からの表示データを表示する。
【００１５】
楽音生成部８は、制御部１からの楽音データである音高データ、音色データ、エンベロープデータなどに基づいて、ディジタルの楽音波形データを生成して出力する。楽音生成部８にはＤ／Ａ変換器９が接続され、Ｄ／Ａ変換器９にはメインアンプ１０が接続され、メインアンプ１０にはスピーカ１１が接続されている。このサウンドシステムにより、楽音生成部８から出力された楽音波形データは、Ｄ／Ａ変換器９によりアナログに変換され、メインアンプ１０により増幅処理などの所定の信号処理が施されて、スピーカ１１から発音される。
【００１６】
なお、ＭＩＤＩデータを送受信するためのＭＩＤＩインターフェース、ＣＤ−ＲＯＭやＦＤ（フレキシブル・ディスク）などの外部記憶媒体を装着してドライブする記憶媒体ドライブ装置、およびインターネットなどの通信網に接続してデータやプログラムをダウンロードするための通信装置を接続できる構成になっている。
【００１７】
図２は、図１の楽音生成部８の内部構成を示すブロック図である。この図に示すように、楽音生成部８は、６４個の発音チャンネル８１１（８１１−１〜８１１−６４）および各発音チャンネルの楽音波形を合成するミキサ８１２で構成されている。制御部１からは最大６４個の楽音データ（音高データ、エンベロープデータなど）が各発音チャンネルに割り当てられる。
【００１８】
図３は、図２の各発音チャンネル８１１の内部構成を示すブロック図である。各発音チャンネル８１１は、波形発生器１０１、増幅器１０２、アンプＥＧ（エンベロープ・ジェネレータ）１０３で構成されている。波形発生器１０１は、制御部１からの発音開始コマンドおよび音高データに応じて、楽音波形を生成して増幅器１０２に入力する。アンプＥＧ１０３は、制御部１からの発音開始コマンドおよびエンベロープ情報に応じて、エンベロープ波形を生成して増幅器１０２に入力するとともに、制御部１の要求に応じてエンベロープ情報の現在値を送出する。増幅器１０２は、アンプＥＧ１０３からのエンベロープの形状により波形発生器１０１からの楽音波形を音量制御してミキサ８１２に入力する。
【００１９】
図４は、第１の実施形態における楽音波形の音量の時間的変化を規定するＡＤＳＲ方式のエンベロープのカレント状態（ＣＳ：ｃｕｒｒｅｎｔ　ｓｔａｔｅ）を示す図である。ＡＤＳＲ方式のエンベロープは、状態「０」のストップ（ＣＳ＿ＳＴＯＰ）から始まって、状態「１」のアタック（ＣＳ＿ＡＴＴＡＣＫ）、状態「２」のディケイ（ＣＳ＿ＤＥＣＡＹ）、状態「３」のサスティン（ＣＳ＿ＳＵＳＴＡＩＮ）、状態「４」のリリース（ＣＳ＿ＲＥＬＥＡＳＥ）、状態「０」のストップ（ＣＳ＿ＳＴＯＰ）で終了する。
【００２０】
アタック状態では、イニシャルレベル（ＩＬ）からアタックレベル（ＡＬ）までアタックレート（ＡＲ）の傾斜で音量が大きくなる。ディケイ状態では、アタックレベル（ＡＬ）からディケイレート（ＤＲ）で音量が減衰する。サスティン状態では、サスティンレベル（ＳＬ）で音量が維持される。リリース状態では、リリースレート（ＲＲ）で音量が減衰してゼロレベルに収束する。
【００２１】
図５は、第１の実施形態におけるＲＡＭ５のメモリ構成を示す図である。ＬＩＭＩＴは、イニシャライズ処理で設定される合計制限値をストアするレジスタである。ＲＡＴＩＯは、補正係数をストアするレジスタである。ＲＡＴＥは、ユーザによるスライダ６操作によって設定される補正係数変化レートである。ＲＡＴＥ＿ＳＥＴは、ＲＡＴＥ設定モードフラグである。ＩＬ［ｖ］は、各発音チャンネルのイニシャルレベルをストアするレジスタである。ここで、ｖは「０」乃至「６３」のチャンネル番号を表している（以下、同様）。
【００２２】
ＡＲ［ｖ］は、各発音チャンネルのアタックレートをストアするレジスタである。ＡＬ［ｖ］は、各発音チャンネルのアタックレベルをストアするレジスタである。ＤＲ［ｖ］は、各発音チャンネルのディケイレートをストアするレジスタである。ＳＬ［ｖ］は、各発音チャンネルのサスティンレベルをストアするレジスタである。ＲＲ［ｖ］は、各発音チャンネルのリリースレートをストアするレジスタである。
【００２３】
ＡＬ＿Ｍ［ｖ］は、各発音チャンネルの補正アタックレベルをストアするレジスタである。ＳＬ＿Ｍ［ｖ］は、各発音チャンネルの補正サスティンレベルをストアするレジスタである。ＣＬ［ｖ］は、各発音チャンネルのカレントレベルをストアするレジスタである。ＣＳ［ｖ］は、各発音チャンネルのカレント状態をストアするレジスタである。
【００２４】
次に、第１の実施形態における楽音発生装置の動作について、制御部１によって実行される図６乃至図１０のフローチャートに基づいて説明する。
図６は、メインフローであり、ＲＡＭ５のレジスタやフラグをリセットし、ＲＡＴＩＯの初期値を「１．０」に設定し、ＲＡＴＥの初期値を「０．０」に設定するなどのイニシャライズ（ステップＳＡ１）の後、スイッチ部３をスキャンして各スイッチのオン又はオフを検出するスイッチ処理（ステップＳＡ２）、鍵盤２をスキャンして各鍵の押鍵又は離鍵を検出する鍵盤処理（ステップＳＡ３）、スライダ６の操作を検出してその操作量に応じたスライダ値によって演算を行うスライダ処理（ステップＳＡ４）、楽音生成部８に対する発音開始などを行う発音処理（ステップＳＡ５）、エンベロープ補正メニューやエンベロープの形状などを表示部７に表示する表示処理（ステップＳＡ６）、その他の処理（ステップＳＡ７）を繰り返し実行する。
【００２５】
図７は、図６のメインフローにおけるステップＳＡ２のスイッチ処理のフローチャートである。このフローでは、スイッチのオン状態又はオフ状態に応じた処理を行う。ＲＡＴＥ設定モードスイッチがオンされたか否かを判別し（ステップＳＢ１）、このスイッチがオンされたと判別したときは、フラグＲＡＴＥ＿ＳＥＴの値を反転する（ステップＳＢ２）。フラグを反転した後、又は、ＲＡＴＥ設定モードスイッチがオンされない場合には、他のスイッチ処理を行って（ステップＳＢ３）、メインフローに戻る。
【００２６】
図８は、図６のメインフローにおけるステップＳＡ４のスライダ処理のフローチャートである。このフローでは、フラグＲＡＴＥ＿ＳＥＴの値が「１（補正係数変化レート設定）」であるか否かを判別する（ステップＳＣ１）。このフラグが「１」であると判別した場合は、現在のスライダ値を取得する（ステップＳＣ２）。すなわち、スライダ６の操作量に応じて「０」から「１２７」の範囲で１つの整数値をスライダ値として取得する。そして、取得したスライダ値の変換値をレジスタＲＡＴＥにストアする（ステップＳＣ３）。この変換値は「０．０」から「１．０」までの範囲である。そして、メインフローに戻る。
【００２７】
図９は、タイマインタラプト処理のフローチャートである。メインフローの実行中に一定時間ごとのタイマ割り込みがあったときは、このフローを実行する。まず、各発音チャンネル８１１のカレントレベルの合計値をストアするレジスタｓｕｍに「０」をストアしてクリアし、発音チャンネルを指定するポインタｖに「０（最初の発音チャンネル）」をセットする（ステップＳＤ１）。そして、ｖの値をインクリメントしながら、ステップＳＤ２、ＳＤ３のループ処理を実行する。すなわち、ポインタｖで指定したカレントレベルＣＬ［ｖ］をレジスタｓｕｍに累算して、ｖの値を「１」だけインクリメントする（ステップＳＤ２）。そして、ｖの値が「６４」に達したか否かを判別する（ステップＳＤ３）。すなわち、すべての発音チャンネルのカレントレベルを累算したか否かを判別する。ｖの値が「６４」に達していないと判別した場合には、ステップＳＤ２、ＳＤ３の処理を繰り返す。
【００２８】
ｖの値が「６４」に達したときは、ｓｕｍの合計値がＬＩＭＩＴの合計制限値より大きいか否かを判別する（ステップＳＤ４）。ｓｕｍの合計値がＬＩＭＩＴの合計制限値より大きいと判別した場合には、ＲＡＴＩＯの補正係数からＲＡＴＥの補正係数変化レートを減算する（ステップＳＤ５）。このとき、ＲＡＴＩＯの補正係数がマイナスになったか否かを判別し（ステップＳＤ６）、マイナスになったと判別した場合は、ＲＡＴＩＯの補正係数を「０」にする（ステップＳＤ７）。
【００２９】
ステップＳＤ４において、ｓｕｍの合計値がＬＩＭＩＴの合計制限値以下である場合には、ＲＡＴＩＯの補正係数にＲＡＴＥの補正係数変化レートを加算する（ステップＳＤ８）。このとき、ＲＡＴＩＯの補正係数が「１」より大きくなったか否かを判別し（ステップＳＤ９）、「１」より大きくなったと判別した場合は、ＲＡＴＩＯの補正係数を「１」にする（ステップＳＤ１０）。
【００３０】
ステップＳＤ７においてＲＡＴＩＯの補正係数を「０」にした後、若しくはステップＳＤ１０においてＲＡＴＩＯの補正係数を「１」にした後、又は、ステップＳＤ６においてＲＡＴＩＯの補正係数がマイナスでないと判別した場合、若しくはステップＳＤ９においてＲＡＴＩＯの補正係数が「１」以下であると判別した場合には、ｖの値を「０」にセットして（ステップＳＤ１１）、目標レベル設定処理を実行する（ステップＳＤ１２）。そして、ｖの値が「６４」に達したか否かを判別する（ステップＳＤ１３）。すなわち、すべての発音チャンネルについて目標レベル設定処理を実行したか否かを判別する。ｖの値が「６４」に達していないと判別した場合には、ステップＳＤ１２の目標レベル設定処理を続行する。ｖの値が「６４」に達した場合には、メインフローに戻る。
【００３１】
図１０は、図９のフローにおけるステップＳＤ１２の目標レベル設定処理のフローチャートである。このフローでは、ｖで指定した各発音チャンネルごとに、目標レベル設定処理を実行する。最初に、発音チャンネルのカレント状態ＣＳ［ｖ］が、アタック状態（ＣＳ＿ＡＴＴＡＣＫ）、ディケイ状態（ＣＳ＿ＤＥＣＡＹ）、サスティン状態（ＣＳ＿ＳＵＳＴＡＩＮ）、リリース状態（ＣＳ＿ＲＥＬＥＡＳＥ）、ストップ状態（ＣＳ＿ＳＴＯＰ）のいずれの状態であるかを判別する（ステップＳＥ１）。
【００３２】
カレント状態ＣＳ［ｖ］がアタック状態（ＣＳ＿ＡＴＴＡＣＫ）であると判別した場合には、アタックレベルＡＬ［ｖ］の値にＲＡＴＩＯの補正係数を乗算して補正アタックレベルＡＬ＿Ｍ［ｖ］とする（ステップＳＥ２）。そして、カレントレベルＣＬ［ｖ］の値がアタックレベルＡＬ＿Ｍ［ｖ］の値より大きいか否かを判別する（ステップＳＥ３）。ＣＬ［ｖ］の値がＡＬ＿Ｍ［ｖ］の値より大きいと判別した場合には、カレント状態ＣＳ［ｖ］をディケイ状態（ＣＳ＿ＤＥＣＡＹ）にする（ステップＳＥ４）。そして、図９のフローに戻ってステップＳＤ１３に移行する。
【００３３】
ステップＳＥ１において、カレント状態ＣＳ［ｖ］がディケイ状態（ＣＳ＿ＤＥＣＡＹ）であると判別した場合には、サスティンレベルＳＬ［ｖ］の値にＲＡＴＩＯの補正係数を乗算して補正サスティンレベルＳＬ＿Ｍ［ｖ］とする（ステップＳＥ５）。そして、カレントレベルＣＬ［ｖ］の値がサスティンレベルＳＬ＿Ｍ［ｖ］の値より小さいか否かを判別する（ステップＳＥ６）。ＣＬ［ｖ］の値がＳＬ＿Ｍ［ｖ］の値より小さいと判別した場合には、カレント状態ＣＳ［ｖ］をサスティン状態（ＣＳ＿ＳＵＳＴＡＩＮ）にする（ステップＳＥ７）。そして、図９のフローに戻ってステップＳＤ１３に移行する。
【００３４】
ステップＳＥ１において、カレント状態ＣＳ［ｖ］がサスティン状態（ＣＳ＿ＳＵＳＴＡＩＮ）であると判別した場合には、サスティンレベルＳＬ［ｖ］にＲＡＴＩＯの修正係数を乗算して補正サスティンレベルＳＬ＿Ｍ［ｖ］とし（ステップＳＥ８）、その補正サスティンレベルＳＬ＿Ｍ［ｖ］をカレントレベルＣＬ［ｖ］とする（ステップＳＥ９）。そして、図９のフローに戻ってステップＳＤ１３に移行する。
【００３５】
以上のように、上記第１の実施形態によれば、楽音波形を生成する６４個の発音チャンネル８１１（８１１−１〜８１１−６４）を含む楽音生成部８と、発音チャンネル８１１ごとに楽音波形の振幅の時間的変化を規定するエンベロープを生成するアンプＥＧ１０３と、発音チャンネル８１１のエンベロープの現在値を所定時間が経過するごとに取得して、その現在値に基づいてエンベロープの形状を規定するレベルデータを補正する制御部１とを具備する構成になっている。
したがって、ＤＳＰ装置などのような高価で規模の大きい回路を用いることなく、且つ、リアルタイムでエンベロープを補正して、楽音波形が飽和するのを防止できる。
【００３６】
この場合において、制御部１は、６４個の発音チャンネル８１１におけるエンベロープの現在値を合計して、その合計値が所定の制限値を超えている場合には所定の変化割合に基づいて修正された補正係数をレベルデータに乗算する構成になっている。
したがって、全体的に、且つ、急激な音量変化がないように、エンベロープを補正することで、補正による違和感を低減することができる。
【００３７】
なお、上記第１の実施形態においては、すべての発音チャンネル８１１に対して同じ補正係数を使用したが、各発音チャンネルごとに異なった補正係数を使用する構成にしてもよい。例えば、発音開始が古い発音チャンネルには小さな補正係数を使用し、逆に発音開始が新しい発音チャンネルには大きな補正係数を使用する構成にしてもよい。このような構成によれば、発音開始が古いほど速く減衰するので、発音開始が新しい楽音波形の特徴的なアタック部分がエンベロープの補正によって失われないので、エンベロープの補正を行っても音質が低下することがない。
【００３８】
また、音色間での優先順位を設定し、優先順位の高い音色の発音チャンネルには大きな補正係数を使用し、優先順位の低い発音チャンネルには小さな補正係数を使用する構成にしてもよい。例えば、強いアタックによるひずみ音に特色がある打楽器系の音色については、その特色を損なわないために優先順位を高く設定して、補正係数をできるだけ小さくしないように構成する。このような構成によれば、エンベロープの補正を行っても音質が低下することがない。
【００３９】
また、上記第１の実施形態では、アタックレベルとサスティンレベルの両方について補正を行う構成にしたが、アタックレベルのみを補正する構成にしてもよい。この場合には、制御部１の処理が相対的に速くなるので、リアルタイムでエンベロープを補正するのに有利である。
【００４０】
また、上記第１の実施形態においては、ＲＯＭ４内にあらかじめ楽音発生処理のプログラムを格納した装置について説明したが、ＣＤ−ＲＯＭやＦＤなどの外部記憶媒体又はインターネットなどの通信網を介して、上記のフローチャートで示した楽音発生処理のプログラムをインストールするように構成すれば、プログラムの発明を実現できる。
【００４１】
次に、第２の実施形態における楽音発生装置について説明する。この実施形態における楽音発生装置の全体構成は、図１に示した第１の実施形態と同じである。
図１１は、第２の実施形態における楽音生成部８の内部構成を示すブロック図である。この図に示すように、楽音生成部８は、６４個の発音チャンネル８２１（８２１−１〜８２１−６４）、各発音チャンネルの楽音波形を合成するミキサ８２２、およびマスタボリューム８２３で構成されている。制御部１からは最大６４個の楽音データ（音高データ、エンベロープデータなど）が各発音チャンネルに割り当てられ、マスタボリューム８２３には補正マスタボリューム値が入力される。
なお、各発音チャンネル８２１の内部構成は、図３に示した第１の実施形態の構成と同じであり、波形発生器１０１、増幅器１０２、およびアンプＥＧ１０３で構成されている。したがって、図３を援用して説明する。
【００４２】
図１２は、第２の実施形態におけるＲＡＭ５のメモリ構成を示す図である。ＭＶは、マスタボリューム値をストアするレジスタである。ＲＡＴＩＯは、補正係数をストアするレジスタである。ＭＶ＿Ｍは、補正マスタボリューム値をストアするレジスタである。チャンネル番号ｖ（０〜６３）によって指定されるＣＬ［ｖ］は、各発音チャンネルのエンベロープカレントレベルをストアするレジスタである。
【００４３】
次に、第２の実施形態における楽音発生装置の動作について、制御部１によって実行される図１３のフローチャートおよびＲＡＴＩＯの補正係数を圧縮するための図１４の変換テーブルに基づいて説明する。この変換テーブルは、ＬＩＭＩＴの値が「３２．０」の場合のものである。なお、第２の実施形態における制御部１のメインフローチャートは、第１の実施形態と同じであるので、図面および説明は省略する。
【００４４】
図１３は、タイマインタラプト処理のフローチャートである。メインフローの実行中に一定時間ごとのタイマ割り込みがあったときは、このフローを実行する。まず、各発音チャンネル８２１のカレントレベルの合計値をストアするレジスタｓｕｍに「０」をストアしてクリアし、発音チャンネルを指定するポインタｖに「０（最初の発音チャンネル）」をセットする（ステップＳＦ１）。そして、ｖの値をインクリメントしながら、ステップＳＦ２、ＳＦ３のループ処理を実行する。すなわち、ポインタｖで指定したカレントレベルＣＬ［ｖ］をレジスタｓｕｍに累算して、ｖの値を「１」だけインクリメントする（ステップＳＦ２）。そして、ｖの値が「６４」に達したか否かを判別する（ステップＳＦ３）。すなわち、すべての発音チャンネルのカレントレベルを累算したか否かを判別する。ｖの値が「６４」に達していないと判別した場合には、ステップＳＦ２、ＳＦ３の処理を繰り返す。
【００４５】
ｖの値が「６４」に達したと判別したときは、図１４においてｓｕｍの合計値のうち整数部の変換テーブルの値であるＲＡＴＩＯＴＡＢＬＥ［ｓｕｍ整数部］をＲＡＴＩＯの補正係数とする（ステップＳＦ４）。次に、そのＲＡＴＩＯの補正係数をマスタボリューム値に乗算して、補正マスタボリューム値ＭＶ＿Ｍとして（ステップＳＦ５）、そのＭＶ＿Ｍの補正マスタボリューム値をマスタボリューム８２３に送出する（ステップＳＦ６）。そして、メインフローに戻る。
【００４６】
以上のように、上記第２の実施形態によれば、楽音波形を生成する６４個の発音チャンネル８２１（８２１−１〜８２１−６４）を含む楽音生成部８と、発音チャンネル８２１ごとに楽音波形の振幅の時間的変化を規定するエンベロープを生成するアンプＥＧ１０３と、ボリューム値に基づいて楽音の音量を制御するマスタボリューム８２３と、発音チャンネル８２１のエンベロープの現在値を所定時間が経過するごとに取得して、その現在値に基づいてボリューム値を補正する制御部１とを具備する構成になっている。
したがって、ＤＳＰ装置などのような高価で規模の大きい回路を用いることなく、且つ、リアルタイムでボリューム値を補正して、楽音波形が飽和するのを防止できる。
【００４７】
この場合において、制御部１は、６４個の発音チャンネル８２１におけるエンベロープの現在値を合計して、その合計値が所定の制限値を超えている場合にはその合計値と制限値に基づいて規定された補正係数をボリューム値に乗算する。したがって、全体的に、且つ、急激な音量変化がないように、ボリューム値を補正することで、補正による違和感を低減することができる。
【００４８】
なお、上記第２の実施形態においては、エンベロープ合計値から変換テーブルを用いて補正係数を求める構成にしたが、数値計算によって補正係数を求めるように構成してもよい。例えば、制御部１は、すべての発音チャンネル８２１のアンプＥＧ１０３の総計を演算し、その演算値が所定の設定値（ＬＩＭＩＴ）を超えている場合は、その演算値を設定値で除算した値の逆数を補正係数とするように構成してもよい。
【００４９】
また、上記第２の実施形態においても、ＣＤ−ＲＯＭやＦＤなどの外部記憶媒体又はインターネットなどの通信網を介して、楽音発生処理のプログラムをインストールするように構成すれば、プログラムの発明を実現できる。
【００５０】
次に、第３の実施形態における楽音発生装置について説明する。この実施形態における楽音発生装置の全体構成は、図１に示した第１の実施形態と同じである。
図１５は、第３の実施形態における楽音生成部８の内部構成を示すブロック図である。この図に示すように、楽音生成部８は、６４個の発音チャンネル８３１（８３１−１〜８３１−６４）で構成され、４個の発音チャンネルを１グループとして、１６のグループの発音チャンネルに分けられている。そして、各グループの４個の発音チャンネルに対して、１種類の音色のパートを割り当てることができる。すなわち、この楽音生成部８に対して、制御部１から最大１６種類の音色のパートを割り当てることができる。
【００５１】
各グループの４個の発音チャンネルで発生された４つの楽音波形は、１つのミキサで合成される。したがって、１６種類の音色グループに対応する１６個のミキサ８３２（８３２−１〜８３２−１６）が設けられている。各ミキサ８３２（８３２−１〜８３２−１６）の出力は、対応するパートボリューム８３３（８３３−１〜８３３−１６）に接続されている。各パートボリューム８３３には、制御部１から各パートごとに補正パートボリューム値が入力される。そして、各パートボリューム８３３の出力はミキサ８３４に接続されている。
なお、各発音チャンネル８３１の内部構成は、図３に示した第１の実施形態の構成と同じであり、波形発生器１０１、増幅器１０２、およびアンプＥＧ１０３で構成されている。したがって、図３を援用して説明する。
【００５２】
次に、第３の実施形態における楽音発生装置の動作について説明する。
制御部１から楽音生成部８に入力された音高データ、エンベロープ情報、および発音開始コマンドに応じて、各発音チャンネル８３１においては、波形発生器１０１によって楽音波形が発生されて増幅器１０２に入力される。また、アンプＥＧ１０３ではエンベロープ情報に応じてアンプ・エンベロープが生成されて増幅器１０２に入力される。増幅器１０２では、アンプ・エンベロープの形状に従って、楽音波形に対して時間的に変化する音量制御を行って出力する。
【００５３】
各グループの４個の発音チャンネル８３１から出力された４つの楽音波形は、対応するミキサ８３２に入力されて合成され、対応するパートボリューム８３３に入力される。パートボリューム８３３では、制御部１から入力された各パートごとの補正パートボリューム値に従って音量制御がなされる。そして、１６個のパートボリューム８３３（８３３−１〜８３３−１６）から出力された１６種類の音色の楽音波形は、ミキサ８３４で合成されてＤ／Ａ変換器９に入力される。
この場合、各パートボリューム８３３において、同じ補正パートボリューム値を使用してもよいし、各パートごとにそれぞれ異なる補正パートボリューム値を使用してもよい。
【００５４】
以上のように、上記第３の実施形態によれば、１６種類の音色のパートからなる楽音波形を生成する６４個の発音チャンネル８３１（８３１−１〜８３１−６４）を含む楽音生成部８と、発音チャンネル８３１ごとに楽音波形の振幅の時間的変化を規定するエンベロープを生成するアンプＥＧ１０３と、パートボリューム値に基づいて各音色のパートの楽音の音量を制御する１６個のパートボリューム８３３（８３３−１〜８３３−１６）と、発音チャンネル８３１のエンベロープの現在値を所定時間が経過するごとに取得して、その現在値に基づいてパートボリューム値を補正する制御部１とを具備する構成になっている。
したがって、ＤＳＰ装置などのような高価で規模の大きい回路を用いることなく、且つ、リアルタイムでパートボリューム値を補正して、楽音波形が飽和するのを防止できる。
【００５５】
なお、上記第３の実施形態において、各パートに割り当てられた音色間での優先順位を設定し、優先順位の高い音色のパートには大きな補正パートボリューム値を使用し、優先順位の低いパートには小さな補正パートボリューム値を使用する構成にしてもよい。このような構成にすれば、パートボリューム値の補正を行った場合でも、曲の音楽性を維持することができる。
【００５６】
また、上記第３の実施形態においても、ＣＤ−ＲＯＭやＦＤなどの外部記憶媒体又はインターネットなどの通信網を介して、楽音発生処理のプログラムをインストールするような構成にできる。
【００５７】
また、上記各実施形態においては、ＡＤＳＲ方式のエンベロープの形状を変更する場合について説明したが、本発明は他の方式のエンベロープの形状を変更する場合にも適用できる。例えば、一定時間ごとにレートデータおよびレベルデータを指定するステップによる方式において、各ステップのエンベロープの形状を変更する場合にも適用できる。
【００５８】
【発明の効果】
本発明によれば、楽音波形を生成する複数の発音チャンネルを含む楽音生成手段における各発音チャンネルごとに楽音波形の振幅の時間的変化を規定するエンベロープを生成し、発音チャンネルのエンベロープの現在値を所定時間が経過するごとに取得して、その現在値を取得するたびにその現在値に基づいてエンベロープの形状を規定するレベルデータを補正するので、ＤＳＰ装置などのような高価で規模の大きい回路を用いることなく、且つ、リアルタイムでエンベロープを補正して、楽音波形が飽和するのを防止できる。
【００５９】
また、本発明によれば、楽音波形を生成する複数の発音チャンネルを含む楽音生成手段における各発音チャンネルごとに楽音波形の振幅の時間的変化を規定するエンベロープを生成し、発音チャンネルのエンベロープの現在値を所定時間が経過するごとに取得して、その現在値を取得するたびにその現在値に基づいて楽音の音量を制御するボリューム値を補正するので、ＤＳＰ装置などのような高価で規模の大きい回路を用いることなく、且つ、リアルタイムでボリューム値を補正して、楽音波形が飽和するのを防止できる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態における楽音発生装置の構成を示すブロック図。
【図２】図１における楽音生成部の内部構成を示すブロック図。
【図３】図２の発音チャンネルの内部構成を示すブロック図。
【図４】第１の実施形態における楽音波形の音量の時間的変化を規定するＡＤＳＲ方式のエンベロープのカレント状態を示す図。
【図５】第１の実施形態におけるＲＡＭのメモリ構成を示す図。
【図６】第１の実施形態における制御部のメインフローチャート。
【図７】図６のメインフローチャートにおけるスイッチ処理のフローチャート。
【図８】図６のメインフローチャートにおけるスライダ処理のフローチャート。
【図９】第１の実施形態における制御部のタイマインタラプト処理のフローチャート。
【図１０】図９のフローチャートにおける目標レベル設定処理のフローチャート。
【図１１】本発明の第２の実施形態における楽音生成部の内部構成を示すブロック図。
【図１２】第２の実施形態におけるＲＡＭのメモリ構成を示す図。
【図１３】第２の実施形態における制御部のタイマインタラプト処理のフローチャート。
【図１４】第２の実施形態における補正係数を圧縮する変換テーブルを示す図。
【図１５】本発明の第３の実施形態における楽音生成部の内部構成を示すブロック図。
【符号の説明】
１　制御部
２　鍵盤
３　スイッチ部
４　ＲＯＭ
５　ＲＡＭ
６　スライダ
７　表示部
８　楽音生成部
９　Ｄ／Ａ変換器
１０　メインアンプ
１１　スピーカ
８１１、８２１、８３１　発音チャンネル
８１２、８２２、８３２　ミキサ
８２３　マスタボリューム
８３３　パートボリューム
１０１　波形発生器
１０２　増幅器
１０３　アンプ・エンベロープ・ジェネレータ
【図１】
2004144865.tif 000003
【図２】
2004144865.tif 000004
【図３】
2004144865.tif 000005
【図４】
2004144865.tif 000006
【図５】
2004144865.tif 000007
【図６】
2004144865.tif 000008
【図７】
2004144865.tif 000009
【図８】
2004144865.tif 000010
【図９】
2004144865.tif 000011
【図１０】
2004144865.tif 000012
【図１１】
2004144865.tif 000013
【図１２】
2004144865.tif 000014
【図１３】
2004144865.tif 000015
【図１４】
2004144865.tif 000016
【図１５】
2004144865.tif 000017