(57)【要約】【課題】簡易な音源装置でも多数の楽音の発音を効果的に処理することができる音源装置を提供する。【解決手段】楽音波形を形成する複数の発音スロットと、周期時間毎の発音スロット制御動作において各発音スロットに対してそれぞれ複数の制御処理を実行する制御部と、前記複数の制御処理の優先度を記憶した記憶手段と、を備え、前記制御部は、自己の処理負荷を判断し、該処理負荷および各制御処理の優先度に基づいて各発音スロットに対して実行する制御処理の種類を決定し、該決定した内容で前記発音スロット制御動作を実行する。【選択図】  図１
2008003632.tif 000002
【特許請求の範囲】
【請求項１】
楽音波形を形成する複数の発音スロットと、周期時間毎の発音スロット制御動作において、各発音スロットに対してそれぞれ複数の制御処理を実行する制御部と、を備えた音源装置であって、前記制御部は、自己の処理負荷を判断し、該処理負荷に基づいて前記周期時間を決定し、該周期時間毎に前記発音スロット制御動作を実行する音源装置。
【請求項２】
楽音波形を形成する複数の発音スロットと、周期時間毎の発音スロット制御動作において、各発音スロットに対してそれぞれ複数の制御処理を実行する制御部と、前記複数の制御処理の優先度を記憶した記憶手段と、を備えた音源装置であって、前記制御部は、自己の処理負荷を判断し、該処理負荷および各制御処理の優先度に基づいて各発音スロットに対して実行する制御処理の種類を決定し、該決定した内容で前記発音スロット制御動作を実行する音源装置。
【請求項３】
前記制御部は、自己の処理負荷を判断するとともに各発音スロットが形成している楽音波形の重要度を判断し、該処理負荷、各発音スロットが形成している楽音波形の重要度および各制御処理の優先度に基づいて各発音スロットに対して実行する制御処理の種類を決定し、該決定した内容で前記発音スロット制御動作を実行する請求項２に記載の音源装置。
【請求項４】
楽音波形を形成する複数の発音スロットと、周期時間毎の発音スロット制御動作において、各発音スロットに対してそれぞれ複数の制御処理を実行する制御部と、前記複数の制御処理の優先度を記憶した記憶手段と、を備えた音源装置であって、前記制御部は、自己の処理負荷を判断するとともに各発音スロットが形成している楽音波形の重要度を判断し、該処理負荷および各発音スロットが形成している楽音波形の重要度に基づいて処理をスキップする発音スロットを決定し、該決定した発音スロットに対する制御処理を省略して前記発音スロット制御動作を実行する音源装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、楽音波形を形成する発音スロットを複数備えた音源装置に関する。
【背景技術】
【０００２】
電子楽器やカラオケ装置などの自動演奏装置に使用される音源装置は、楽音波形を形成する発音スロットを複数備え、制御部が各発音スロットに対して楽音の発音／消音の指示や波形形成の制御を行うようになっている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
近年の音源装置は、３２チャンネル、６４チャンネルなど多数の発音スロットを備え、同時に多くの楽音波形を形成することができるが、それでもフルオーケストラの楽音を発生する場合などは発音スロットが不足してしまう場合があった。
【０００４】
自動演奏装置に記憶させる自動演奏データの場合、予め音源の最大発音数を意識して自動演奏データを作成し、特定の音色については予め所定数の発音スロットを確保しておくエレメントリザーブという管理方式も存在するが、これは特定の音源装置に対してのみ有効であり、音源装置が変り最大発音数が変わってしまうと対応できないという問題点があった。
【０００５】
また、音源装置が形成する楽音のなかには、複数の基本的な楽音波形（エレメント）を別々の発音スロットで形成し、これを合成して１つの楽音とするマルチエレメントの楽音があるが、このような楽音を形成した場合には、音源装置の最大発音数が減少してしまい、多くの楽音が必要な場合に対応できないという問題点があった。
【０００６】
また、制御部は、楽音波形を形成中の発音スロットに対してレベル制御，フィルタ処理，ビブラートなど各種パラメータを定期的に更新する必要があるが、発音数、すなわち、動作している発音スロットが多い場合には、制御部の処理負荷も大きくなり、複雑な楽音を形成している場合にはその全てを完全に処理することができない場合があった。これを完全に処理するためには、制御部として非常に高速なＣＰＵを搭載する必要があった。
【０００７】
この発明は、音源装置の能力の範囲で最大限の楽音形成処理をすることができる音源装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
請求項１の発明は、楽音波形を形成する複数の発音スロットと、周期時間毎の発音スロット制御動作において各発音スロットに対してそれぞれ複数の制御処理を実行する制御部と、を備えた音源装置であって、前記制御部は、自己の処理負荷を判断し、該処理負荷に基づいて前記周期時間を決定し、該周期時間毎に前記発音スロット制御動作を実行することを特徴とする。
【０００９】
請求項２の発明は、楽音波形を形成する複数の発音スロットと、周期時間毎の発音スロット制御動作において各発音スロットに対してそれぞれ複数の制御処理を実行する制御部と、前記複数の制御処理の優先度を記憶した記憶手段と、を備えた音源装置であって、前記制御部は、自己の処理負荷を判断し、該処理負荷および各制御処理の優先度に基づいて各発音スロットに対して実行する制御処理の種類を決定し、該決定した内容で前記発音スロット制御動作を実行することを特徴とする。
【００１０】
請求項３の発明は、請求項２の発明において、前記制御部は、自己の処理負荷を判断するとともに各発音スロットが形成している楽音波形の重要度を判断し、該処理負荷、各発音スロットが形成している楽音波形の重要度および各制御処理の優先度に基づいて各発音スロットに対して実行する制御処理の種類を決定し、該決定した内容で前記発音スロット制御動作を実行することを特徴とする。
【００１１】
請求項８の発明は、楽音波形を形成する複数の発音スロットと、周期時間毎の発音スロット制御動作において各発音スロットに対してそれぞれ複数の制御処理を実行する制御部と、前記複数の制御処理の優先度を記憶した記憶手段と、を備えた音源装置であって、前記制御部は、自己の処理負荷を判断するとともに各発音スロットが形成している楽音波形の重要度を判断し、該処理負荷および各発音スロットが形成している楽音波形の重要度に基づいて処理をスキップする発音スロットを決定し、該決定した発音スロットに対する制御処理を省略して前記発音スロット制御動作を実行することを特徴とする。
【発明の効果】
【００１２】
この発明によれば、処理負荷および各発音スロットの楽音の重要度に応じて処理内容を変更することにより、重要な楽音は精密な制御がされ重要でない楽音は荒い制御がされて、処理能力の範囲で最大の効果を得ることができる。
【発明を実施するための最良の形態】
【００１３】
図１〜図３を参照してこの発明の第１の実施形態である音源装置について説明する。
【００１４】
図１は同音源装置の構成を示す図である。該音源装置１は、楽音波形を形成する発音スロット５を６４個（５−１〜５−６４）備えている。各発音スロットは制御部３によって制御される。制御部３は、各発音スロットに対して楽音波形の形成開始／停止の指示、形成中の楽音波形のレベルや波形を制御するためのパラメータの更新などの制御動作を実行する。制御部３は、メモリ４を備えている。メモリ４には、各種の音色の楽音波形を形成するための楽音形成データ群、形成している楽音、形成を指示された楽音の重要度を算出するためのルール、６４の発音スロットが形成している楽音の重要度を記憶する重要度テーブルなどを備えている。
【００１５】
また、制御部３にはＩ／Ｏレジスタ２が接続されている。Ｉ／Ｏレジスタ２は図示しないメインＣＰＵと接続されている。このメインＣＰＵはこの音源装置１が搭載される電子楽器や自動演奏装置を制御するＣＰＵであり、楽音の発音／消音や音色や効果を制御するメッセージをこの音源装置１に対して入力する。メッセージのフォーマットはたとえばＭＩＤＩフォーマットである。
【００１６】
上記メインＣＰＵと音源装置１内部の制御部３とは非同期で動作しているため、メインＣＰＵはＩ／Ｏレジスタ２にメッセージを書き込み、制御部３は自己の処理サイクルにこのＩ／Ｏレジスタ２に書き込まれた内容を読み出して対応処理を実行する。上述したように、メインＣＰＵはＭＩＤＩメッセージにより、発音指示、消音指示、ピッチベンドやビブラート強度制御などのコントロールチェンジなどである。
【００１７】
発音スロット５が形成した楽音波形はミキサ６でミキシングされる。ミキサ６がミキシングした楽音はエフェクタ７に入力され、ディストーションやフィルタなど所定の効果が付与されたのち、再度ミキサ８でミキシングされて外部に出力される。
【００１８】
図２，図３を参照して、同音源装置１で発音スロット数を超える楽音の形成が指示された場合の処理を説明する。この音源装置は、形成中の楽音および新たに形成が指示された楽音のそれぞれについて常にその重要度を算出している。そして、発音スロットに空きがない場合、新たに形成が指示された楽音の重要度で形成中の楽音の重要度を検索し、新たな楽音よりも重要度の低い楽音を１つ消去してその発音スロットで新たな楽音を形成するようにしている。なお、新たな楽音がよりも重要度の低い楽音がなかった場合には、この新たな楽音の形成指示は無視してそのまま現在の楽音形成を継続する。
【００１９】
図２は楽音の重要度を決定するルールの例を示す図である。これらのルールはメモリ４に記憶されている。楽音の重要度は、音色、発音時の音量、現在の音量、発音からの経過時間、他の形成中の楽音との関係、該音色がアサインされているＭＩＤＩチャンネル（パート）などによって決定される。
【００２０】
音色に基づく重要度は「リズム音やベース音の重要度は高い」、「メロディを担当するような目立つ音色の重要度は高い」などのルールで算出される。発音時の音量はノートオンメッセージに付されているベロシティや楽音形成データの音量パラメータなどに基づいて知ることができ、これに基づく重要度は「大きいほど重要度が高い」などのルールで算出される。また、現在の音量は、各発音スロットの楽音形成レベルを定期的にモニタすることで知ることができ、これに基づく重要度は「大きいほど重要度が高い」などのルールで算出される。
【００２１】
また、他の形成中の楽音との関係に基づく重要度は、「最低音と最高音の重要が高く、内声になるほど重要度が低い」、「他にユニゾンやオクターブの楽音が形成中であれば重要度を低下させる」などのルールで算出される。
【００２２】
パートによる重要度は、「パート番号（ＭＩＤＩチャンネル番号）が小さいほうが重要度が大きい」、「予め確保されている発音スロット数（エレメントリザーブ数）が多いほど重要度が大きい」などのルールで算出される。なお、この音源装置に対してはエレメントリザーブは無効にされている。
【００２３】
上記ルールに基づいて算出された重要度の合計が１つの楽音に対する重要度となる。各ルールの重要度は、該当するか否かの１／０で算出してもよく、図２に示すようにルールを関数化（テーブル化）して該当する度合いに基づいて０〜１の間のポイントを決定してもよい。また、ポイントの決定にファジィ推論を用いてもよい。
【００２４】
図３は同音源装置の制御部の動作を示すフローチャートである。同図（Ａ）は周期処理（発音スロット制御動作）を示すフローチャートである。この処理は、制御部３が所定の時間間隔である周期時間毎に実行する動作であり、各発音スロットに対してパラメータを書き換えたりレベルをモニタするなどの動作である。まず、発音スロットを指し示すポインタＮに１をセットする（ｓ１）。そして、このポインタＮで指定される発音スロットに対して以下の処理を実行する。
【００２５】
まずその発音スロットが発音中であるかを判断する（ｓ２）。発音中でなければ何も処理する必要がないため直接ｓ６に進む。発音中であれば、この発音スロットで形成している楽音のレベルや波形を制御するパラメータを更新する（ｓ３）。このパラメータの更新はＩ／Ｏレジスタ２に入力されていたコントロールチェンジメッセージやメモリ４に記憶されているこの音色の楽音形成データなどに基づいて行われる。更新するパラメータの種類は図６に示すようなものである。そして、そして、モニタされた発音レベルなどに基づいてこの楽音の重要度を計算する（ｓ４）。この重要度の計算は上記ルールに基づいて行われる。そして、算出された重要度でメモリ４に設定されている重要度テーブルの内容を更新する（ｓ５）。以上の動作をＮが６４になるまで、すなわち６４チャンネル分実行したのち（ｓ６，ｓ７）、１回の周期処理を終了する。この周期処理は数ミリ〜数十ミリ秒の周期時間毎に繰り返し実行される。
【００２６】
同図（Ｂ）はＭＩＤＩ入力時（ノートオンメッセージ入力時）の動作を示すフローチャートである。制御部は定期的にＩ／Ｏレジスタ２をチェックし、ＭＩＤＩメッセージが入力されていればこの処理を実行する。入力されたＭＩＤＩメッセージがノットオンメッセージであるか否かを判断する（ｓ１０）。ノートオンメッセージ以外のメッセージであれば対応する処理に進む。対応する処理とは、たとえば、ノートオフ処理やコントロールチェンジに対応したパラメータ値の算出などの処理である。
【００２７】
ノートオンメッセージであれば、まず、この楽音の重要度を上記ルールに基づいて計算する（ｓ１１）。そして、現在発音スロットに空きがあるかを判断する（ｓ１２）。空きがある場合には、その空きチャンネルにこの楽音を発音をアサインして発音を開始し（ｓ１６）、重要度テーブルにｓ１１で計算した重要度を書き込んで処理を終了する。
【００２８】
一方、空きチャンネルがない場合には（ｓ１２）、形成中の楽音のなかにこの新たな楽音よりも重要度の低い楽音があるか否かを重要度テーブルで検索する（ｓ１３）。形成中の楽音のうち重要度の低いものがあった場合には（ｓ１４）、その楽音を消去し（ｓ１５）、消去して空きになったチャンネルにこの新たな楽音を発音をアサインして楽音形成を開始し（ｓ１６）、重要度テーブルの該発音スロットに対応する欄にｓ１１で計算した重要度を書き込んで処理を終了する。なお、新たな楽音よりも重要度の低い形成中の楽音がない場合には、このノートオンメッセージは無視してそのまま動作を終了する。
【００２９】
このように、各楽音の重要度に基づいて消去する楽音を決定するようにしたことにより、演奏の音楽性を損なわずに少ない発音スロット数で多くの楽音を演奏することができる。
【００３０】
図４，図５を参照してこの発明の第２の実施形態である音源装置について説明する。なお、この音源装置のハード構成は図１に示したものと同様である。メモリ４には、図４に示すような関係の複数の楽音形成データが記憶されている。すなわち同じ音色番号でも１エレメント〜４エレメントの４種類の楽音形成データが記憶されている。１エレメントの楽音形成データ、２エレメントの楽音形成データ、３エレメントの楽音形成データ、４エレメントの楽音形成データは、それぞれ同じ音色番号と１〜４のバンクナンバで選択される。
【００３１】
２エレメント〜４エレメントの楽音形成データに基づいて楽音を形成する場合、２〜４の発音スロットを占有してそれぞれ異なる基本楽音波形（エレメント）を形成し、このエレメントをミキサ６で合成することによって１つの楽音を形成する。ミキサ６はこれらのエレメントを単に加算合成するのみでなく所定のアルゴリズムで合成する。
【００３２】
制御部３は、発音スロット５に多くの空きがある場合には、４エレメントの楽音形成データを用いてゴージャスな楽音を形成するが、発音スロットの空きが少ない場合には１エレメントや２エレメントのエコノミーな楽音形成データを用いて楽音を形成する。この場合、発音スロットの空き状況に加えてその楽音の重要度を考慮してエレメント数を決定する。楽音の重要度は上述の（図２に示した）ルールで算出すればよい。なお、楽音形成データのバンクの選択は、ユーザに開放されていないものとする。
【００３３】
図５は制御部３の動作を示すフローチャートである。この動作はＭＩＤＩ入力時（ノートオンメッセージ入力時）の動作を示している。Ｉ／Ｏレジスタ２を検索した結果、ＭＩＤＩメッセージが入力されていた場合には、そのメッセージがノートオンメッセージであるかを判断する（ｓ２１）。ノートオンメッセージでない場合には対応する処理に進む。
【００３４】
ノートオンメッセージの場合には、このメッセージに基づいて形成を開始すべき楽音の重要度を算出する（ｓ２２）。そして、現在の空きスロット数を判断する（ｓ２３）。そして、空きスロット数および楽音の重要度に応じて楽音のエレメント数を決定して、対応する楽音形成データのバンクを選択し（ｓ２４）、該エレメント数の発音スロットをこの楽音にアサインして、楽音形成データや初期パラメータを供給して楽音の形成（発音）を開始させる（ｓ２６）。
【００３５】
このように、音源装置の空きスロット数や楽音の重要度に応じて楽音のエレメント数を変えることにより、重要な音はエレメント数の多いゴージャスな音色で発音し、且つ、そうでない楽音はエレメント数を少なくしてマルチエレメント音色を使用しながら最大限の発音数を確保することができる。
【００３６】
図６，図７を参照してこの発明の第３の実施形態である音源装置について説明する。なお、この音源装置のハード構成は図１に示したものと同様である。制御部３は、動作している（楽音波形を形成している）発音スロットの数や各発音スロットに対する処理の複雑さなどに基づいて自己の処理負荷を算出する。この音源負荷に応じて周期処理の間隔を変更する。すなわち、処理負荷が大きい場合には、周期処理の間隔を長くする。これにより、処理回数を減らして処理負荷を軽減することができる。周期処理の間隔を長くしても楽音はほぼ同様に形成されるが、パラメータの更新間隔が長くなるため、音量変化やピッチ変化などが荒く段階的になる。
【００３７】
また、メモリ４には、図６に示す優先度テーブルが記憶されている。この優先度テーブルは、楽音波形を形成中の各発音スロットに対する複数の制御処理の優先度を記憶したものである。同図において、発音を継続するかダンプするか、アンプリチュードＥＧ制御は楽音波形の形成そのものを左右するものであるため、優先度が高い。また、フィルタパラメータの更新やポルタメント制御などは音色を微妙に制御するのみのものであるため優先度が低い。
【００３８】
通常は楽音波形を形成している全ての発音スロットに対して全ての制御処理を実行するが、制御部３の処理負荷が大きい場合、優先度の高い制御処理のみを実行する。
【００３９】
さらに、この実施形態では、制御部３の処理負荷に応じて、実行する制御処理を、全ての楽音（発音スロット）に対して一律に決定するのではなく、各発音スロットで形成している楽音波形の重要度に応じてどこまでの制御処理を実行するかを決定する。楽音波形の重要度は上述の（図２に示した）ルールで決定すればよいが、最も重要視されるルールは、「音量が大きいと聴感上の影響が大きいから優先度が高く、アンプリンチュードＥＧの値が大きい場合も同様に聴感上の影響が大きいから優先度が高い。」、「発音開始してからの時間が短いと音色変化が大きいために処理優先度が高く、発音開始してからの時間が長い場合には定常音で安定しているため優先度が低い。」というルールである。
【００４０】
図７は音源装置の制御部の動作を示すフローチャートである。同図（Ａ）は周期管理動作を示している。まず、処理負荷を判断する（ｓ３１）。そして、この負荷量に応じて次の周期処理（発音スロット制御動作）までの時間、すなわち、周期時間を決定する（ｓ３２）。そしてこの周期時間が経過して処理時刻になるまでｓ３３で待機する。なおこの待機時間の間、制御部は他の処理を実行可能である。そして、処理時刻が到来すると（ｓ３３）、周期処理動作を実行する（ｓ３４）。
【００４１】
同図（Ｂ）は周期処理動作を示すフローチャートである。まず、現在の処理負荷を判断する（ｓ４１）。この処理はｓ３１で実行したものを用いて省略してもよい。そして、この処理負荷と各発音スロットが形成している楽音波形の重要度を勘案して制御処理の内容を決定する。まず発音スロットを指し示すポインタＮに１をセットし（ｓ４２）、その発音スロットが発音中かを判断する（ｓ４３）。発音中でなければそのままｓ４７に進む。
【００４２】
発音中であればその発音スロットが形成している楽音波形の重要度を計算する（ｓ４４）。そして、この重要度および制御部３の処理負荷に応じて制御処理の内容を決定する（ｓ４５）。そして、決定した内容の制御処理を当該発音スロットに対して実行する（ｓ４６）。以上の処理をＮが６４になるまで繰り返し実行する（ｓ４７，ｓ４８）。
【００４３】
このように、制御部３の処理負荷や楽音波形の重要度に応じてパラメータ更新などの制御処理の程度を変更することにより、制御部の処理能力の範囲で最大の音色，発音数を維持することができる。
【００４４】
図８のフローチャートを参照して、この発明の更に他の実施形態を説明する。同図のフローチャートは、図７の周期処理動作に代わるものである。この周期処理動作は、発音スロットに対して全ての制御処理を実行するが、重要度の低い楽音波形を形成している発音スロットに対しては毎回制御処理を実行せず、２回に１回など処理回数を間引く（スキップする）ようにして制御部の処理負荷を軽減している。
【００４５】
図８において、まず、現在の処理負荷を判断する（ｓ５１）。そして、この処理負荷と楽音波形の重要度に基づいて各発音スロットに対する制御処理をスキップするか否かを決定する。まず発音スロットを指し示すポインタＮに１をセットし（ｓ５２）、その発音スロットが発音中かを判断する（ｓ５３）。発音中でなければ、何も制御処理をする必要がないため直接ｓ６０に進む。
【００４６】
発音中であればその発音スロットが形成している楽音波形の重要度を計算する（ｓ５４）とともに、該発音スロットの処理スキップ回数を読み出す（ｓ５５）。そして、この重要度、処理スキップ回数および制御部３の処理負荷に基づいて今回この発音スロットの制御処理をスキップするか否かを決定する（ｓ５６）。スキップする場合にはスキップ回数をカウントするレジスタに１を加算して（ｓ５９）、ｓ６０に進む。スキップしない場合には、この発音スロットに対して全ての制御処理を実行し（ｓ５７）、スキップ回数をクリアして（ｓ５８）、ｓ６０に進む。以上の処理をＮが６４になるまで繰り返し実行する（ｓ６０，ｓ６１）。
【００４７】
このように、制御部３の処理負荷および各発音スロット毎が形成している楽音波形の重要度に基づいて制御処理を周期処理２回に１回や３回に１回にスキップすることにより、重要な楽音波形は毎回全てのパラメータが更新されて滑らかな楽音となり、そうでない楽音に関しては処理が軽減される。
【００４８】
なお、図８の処理動作に図７（Ａ）の周期管理動作を併用してもよい。
【図面の簡単な説明】
【００４９】
【図１】この発明の第１の実施形態である音源装置のブロック図
【図２】同音源装置の重要度関数を示す図
【図３】同音源装置の制御部の動作を示すフローチャート
【図４】この発明の第２の実施形態である音源装置の楽音形成データの記憶形態を示す図
【図５】同音源装置の制御部の動作を示すフローチャート
【図６】この発明の第３の実施形態である音源装置の制御処理の優先度テーブルを示す図
【図７】同音源装置の制御部の動作を示すフローチャート
【図８】この発明の第４の実施形態である音源装置の制御部の動作を示すフローチャート
【符号の説明】
【００５０】
１…音源装置、２…Ｉ／Ｏレジスタ、３…制御部、４…メモリ、５…発音スロット、６…ミキサ、７…エフェクタ、８…ミキサ
【図１】
2008003632.tif 000003
【図２】
2008003632.tif 000004
【図３】
2008003632.tif 000005
【図４】
2008003632.tif 000006
【図５】
2008003632.tif 000007
【図６】
2008003632.tif 000008
【図７】
2008003632.tif 000009
【図８】
2008003632.tif 000010