(57)【要約】【課題】演算に供される係数を決定するための特別な回路を要することなく、その係数の多様な変化を実現する。【解決手段】係数決定部６は、固定小数点型のビット列として表された基礎係数Ｃｆを順次に更新する。セレクタ３は、係数決定部６によって特定された基礎係数Ｃｆのビット列の一部を仮数部Ｙとする一方、他の一部を指数部Ｅとし、仮数部Ｙを変換して得られる演算用係数Ｃｘと指数部Ｅとを出力する。乗算部４は、セレクタ３から出力された演算用係数Ｃｘと処理対象たるサンプルデータＸとを乗算し、これにより得られた乗算データＸｔを出力する。シフタ５は、乗算部４から出力された乗算データＸｔに対し、セレクタ３から出力された指数部Ｅが示す数値に応じたビットシフトを施して出力する。【選択図】      図２
2005010597.tif 000002
【特許請求の範囲】
【請求項１】
固定小数点型のビット列として表された基礎係数を順次に特定する特定手段と、
前記特定手段によって特定された基礎係数のビット列の一部を仮数部とする一方、他の一部を指数部とし、前記仮数部を変換して得られる演算用係数と前記指数部とを出力する変換手段と、
前記変換手段から出力された演算用係数と処理対象たるサンプルデータとを乗算し、これにより得られた乗算データを出力する乗算手段と、
前記乗算手段から出力された乗算データに対し、前記変換手段から出力された指数部が示す数値に応じたビットシフトを施して出力するシフト手段と
を具備するデータ処理装置。
【請求項２】
第１のモードおよび第２のモードのいずれかを指定する制御手段を具備し、
前記変換手段は、前記制御手段によって前記第１のモードが指定されている場合に、前記特定手段によって特定された基礎係数をそのまま前記演算用係数として出力する一方、前記制御手段によって前記第２のモードが指定されている場合に、前記仮数部を変換して得られる演算用係数と前記指数部とを出力し、
前記シフト手段は、前記制御手段によって前記第１のモードが指定されている場合に、前記乗算データをそのまま出力する一方、前記制御手段によって前記第２のモードが指定されている場合に、前記乗算データに対して前記ビットシフトを施して出力する
請求項１に記載のデータ処理装置。
【請求項３】
前記基礎係数の初期値および目標値と当該初期値から目標値に変化するまでの補間回数とを取得する取得手段を具備し、
前記特定手段は、前記基礎係数が前記初期値から前記補間回数に応じた回数の更新を経て前記目標値に至るように、前記基礎係数を順次に更新する
請求項１または２に記載のデータ処理装置。
【請求項４】
前記特定手段は、複数の基礎係数を特定し、
前記変換手段は、前記複数の基礎係数の各々について前記演算用係数および前記指数部を出力し、
前記乗算手段は、処理対象たる複数のサンプルデータの各々について、前記複数の基礎係数から得られた演算用係数のいずれかを用いた乗算を行なうとともに、各サンプルデータについて得られた乗算データを出力し、
前記シフト手段は、前記乗算手段から出力された複数の乗算データの各々について、前記変換手段から出力された指数部が示す数値に応じたビットシフトを施し、複数のシフトデータを加算する累積手段に対して、前記ビットシフトにより得られたシフトデータを出力する
請求項１に記載のデータ処理装置。
【請求項５】
前記複数の基礎係数の初期値および目標値と当該初期値から目標値に変化するまでの補間回数とを取得する取得手段を具備し、
前記特定手段は、前記複数の基礎係数の各々が、当該基礎係数について前記取得手段が取得した初期値から補間回数に応じた回数の更新を経て目標値に至るように、当該基礎係数を順次に更新する
請求項４に記載のデータ処理装置。
【請求項６】
コンピュータに、
固定小数点型のビット列として表された基礎係数を特定する特定処理と、
前記特定処理によって特定された基礎係数のビット列の一部を仮数部とする一方、他の一部を指数部とし、前記仮数部を変換して得られる演算用係数と前記指数部とを出力する変換処理と、
前記変換処理によって出力された演算用係数と処理対象たるサンプルデータとを乗算し、これにより得られた乗算データを出力する乗算処理と、
前記乗算処理によって出力された乗算データに対し、前記変換処理によって出力された指数部が示す数値に応じたビットシフトを施して出力するシフト処理と
を実行させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、楽音を表すデータなどのデジタルデータに対して各種の処理を施す技術に関し、特に、デジタルデータに乗ぜられる係数の値を順次に変更するための技術に関する。
【０００２】
【従来の技術】
音を表すデジタルデータ（以下「サンプルデータ」という）に対してエコーやリバーブといった各種の音楽的な効果を付与する装置（例えばＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ））が普及している。この種の装置において実行される典型的な処理のひとつとして、サンプルデータと特定の係数（以下「演算用係数Ｃｘ」という）とを乗算する処理がある。この乗算に際して演算用係数Ｃｘの値を段階的に増加または減少させれば、楽音の音量を段階的に増加させるフェードインや音量を段階的に減少させるフェードアウトなどの効果が得られる（例えば特許文献１参照）。
【０００３】
演算用係数Ｃｘを初期値Ｃｓｔａｒｔから目標値ＣｅｎｄまでＮ段階にわたって徐々に変化させる場合、各時点における演算用係数Ｃｘの値は以下のように算定される。
2005010597.tif 000003
この方法によれば、例えば「０」から「１」まで「０．１」ずつ増加するように（すなわち０→０．１→０．２→０．３→…→０．９→１といった具合に）、演算用係数Ｃｘの値を段階的に変化させることができる。
【０００４】
【特許文献１】
特開平７−１２２９７３号公報（段落００２１、段落００２２、および第１図）
【０００５】
【発明が解決しようとする課題】
しかしながら、この方法によって演算用係数Ｃｘを変化させた場合には、各段階ごとの演算用係数Ｃｘの変化量Ｃａｄｄは一定（Ｃａｄｄ＝（Ｃｅｎｄ−Ｃｓｔａｒｔ）／Ｎ）となる。このため、この演算用係数ＣｘとサンプルデータＸとの乗算結果に基づいて発せられる音が聴感上において単調になってしまうという問題があった。この問題を解消するために、演算用係数Ｃｘを初期値から目標値に向かって指数関数的に変化させる構成も考えられる。しかしながら、この構成のもとでは、演算用係数Ｃｘの変化量Ｃａｄｄを指数関数的に変化させるための演算回路を別途に設ける必要があり、回路規模の肥大化を招くといった問題が生じ得る。
【０００６】
本発明は、このような事情に鑑みてなされたものであり、その目的とするところは、演算に供される係数を決定するための特別な回路を要することなく、その係数の多様な変化を実現することにある。
【０００７】
【課題を解決するための手段】
上述した課題を解決するために、本発明は、固定小数点型のビット列として表された基礎係数を特定する特定手段と、前記特定手段によって特定された基礎係数のビット列の一部を仮数部とする一方、他の一部を指数部とし、前記仮数部を変換して得られる演算用係数と前記指数部とを出力する変換手段と、前記変換手段から出力された演算用係数と処理対象たるサンプルデータとを乗算し、これにより得られた乗算データを出力する乗算手段と、前記乗算手段から出力された乗算データに対し、前記変換手段から出力された指数部が示す数値に応じたビットシフトを施して出力するシフト手段とを具備する。
この構成によれば、固定小数点型のビット列として表された基礎係数が、仮数部と指数部とを含む浮動小数点型のビット列として取り扱われて乗算およびビットシフトが施される。したがって、特定手段によって順次に特定される基礎係数が直線的に変化する数値であったとしても、ビットシフトを経て得られるデータ（シフト手段から出力されるシフトデータ）の信号レベルを指数関数的に変化させることができる。
【０００８】
本発明の望ましい態様においては、第１のモードおよび第２のモードのいずれかを指定する制御手段が設けられる。この態様において、前記変換手段は、前記制御手段によって前記第１のモードが指定されている場合に、前記特定手段によって特定された基礎係数をそのまま前記演算用係数として出力する一方、前記制御手段によって前記第２のモードが指定されている場合に、前記仮数部を変換して得られる演算用係数と前記指数部とを出力する。また、前記シフト手段は、前記制御手段によって前記第１のモードが指定されている場合に、前記乗算データをそのまま出力する一方、前記制御手段によって前記第２のモードが指定されている場合に、前記乗算データに対して前記ビットシフトを施して出力する。
この態様によれば、基礎係数が本来の固定小数点型のビット列として扱われる第１のモードと基礎係数が浮動小数点型のビット列として扱われる第２のモードとが適宜に切り換えられる。したがって、ビットシフトを経て得られるシフトデータを多様に変化させることができる。しかも、第１のモードおよび第２のモードのいずれにおいても、乗算手段による乗算処理の内容は変わらない。したがって、各モードごとに構成が異なる乗算手段を設ける必要はない。
【０００９】
他の態様においては、前記基礎係数の初期値および目標値と当該初期値から目標値に変化するまでの補間回数とを取得する取得手段が設けられ、前記特定手段は、前記初期値から前記補間回数に応じた回数の更新を経て前記目標値に至るように前記基礎係数を順次に更新する。この構成のもと、取得手段が、利用者からの指示に応じて初期値、目標値および補間回数を取得する構成とすれば、基礎係数を利用者の意図に応じて更新させることができる。さらに他の態様において、前記取得手段は、初期値、目標値および補間回数に加えて（または補間回数に代えて）補間時間を取得する一方、前記特定手段は、前記基礎係数が前記補間時間をかけて前記初期値から前記目標値に至るように更新する。
【００１０】
また、本発明の望ましい態様において、前記特定手段は、複数の基礎係数を特定し、前記変換手段は、前記複数の基礎係数の各々について前記演算用係数および前記指数部を出力し、前記乗算手段は、処理対象たる複数のサンプルデータの各々について、前記複数の基礎係数から得られた演算用係数のいずれかを用いた乗算を行なうとともに、各サンプルデータについて得られた乗算データを出力し、前記シフト手段は、前記乗算手段から出力された複数の乗算データの各々について、前記変換手段から出力された指数部が示す数値に応じたビットシフトを施し、複数のシフトデータを加算する累積手段に対して、前記ビットシフトにより得られたシフトデータを出力する。この望ましい態様によれば、複数の基礎係数の各々について得られるシフトデータの信号レベルを指数関数的に変化させることができる。
さらに望ましくは、前記複数の基礎係数の初期値および目標値と当該初期値から目標値に変化するまでの補間回数とを取得する取得手段が設けられ、前記特定手段は、前記複数の基礎係数の各々が、当該基礎係数について前記取得手段が取得した初期値から補間回数に応じた回数の更新を経て目標値に至るように、当該基礎係数を順次に更新する。この望ましい態様によれば、複数の基礎係数の各々が独立に更新されるから、シフトデータをより多様に変化させることができる。
【００１１】
なお、本発明は、コンピュータをデータ処理装置として機能させるためのプログラムとしても特定され得る。すなわち、このプログラムは、固定小数点型のビット列として表された基礎係数を特定する特定処理と、前記特定処理によって特定された基礎係数のビット列の一部を仮数部とする一方、他の一部を指数部とし、前記仮数部を変換して得られる演算用係数と前記指数部とを出力する変換処理と、前記変換処理によって出力された演算用係数と処理対象たるサンプルデータとを乗算し、これにより得られた乗算データを出力する乗算処理と、前記乗算処理によって出力された乗算データに対し、前記変換処理によって出力された指数部が示す数値に応じたビットシフトを施して出力するシフト処理とをコンピュータに実行させるためのプログラムである。このプログラムによっても、本発明に係るデータ処理装置と同様の効果が得られる。なお、本発明に係るプログラムは、ネットワークを介した配信によってコンピュータに提供されるものであってもよいし、光ディスクに代表される各種の記録媒体に格納された形態で提供されてコンピュータにインストールされるものであってもよい。
【００１２】
また、本発明は、サンプルデータを処理するための方法としても特定され得る。この方法は、固定小数点型のビット列として表された基礎係数を順次に特定する特定ステップと、特定ステップにおいて特定された基礎係数のビット列の一部を仮数部とするとともに他の一部を指数部とし、前記仮数部を変換して得られる演算用係数と前記指数部とを出力する変換ステップと、前記変換ステップにおいて得られた演算用係数と処理対象たるサンプルデータとを乗算し、これにより得られた乗算データを出力する乗算ステップと、前記乗算ステップによって得られた乗算データに対し、前記変換手段から出力された指数部が示す数値に応じたビットシフトを施して出力するシフトステップとを有する。この方法によっても、本発明に係るデータ処理装置と同様の効果が得られる。
【００１３】
【発明の実施の形態】
以下、図面を参照して、本発明の好適な実施形態について説明する。
【００１４】
＜Ａ：実施形態の構成＞
図１は、本発明の実施形態に係るミキサの構成を示すブロック図である。このミキサ８０は、楽音を表す信号（以下「楽音信号」という）が電子楽器などの上位装置から入力端子８１に入力されると、この楽音信号に対して各種の音楽的な効果（例えば音響効果）を付与したうえで出力端子８５から出力する装置である。出力端子８５には、ミキサ８０から出力された楽音信号を増幅するためのアンプ８７が接続されている。スピーカ８８は、このアンプ８７から出力された楽音信号に基づいて音を発する。
【００１５】
図１に示すように、ミキサ８０は、Ａ／Ｄ（Ａｎａｌｏｇ  ｔｏ  Ｄｉｇｉｔａｌ）変換部８２、データ処理装置１００、累積部８３、Ｄ／Ａ（Ｄｉｇｉｔａｌ  ｔｏ  Ａｎａｌｏｇ）変換部８４および操作部８６を有する。このうちＡ／Ｄ変換部８２は、入力端子８１から入力された楽音信号をサンプリングし、これにより得られたデジタルデータたるサンプルデータＸを順次に出力する。本実施形態におけるひとつのサンプルデータＸは合計２４ビットのデータである。
【００１６】
データ処理装置１００は、Ａ／Ｄ変換部８２から出力されたサンプルデータＸに対して各種の演算処理を行なう。本実施形態においては、サンプルデータＸに対してフェードインまたはフェードアウトの効果が付与される場合を想定する。一方、操作部８６は、キーや摘みといった多数の操作子を備えており、利用者による操作に応じた信号をデータ処理装置１００に出力する。利用者は、この操作部８６を適宜に操作することにより、データ処理装置１００による演算処理の内容を任意に変更することができる。
【００１７】
累積部８３は、データ処理装置１００から出力されたデータに対し、必要に応じて累積演算を行なうものである。累積部８３から出力されたデータは、Ｄ／Ａ変換部８４によってアナログ信号たる楽音信号に変換された後に出力端子８５から出力される。
【００１８】
次に、図２は、データ処理装置１００の構成を示すブロック図である。同図に示すように、データ処理装置１００は、データレジスタ１、係数レジスタ２、セレクタ３、乗算部４、シフタ５、係数決定部６および制御部７を有する。このうちセレクタ３、乗算部４、シフタ５、係数決定部６および制御部７の各部は、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）などのハードウェアのみによって実現されてもよいし、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などのハードウェアと当該ＣＰＵが実行するプログラムとの協働によって実現されてもよい。
【００１９】
データレジスタ１は、Ａ／Ｄ変換部８２から供給されたサンプルデータＸを記憶するための手段である。一方、係数レジスタ２は、基礎係数Ｃｆを記憶するための手段である。この基礎係数Ｃｆは、サンプルデータＸに乗算されるべき演算用係数Ｃｘを算定するための基礎となる係数であり、サンプルデータＸと同様に合計２４ビットのビット列である。基礎係数Ｃｆは、固定小数点型のビット列として表現されている。
【００２０】
係数決定部６は、制御部７による制御のもと、新たな基礎係数Ｃｆを順次に特定して係数レジスタ２に出力する。より具体的には、係数決定部６は、初期値Ｃｓｔａｒｔから目標値Ｃｅｎｄに向かって段階的に変化するように基礎係数Ｃｆの値を算定する。係数レジスタ２は、係数決定部６から新たな基礎係数Ｃｆが供給されるたびに、それまでに保持していた基礎係数Ｃｆを新たな基礎係数Ｃｆに更新する。
【００２１】
制御部７は、データ処理装置１００の各部を制御するための手段である。例えば、制御部７は、操作部８６に与えられた操作に応じて、動作モードを示す信号（以下「コントロール信号」という）ＣＴＲをセレクタ３およびシフタ５に出力する。ここで、本実施形態においては、データ処理装置１００の動作モードとして第１のモードと第２のモードとが用意されている。このうち第１のモードは、上述した従来の技術と同様に、サンプルデータＸに乗算されるべき演算用係数Ｃｘを直線的に変化させるモードである。これに対し、第２のモードは、サンプルデータＸに乗ぜられる係数を指数関数的に変化させるモードである。利用者は、操作部８６を操作することによって第１および第２のモードのいずれかを任意に選択することができる。制御部７は、第１のモードが選択されている場合にはコントロール信号ＣＴＲをＬレベルとする一方、第２のモードが選択されている場合にはコントロール信号ＣＴＲをＨレベルとする。
【００２２】
セレクタ３は、コントロール信号ＣＴＲによって指示される動作モードに応じて、係数レジスタ２に格納された基礎係数Ｃｆと、この基礎係数Ｃｆに所定の処理を施して得られる係数とのうちのいずれかを選択する手段である。このセレクタ３によって選択された係数は、演算用係数Ｃｘとして乗算部４に出力される。さらに詳述すると、第１のモードが選択されている場合、セレクタ３は、係数レジスタ２に格納された基礎係数Ｃｆを、そのまま（すなわち何らの処理も施すことなく）演算用係数Ｃｘとして出力する。これに対し、第２のモードが選択されている場合、セレクタ３は、基礎係数Ｃｆを浮動小数点型のビット列として取り扱い、この基礎係数Ｃｆを所定の変換則に従って変換する。そして、セレクタ３は、この変換により得られた数値を演算用係数Ｃｘとして出力する。より具体的には、セレクタ３は、基礎係数Ｃｆを仮数部Ｙと指数部Ｅとに区分し、このうち仮数部Ｙを所定の変換則に従って変換したものを演算用係数Ｃｘとして乗算部４に出力する一方、指数部Ｅをシフタ５に出力する。なお、仮数部Ｙの変換則については後に詳述する。
【００２３】
乗算部４は、入力端子Ｔ１と入力端子Ｔ２とに供給されたデータを積算し、これにより得られたデータを乗算データＸｔとして出力する。乗算部４の入力端子Ｔ１にはサンプルデータＸがデータレジスタ１から順次に供給される。一方、入力端子Ｔ２には演算用係数Ｃｘがセレクタ３から順次に供給される。したがって、乗算部４は、サンプルデータＸと演算用係数Ｃｘとの乗算により得られたデータを乗算データＸｔとしてシフタ５に出力する。
【００２４】
シフタ５は、コントロール信号ＣＴＲによって指示される動作モードに応じて乗算データＸｔにビットシフトを施し、これにより得られたデータをシフトデータＸｓとして出力する。より具体的には、第１のモードが選択されている場合、シフタ５は、乗算データＸｔに対してビットシフトを施すことなくそのまま出力する。これに対し、第２のモードが選択されている場合、シフタ５は、乗算データＸｔを、セレクタ３から供給される指数部Ｅに応じたビット数だけビットシフトさせたデータをシフトデータＸｓとして出力する。このシフトデータＸｓは累積部８３に供給されて加算処理に供される。
【００２５】
＜Ｂ：実施形態の動作＞
次に、本実施形態の動作を説明する。なお、以下の説明において、ある数値が「“」および「”」によって囲まれている場合には、その数値が二進数として表記されていることを示している。
【００２６】
まず、上位装置から入力端子８１に入力された楽音信号が、Ａ／Ｄ変換部８２によってサンプルデータＸに変換されたうえでデータ処理装置１００に供給される。このサンプルデータＸは、データレジスタ１に順次に格納される。
【００２７】
一方、利用者は、操作部８６を適宜に操作することにより、サンプルデータＸに対する乗算処理に関するパラメータと動作モードとを入力する。乗算処理に関するパラメータは、基礎係数Ｃｆの初期値Ｃｓｔａｒｔ、目標値Ｃｅｎｄ、補間回数Ｍおよび補間時間Ｔである。このうち補間回数Ｍは、初期値Ｃｓｔａｒｔから目標値Ｃｅｎｄまでの間において基礎係数Ｃｆを補間する回数を示す数値である。一方、補間時間Ｔは、基礎係数Ｃｆが初期値Ｃｓｔａｒｔから変化して目標値Ｃｅｎｄに至るまでの時間を示している。制御部７は、操作部８６に与えられた操作に応じて初期値Ｃｓｔａｒｔ、目標値Ｃｅｎｄ、補間回数Ｍおよび補間時間Ｔを取得し、これらのパラメータを係数決定部６に出力する。また、制御部７は、初期値Ｃｓｔａｒｔを係数レジスタ２に出力して記憶させる。
【００２８】
さらに、制御部７は、係数決定部６に対し、補間回数Ｍと補間時間Ｔとに応じた時間間隔でタイミングパルスＴＭを順次に出力する。このタイミングパルスＴＭは、係数決定部６が新たな基礎係数Ｃｆの算定を行なうべきタイミングを指示するためのパルス信号である。したがって、利用者により指定された補間回数Ｍが大きいほど、または利用者により指定された補間時間Ｔが短いほど、各タイミングパルスＴＭが出力される時間間隔（すなわち係数決定部６が基礎係数Ｃｆを算定する時間間隔）は短くなる。また、制御部７は、セレクタ３およびシフタ５に供給されるコントロール信号ＣＴＲを、選択された動作モードに応じたレベルに設定する。
【００２９】
一方、係数決定部６は、制御部７から供給されたパラメータに基づいて係数変化量Ｃａｄｄを算定する。この係数変化量Ｃａｄｄは、初期値Ｃｓｔａｒｔから目標値Ｃｅｎｄに至るまでの各段階間における基礎係数Ｃｆの変化量であり、以下の式により算定される。
Ｃａｄｄ＝（Ｃｓｔａｒｔ−Ｃｅｎｄ）／Ｍ
【００３０】
また、係数決定部６は、制御部７からタイミングパルスＴＭが供給されるたびに、新たな基礎係数Ｃｆを固定小数点型のビット列として算定し、この基礎係数Ｃｆを係数レジスタ２に出力する。具体的には、係数決定部６は、タイミングパルスＴＭが供給されるたびに係数変化量Ｃａｄｄだけ増加するように基礎係数Ｃｆを算定する。したがって、初期値Ｃｓｔａｒｔから目標値Ｃｅｎｄに至るまでの合計Ｍ個の段階のうち第ｉ（ｉは０≦ｉ≦Ｍを満たす整数）段階における基礎係数Ｃｆの数値は以下の式により算定される。
Ｃｆ（ｉ）＝Ｃｓｔａｒｔ＋Ｃａｄｄ×ｉ
ただし、基礎係数Ｃｆが初期値Ｃｓｔａｒｔに一致する段階を第０段階とし、基礎係数Ｃｆが目標値Ｃｅｎｄに一致することになる段階を第Ｍ段階とする。
【００３１】
以上の動作により、係数レジスタ２に格納される基礎係数Ｃｆは、タイミングパルスＴＭが制御部７から出力されるたびに係数変化量Ｃａｄｄだけ増加して第Ｍ段階目に目標値Ｃｅｎｄに到達する。係数レジスタ２に格納された基礎係数Ｃｆはセレクタ３に対して順次に出力される。ここで、セレクタ３およびシフタ５の動作は、利用者によって選択された動作モードに応じて異なる。このため、以下では、第１のモードが選択されている場合と第２のモードが選択されている場合とに分けて以後の動作を説明する。
【００３２】
（１）第１のモードが選択されている場合
第１のモードが選択されている場合、セレクタ３は、係数レジスタ２から出力される基礎係数Ｃｆをそのまま乗算部４に演算用係数Ｃｘとして出力する。この場合、セレクタ３からシフタ５に対する指数部Ｅの供給は実行されない。
【００３３】
一方、乗算部４は、データレジスタ１から供給されるサンプルデータＸとセレクタ３から供給される演算用係数Ｃｘとを乗算し、これによって得られた乗算データＸｔを出力する。一方、シフタ５は、乗算部４から供給される乗算データＸｔをそのままシフトデータＸｓとして出力する。このシフトデータＸｓは、累積部８３によって累積演算に供された後に、Ｄ／Ａ変換部８４によってアナログ信号たる楽音信号に変換されて出力端子８５から出力される。
【００３４】
ここで、図５のグラフＡは、第１のモードにおけるセレクタ３の入力値（基礎係数Ｃｆの数値）と出力値（演算用係数Ｃｘの数値）との関係を示している。同図において、横軸はセレクタ３に対する入力値を表し、縦軸はセレクタ３からの出力値を表している。同図に示すように、第１のモードが選択されている場合には、セレクタ３に対する入力値と出力値とは等しくなる。一方、上述したように基礎係数Ｃｆは直線的に変化するから、第１のモードにおいては、従来の技術と同様に、ミキサ８０から出力される楽音信号の信号レベルが直線的に変化することとなる。
【００３５】
（２）第２のモードが選択されている場合
一方、第２のモードが選択されている場合、セレクタ３は、係数レジスタ２から出力される基礎係数Ｃｆを浮動小数点型のビット列として取り扱い、この基礎係数Ｃｆを所定の変換則に従って変換するとともに、この変換により得られた数値を演算用係数Ｃｘとして出力する。この変換の内容について詳述すると以下の通りである。
【００３６】
いま、図３に示すように、基礎係数Ｃｆがビット“ｂ２３”からビット“ｂ０”までの合計２４個のビットからなるビット列である場合を想定する。なお、以下では、ビット列を構成する各ビットを、最上位ビットから数えて表現する。例えば、最上位ビットから数えて第３番目のビット（図３に示すビット“ｂ２１”）については、単に「第３番目のビット」と表記する。
【００３７】
セレクタ３は、基礎係数Ｃｆのうち最上位ビット“ｂ２３”を符号ビットＳとして取り扱う。例えば、最上位ビット“ｂ２３”が“０”であれば基礎係数Ｃｆは正数であり、同ビットが“１”であれば基礎係数Ｃｆは負数であるといった具合である。
【００３８】
第２のモードが選択されている場合、セレクタ３は、基礎係数Ｃｆのビット列の一部を仮数部Ｙとし、他の一部を指数部Ｅとして取り扱う。さらに詳述すると、セレクタ３は、基礎係数Ｃｆのうち第２番目のビット“ｂ２２”から第５番目のビット“ｂ１９”までの合計４ビットからなるビット列を指数部Ｅとして特定する。また、セレクタ３は、基礎係数Ｃｆのうち、符号ビットＳ（最上位ビット“ｂ２３”）と、第６番目のビット“ｂ１８”から第２４番目のビット“ｂ０”までの合計１９ビットと、４ビット分の“０”データとを最上位からみてこの順に配列させたビット列を仮数部Ｙとして特定する。
【００３９】
そして、セレクタ３は、この仮数部Ｙを所定の変換則に従って変換して演算用係数Ｃｘを生成する。さらに詳述すると、この変換によって得られる演算用係数Ｃｘの内容は、指数部Ｅが十進数としての「０」に等しいか否かに応じて異なる。より具体的には、図３に示すように、指数部Ｅが「０」でない場合、セレクタ３は、基礎係数Ｃｆの符号ビットＳ“ｂ２３”と、この符号ビットＳを反転したビット“！ｂ２３”と、ビット“ｂ１８”からビット“ｂ０”までの１９ビットと、３ビット分の“０”データとを最上位からみてこの順に配列させた合計２４ビットのビット列を、演算用係数Ｃｘとして生成する。すなわち、十進数表記に即して表現すれば、仮数部Ｙは、（０．５＋０．５Ｙ）または（−０．５＋０．５Ｙ）に変換されることとなる。一方、指数部Ｅが「０」である場合、セレクタ３は、基礎係数Ｃｆの符号ビットＳ“ｂ２３”と、この符号ビットＳに等しいビット“ｂ２３”と、ビット“ｂ１８”からビット“ｂ０”までの１９ビットと、３ビット分の“０”データとを最上位からみてこの順に配列させた合計２４ビットのビット列を、演算用係数Ｃｘとして生成する。すなわち、十進数表記に即して表現すれば、仮数部Ｙは（０．５Ｙ）に変換されることとなる。セレクタ３は、以上の手順を経て得られた演算用係数Ｃｘを乗算部４に出力する一方、指数部Ｅをシフタ５に出力する。
【００４０】
一方、乗算部４は、データレジスタ１から供給されるサンプルデータＸとセレクタ３から供給される演算用係数Ｃｘとを乗算し、これによって得られた乗算データＸｔをシフタ５に出力する。この乗算部４による演算の内容は、第１のモードが選択されている場合と変わらない。
【００４１】
次に、シフタ５は、乗算部４から供給される乗算データＸｔを、セレクタ３から供給された指数部Ｅが示す数値に相当するビット数だけビットシフトし、これにより得られたビット列をシフトデータＸｓとして出力する。上述したように指数部Ｅは４ビットであるから十進数としての「０」から「１５」までの数値をとり得る。したがって、シフタ５は、「０」ビットから「１５」ビットまでのいずれかのビット数だけ乗算データＸｔをシフトする。シフタ５から出力されたシフトデータＸｓは、累積部８３によって累積演算に供された後にアナログ信号たる楽音信号に変換されて出力端子８５から出力される。
【００４２】
ここで、第２のモードが選択されているときにセレクタ３と乗算部４とシフタ５とによって実行される演算の内容を符号ビットＳと指数部Ｅの十進数表示とに応じてまとめれば以下の通りになる。なお、以下の各式における「＾」はべき乗を表す演算子である。
（ａ）符号ビットＳ“ｂ２３”が“０”の場合（すなわち基礎係数Ｃｆが正である場合）
2005010597.tif 000004
なお、上式において、「０．９９９９…〜０．５」とは、「０．５」以上「１」未満の数値である。同様に、「０．４９９９９…〜０」とは、「０」以上「０．５」未満の数値である。
（ｂ）符号ビットＳ“ｂ２３”が「１」の場合（すなわち基礎係数Ｃｆが負である場合）
2005010597.tif 000005
なお、上式において、「０．５００…１〜１．０」とは、「０．５」よりも大きく「１．０」以下の数値である。同様に、「０．００…１〜０．５」とは、「０」よりも大きく「０．５」以下の数値である。
以上に示された演算により得られるシフトデータＸｓの内容は、指数部Ｅの数値に応じて図４のように変化する。
【００４３】
図５に示すグラフＢは、第２のモードにおけるセレクタ３の入力値と出力値との関係を示している。すなわち、横軸はセレクタ３に対して入力される基礎係数Ｃｆの数値を示し、縦軸はセレクタ３から出力される演算用係数Ｃｘと指数部Ｅとを併せて浮動小数点型の数値と捉えたときの当該数値を示している。換言すれば、図５の縦軸は、上述した（ａ）および（ｂ）の演算を通じて結果的にサンプルデータＸに乗ぜられることとなる係数を示している。このグラフＢに示されるように、第２のモードにおけるセレクタ３の出力値は、入力値の増減に応じて指数関数的に変化する。したがって、シフタ５から出力されたシフトデータＸｓによれば、第１のモードのように基礎係数Ｃｆを固定小数点型のビット列として取り扱った場合よりも、楽音の音圧レベルの変化を人間の聴覚にとって自然なものとすることができる。
【００４４】
また、第２のモードにおけるセレクタ３への入力値に対する出力値（浮動小数点型のビット列の数値）の大小関係は、第１のモードにおけるセレクタ３への入力値に対する出力値（固定小数点型のビット列の数値）の大小関係と一致する。すなわち、第２のモードにおける浮動小数点型のビット列の数値と、第１のモードにおける固定小数点型のビット列の数値とは、双方ともセレクタ３への入力値の増加に伴なって増加する（セレクタ３への入力値の減少に伴なって減少する）。したがって、固定小数点型の基礎係数Ｃｆをセレクタ３において浮動小数点型の係数として取り扱っているにも拘わらず、不自然な楽音が発せられることはない。このように、本実施形態によれば、演算用係数Ｃｘを指数関数的に変化させるための演算回路を別途に設けることなく、その係数の多様な変化が実現される。
【００４５】
しかも、本実施形態によれば、これらの効果を、ビット列を単に並べ替える構成によって得ることができる。したがって、例えば基礎係数Ｃｆを指数関数的に変化させるための演算回路を別途に設けた場合と比較して、構成の簡素化を図るとともに回路規模の肥大化を抑えることができる。
【００４６】
＜Ｃ：変形例＞
以上の形態は本発明の一例に過ぎず、この形態には本発明の趣旨の範囲内において種々の変形を施すことが可能である。具体的には、以下のような変形例が考えられる。
【００４７】
＜Ｃ−１：変形例１＞
係数レジスタ２として複数の基礎係数Ｃｆを格納する記憶手段を採用し、その各々を独立に更新し得る構成としてもよい。
図６は、本変形例に係るデータ処理装置の構成を示すブロック図である。同図に示すように、データ処理装置２００の係数レジスタ２には、係数決定部６によって生成されたｎ個の基礎係数Ｃｆ１〜Ｃｆｎが記憶される。この係数レジスタ２には、基礎係数Ｃｆ１〜Ｃｆｎのいずれかが格納された記憶領域を指定するための信号（以下「選択信号」という）ＳＥＬが制御部７から供給される。係数決定部６から新たな基礎係数Ｃｆｉ（ｉは１≦ｉ≦ｎを満たす正数）が供給されると、係数レジスタ２は、選択信号ＳＥＬによって指定された記憶領域の基礎係数Ｃｆを新たな基礎係数Ｃｆｉに更新する。一方、制御部７は、利用者による操作部８６への操作に基づき、ｎ個の基礎係数Ｃｆ１〜Ｃｆｎの各々について、初期値Ｃｓｔａｒｔ、目標値Ｃｅｎｄおよび補間回数Ｍを特定して係数決定部６に指示する。係数決定部６は、ｎ個の基礎係数Ｃｆ１〜Ｃｆｎの各々が、当該基礎係数Ｃｆｉについて特定された初期値Ｃｓｔａｒｔから補間回数Ｍに応じた回数の更新を経て目標値Ｃｅｎｄに至るように、新たな基礎係数Ｃｆｉを特定して係数レジスタ２に出力する。この構成により、係数レジスタ２に格納されたｎ個の基礎係数Ｃｆ１〜Ｃｆｎの各々が、初期値Ｃｓｔａｒｔから目標値Ｃｅｎｄまで独立して段階的に更新されることとなる。
【００４８】
一方、データレジスタ１には、Ａ／Ｄ変換部８２による過去のサンプリングによって得られたｎ個のサンプルデータＸｍ〜Ｘｍ−ｎ＋１が格納される。データレジスタ１は、Ａ／Ｄ変換部８２から新たなサンプルデータＸが供給されるたびに、その時点において最も古いサンプルデータＸを破棄するとともに新たなサンプルデータＸを記憶する。
【００４９】
以上の構成のもと、係数レジスタ２に格納されたｎ個の基礎係数Ｃｆ１〜Ｃｆｎの各々は、Ａ／Ｄ変換部８２による楽音信号のサンプリングに同期して読み出されてセレクタ３に出力される。一方、セレクタ３、乗算部４およびシフタ５は、ｎ個の基礎係数Ｃｆ１〜Ｃｆｎの各々について、上記実施形態に示された処理を動作モードに応じて実行する。詳述すると以下の通りである。
【００５０】
まず、第１のモードが選択されている場合、セレクタ３は、ｎ個の基礎係数Ｃｆ１〜Ｃｆｎをそのまま乗算部４に出力する。これに対し、第２のモードが選択されている場合、セレクタ３は、ｎ個の基礎係数Ｃｆ１〜Ｃｆｎの各々について演算用係数Ｃｘと指数部Ｅとを生成して出力する。また、乗算部４は、動作モードに拘わらず、データレジスタ１に格納されたｎ個のサンプルデータＸの各々と、セレクタ３から供給されるｎ個の演算用係数Ｃｘの各々とを乗算し、これにより得られたｎ個の乗算データＸｔを出力する。シフタ５は、第１のモードが選択されている場合には乗算データＸｔをそのまま出力する一方、第２のモードが選択されている場合には、ｎ個の乗算データＸｔの各々について、セレクタ３から出力された指数部Ｅに応じたビットシフトを施して出力する。シフタ５から出力されたｎ個のシフトデータＸｓは累積部８３によって加算される。
【００５１】
この構成によれば、ｎ個の基礎係数Ｃｆ１〜Ｃｆｎの各々を初期値Ｃｓｔａｒｔから目標値Ｃｅｎｄまで段階的に変化させることによって、エコーやリバーブといった音響効果について指数関数的な変化を実現することができる。
【００５２】
＜Ｃ−２：変形例２＞
基礎係数Ｃｆのうちいずれのビット列を仮数部Ｙおよび指数部Ｅとして取り扱うかは任意に変更され得る。要は、基礎係数Ｃｆから重複しないように２種類のビット列が抽出され、このうちの一方が仮数部Ｙとして用いられるとともに他方が指数部Ｅとして用いられる構成であればよい。また、基礎係数ＣｆのすべてのビットがサンプルデータＸに対する演算に供される必要は必ずしもなく、その一部のみが用いられる構成としてもよい。例えば、最下位ビットから数えて数ビットを切り捨て、残りのビット列から仮数部Ｙおよび指数部Ｅを特定する構成としてもよい。さらに、基礎係数Ｃｆのうち仮数部Ｙとされるビット列と指数部Ｅとされるビット列とを利用者が任意に選定できる構成としてもよい。
【００５３】
＜Ｃ−３：変形例３＞
上記実施形態においては、利用者が操作部８６を操作することによって動作モードが選定される構成を例示したが、動作モードを選定する構成はこれに限られない。例えば、上位装置からミキサ８０に対して動作モードが指示される構成としてもよい。また、上記実施形態においては、基礎係数Ｃｆの初期値Ｃｓｔａｒｔ、目標値Ｃｅｎｄ、補間回数Ｍおよび補間時間Ｔが利用者によって入力される構成を例示したが、これらのパラメータが上位装置から入力される構成としてもよいし、あるいはデータ処理装置内に予め記憶されている構成としてもよい。
【００５４】
＜Ｃ−４：変形例４＞
上記実施形態においては、乗算部４から出力された乗算データＸｔを指数部Ｅが示すビット数だけビットシフトする構成を例示したが、指数部Ｅの補数（例えば１の補数）に応じたビット数だけビットシフトする構成としてもよい。また、上記実施形態においては、基礎係数や演算用係数Ｃｘを合計２４ビットのビット列としたが、これらの係数を表すビット列のビット数は任意に変更され得る。
【００５５】
【発明の効果】
以上に説明したように、本発明によれば、演算に供される係数を決定するための特別な回路を要することなく、その係数の多様な変化が実現される。
【図面の簡単な説明】
【図１】本発明の実施形態に係るミキサの構成を示すブロック図である。
【図２】ミキサが備えるデータ処理装置の構成を示すブロック図である。
【図３】データ処理装置が備えるセレクタの動作を説明するための図である。
【図４】第２のモードにおける演算内容を示す図である。
【図５】各動作モードにおけるセレクタの入出力の関係を示すグラフである。
【図６】変形例に係るデータ処理装置の構成を示すブロック図である。
【符号の説明】
１００，２００……データ処理装置、１……データレジスタ、２……係数レジスタ、３……セレクタ（変換手段）、４……乗算部（乗算手段）、５……シフタ（シフト手段）、６……係数決定部（特定手段）、７……制御部（制御手段、取得手段）、８３……累積部（累積手段）、Ｃｆ，Ｃｆ１〜Ｃｆｎ……基礎係数、Ｃｘ……演算用係数、Ｘ……サンプルデータ、Ｘｔ……乗算データ、Ｘｓ……シフトデータ、Ｃｓｔａｒｔ……初期値、Ｃｅｎｄ……目標値、Ｍ……補間回数、Ｙ……仮数部、Ｅ……指数部。
【図１】
2005010597.tif 000006
【図２】
2005010597.tif 000007
【図３】
2005010597.tif 000008
【図４】
2005010597.tif 000009
【図５】
2005010597.tif 000010
【図６】
2005010597.tif 000011