(57)【特許請求の範囲】
【請求項１】
発音すべき楽音の音高夫々に対応して設けられるとともに、夫々が発音すべき楽音の各音量に対応した周波数制御用のフィルタ係数を記憶する、複数のフィルタ係数テーブルからなる第１のフィルタ係数テーブル群と、
発音すべき楽音の音高夫々に対応して設けられるとともに、夫々が発音すべき楽音の各音量に対応した位相制御用のフィルタ係数を記憶する、複数のフィルタ係数テーブルからなる第２のフィルタ係数テーブル群と、
発音すべき楽音の音色を指定する音色指定手段と、
この音色指定手段にて指定された音色が特定音色か否かを判別する判別手段と、
この判別手段により特定音色と判別された場合に前記第２のフィルタ係数テーブル群を選択するとともに、当該特定音色でないと判別された場合は、前記第１のフィルタ係数テーブル群を選択するテーブル群選択手段と、
楽音の発音を指示するとともに、当該楽音の音高及び音量を指示する指示手段と、
この指示手段の発音指示に応答して、指定された音高、音量、及び前記音色指定手段にて指定された音色の楽音を発生する音源手段と、
前記テーブル群選択手段により選択されたフィルタ係数テーブル群の中から、前記指示手段にて指定された音高に対応するフィルタ係数テーブルを選択するとともに、当該選択されたフィルタ係数テーブルから前記指示手段にて指定された音量に対応するフィルタ係数を読み出す読み出し手段と、
この読み出し手段にて読み出されたフィルタ係数が周波数制御用である場合は、前記音源手段からの楽音に対して当該読み出されたフィルタ係数に応じた周波数補正のフィルタリングを行うとともに、前記読み出し手段にて読み出されたフィルタ係数が位相制御用である場合は、前記音源手段からの楽音に対して当該読み出されたフィルタ係数に応じた位相補正のフィルタリングを行うフィルタ手段と、
を具備することを特徴とする効果付加装置。
【請求項２】
発音すべき楽音の音高夫々に対応して設けられるとともに、夫々が発音すべき楽音の各音量に対応した周波数制御用のフィルタ係数を記憶する、複数のフィルタ係数テーブルからなる第１のフィルタ係数テーブル群と、発音すべき楽音の音高夫々に対応して設けられるとともに、夫々が発音すべき楽音の各音量に対応した位相制御用のフィルタ係数を記憶する、複数のフィルタ係数テーブルからなる第２のフィルタ係数テーブル群と、発音すべき楽音の音色を指定する音色指定手段と、楽音の発音を指示するとともに、当該楽音の音高及び音量を指示する指示手段と、この指示手段の発音指示に応答して、指定された音高、音量、及び前記音色指定手段にて指定された音色の楽音を発生する音源手段と、を有する装置として用いられるコンピュータに、
前記音色指定手段にて指定された音色が特定音色か否かを判別する判別ステップと、
特定音色と判別された場合に前記第２のフィルタ係数テーブル群を選択するとともに、当該特定音色でないと判別された場合は、前記第１のフィルタ係数テーブル群を選択するテーブル群選択ステップと、
前記選択されたフィルタ係数テーブル群の中から、前記指示手段にて指定された音高に対応するフィルタ係数テーブルを選択するとともに、当該選択されたフィルタ係数テーブルから前記指示手段にて指定された音量に対応するフィルタ係数を読み出す読み出しステップと、
この読み出されたフィルタ係数が周波数制御用である場合は、前記音源手段からの楽音に対して当該読み出されたフィルタ係数に応じた周波数補正のフィルタリングを行うとともに、前記読み出されたフィルタ係数が位相制御用である場合は、前記音源手段からの楽音に対して当該読み出されたフィルタ係数に応じた位相補正のフィルタリングを行うフィルタステップと、
を実行させる効果処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子楽器等に用いて好適な効果付加装置および効果処理プログラムに関する。
【背景技術】
【０００２】
電子楽器等の音源から供給される楽音波形に対して各種エフェクト（効果）を付加する効果付加装置が知られている。近年、この種の装置では、音源のマルチ・ティンバー化に伴い、音源側が複数同時発音する各音色の楽音波形について、複数種のエフェクトを共通に付加したり、あるいは音色毎に異なるエフェクトを付加し得るよう、高速に波形処理するＤＳＰ（デジタル・シグナル・プロセッサ）にて構成される場合が多い。ＤＳＰにて構成され、同時に付加し得るエフェクト種類が制限されずに、多種多様な効果態様を実現する効果付加装置については、例えば特許文献１に開示されている。
【０００３】
【特許文献１】特開平１１−２３１８７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、上記特許文献１に開示の装置は、同時に付加し得るエフェクト種類が制限されずに、多種多様な効果態様を発生楽音に付加できるものの、演奏情報に従って発生楽音の音色に厚みを与える効果、すなわち演奏情報に応じて音質変化させる効果を付加することができないという問題がある。
【０００５】
そこで本発明は、このような事情に鑑みてなされたもので、演奏情報に応じて音質変化させる効果を付加することができる効果付加装置および効果処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
請求項１に記載の発明は、発音すべき楽音の音高夫々に対応して設けられるとともに、夫々が発音すべき楽音の各音量に対応した周波数制御用のフィルタ係数を記憶する、複数のフィルタ係数テーブルからなる第１のフィルタ係数テーブル群と、
発音すべき楽音の音高夫々に対応して設けられるとともに、夫々が発音すべき楽音の各音量に対応した位相制御用のフィルタ係数を記憶する、複数のフィルタ係数テーブルからなる第２のフィルタ係数テーブル群と、
発音すべき楽音の音色を指定する音色指定手段と、
この音色指定手段にて指定された音色が特定音色か否かを判別する判別手段と、
この判別手段により特定音色と判別された場合に前記第２のフィルタ係数テーブル群を選択するとともに、当該特定音色でないと判別された場合は、前記第１のフィルタ係数テーブル群を選択するテーブル群選択手段と、
楽音の発音を指示するとともに、当該楽音の音高及び音量を指示する指示手段と、
この指示手段の発音指示に応答して、指定された音高、音量、及び前記音色指定手段にて指定された音色の楽音を発生する音源手段と、
前記テーブル群選択手段により選択されたフィルタ係数テーブル群の中から、前記指示手段にて指定された音高に対応するフィルタ係数テーブルを選択するとともに、当該選択されたフィルタ係数テーブルから前記指示手段にて指定された音量に対応するフィルタ係数を読み出す読み出し手段と、
この読み出し手段にて読み出されたフィルタ係数が周波数制御用である場合は、前記音源手段からの楽音に対して当該読み出されたフィルタ係数に応じた周波数補正のフィルタリングを行うとともに、前記読み出し手段にて読み出されたフィルタ係数が位相制御用である場合は、前記音源手段からの楽音に対して当該読み出されたフィルタ係数に応じた位相補正のフィルタリングを行うフィルタ手段と、
を具備することを特徴とする。
【０００７】
請求項２に記載の発明は、発音すべき楽音の音高夫々に対応して設けられるとともに、夫々が発音すべき楽音の各音量に対応した周波数制御用のフィルタ係数を記憶する、複数のフィルタ係数テーブルからなる第１のフィルタ係数テーブル群と、発音すべき楽音の音高夫々に対応して設けられるとともに、夫々が発音すべき楽音の各音量に対応した位相制御用のフィルタ係数を記憶する、複数のフィルタ係数テーブルからなる第２のフィルタ係数テーブル群と、発音すべき楽音の音色を指定する音色指定手段と、楽音の発音を指示するとともに、当該楽音の音高及び音量を指示する指示手段と、この指示手段の発音指示に応答して、指定された音高、音量、及び前記音色指定手段にて指定された音色の楽音を発生する音源手段と、を有する装置として用いられるコンピュータに、
前記音色指定手段にて指定された音色が特定音色か否かを判別する判別ステップと、
特定音色と判別された場合に前記第２のフィルタ係数テーブル群を選択するとともに、当該特定音色でないと判別された場合は、前記第１のフィルタ係数テーブル群を選択するテーブル群選択ステップと、
前記選択されたフィルタ係数テーブル群の中から、前記指示手段にて指定された音高に対応するフィルタ係数テーブルを選択するとともに、当該選択されたフィルタ係数テーブルから前記指示手段にて指定された音量に対応するフィルタ係数を読み出す読み出しステップと、
この読み出されたフィルタ係数が周波数制御用である場合は、前記音源手段からの楽音に対して当該読み出されたフィルタ係数に応じた周波数補正のフィルタリングを行うとともに、前記読み出されたフィルタ係数が位相制御用である場合は、前記音源手段からの楽音に対して当該読み出されたフィルタ係数に応じた位相補正のフィルタリングを行うフィルタステップと、
を実行させることを特徴とする。
【発明の効果】
【００１４】
本発明では、予め発音音高および発音音量を含む演奏情報に対応して記憶しておいたフィルタ係数の内、特定音色の楽音の発生を表す演奏情報に応じたフィルタ係数を読み出すと共に、特定音色の楽音の発生を表す演奏情報に応じて、少なくとも第１および第２の特定音色の楽音の同時発音を音源に指示する。そして、この指示に従って音源が同時発音する第１および第２の特定音色の楽音の内、第１の特定音色の楽音をドライ出力する一方、演奏情報に対応して読み出されるフィルタ係数に応じたフィルタリングにより位相補正された第２の特定音色の楽音を出力するので、位相補正されない第１の特定音色の楽音と位相補正された第２の特定音色の楽音とを加算すれば、発生楽音の音色に厚みを与える効果、つまり演奏情報に応じて音質変化させる効果を付加することができる。
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照して本発明の実施の形態について説明する。
Ａ．構成  
（１）全体構成  
図１は、本発明の実施の一形態による効果付加装置を備えた電子楽器の全体構成を示すブロック図である。この図において、鍵盤１０は、押離鍵操作（演奏操作）に応じたキーオン／キーオフイベントおよび鍵番号、ベロシティ等からなる演奏情報を発生する。スイッチ部１１は、コンソールパネル（不図示）に配設される各種スイッチから構成され、操作されたスイッチに対応したスイッチイベントを発生する。なお、ここで言う各種スイッチとは、パワーオンオフする電源スイッチや音色を選択する音色選択スイッチなどを指す。
【００１６】
表示部１２は、ＬＣＤパネルおよびドライバから構成され、後述するＣＰＵ１３から供給される表示制御信号に応じて各種の設定状態や動作状態を画面表示する。ＣＰＵ１３は、ＲＯＭ１４に格納される各種制御プログラムを実行し、例えば鍵盤１が発生する演奏情報に対応した楽音パラメータを発生して音源１７およびＤＳＰ１８に送出したり、スイッチ部２が発生するスイッチイベントに応じて楽器各部を制御する。
【００１７】
なお、ＣＰＵ１３が音源１７に供給する楽音パラメータとは、発音又は消音を指示するノートオン／オフコマンドや発生楽音の音色変更を指示する音色変更コマンドなどを含む。また、ＣＰＵ１３がＤＳＰ１８に供給する楽音パラメータとは、音源１７の発音チャンネルに対応するフィルタ係数を含む。本発明の要旨に係わるＣＰＵ１３の特徴的な処理動作については追って詳述する。
【００１８】
ＲＯＭ１４は、ＣＰＵ１３にロードされる各種制御プログラムを記憶する。ここで言う各種制御プログラムとは、後述するメインルーチンを含む。ＲＡＭ１５は、ＣＰＵ１３のワークエリアとして用いられ、各種レジスタ・フラグデータを一時記憶する。係数メモリ１６は、フィルタ係数を記憶する。ＣＰＵ１３の制御の下に係数メモリ１６から読み出されるフィルタ係数は、後述するＤＳＰ１８に供給される。
【００１９】
係数メモリ１６に格納されるフィルタ係数は、図２に図示するように、周波数制御用フィルタ係数ＦＣＦおよび位相制御用フィルタ係数ＰＣＦを備える。これらフィルタ係数ＦＣＦ、ＰＣＦは、ユーザの音色選択操作に応じて、いずれかがＣＰＵ１３により選択される。具体的には、ユーザが例えばアコースティックピアノの音色のように、演奏情報に応じて音質変化する音色（以下、特定音色と称す）を選択したときには、位相制御用フィルタ係数ＰＣＦが選択され、「特定音色」以外の音色を選択したときには周波数制御用フィルタ係数ＦＣＦが選択される。
【００２０】
周波数制御用フィルタ係数ＦＣＦは、複数のピッチ対応テーブルＴＦ（１）〜ＴＦ（Ｎ）を備える。これらピッチ対応テーブルＴＦ（１）〜ＴＦ（Ｎ）の内、発音音高（具体的には押鍵された鍵の鍵番号）に対応付けられたピッチ対応テーブルＴＦが選択される。発音音高に応じて選択されるピッチ対応テーブルＴＦは、複数のレベル対応フィルタ係数ＬＦＣＦ（１）〜ＬＦＣＦ（ｎ）を備える。これらレベル対応フィルタ係数ＬＦＣＦ（１）〜ＬＦＣＦ（ｎ）は、ノートオン時のベロシティに応じて選択される。ベロシティに応じて選択されるレベル対応フィルタ係数ＬＦＣＦは、図３に図示する通り、フィルタ係数ｂ０、ｂ１、ｂ２、ａ１およびａ２から構成される。これらフィルタ係数ｂ０、ｂ１、ｂ２、ａ１およびａ２が意図するところについては追って述べる。
【００２１】
一方、位相制御用フィルタ係数ＰＣＦについても上記周波数制御用フィルタ係数ＦＣＦと同様、図２に図示する通り、複数のピッチ対応テーブルＴＰ（１）〜ＴＰ（Ｎ）を備える。これらピッチ対応テーブルＴＰ（１）〜ＴＰ（Ｎ）の内、発音音高（具体的には押鍵された鍵の鍵番号）に対応付けられたピッチ対応テーブルＴＰが選択される。発音音高に応じて選択されるピッチ対応テーブルＴＰは、複数のレベル対応フィルタ係数ＬＰＣＦ（１）〜ＬＰＣＦ（ｎ）を備える。これらレベル対応フィルタ係数ＬＰＣＦ（１）〜ＬＰＣＦ（ｎ）は、ノートオン時のベロシティに応じて選択される。ベロシティに応じて選択されるレベル対応フィルタ係数ＬＰＣＦは、図３に図示する通り、フィルタ係数ｂ０、ｂ１およびｂ２から構成される。これらフィルタ係数ｂ０、ｂ１およびｂ２が意図するところについては追って述べる。
【００２２】
音源１７は、周知の波形メモリ読み出し方式によって構成され、時分割動作する複数の発音チャンネルを備える。音源１７は、各種音色の波形データを記憶しており、これらの内、ＣＰＵ１３から供給される楽音パラメータに応じた波形データを読み出して楽音波形を発生する。ＤＳＰ（デジタル・シグナル・プロセッサ）１８は、音源１７から供給される楽音波形にフィルタリングを施して効果付加する。ＤＳＰ１８の具体的な構成については追って述べる。サウンドシステム１９は、ＤＳＰ１８の各出力（発音チャンネル毎の出力）を混合した後、アナログ形式の楽音波形信号にＤ／Ａ変換してからレベル増幅させてスピーカから発音させる。
【００２３】
（２）ＤＳＰ１８の構成
次に、図４を参照してＤＳＰ１８の構成について説明する。なお、この図に示す構成は、ＤＳＰ１８において実行されるマイクロプログラム（アルゴリズム）にて具現するフィルタ機能をブロック図として表現したものである。図４に図示するように、ＤＳＰ１８は、音源１７の発音チャンネルに対応して時分割に動作する複数のフィルタ処理部１８−１〜１８−Ｎを備える。
【００２４】
これらフィルタ処理部１８−１〜１８−Ｎは、入力を１サンプル遅延して出力する遅延素子１２ａ〜１２ｄと、前述したフィルタ係数ｂ０〜ｂ２およびａ１〜ａ２がそれぞれ供給される係数乗算器１２ｅ〜１２ｉと、これら係数乗算器１２ｅ〜１２ｉの各出力を加算する加算器１２ｊとを備える周知の２次ＩＩＲ型デジタルフィルタから構成される。
【００２５】
上記構成によるフィルタ処理部１８−１〜１８−Ｎでは、前述した周波数制御用フィルタ係数ＦＣＦ（図３に図示したフィルタ係数ｂ０、ｂ１、ｂ２、ａ１およびａ２）が与えられた場合、次式（１）の伝達関数Ｈ（ｚ）を有するフィルタリングにより入力信号の周波数特性を制御する。
Ｈ（ｚ）＝ｂ０＋ｂ１＊Ｚ＾（−１）＋Ｚ＾（−２）／１＋ａ１＊Ｚ＾（−１）＋ａ２＊Ｚ＾（−２）  …（１）
【００２６】
一方、前述した位相制御用フィルタ係数ＰＣＦ（図３に図示したフィルタ係数ｂ０＝ａ２、ｂ１＝ａ１、ｂ２＝１）が与えられた場合、次式（２）の伝達関数Ｈａｐｆ（ｚ）を有するオールパスフィルタリングにより入力信号の位相特性を制御する。
Ｈａｐｆ（ｚ）＝ｂ０＋ｂ１＊Ｚ＾（−１）＋Ｚ＾（−２）／１＋ｂ１＊Ｚ＾（−１）＋ｂ０＊Ｚ＾（−２）  …（２）  なお、上記（１），（２）式における「＾」はべき乗を表す。
【００２７】
Ｂ．動作
次に、上記構成による実施の形態の動作を説明する。以下では、図５〜図１０を参照してＣＰＵ１３が実行するメインルーチンの動作を説明した後、図１１〜図１２を参照してＤＳＰ１８が実行するＤＳＰ処理の動作を説明する。
【００２８】
（１）メインルーチンの動作
電源スイッチ操作によりパワーオンされると、ＣＰＵ１３は図５に図示するメインルーチンを実行してステップＳＡ１に処理を進め、ＲＡＭ１５に格納される各種レジスタやフラグ類をリセットしたり初期値をセットするイニシャライズを行う。また、このステップＳＡ１では、音源１７に対して各種レジスタやフラグ類を初期化するよう指示する。そして、イニシャライズが完了すると、ＣＰＵ１３はステップＳＡ２に処理を進め、鍵盤１０の各鍵の状態を走査するためのサーチポインタｎをゼロリセットする。次いで、ステップＳＡ３では、音色選択スイッチ操作の有無を判断する。音色選択スイッチが操作されなければ、ここでの判断結果は「ＮＯ」になり、後述するステップＳＡ１２（図６参照）に処理を進める。
【００２９】
一方、音色選択スイッチを操作して音色選択すると、上記ステップＳＡ３の判断結果は「ＹＥＳ」になり、ステップＳＡ４に進む。ステップＳＡ４では、音色選択スイッチの操作により選択された音色の音色番号をレジスタＴＯＮＥにストアする。以下、レジスタＴＯＮＥの内容を音色番号ＴＯＮＥと称す。次いで、ステップＳＡ５では、選択された音色番号ＴＯＮＥが「特定音色」であるか否かを判断する。なお、この「特定音色」とは、前述したように、例えばアコースティックピアノの音色のように、演奏操作に応じて音質変化する音色を指す。そして、選択された音色番号ＴＯＮＥが「特定音色」でなければ、判断結果は「ＮＯ」になり、ステップＳＡ６に進み、位相フラグＰＦを「０」にセットする。位相フラグＰＦが意図するところについては後述する。
【００３０】
次いで、ステップＳＡ７では、係数メモリ１６に格納される周波数制御用フィルタ係数ＦＣＦ（図２参照）を構成するテーブル群（ピッチ対応テーブルＴＦ（１）〜ＴＦ（Ｎ））を選択した後、後述のステップＳＡ１０に処理を進める。これに対し、選択された音色番号ＴＯＮＥが「特定音色」ならば、上記ステップＳＡ５の判断結果は「ＹＥＳ」になり、ステップＳＡ８に進み、位相フラグＰＦを「１」にセットする。そして、ステップＳＡ９に進み、係数メモリ１６に格納される位相制御用フィルタ係数ＰＣＦ（図２参照）を構成するテーブル群（ピッチ対応テーブルＴＰ（１）〜ＴＰ（Ｎ））を選択する。
【００３１】
この後、ステップＳＡ１０〜ＳＡ１１に進み、音色番号ＴＯＮＥに基づき音色変更コマンドを作成して音源１７へ送付する。これにより、音源１７では、音色変更コマンドで指定される音色番号ＴＯＮＥの波形データに基づき楽音波形を形成する準備が整う。続いて、図６に図示するステップＳＡ１２では、鍵走査用のサーチポインタｎで指定されるレジスタＫＥＹ（ｎ）の状態を判断する。レジスタＫＥＹ（ｎ）には、鍵走査用のサーチポインタｎで指定される鍵の状態、すなわち鍵変化無し、キーオンイベントおよびキーオフイベントのいずれかがストアされる。以下では、レジスタＫＥＹ（ｎ）の状態が「鍵変化無し」、「キーオンイベント」および「キーオフイベント」の各場合の動作を説明を進める。
【００３２】
ａ．鍵変化無しの動作  
レジスタＫＥＹ（ｎ）の状態が鍵変化無しであると、ステップＳＡ１３に進み、鍵走査用のサーチポインタｎを歩進させて前述のステップＳＡ３（図５参照）に処理を戻す。
【００３３】
ｂ．キーオンイベント時の動作  
レジスタＫＥＹ（ｎ）の状態がキーオンイベントであると、ステップＳＡ１４に進み、サーチポインタｎの値を、押鍵操作された鍵の鍵番号としてレジスタＮＯＴＥにストアする。以後、レジスタＮＯＴＥの内容を鍵番号ＮＯＴＥと称す。続いて、ステップＳＡ１５では、押鍵操作に応じて発生したベロシティをレジスタＶＥＬにストアする。以後、レジスタＶＥＬの内容をベロシティＶＥＬと称す。次いで、ステップＳＡ１６では、レジスタＣＨをゼロリセットする。以後、レジスタＣＨの内容を発音チャンネル番号ＣＨと称す。そして、ステップＳＡ１７では、位相フラグＰＦが「０」であるか否かを判断する。以下、位相フラグＰＦが「０」の場合と、「１」の場合とに分けて動作説明を進める。
【００３４】
＜位相フラグＰＦが「０」の場合＞  
「特定音色」以外の音色が選択されて位相フラグＰＦが「０」にセットされていると、ステップＳＡ１７の判断結果は「ＹＥＳ」になり、ステップＳＡ１８に進む。ステップＳＡ１８〜ＳＡ２０では、最大値Ｍａｘまで発音チャンネル番号ＣＨを歩進させながら、空きチャンネルの発音チャンネル番号ＣＨを探し出す空きチャンネルサーチを実行する。すなわち、ステップＳＡ１８では、発音チャンネル番号ＣＨに対応するオンフラグＯＮ（ＣＨ）が「０」、すなわち発音チャンネル番号ＣＨが空きチャンネルであるか否かを判断する。空きチャンネルでなければ、判断結果は「ＮＯ」になり、ステップＳＡ１９に進み、発音チャンネル番号ＣＨを歩進させる。
【００３５】
そして、ステップＳＡ２０では、歩進された発音チャンネル番号ＣＨが最大値Ｍａｘを超えたか否か、つまり空きチャンネルサーチが一巡し終えたかどうかを判断する。空きチャンネルサーチが一巡し終えていなければ、判断結果は「ＮＯ」になり、上述のステップＳＡ１８に処理を戻す。こうした空きチャンネルサーチにより空きチャンネルが見つかれば、ステップＳＡ１８の判断結果は「ＹＥＳ」になり、ステップＳＡ２１に進む。これに対し、空きチャンネルサーチが一巡し終えてもなお、空きチャンネルが見つからない場合には、上記ステップＳＡ２０の判断結果が「ＹＥＳ」になり、前述のステップＳＡ３（図５参照）に処理を戻す。
【００３６】
さて、空きチャンネルが見つかり、ステップＳＡ２１に進むと、その空きチャンネルの発音チャンネル番号ＣＨに対応するオンフラグＯＮ（ＣＨ）に「１」をセットする。続いて、ステップＳＡ２２では、発音チャンネル番号ＣＨで指定されるノートレジスタＮＯＴＥに、押鍵された鍵の鍵番号ＮＯＴＥをストアする。次いで、ステップＳＡ２３では、前述したステップＳＡ７において選択した周波数制御用フィルタ係数ＦＣＦ（図２参照）のテーブル群（ピッチ対応テーブルＴＦ（１）〜ＴＦ（Ｎ））の内から、鍵番号ＮＯＴＥに対応するピッチ対応テーブルＴＦ（ＮＯＴＥ）を選択する。
【００３７】
そして、ステップＳＡ２４では、上記ステップＳＡ２３において選択されたピッチ対応テーブルＴＦ（ＮＯＴＥ）からベロシティＶＥＬに応じたレベル対応フィルタ係数ＬＦＣＦ（ＶＥＬ）を読み出す。なお、ピッチ対応テーブルＴＦ（ＮＯＴＥ）からベロシティＶＥＬに応じて読み出されるレベル対応フィルタ係数ＬＦＣＦ（ＶＥＬ）は、図３に図示したように、フィルタ係数ｂ０、ｂ１、ｂ２、ａ１およびａ２からなる。
【００３８】
次いで、ステップＳＡ２５〜ＳＡ２６では、空きチャンネルを表す発音チャンネル番号ＣＨと、発音音高を表す鍵番号ＮＯＴＥと、発音音量を表すベロシティＶＥＬとに基づきノートオンコマンドを作成して音源１７に送付する。これにより、音源１７は、鍵番号ＮＯＴＥで指定される音高で「特定音色」以外の音色の楽音波形を、ベロシティＶＥＬで指定される音量レベルで発生させて発音チャンネル番号ＣＨから出力する。
【００３９】
次に、ステップＳＡ２７では、空きチャンネルを表す発音チャンネル番号ＣＨおよびレベル対応フィルタ係数ＬＦＣＦ（ＶＥＬ）をＤＳＰ１８に送付する。これにより、ＤＳＰ１８は、レベル対応フィルタ係数ＬＦＣＦ（ＶＥＬ）として与えられたフィルタ係数ｂ０、ｂ１、ｂ２、ａ１およびａ２で決定される伝達関数Ｈ（ｚ）を有するフィルタリングにより音源１７から入力される楽音波形の周波数特性を制御する。続いて、ステップＳＡ２８では、鍵走査用のサーチポインタｎを歩進させて前述のステップＳＡ３（図５参照）に処理を戻す。
【００４０】
このように、位相フラグＰＦが「０」の場合、すなわち「特定音色」以外の音色が選択された場合に、鍵番号ＮＯＴＥの鍵が押鍵されると、発音割当てされた発音チャンネル番号ＣＨ、鍵番号ＮＯＴＥおよびベロシティＶＥＬを含むノートオンコマンドに応じて音源１７から「特定音色」以外の音色の楽音波形を発生させると共に、ＤＳＰ１８に発音チャンネル番号ＣＨおよびレベル対応フィルタ係数ＬＦＣＦ（ＶＥＬ）を与え、レベル対応フィルタ係数ＬＦＣＦ（ＶＥＬ）を構成するフィルタ係数ｂ０、ｂ１、ｂ２、ａ１およびａ２により決定される伝達関数Ｈ（ｚ）を有するフィルタリングを、音源１７から入力される楽音波形に施す。この結果、「特定音色」以外の音色の楽音波形の周波数特性を制御して効果付加するようになっている。
【００４１】
＜位相フラグＰＦが「１」の場合＞
さて一方、位相フラグＰＦが「１」、つまり「特定音色」が選択された場合には、上述したステップＳＡ１７の判断結果が「ＹＥＳ」になり、ＣＰＵ１３は図７に図示するステップＳＡ２９に処理を進める。ステップＳＡ２９〜ＳＡ３１では、最大値Ｍａｘまで発音チャンネル番号ＣＨを２個一組として歩進させながら、２個一組の空きチャンネルを探し出す空きチャンネルサーチを実行する。すなわち、ステップＳＡ２９では、発音チャンネル番号ＣＨに対応するオンフラグＯＮ（ＣＨ）が「０」、すなわち発音チャンネル番号ＣＨが空きチャンネルであるか否かを判断する。空きチャンネルでなければ、判断結果は「ＮＯ」になり、ステップＳＡ３０に進み、発音チャンネル番号ＣＨを２つ歩進させる。つまり、発音チャンネル番号ＣＨを一組分進める。
【００４２】
そして、ステップＳＡ３１では、歩進された発音チャンネル番号ＣＨが最大値Ｍａｘを超えたか否か、つまり空きチャンネルサーチが一巡し終えたかどうかを判断する。空きチャンネルサーチが一巡し終えていなければ、判断結果は「ＮＯ」になり、上記ステップＳＡ２９に処理を戻す。こうした空きチャンネルサーチにより空きチャンネルが見つかれば、ステップＳＡ２９の判断結果は「ＹＥＳ」になり、ステップＳＡ３２に進む。これに対し、空きチャンネルサーチが一巡し終えてもなお、空きチャンネルが見つからない場合には、上記ステップＳＡ３１の判断結果が「ＹＥＳ」になり、前述のステップＳＡ３（図５参照）に処理を戻す。
【００４３】
ステップＳＡ３２〜ＳＡ３３では、探し出した２個一組の空きチャンネルの発音チャンネル番号ＣＨ、ＣＨ＋１に各々対応するオンフラグＯＮ（ＣＨ）、ＯＮ（ＣＨ＋１）にそれぞれ「１」をセットする。次いで、ステップＳＡ３４では、発音チャンネル番号ＣＨ、ＣＨ＋１でそれぞれ指定されるノートレジスタＮＯＴＥ（ＣＨ）、ＮＯＴＥ（ＣＨ＋１）に、押鍵された鍵の鍵番号ＮＯＴＥをストアする。そして、ステップＳＡ３５では、前述したステップＳＡ９（図５参照）において選択した位相制御用フィルタ係数ＰＣＦ（図２参照）のテーブル群（ピッチ対応テーブルＴＰ（１）〜ＴＰ（Ｎ））の内から、鍵番号ＮＯＴＥに対応するピッチ対応テーブルＴＰ（ＮＯＴＥ）を選択する。
【００４４】
この後、図８に図示するステップＳＡ３６に進み、上記ステップＳＡ３５（図７参照）において選択されたピッチ対応テーブルＴＰ（ＮＯＴＥ）からベロシティＶＥＬに応じたレベル対応フィルタ係数ＬＰＣＦ（ＶＥＬ）を読み出す。なお、ピッチ対応テーブルＴＰ（ＮＯＴＥ）からベロシティＶＥＬに応じて読み出されるレベル対応フィルタ係数ＬＰＣＦ（ＶＥＬ）は、図３に図示したように、フィルタ係数ｂ０（＝ａ２）、ｂ１（＝ａ１）およびｂ２（＝１）からなる。
【００４５】
次いで、ステップＳＡ３７〜ＳＡ３８では、２個一組の空きチャンネルの一方を表す発音チャンネル番号ＣＨと、発音音高を表す鍵番号ＮＯＴＥと、発音音量を表すベロシティＶＥＬとに基づきノートオンコマンドを作成して音源１７に送付する。続いて、ステップＳＡ３９〜ＳＡ４０では、２個一組の空きチャンネルの他方を表す発音チャンネル番号ＣＨ＋１と、発音音高を表す鍵番号ＮＯＴＥと、発音音量を表すベロシティＶＥＬとに基づきノートオンコマンドを作成して音源１７に送付する。これにより、音源１７は、鍵番号ＮＯＴＥで指定される音高で「特定音色」の楽音波形を、ベロシティＶＥＬで指定される音量レベルで発生させて発音チャンネル番号ＣＨ、ＣＨ＋１からそれぞれ出力する。
【００４６】
次に、ステップＳＡ４１では、空きチャンネルを表す発音チャンネル番号ＣＨおよびスルー係数をＤＳＰ１８に送付する。なお、ここで言うスルー係数とは、２次ＩＩＲ型デジタルフィルタ（図４参照）における係数ｂ０だけを「１」、他の係数ｂ１，ｂ２，ａ１，ａ２を「０」として入力信号をそのまま出力させる、所謂ドライ出力を発生させる係数を指す。
【００４７】
続いて、ステップＳＡ４２では、空きチャンネルを表す発音チャンネル番号ＣＨ＋１およびオールパスフィルタ係数をＤＳＰ１８に送付する。オールパスフィルタ係数は、上記ステップＳＡ３６においてピッチ対応テーブルＴＰ（ＮＯＴＥ）からベロシティＶＥＬに応じて読み出されるレベル対応フィルタ係数ＬＰＣＦ（ＶＥＬ）、すなわちフィルタ係数ｂ０（＝ａ２）、ｂ１（＝ａ１）およびｂ２（＝１）である。この後、ステップＳＡ４３に進み、鍵走査用のサーチポインタｎを歩進させて前述のステップＳＡ３（図５参照）に処理を戻す。
【００４８】
このように、位相フラグＰＦが「１」の場合、すなわち「特定音色」が選択された場合に鍵番号ＮＯＴＥの鍵が押鍵されると、発音割当てされた発音チャンネル番号ＣＨ，ＣＨ＋１、鍵番号ＮＯＴＥおよびベロシティＶＥＬを含むノートオンコマンドに応じて音源１７から「特定音色」の楽音波形を２音同時発生させる。
【００４９】
また、ＤＳＰ１８に対しては、発音チャンネル番号ＣＨおよびスルー係数を与え、発音チャンネル番号ＣＨの「特定音色」の楽音波形をドライ出力させる一方、発音チャンネル番号ＣＨ＋１およびレベル対応フィルタ係数ＬＰＣＦ（ＶＥＬ）を与え、このレベル対応フィルタ係数ＬＰＣＦ（ＶＥＬ）を構成するフィルタ係数ｂ０（＝ａ２）、ｂ１（＝ａ１）およびｂ２（＝１）により決定される伝達関数Ｈａｐｆ（ｚ）を有するオールパスフィルタリングを、発音チャンネル番号ＣＨ＋１の「特定音色」の音色の楽音波形に施す。この結果、ＤＳＰ１８は、「特定音色」の楽音波形をドライ出力すると同時に、オールパスフィルタリングにより位相遅延された「特定音色」の楽音波形を出力する。
【００５０】
ｃ．キーオフイベント時の動作  
レジスタＫＥＹ（ｎ）の状態がキーオフイベントであると、ステップＳＡ１２（図６参照）を介して図９に図示するステップＳＡ４４に進み、サーチポインタｎの値を、離鍵操作された鍵の鍵番号ＮＯＴＥとしてストアする。次いで、ステップＳＡ４５では、発音チャンネル番号ＣＨをゼロリセットする。続いて、ステップＳＡ４６では、位相フラグＰＦが「０」であるか否かを判断する。以下、位相フラグＰＦが「０」の場合と、「１」の場合とに分けて動作説明を進める。
【００５１】
＜位相フラグＰＦが「０」の場合＞  
「特定音色」以外の音色が選択されて位相フラグＰＦが「０」にセットされていると、ステップＳＡ４６の判断結果は「ＹＥＳ」になり、ステップＳＡ４７に進む。ステップＳＡ４７では、離鍵された鍵の鍵番号ＮＯＴＥと発音チャンネル番号ＣＨで指定されるノートレジスタＮＯＴＥ（ＣＨ）の鍵番号ＮＯＴＥとが同一であるか、つまり消音すべき発音チャンネル番号ＣＨであるかどうかを判断する。離鍵された鍵の鍵番号ＮＯＴＥとノートレジスタＮＯＴＥ（ＣＨ）の鍵番号ＮＯＴＥとが同一でなく、消音すべき発音チャンネル番号ＣＨでなければ、判断結果は「ＮＯ」になり、ステップＳＡ４８に進み、発音チャンネル番号ＣＨを歩進させて上記ステップＳＡ４７に処理を戻す。
【００５２】
そして、歩進された発音チャンネル番号ＣＨで指定されるノートレジスタＮＯＴＥ（ＣＨ）の鍵番号ＮＯＴＥと離鍵された鍵の鍵番号ＮＯＴＥとが同一となり、消音すべき発音チャンネル番号ＣＨが見つかると、ステップＳＡ４７の判断結果が「ＹＥＳ」となり、ステップＳＡ４９に進む。ステップＳＡ４９では、消音すべき発音チャンネル番号ＣＨに対応するオンフラグＯＮ（ＣＨ）をゼロリセットする。
【００５３】
次いで、ステップＳＡ５０〜ＳＡ５１では、消音すべき発音チャンネル番号ＣＨと、離鍵された鍵の鍵番号ＮＯＴＥとに基づきノートオフコマンドを作成して音源１７に送付する。続いて、ステップＳＡ５２では、鍵走査用のサーチポインタｎを歩進させて前述のステップＳＡ３（図５参照）に処理を戻す。これにより、音源１７では、鍵番号ＮＯＴＥの音高で発音中の「特定音色」以外の音色の楽音波形を消音する。
【００５４】
＜位相フラグＰＦが「１」の場合＞  
一方、「特定音色」が選択されて位相フラグＰＦが「１」であると、上述したステップＳＡ４６（図９参照）の判断結果が「ＹＥＳ」になり、ＣＰＵ１３は図１０に図示するステップＳＡ５３に処理を進める。ステップＳＡ５３では、離鍵された鍵の鍵番号ＮＯＴＥと発音チャンネル番号ＣＨで指定されるノートレジスタＮＯＴＥ（ＣＨ）の鍵番号ＮＯＴＥとが同一であるか、つまり消音すべき発音チャンネル番号ＣＨであるかどうかを判断する。離鍵された鍵の鍵番号ＮＯＴＥとノートレジスタＮＯＴＥ（ＣＨ）の鍵番号ＮＯＴＥとが同一でなく、消音すべき発音チャンネル番号ＣＨでなければ、判断結果は「ＮＯ」になり、ステップＳＡ５４に進み、発音チャンネル番号ＣＨを歩進させて上記ステップＳＡ５３に処理を戻す。
【００５５】
そして、歩進された発音チャンネル番号ＣＨで指定されるノートレジスタＮＯＴＥ（ＣＨ）の鍵番号ＮＯＴＥと離鍵された鍵の鍵番号ＮＯＴＥとが同一となり、消音すべき発音チャンネル番号ＣＨが見つかると、ステップＳＡ５３の判断結果が「ＹＥＳ」となり、ステップＳＡ５５に進む。ステップＳＡ５５〜ＳＡ５６では、消音すべき発音チャンネル番号ＣＨ，ＣＨ＋１に各々対応するオンフラグＯＮ（ＣＨ），ＯＮ（ＣＨ＋１）をそれぞれゼロリセットする。
【００５６】
次いで、ステップＳＡ５７〜ＳＡ５８では、消音すべき発音チャンネル番号ＣＨと、離鍵された鍵の鍵番号ＮＯＴＥとに基づきノートオフコマンドを作成して音源１７に送付し、続くステップＳＡ５９〜ＳＡ６０では、消音すべき発音チャンネル番号ＣＨ＋１と、離鍵された鍵の鍵番号ＮＯＴＥとに基づきノートオフコマンドを作成して音源１７に送付する。この後、ステップＳＡ６１に進み、鍵走査用のサーチポインタｎを歩進させて前述のステップＳＡ３（図５参照）に処理を戻す。これにより、音源１７では、発音チャンネル番号ＣＨ，ＣＨ＋１を占有して２音同時発音させていた「特定音色」の楽音波形を消音する。
【００５７】
（２）ＤＳＰ処理の動作  
次に、図１１〜図１２を参照してＤＳＰ１８が実行するＤＳＰ処理の動作を説明する。電源投入に応じて、ＤＳＰ１８は図１１に図示するＤＳＰ処理を実行してステップＳＢ１に処理を進め、ＣＰＵ１３からの指示に応じて内部メモリ（不図示）を初期化するイニシャライズを行う。イニシャライズが完了すると、ＤＳＰ１８はステップＳＢ２に処理を進め、チャンネルポインタｎをゼロリセットする。チャンネルポインタｎは、ＤＳＰ１８が備える受信チャンネルを指定する。受信チャンネルとは、図４に図示したフィルタ処理部１８−１〜１８−Ｎに相当する。受信チャンネルは、ＣＰＵ１３から供給されるデータに含まれる発音チャンネル番号ＣＨに対応する。
【００５８】
そして、ステップＳＢ３では、チャンネルポインタｎで指定される受信チャンネルのデータをＣＰＵ１３から受信したか否かを判断する。ＣＰＵ１３から受信するデータは、発音チャンネル番号ＣＨおよびフィルタ係数（又はスルー係数）を含む。ＣＰＵ１３からデータを受信していなければ、判断結果は「ＮＯ」になり、後述のステップＳＢ５に処理を進める。これに対し、ＣＰＵ１３からデータを受信すると、上記ステップＳＢ３の判断結果は「ＹＥＳ」になり、ステップＳＢ４に進む。ステップＳＢ４では、チャンネルポインタｎで指定される受信チャンネルのフィルタ係数（又はスルー係数）を、内部レジスタ（不図示）にストアする。
【００５９】
次いで、ステップＳＢ５ではｎチャンネル処理を実行する。ｎチャンネル処理が実行されると、ＤＳＰ１８は図１２に図示するステップＳＣ１に処理を進め、チャンネルポインタｎで指定される受信チャンネルのフィルタ係数（又はスルー係数）を内部レジスタから読み出す。続いて、ステップＳＣ２では、内部レジスタから読み出した係数がフィルタ係数であるか否かを判断する。フィルタ係数ならば、判断結果は「ＹＥＳ」になり、ステップＳＣ３に進む。ステップＳＣ３では、チャンネルポインタｎで指定される受信チャンネルｎのフィルタ処理部１８−ｎに、内部レジスタから読み出したフィルタ係数を供給してフィルタリング処理を実行させた後、本処理を終えて図１１に図示するステップＳＢ６に進む。
【００６０】
一方、内部レジスタから読み出した係数がスルー係数ならば、上記ステップＳＣ２の判断結果が「ＮＯ」になり、ステップＳＣ４に進む。ステップＳＣ４では、チャンネルポインタｎで指定される受信チャンネルｎのフィルタ処理部１８−ｎに、内部レジスタから読み出したスルー係数を供給してスルー処理を実行させた後、本処理を終えて図１１に図示するステップＳＢ６に進む。なお、ここで言うスルー処理とは、音源１１から供給される楽音波形をドライ出力することを指す。
【００６１】
こうしたｎチャンネル処理が完了すると、ＤＳＰ１８は図１１に図示するステップＳＢ６に進み、チャンネルポインタｎをインクリメントして歩進させる。次いで、ステップＳＢ７では、歩進されたチャンネルポインタｎが最大値Ｍａｘを超えたか否か、つまりＤＳＰ１８が備える受信チャンネルの全てについて処理を一巡し終えたかどうかを判断する。処理が一巡し終えていなければ、判断結果は「ＮＯ」になり、上述したステップＳＢ３に処理を戻す。
【００６２】
以後、ＤＳＰ１８が備える受信チャンネルの全てについて処理を一巡し終えるまで上記ステップＳＢ３〜ＳＢ７を繰り返す。そして、歩進されたチャンネルポインタｎが最大値Ｍａｘを超え、受信チャンネルの全てについて処理を一巡し終えると、ステップＳＢ７の判断結果が「ＹＥＳ」になり、上述のステップＳＢ２に処理を戻す。
【００６３】
以上のように、本実施の形態では、発生すべき楽音の音色として「特定音色」を選択して演奏操作（押鍵操作）を行うと、少なくとも２つの発音チャンネル番号ＣＨ，ＣＨ＋１に発音を割当てて「特定音色」の楽音波形を２音同時発音させ、この２音同時発音される「特定音色」の楽音波形の一方についてはＤＳＰ１８からドライ出力（スルー出力）させ、他方については、押鍵された鍵の鍵番号ＮＯＴＥとベロシティＶＥＬとに応じて定まるレベル対応フィルタ係数ＬＰＣＦ（ＶＥＬ）に従ってＤＳＰ１８がオールパスフィルタリングを施して位相遅延出力する。したがって、位相遅延出力される「特定音色」の楽音波形とドライ出力される「特定音色」の楽音波形とを加算すれば、発生楽音の音色に厚みを与える効果、つまり演奏情報に応じて音質変化させる効果を付加し得るようになる。
【００６４】
なお、上述した実施の形態では、「特定音色」を選択して押鍵操作した場合、音源１７に２つの発音チャンネル番号ＣＨ，ＣＨ＋１に発音割当てを指示したが、これに限らず、発音チャンネル数に余裕があれば、２つ以上の発音チャンネルに発音割当てして「特定音色」の楽音波形を複音同時発音させる態様としても構わない。そうした場合、ＤＳＰ１８は、複音同時発音させた楽音波形の内の１つをドライ出力させ、残りの楽音波形については、例えば演奏情報に応じてそれぞれ位相遅延を異ならせる複数のフィルタ係数を発生させ、これらフィルタ係数に応じたオールパスフィルタリングにより複数の「特定音色」の楽音波形の位相遅延を異ならせれば、これらを加算して得る楽音出力に、より一層厚みを与えることができる。
【００６５】
また、本実施の形態では、音色選択操作により選択される音色番号ＴＯＮＥ、演奏操作に応じて発生する演奏情報（鍵番号ＮＯＴＥおよびベロシティＶＥＬ）に従って係数メモリ１６から読み出すフィルタ係数を指定する態様としたが、これに限らず、音色番号ＴＯＮＥ、鍵番号ＮＯＴＥおよびベロシティＶＥＬを含むＭＩＤＩデータに従って係数メモリ１６から読み出すフィルタ係数を指定する態様とすることも勿論可能であることは言うまでもない。
【図面の簡単な説明】
【００６６】
【図１】本発明による実施の一形態の全体構成を示すブロック図である。
【図２】係数メモリ１６のデータ構成を示す図である。
【図３】係数メモリ１６に格納されるレベル対応フィルタ係数ＬＦＣＦおよびレベル対魚フィルタ係数ＬＰＣＦの構成を示す図である。
【図４】ＤＳＰ１８の機能構成を示すブロック図である。
【図５】メインルーチンの動作を示すフローチャートである。
【図６】メインルーチンの動作を示すフローチャートである。
【図７】メインルーチンの動作を示すフローチャートである。
【図８】メインルーチンの動作を示すフローチャートである。
【図９】メインルーチンの動作を示すフローチャートである。
【図１０】メインルーチンの動作を示すフローチャートである。
【図１１】ＤＳＰ処理の動作を示すフローチャートである。
【図１２】ＤＳＰ処理の動作を示すフローチャートである。
【符号の説明】
【００６７】
１０  鍵盤
１１  スイッチ部
１２  表示部
１３  ＣＰＵ
１４  ＲＯＭ
１５  ＲＡＭ
１６  係数メモリ
１７  音源
１８  ＤＳＰ
１９  サウンドシステム
【図１】
0004742248.tif 000002
【図２】
0004742248.tif 000003
【図３】
0004742248.tif 000004
【図４】
0004742248.tif 000005
【図５】
0004742248.tif 000006
【図６】
0004742248.tif 000007
【図７】
0004742248.tif 000008
【図８】
0004742248.tif 000009
【図９】
0004742248.tif 000010
【図１０】
0004742248.tif 000011
【図１１】
0004742248.tif 000012
【図１２】
0004742248.tif 000013