(57)【要約】【課題】シリアル接続された複数のＬＳＩでワードクロック同期をとるときに波形データに対するノイズの発生・品質劣化を防止する。【解決手段】マスタＬＳＩ１０とスレーブＬＳＩ２０は、同じ同期クロックに同期した動作クロックを生成し、その動作クロックを動作カウンタ１５，２５でカウントして第１ワードクロックと第２ワードクロックをそれぞれ生成する。スレーブＬＳＩ２０のＲＴ補正部２７は、マスタＬＳＩ１０から第１ワードクロックが入力されたタイミングにおいて、その時点の動作カウンタ２５のカウント値が、シリアル通信の伝送クロックの位相ずれの許容限度に対応した所定の範囲に入るか否かを判定し、所定の範囲に入らない場合に、動作カウンタ２５をリセットして、動作カウンタ２５のカウントタイミングを動作カウンタ１５のカウントタイミングに一致させる。【選択図】図３
2010039265.tif 000002
【特許請求の範囲】
【請求項１】
２つ以上の複数の集積回路と、一定周期の同期クロックを生成し、該生成した同期クロックを前記複数の集積回路のそれぞれに出力する同期クロック生成部とを備える音響信号処理装置において、
前記複数の集積回路のうちの１つの集積回路は、
前記同期クロック生成部から出力された同期クロックを逓倍した第１動作クロックを生成する第１動作クロック生成部と、
前記第１動作クロックを分周して、第１ワードクロックを生成する第１ワードクロック生成部と、
前記第１動作クロックに基づいて、前記第１ワードクロックに同期した波形データの処理を行う第１信号処理部と、
前記複数の集積回路のうちの他の集積回路に接続され、該接続された他の集積回路との間で波形データをシリアル通信するための第１シリアル通信部と、
前記第１ワードクロックを前記複数の集積回路のうちの他の集積回路に出力するワードクロック出力部と
を備える第１集積回路であり、
前記複数の集積回路のうちの別の集積回路は、
前記同期クロック生成部から出力された同期クロックを逓倍した第２動作クロックを生成する第２動作クロック生成部と、
前記第２動作クロックを分周して、第２ワードクロックを生成する第２ワードクロック生成部と、
前記第１集積回路の前記ワードクロック出力部から出力された第１ワードクロックを入力するワードクロック入力部と、
前記ワードクロック入力部に第１ワードクロックと、前記第２ワードクロック生成部で生成した第２ワードクロックを位相比較して、その位相差が前記シリアル通信の伝送クロックの位相ずれの許容限度に対応した所定の閾値以上であるときに、前記第２ワードクロックの位相が前記第１ワードクロックの位相とほぼ同じになるよう、前記第２ワードクロック生成部の生成動作を制御する補正部と、
前記第２動作クロックに基づいて、前記第２ワードクロックに同期した波形データの処理を行う第２信号処理部と、
前記複数の集積回路のうちの他の集積回路に接続され、該接続された他の集積回路との間で波形データをシリアル通信するための第２シリアル通信部と
を備える第２集積回路である
ことを特徴とする音響信号処理装置。
【請求項２】
２つ以上の複数の集積回路と、一定周期の同期クロックを生成し、該生成した同期クロックを前記複数の集積回路のそれぞれに出力する同期クロック生成部とを備える音響信号処理装置において、
前記複数の集積回路のうちの１つの集積回路は、
前記同期クロック生成部から出力された同期クロックを逓倍した第１動作クロックを生成する第１動作クロック生成部と、
前記第１動作クロックをカウントして、所定カウント値毎に１クロックのレートで第１ワードクロックを生成する第１動作クロックカウンタ部と、
前記第１動作クロックに基づいて、前記第１ワードクロックに同期した波形データの処理を行う第１信号処理部と、
前記複数の集積回路のうちの他の集積回路に接続され、該接続された他の集積回路との間で波形データをシリアル通信するための第１シリアル通信部と、
前記第１ワードクロックを前記複数の集積回路のうちの他の集積回路に出力するワードクロック出力部と
を備える第１集積回路であり、
前記複数の集積回路のうちの別の集積回路は、
前記同期クロック生成部から出力された同期クロックを逓倍した第２動作クロックを生成する第２動作クロック生成部と、
前記第２動作クロックをカウントして、前記所定カウント値毎に１クロックのレートで第２ワードクロックを生成する第２動作クロックカウンタ部と、
前記第１集積回路の前記ワードクロック出力部から出力されたワードクロックを入力するワードクロック入力部と、
前記ワードクロック入力部に第１ワードクロックが入力されたタイミングにおいて、その時点の前記第２動作クロックカウンタ部のカウント値が、前記シリアル通信の伝送クロックの位相ずれの許容限度に対応した所定の範囲に入るか否かを判定し、前記所定の範囲に入らない場合に、第２動作クロックカウンタ部をリセットする補正部と、
前記第２動作クロックに基づいて、前記第２ワードクロックに同期した波形データの処理を行う第２信号処理部と、
前記複数の集積回路のうちの他の集積回路に接続され、該接続された他の集積回路との間で波形データをシリアル通信するための第２シリアル通信部と
を備える第２集積回路である
ことを特徴とする音響信号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数の集積回路を備える音響信号処理装置に関し、該音響信号処理装置が扱う波形データの品質劣化を防ぐ技術に関する。
【背景技術】
【０００２】
例えば電子楽器、音源装置（楽音信号生成）、エフェクタ（音特性制御）、あるいはオーディオミキサなど、音響信号を処理する音響信号処理装置において、音響信号処理装置の機能に応じた各種信号処理を実行する集積回路（ＬＳＩ：「Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ」の略語）を備える構成の装置が従来からある。周知の通り、ＬＳＩは、動作クロックを発振器で発生し、該発生した動作クロックを動作カウンタでカウントして、そのカウント値に基づいて各種処理を実行する。また、ＬＳＩは、その動作クロックのカウント値に基づいて「ワードクロック」を生成する。ワードクロックは、波形データのサンプリング周期を示すクロックである。ＬＳＩは、動作クロックのカウント値に基づき、ワードクロックに同期した波形データの音響信号処理を実行する。つまり、ワードクロックの１クロック毎に、１又は複数の波形データについて、各１サンプル分の音響信号処理を行う。例えば、楽音生成用ＬＳＩは、ワードクロックに同期して、波形データのサンプルを生成し、該生成した波形データのサンプルを出力する。また、信号処理用ＬＳＩは、ワードクロックに同期して、入力された波形データのサンプルに対する信号処理を施し、該処理した波形データのサンプルを出力する。
【０００３】
複数のＬＳＩをシリアル接続し、波形データのサンプルを１つのＬＳＩから別のＬＳＩへシリアル伝送することで、シリアル接続された複数のＬＳＩ全体で能力を拡張し、１つのＬＳＩでは実現困難であるところの複雑な処理や高度な処理を行うことが可能になる。周知の通り、シリアル伝送は、複数ビットのデータを、シリアル伝送クロックの１クロックあたり１ビットずつ順次伝送する方法である。例えば、２つの楽音発生用ＬＳＩをシリアル接続して、その２つのＬＳＩで生成される波形データを混合するようにすれば、シリアル接続された２つのＬＳＩ全体で、個々のＬＳＩの能力に対して２倍の発音数の楽音発生回路となる。また、例えば、２つの信号処理用ＬＳＩをシリアル接続して、入力する波形データにその２つのＬＳＩで信号処理を施すようにすれば、シリアル接続された２つのＬＳＩ全体で、個々のＬＳＩの能力に対して２倍の処理能力の信号処理回路となる。
【０００４】
シリアル接続された複数のＬＳＩの間で、波形データのサンプルをシリアル伝送するには、該複数のＬＳＩの相互で、波形データを処理するサンプリング周期を、ワードクロックを使って同期させる。複数のＬＳＩにおいてサンプリング周期を同期化する場合、該複数のＬＳＩのうちのいずれか１つのＬＳＩをワードクロックのマスタとし、残りのＬＳＩをスレーブとして、マスタＬＳＩから各スレーブＬＳＩにワードクロックを供給することで、マスタＬＳＩとスレーブＬＳＩのワードクロック同期を行う。
【０００５】
マスタＬＳＩでは、他のＬＳＩからのワードクロックに同期することなく、動作クロックを生成し、該生成した動作クロックのカウント値に基づきワードクロックを生成する。つまり、単独で動作している場合と同じように動作する。そして、生成したワードクロックをスレーブＬＳＩに供給する。一方、スレーブＬＳＩの動作は、ワードクロックの同期方法によって「リセット型」と「逓倍型」の２タイプに分類される。「リセット型」の場合、スレーブＬＳＩは、マスタＬＳＩからのワードクロックの１クロックが供給される毎に、発振器で発生する動作クロックをカウントする動作カウンタをリセットすることで、自身の動作カウンタがオーバーフローするタイミングを補正（リセット）する。これにより、スレーブＬＳＩとマスタＬＳＩのワードクロック同期（ワードクロックと動作カウンタのカウント周期の同期）を行う。
【０００６】
ここで、従来のＬＳＩには、１ワードクロックに対する動作クロックのカウント数が固定値で設計されているＬＳＩと、１ワードクロックに対する動作クロックのカウント数が可変で設計されているＬＳＩとがあった。１ワードクロックに対する動作クロックのカウント数が固定値に設計されたＬＳＩでは、外部から供給されたワードクロックに応じて動作カウンタがリセットされたときに、波形データにノイズが入るという問題があった。
【０００７】
一方、１ワードクロックに対する動作クロックのカウント数が可変のＬＳＩをスレーブＬＳＩに適用した場合は、ワードクロックの入力に応じて動作カウンタがリセットされるタイミングが動作クロックのカウント数の可変範囲内であれば、ワードクロックに応じて動作カウンタがリセットされた場合でも正常な動作を継続できるので、波形データにノイズが入ることはない。ただし、この場合、スレーブＬＳＩは、カウント数の可変範囲については、マージンとして動作クロックに応じた信号処理を行うことができない。更に、マスタＬＳＩとスレーブＬＳＩの動作クロックは相互に独立しているので、ＬＳＩ間のシリアル伝送のためには、受信側のＬＳＩ（マスタかスレーブかを問わない）に、シリアル伝送クロックを再生するためのＰＬＬ回路が必要となる。
【０００８】
これに対して、ワードクロックの同期方法が「逓倍型」の場合、スレーブＬＳＩは、マスタＬＳＩから供給されたワードクロックを逓倍して自身の動作クロックを生成する。この場合、自身の動作クロックが、マスタＬＳＩから供給されたワードクロックに追従するので、マスタＬＳＩから供給されるワードクロックの１クロックに対する動作クロックのカウント数を一定として動作できた。この「逓倍型」の方法は、１ワードクロックに対する動作クロックのカウント数が固定値のＬＳＩに適用される方法である。この場合、マスタＬＳＩとスレーブＬＳＩの動作クロックがほぼ同じになるため、受信側のＬＳＩ（マスタかスレーブかを問わない）は、その動作クロックからシリアル伝送クロックを生成できる。しかしながら、近年はＬＳＩの動作クロックの周波数がワードクロックに比べて非常に高くなっているため（１０００倍以上）、ワードクロックを逓倍して動作クロックを生成することは、技術的に困難になってきている。
【０００９】
各ＬＳＩの動作クロックのカウント数が固定値で設計されている場合、受信側のＬＳＩにおいて動作クロックから直接シリアル伝送クロックを生成する簡単な方法は、送信側のＬＳＩと受信側のＬＳＩとに同じ動作クロックを供給することである。その場合、マスタＬＳＩとスレーブＬＳＩの双方における１ワードクロックあたりの動作クロックのカウント数を同数、或いは整数倍の関係にするとともに、マスタＬＳＩとスレーブＬＳＩに同じ動作クロックを供給することにより、マスタＬＳＩとスレーブＬＳＩを同じ動作クロックで動作させるよう設計する。
このように設計すれば、動作の開始時にマスタＬＳＩとスレーブＬＳＩでワードクロックを同期させれば、その後は、マスタＬＳＩから供給されるワードクロックは、スレーブＬＳＩの動作カウンタがオーバーフローするタイミングと同じタイミングにスレーブＬＳＩに入力され、ワードクロックを同期させるための「リセット」等の仕掛けは不要である。
【００１０】
しかしながら、近年のＬＳＩの動作クロックは周波数が非常に高いため、同じ動作クロックを複数のＬＳＩに供給するのは現実的には極めて困難である。更に、複数のＬＳＩに同じ動作クロックを供給するために、プリント基板上にその高い周波数の動作クロックを流すこと自体が、ノイズの発生源となる危険性がある。
【００１１】
上記の動作クロック周波数の早さに起因する問題に対して、複数のＬＳＩに同じ動作クロックを直接供給するのではなく、その動作クロックより周波数の低い同期クロックを複数のＬＳＩに供給し、各ＬＳＩの内部で該同期クロックを逓倍して、各ＬＳＩで独自の動作クロックを生成することで、複数のＬＳＩをほぼ同じ動作クロックで動作させる技術が従来からある。
【００１２】
この従来技術を複数のＬＳＩで相互のワードクロックを同期させる場合に適用すれば、マスタＬＳＩとスレーブＬＳＩとに同期クロックを供給し、それぞれ同期クロックに同期した動作クロックを生成して動作させることにより、マスタＬＳＩとスレーブＬＳＩとを、ほぼ同じ動作クロックで動作させることができる。しかし、この方法では、複数のＬＳＩに供給された同期クロックを、各ＬＳＩで逓倍して動作クロックを作成することから、各ＬＳＩで作成された動作クロックの間にわずかながら周波数のずれが生じる、という不都合があった。よって、複数のＬＳＩで相互のワードクロックを同期させる場合に上記従来技術を適用したとしても、マスタＬＳＩとスレーブＬＳＩとの動作クロックに「わずかな周波数のずれ」が生じてしまうことから、スレーブＬＳＩにおいては、ワードクロックの入力に応じた動作カウンタのリセットが行われることを抑制することが困難であった。したがって、従来技術では、複数のＬＳＩの間で波形データをシリアル伝送する場合に、波形データに対するノイズ発生、そして該ノイズ発生による波形データの品質劣化が生じてしまうという不都合があった。
【００１３】
なお、シリアル接続された複数ＬＳＩ間でのワードクロックの同期に関連する従来技術は、例えば下記特許文献１や特許文献２などに記載されている。
【特許文献１】特開２００４−１０９５４１号公報
【特許文献２】特開２００４−１０２１３６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
ＬＳＩの動作クロックの周波数が高いため「逓倍型」のワードクロック同期方法がとれないとなると、１ワードクロックに対する動作クロックのカウント数が固定値で設計されたＬＳＩ間でシリアル伝送を行う手段がない。本発明は、この問題を解決する手段を提供するものである。
【００１５】
この発明は、上記の点に鑑みてなされたもので、複数のＬＳＩ（集積回路）を備える音響信号処理装置において、ＬＳＩ間のシリアル伝送の信頼性を確保しつつ、動作カウンタのリセットによって生じる波形データの品質が劣化することを防止することができるようにした音響信号処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１６】
この発明は、２つ以上の複数の集積回路と、一定周期の同期クロックを生成し、該生成した同期クロックを前記複数の集積回路のそれぞれに出力する同期クロック生成部とを備える音響信号処理装置において、前記複数の集積回路のうちの１つの集積回路は、前記同期クロック生成部から出力された同期クロックを逓倍した第１動作クロックを生成する第１動作クロック生成部と、前記第１動作クロックを分周して、第１ワードクロックを生成する第１ワードクロック生成部と、前記第１動作クロックに基づいて、前記第１ワードクロックに同期した波形データの処理を行う第１信号処理部と、前記複数の集積回路のうちの他の集積回路に接続され、該接続された他の集積回路との間で波形データをシリアル通信するための第１シリアル通信部と、前記第１ワードクロックを前記複数の集積回路のうちの他の集積回路に出力するワードクロック出力部とを備える第１集積回路であり、前記複数の集積回路のうちの別の集積回路は、前記同期クロック生成部から出力された同期クロックを逓倍した第２動作クロックを生成する第２動作クロック生成部と、前記第２動作クロックを分周して、第２ワードクロックを生成する第２ワードクロック生成部と、前記第１集積回路の前記ワードクロック出力部から出力された第１ワードクロックを入力するワードクロック入力部と、前記ワードクロック入力部に第１ワードクロックと、前記第２ワードクロック生成部で生成した第２ワードクロックを位相比較して、その位相差が前記シリアル通信の伝送クロックの位相ずれの許容限度に対応した所定の閾値以上であるときに、前記第２ワードクロックの位相が前記第１ワードクロックの位相とほぼ同じになるよう、前記第２ワードクロック生成部の生成動作を制御する補正部と、前記第２動作クロックに基づいて、前記第２ワードクロックに同期した波形データの処理を行う第２信号処理部と、前記複数の集積回路のうちの他の集積回路に接続され、該接続された他の集積回路との間で波形データをシリアル通信するための第２シリアル通信部とを備える第２集積回路であることを特徴とする。
【００１７】
同期クロック生成部により第１集積回路（マスタＬＳＩ）と第２集積回路（スレーブＬＳＩ）に同じ同期クロックを供給し、第１集積回路（マスタＬＳＩ）と第２集積回路（スレーブＬＳＩ）の各々は、その同じ同期クロックを逓倍した動作クロック（第１動作クロックと第２動作クロック）を発生させるとともに、各々で発生した動作クロック（第１動作クロックと第２動作クロック）を分周して、ワードクロック（第１ワードクロックと第２ワードクロック）を生成する。第２集積回路は、補正部を具えているので、第１集積回路から入力された第１ワードクロックと、第２ワードクロック生成部で生成した第２ワードクロックの位相差がシリアル通信の伝送クロックの位相ずれの許容限度に対応した所定の閾値以上であるときに、第２ワードクロックの位相が第１ワードクロックの位相とほぼ同じになるよう、第２ワードクロック生成部の生成動作を制御する。
【００１８】
また、この発明は、２つ以上の複数の集積回路と、一定周期の同期クロックを生成し、該生成した同期クロックを前記複数の集積回路のそれぞれに出力する同期クロック生成部とを備える音響信号処理装置において、前記複数の集積回路のうちの１つの集積回路は、前記同期クロック生成部から出力された同期クロックを逓倍した第１動作クロックを生成する第１動作クロック生成部と、前記第１動作クロックをカウントして、所定カウント値毎に１クロックのレートで第１ワードクロックを生成する第１動作クロックカウンタ部と、前記第１動作クロックに基づいて、前記第１ワードクロックに同期した波形データの処理を行う第１信号処理部と、前記複数の集積回路のうちの他の集積回路に接続され、該接続された他の集積回路との間で波形データをシリアル通信するための第１シリアル通信部と、前記第１ワードクロックを前記複数の集積回路のうちの他の集積回路に出力するワードクロック出力部とを備える第１集積回路であり、前記複数の集積回路のうちの別の集積回路は、前記同期クロック生成部から出力された同期クロックを逓倍した第２動作クロックを生成する第２動作クロック生成部と、前記第２動作クロックをカウントして、前記所定カウント値毎に１クロックのレートで第２ワードクロックを生成する第２動作クロックカウンタ部と、前記第１集積回路の前記ワードクロック出力部から出力されたワードクロックを入力するワードクロック入力部と、前記ワードクロック入力部に第１ワードクロックが入力されたタイミングにおいて、その時点の前記第２動作クロックカウンタ部のカウント値が、前記シリアル通信の伝送クロックの位相ずれの許容限度に対応した所定の範囲に入るか否かを判定し、前記所定の範囲に入らない場合に、第２動作クロックカウンタ部をリセットする補正部と、前記第２動作クロックに基づいて、前記第２ワードクロックに同期した波形データの処理を行う第２信号処理部と、前記複数の集積回路のうちの他の集積回路に接続され、該接続された他の集積回路との間で波形データをシリアル通信するための第２シリアル通信部とを備える第２集積回路であることを特徴とする。
【００１９】
第１集積回路と第２集積回路との各々は、同期クロック生成部で生成された同じ同期クロックが供給されており、該供給された同期クロックを逓倍した動作クロック（第１動作クロックと第２動作クロック）を発生させる。第１集積回路は、第１動作クロックをカウントして、所定カウント数ごとに１クロックのレートで第１ワードクロックを生成し、生成した第１ワードクロックを第２集積回路に出力するとともに、その第１ワードクロックに同期した波形データを処理する。第２集積回路は、第２動作クロックカウンタ部において、第２動作クロックをカウントして、所定カウント数ごとに１クロックのレートで第２ワードクロックを生成し、補正部において、第１集積回路から第１ワードクロックが入力されたタイミングにおいて、その時点の前記第２動作クロックカウンタ部のカウント値が、シリアル通信の伝送クロックの位相ずれの許容限度に対応した所定の範囲に入るか否かを判定し、所定の範囲に入らない場合に、第２動作クロックカウンタ部をリセットして、第２動作クロックカウンタ部のカウントタイミングを第１動作クロックカウント部のカウントタイミングに一致させる。
【発明の効果】
【００２０】
この発明に係る音響信号処理装置によれば、第１ワードクロックと第２ワードクロックの位相差が所定の閾値に達するまでは第２ワードクロック生成部の補正を行わなわないことで、第１集積回路（マスタＬＳＩ）と第２集積回路（スレーブＬＳＩ）の動作クロックにおける「わずかな周波数のずれ」によって第２ワードクロック生成部が補正されることを回避することができる。ここで、所定の閾値は、シリアル通信の伝送クロックの位相ずれの許容限度に対応した値であるから、複数の集積回路（ＬＳＩ）間のシリアル伝送の信頼性を確保しつつ、第２ワードクロック生成部の補正を抑制して、波形データの品質が劣化することを防止することができるという優れた効果を奏する。
従って、集積回路の動作クロックの周波数が高いため「逓倍型」の同期方法を採用できない場合であっても、１ワードクロックに対する動作クロックのカウント数が固定値で設計された複数の集積回路の間で、ワードクロックの同期をとり、安定してシリアル伝送を行うことができるようになるという優れた効果を奏する。
【００２１】
また、この発明に係る音響信号処理装置によれば、第２動作クロックカウンタ部のカウントタイミングと第１動作クロックカウント部のカウントタイミングが多少ずれても第２動作クロックカウンタ部のリセットを行わず、そのずれが所定の閾値以上となったときにだけ、第２動作クロックカウンタ部のリセットを行い、第２動作クロックカウンタ部のカウントタイミングを第１動作クロックカウント部のカウントタイミングに一致させるので、第１集積回路（マスタＬＳＩ）と第２集積回路（スレーブＬＳＩ）の動作クロックにおける「わずかな周波数のずれ」によって第２動作クロックカウンタ部がリセットされることを回避することができる。ここで、所定の閾値は、所定の閾値は、シリアル通信の伝送クロックの位相ずれの許容限度に対応した値であるから、複数の集積回路（ＬＳＩ）間のシリアル伝送の信頼性を確保しつつ、第２動作クロックカウント部のリセットを抑制して、波形データの品質が劣化することを防止することができるようになるという優れた効果を奏する。
従って、集積回路の動作クロックの周波数が高いため「逓倍型」のワードクロック同期方法を採用できない場合であっても、１ワードクロックに対する動作クロックのカウント数が固定値で設計された複数の集積回路の間で、ワードクロックの同期をとり、安定してシリアル伝送を行うことができるようになるという優れた効果を奏する。
【発明を実施するための最良の形態】
【００２２】
以下、添付図面を参照して、この発明の一実施形態について詳細に説明する。
【００２３】
図１は、この発明に係る音響信号処理装置の電子的ハードウェア構成例を示すブロック図である。音響信号処理装置は、電子楽器、音源装置、エフェクタ、あるいはオーディオミキサなど、符号化された楽音信号又は音響信号を処理する装置である。なお、この明細書では所定のサンプリング周期で標本化され符号化された楽音信号又は音響信号を「波形データ」という。
【００２４】
図１において、音響信号処理装置は、ＣＰＵ１、フラッシュメモリ２、ＲＡＭ３、音響信号処理部４、操作子５、表示器６、および通信インターフェース（通信Ｉ／Ｆ）７を含んで構成され、各部がデータおよびアドレスバス１Ｂを介して接続される。ＣＰＵ１、フラッシュメモリ２、およびＲＡＭ３は音響信号処理装置の動作を制御する制御部である。フラッシュメモリ２にはＣＰＵ１が実行する各種プログラムを記憶されている。ＣＰＵ１は、フラッシュメモリ２に記憶されたプログラムをＲＡＭ３に読み出し、該読み出したプログラムを実行する。
【００２５】
操作子５は、各種パラメータの値や各種指示を入力するためのパネル操作子などである。音響信号処理装置が電子楽器の場合には、操作子５には、ユーザが演奏情報を入力するため演奏操作子（鍵盤など）も含まれる。表示器６は、例えば液晶ディスプレイによって構成され、ＣＰＵ１の制御に基づき各種情報を表示する。また、音響信号処理装置は、通信Ｉ／Ｏ７を介して外部の装置とデータ通信可能に接続される。通信Ｉ／Ｏ７は、例えばＭＩＤＩ規格の信号を送受信するためのＭＩＤＩ  Ｉ／Ｆや、あるいはＥｔｈｅｒｎｅｔ（登録商標）規格の通信Ｉ／Ｆなど、従来から知られる適宜の規格の通信Ｉ／Ｆにより構成される。
【００２６】
音響信号処理部４は、波形データを入力する入力部８と、波形データを出力する出力部９とに接続されており、例えば楽音信号生成処理や、波形データに対する信号処理（音特性制御処理やミキシング処理）など、ＣＰＵ１から与えられた指示に応じた処理を実行する。例えば、音響信号処理部４で楽音信号生成処理を行うときには、音響信号処理部４は、所定のサンプリング周期毎に波形データのサンプルを生成して、生成した波形データのサンプルを出力部９から出力する処理を行う。また、音響信号処理部４で音特性制御処理など波形データに対する信号処理を行うときには、所定のサンプリング周期毎に、入力部８から入力される波形データのサンプルを処理して、該処理結果の波形データのサンプルを出力部９から出力する処理を行う。音響信号処理部４において、波形データのサンプルを処理するサンプリング周期は“ワードクロック”によって与えられる。“ワードクロック”は、波形データのサンプルを処理するサンプリング周期を示す信号である。音響信号処理部４は、ワードクロックに同期した波形データのサンプルを処理する。ワードクロックを生成する構成など、ワードクロックの詳細については、後述する。
【００２７】
音響信号処理部４は、互いにシリアル接続された複数の集積回路（ＬＳＩ：「Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ」の略語）により構成されている。互いにシリアル接続された複数のＬＳＩの間では、波形データのサンプルを双方向にシリアル伝送することができる。なお、波形データのシリアル伝送は、波形データの各サンプルを構成するビットデータ列を、シリアル伝送クロックの１クロックあたり１ビットずつ順次伝送する方法である。周知の通り、複数ＬＳＩで波形データのサンプルをシリアル伝送する場合には、各ＬＳＩを、ワードクロックを使ってサンプリング周期を同期させなければならない。この発明は、後述する通り、複数ＬＳＩでワードクロック同期するときに従来発生していた波形データの品質の劣化という問題を防止する点に特徴がある。
【００２８】
図２（ａ）〜（ｃ）は、音響信号処理部４を構成する複数のＬＳＩの接続例、および波形データの処理内容の具体例を説明する図である。（ａ）には、２つの音特性制御用のＬＳＩ１とＬＳＩ２とをシリアル接続した例を示す。図に示す文字列「ＴＣＣ」は「Ｔｏｎｅ  Ｃｈａｒａｃｔｅｒｉｓｔｉｃ  Ｃｏｎｔｒｏｌｌｅｒ」の略、すなわち「音特性制御部」である。音特性制御部は、例えばイコライザ、コンプレッサ、あるいはリバーブなど、波形データに対してエフェクトを付与する処理を実行する。入力部８から入力された波形データはＬＳＩ１に入力され、該ＬＳＩ１による信号処理結果がＬＳＩ２に出力される。該ＬＳＩ１において、入力された波形データは、音特性制御部（ＴＣＣ）に入り、その処理結果と音特性制御を施さない波形データとが合算されて、ＬＳＩ２に出力される。ＬＳＩ２おいても同様に、ＬＳＩ１からシリアル伝送された波形データは、音特性制御部（ＴＣＣ）に入り、その処理結果と音特性制御を施さない波形データとが合算されて、出力部９へ出力される。このように、音特性制御用の２つのＬＳＩがシリアル接続されることで、音響信号処理部４は、音特性制御用のＬＳＩを１つしか備えない構成に比較して、２倍の処理能力を持つ音特性制御回路となる。
【００２９】
また、（ｂ）には、２つの楽音信号生成用のＬＳＩ１とＬＳＩ２と、１つの音特性制御用のＬＳＩ３との３つのＬＳＩをシリアル接続した例を示す。図において「ＴＧ」は「Ｔｏｎｅ  Ｇｅｎｅｒａｔｏｒ」の略、すなわち「楽音信号生成部（音源）」を意味する。楽音信号生成部には、例えば、ＰＣＭ音源、ＦＭ音源、あるいはアナログモデリング音源など、従来から知られる適宜の音源方式を適用してよい。ＬＳＩ１とＬＳＩ２とは、それぞれサンプリング周期毎に複数時分割チャンネル動作を行い、ＣＰＵ１の制御の下で、複数チャンネルの波形データのサンプルを同時に生成する。ＬＳＩ１で生成した複数発音チャンネルの波形データは合算され、該合算結果の波形データはＬＳＩ２にシリアル伝送され、該ＬＳＩ２において当該ＬＳＩ２で生成された複数発音チャンネルの波形データと合算され、該合算結果の波形データが音特性制御用のＬＳＩ３にシリアル伝送される。ここで、ＬＳＩ１とＬＳＩ２とはそれぞれ、ＬＳＩ３の音特性制御部（ＴＣＣ）を通る信号処理チャンネルと、該音特性制御をスルーする信号処理チャンネルとの２系統の信号処理チャンネルが用意されており、発音チャンネル毎に、生成された波形データを音特性制御部（ＴＣＣ）に送るか、又は送らないかを制御することができる。このように、楽音信号生成用の２つのＬＳＩと、音特性制御用の１つのＬＳＩをシリアル接続することで、音響信号処理部４は、ＬＳＩを１つしか備えない構成に比較して２倍の発音数を持つ楽音発生回路として機能し、且つ、楽音発生回路で生成した波形データに対する音特性制御回路として機能する。ここでは、波形データの合算を１系統で行うようになっていたが、混合レベルを変えて複数系統で個別に合算し、ＬＳＩ３で系統毎に異なる音特性制御をおこなうようにしてもよい。なお、（ｂ）の構成の場合、図１の入力部８は不要である。
【００３０】
また、（ｃ）は、音量レベル制御部（Ｖｏｌ）と音特性制御部（ＴＣＣ）との２つの機能を担うＬＳＩ１と、楽音信号生成部（ＴＧ）と音特性制御部（ＴＣＣ）との２つの機能を担うＬＳＩ２をシリアル接続した例を示す。図の例では、入力部８からＬＳＩ１に入力された波形データは音量レベル制御部に入力され、音量レベル制御部は制御結果を３系統の系統毎に個別にレベル制御を行い出力する。音量レベル制御部の３系統の出力のうちの１つは音特性制御部に入力され、音量レベル制御部の３つの出力のうちの別の１つはそのままＬＳＩ２に出力される。音量レベル制御部のさらに別の１つの出力は、音特性制御部の出力と合算されて、ＬＳＩ２に出力される。また、ＬＳＩ２の楽音信号生成部は、生成した複数チャンネルの波形データをそれぞれ３系統の系統別にレベル制御して合算し、３系統の合算結果をパラレルで出力する。ＬＳＩ２の楽音信号生成部の３系統の出力のうちの１つは、ＬＳＩ１の音特性制御部へ供給される。また、別の１つは、ＬＳＩ１の音量レベル制御部の出力と合算され、ＬＳＩ２の音特性制御部へ供給される。また、さらに別の１つは、ＬＳＩ１の音量レベル制御部の出力とＬＳＩ１の音特性制御部の出力との合算結果に合算され、その合算結果がＬＳＩ２の音特性制御部と合算され、音響信号処理部４の最終的な出力として、出力部８へ供給されるよう結線されている。このような構成によれば、ＬＳＩ１およびＬＳＩ２の各ステージを自由に結線することができ、例えば、ＬＳＩ２の楽音信号生成部が生成した波形データをＬＳＩ１の音特性制御部で処理する等の、自由度の高い音響信号処理を行うことができる。
【００３１】
図２（ａ）〜（ｃ）に例示したように、複数のＬＳＩをシリアル接続することで、音響信号処理部４の能力が拡張される。音響信号処理部４を構成するＬＳＩの数は限定されない。全体として所望の性能の音響処理部４になるよう、複数のＬＳＩを順次シリアル接続することができる。
【００３２】
図３は、音響信号処理部４のハードウェア構成の詳細を示すブロック図である。図３に示す音響信号処理部４において、第１ＬＳＩ（「ＬＳＩ１」）１０と第２ＬＳＩ（「ＬＳＩ２」）２０との２つのＬＳＩがシリアル接続される。図３の例では、符号１０の「ＬＳＩ１」がワードクロックのマスタＬＳＩであり、符号２０の「ＬＳＩ２」がワードクロックのスレーブＬＳＩである。すなわち、マスタＬＳＩ１０からスレーブＬＳＩ２０にワードクロック（図３において「Ｗクロック」）を供給することで、該供給されたワードクロックにスレーブＬＳＩのワードクロック（波形データを処理するサンプリング周期）を同期させる。
なお、この発明に係る実施例において、ＬＳＩ１０、およびＬＳＩ２０は、それぞれ、ワードクロックの１クロックに対する動作クロックのクロック数が固定値で設計されたＬＳＩとする。この実施例においては、一例としてワードクロックの１クロックに対する動作クロックのクロック数が「４０９６」クロックに固定されているものとする。また、サンプリング周期は、４８ｋＨｚとする。
【００３３】
マスタＬＳＩ（「ＬＳＩ１」）１０は、処理回路１１、第１シリアルインターフェース（シリアルＩ／Ｏ）１２、第２シリアルＩ／Ｏ１３、動作クロック発生器（Ｏ＿ＣＬＫ発生器：「Ｏ＿ＣＬＫ」はＯｐｅｒａｔｉｏｎ  Ｃｌｏｃｋの略）１４、動作カウンタ１５、および制御レジスタ１６を備える。また、スレーブＬＳＩ（「ＬＳＩ２」）２０は、処理回路２１、第１シリアルＩ／Ｏ２２、第２シリアルＩ／Ｏ２３、動作クロック発生器２４、動作カウンタ２５、制御レジスタ２６、およびリセットタイミング補正部（ＲＴ補正：「ＲＴ」は「Ｒｅｓｅｔ  Ｔｉｍｉｎｇ」の略）２７を備える。図３の例では、マスタＬＳＩ１０とスレーブＬＳＩ２０の構成上の違いは、スレーブＬＳＩ２０が、ＲＴ補正部２７を備える点である。
【００３４】
ＬＳＩ１０，２０に備わる制御レジスタ１６，２６は、バス１Ｂを介してＣＰＵ１に接続されており、該ＣＰＵ１から与えられるＬＳＩ１０，２０の各部の制御パラメータの値や、処理回路１１，２１が実行するマイクロプログラム等を格納するレジスタである。処理回路１１，２１は、音特性制御用のＬＳＩであれば、ＣＰＵ１によりレジスタに設定されたマイクロプログラムを実行して、レジスタに設定されたアドレスや係数のパラメータを用いて、デジタル信号（波形データ）に対する信号処理を行う回路（ＤＳＰ：ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒの略）であって、波形データに対する音特性制御等の信号処理（エフェクタ機能）を実行する。また、楽音信号生成用のＬＳＩであれば、各発音チャンネル毎に、ＣＰＵ１からの発音指示に応じて、レジスタに設定された当該発音チャンネルの楽音制御パラメータに応じた波形データの生成処理を行う回路であって、該楽音制御パラメータに応じた楽音特性を有する波形データを生成する楽音信号生成処理（音源機能）を実行する。
【００３５】
ＬＳＩ１０のシリアルＩ／Ｏ１２、１３、およびＬＳＩ２０のシリアルＩ／Ｏ２２、２３は、シリアル伝送方式により波形データを入出力するためのインターフェースである。図３に示す構成では、マスタＬＳＩ１０が第１シリアルＩ／Ｏ１２を介して波形データの入力部８（図１参照）に接続されており、該入力部８から入力された波形データはマスタＬＳＩ１０にシリアル伝送され、処理回路１１に供給される。また、マスタＬＳＩ１０の第２シリアルＩ／Ｏ１３とスレーブＬＳＩ２０の第１シリアルＩ／Ｏ２２とを介して、マスタＬＳＩ１０とスレーブＬＳＩ２０とがシリアル接続されており、該マスタＬＳＩ１０とスレーブＬＳＩ２０との間で波形データが双方向にシリアル伝送される。そして、スレーブＬＳＩ２０が第２シリアルＩ／Ｏ２３を介して波形データの出力部９（図１参照）に接続されており、該スレーブＬＳＩ２０の処理回路２１から出力された波形データは該出力部９へシリアル伝送され出力される。ここで、マスタＬＳＩとスレーブＬＳＩの間のシリアル伝送では、シリアル伝送クロックとして、後述する動作クロックから（分周により）直接生成されたクロックが使用される。
【００３６】
マスタＬＳＩ１０の動作クロック発生器１４、およびスレーブＬＳＩ２０の動作クロック発生器２４は、それぞれ、同期クロック発生器（Ｓ＿ＣＬＫ発生器：「Ｓ＿ＣＬＫ」はＳｙｎｃｈｒｏｎｉｚａｔｉｏｎ  Ｃｌｏｃｋの略）３０に接続されている。同期クロック発生器３０は、マスタＬＳＩ１０およびスレーブＬＳＩ２０のそれぞれの動作クロックよりも周波数の低い、例えば約６ＭＨｚの、同期クロックを発生し、マスタＬＳＩ１０とスレーブＬＳＩ２０とのそれぞれに、同じ同期クロックを供給する。同期クロック発生器３０が発生する同期クロックとは、マスタＬＳＩ１０の動作クロック発生器１４、およびスレーブＬＳＩ２０の動作クロック発生器２４のそれぞれで同期した動作クロックを発生するために利用されるクロックである。
【００３７】
マスタＬＳＩ１０の動作クロック発生器１４、およびスレーブＬＳＩ２０の動作クロック発生器２４は、同期クロック発生器３０から供給された同期クロックを、例えば３２逓倍することにより、該同期クロックよりも周波数の高い、例えば、２００ＭＨｚの、動作クロックを発生する。動作クロック発生器１４，２４の詳細な構成例を、図４に示す。図４に示す通り、動作クロック発生器は、同期クロック発生器３０から供給された同期クロックとフィードバック信号との位相差を検出する周波数補正部（Ｆ補正：「Ｆ」はｆｒｅｑｕｅｎｃｙの略）３１と、該周波数補正部３１の出力信号により発振周波数が制御される発振器３１と、発振器３１の出力と周波数補正部３１の入力の間に挿入された分周器３２とから構成される。周波数補正部３１は、同期クロック発生器３０から供給された同期クロックと分周器３２を介してフィードバックされた発振器３２の出力信号との位相差を検出し、該位相差に応じた出力信号を発振器３２に出力することで、同期クロックの位相に対して発振器３２の出力信号の位相が一定の関係を保つように、発振器３２の発振周波数を制御（補正）する。ここで分周器３２を介してフィードバックされる発振器３２の出力信号は、発振器３２の出力周波数を所定の分周比Ｎ（Ｎは任意の整数）で分周したものである。したがって、発振器３２は、同期クロックに同期した動作クロックであって、該同期クロックをＮ倍逓倍した周波数の動作クロックを出力する。すなわち、動作クロック発生器は、ＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋｅｄ  Ｌｏｏｐ：「位相ロックループ」の略）による周波数逓倍器である。
【００３８】
マスタＬＳＩ１０の動作クロック発生器１４で生成された動作クロックは、自身の処理回路１１と、第１及び第２シリアルＩ／Ｏ１２，１３に供給されるとともに、動作カウンタ１５に供給される。処理回路１１と、第１及び第２シリアルＩ／Ｏ１２，１３は、動作クロック発生器１４で生成された動作クロックに基づき動作する。
【００３９】
マスタＬＳＩ１０の動作カウンタ１５は、動作クロック発生器１４から供給された動作クロックをカウントし、所定カウント値ごとに１クロックのレートでワードクロックを生成する。ワードクロックは波形データのサンプリング周期を示す。この実施例では、動作カウンタ１５は、例えば１２ビットのカウンタであり、その下限値「０」から上限値「４０９５」までのカウント期間が、ワードクロックの１クロックの期間に相当する。すなわち、カウント値の最上位ビットに現れる信号が動作カウンタ１５で生成されるワードクロックである。サンプリング周期毎にカウントされる総クロック数「４０９６」は、ワードクロックの１クロックに対応する所定カウント数である。動作カウンタ１５は、フリーランで、下限値「０」から上限値「４０９５」までカウントすることを繰り返すものである。そして、ワードクロックのタイミングは、ワードクロックの値が「１」から「０」に変化するタイミング、つまり、カウント値が「４０９５」から「０」に戻るタイミングを言う。マスタＬＳＩ１０の動作カウンタ１５が生成したワードクロックは、ワードクロックとしてスレーブＬＳＩ２０に供給されるとともに、自身の処理回路１１と、第１及び第２シリアルＩ／Ｏ１２，１３とに供給される。
【００４０】
処理回路１１と、第１及び第２シリアルＩ／Ｏ１２，１３は、動作カウンタ１５のカウント値に基づき、前記ワードクロックに同期した波形データのサンプルを処理する。第１及び第２シリアルＩ／Ｏ１２，１３は、動作クロックを例えば８０分周することにより、約２．５ＭＨｚのシリアル伝送クロックを生成し、生成したシリアル伝送クロックの１クロック毎に、波形データのサンプルを構成するビット列を１ビットずつ順次伝送することで、動作カウンタ１５で生成されたワードクロックに同期して、波形データのサンプルの入出力を行う。なお、シリアル伝送クロックは、動作クロック発生器１４で発生した動作クロックに基づき生成されるものである。また、処理回路１１は、該カウント値により実行すべき処理内容（例えば、マイクロプログラムのステップ番号）が決定され、動作カウンタ１５で生成されたワードクロックに同期して、波形データのサンプル毎の処理（楽音生成や、音特性制御など）を行う。
【００４１】
スレーブＬＳＩ２０の動作クロック発生器２４で生成された動作クロックは、自身の処理回路２１と、第１及び第２シリアルＩ／Ｏ２２，２３に供給されるとともに、動作カウンタ２５に供給される。スレーブＬＳＩ２０の動作カウンタ２５は、動作クロック発生器１４から供給された動作クロックをカウントする。動作カウンタ２５のカウント上限値は、ワードクロックの１クロックの周期に相当する値（この実施例では一例として「４０９５」）である。動作カウンタ２５は、動作クロックのクロック数を、下限値「０」から上限値「４０９５」までカウントすることを繰り返すものである。動作カウンタ２５のカウント値は、自身の処理回路２１、第１及び第２シアルＩ／Ｏ２２，２３、およびＲＴ補正部２７に供給される。スレーブＬＳＩ２０内の各部に対する動作クロックおよび動作カウンタ２５のカウント値の働きは、マスタＬＳＩ１０のそれと同様である。つまりスレーブＬＳＩ２０内の各部で波形データを処理するサンプリング周期は、動作カウンタ２５のカウント値によって与えられる。スレーブＬＳＩ２０は、動作カウンタ２５のカウント開始タイミング（下限値「０」のタイミング）が、マスタＬＳＩ１０から供給されるワードクロックのタイミングから大きくずれないように制御されている点がマスタＬＳＩ１０と異なる。動作カウンタ２５のカウント開始タイミングを、マスタＬＳＩ１０の動作カウンタ１５のカウント開始タイミングとほぼ同じにすることにより、スレーブＬＳＩ２０においてマスタＬＳＩ１０のシリアル伝送クロックとほぼ同じタイミングのシリアル伝送クロックを生成して、スレーブＬＳＩ２０とマスタＬＳＩ１０の間でシリアル伝送が行えるようになる。
【００４２】
スレーブＬＳＩ２０の動作カウンタ２５のカウントタイミングとマスタＬＳＩ１０の動作カウンタ１５のカウントタイミングとがずれたときに、その両カウンタのカウントタイミングを同期化させる手法は、基本的には、ワードクロックがスレーブＬＳＩ２０に入力されたタイミングで、動作カウンタ２５のカウント値をリセットする、従来技術の「リセット型」相当の手法である。この発明は、ＲＴ補正部２７により、多少カウントタイミングがずれても動作カウンタ２５のリセットを行わず、特定の条件が満たされた場合のみ動作カウンタ２５のリセットを行うようにした点に特徴がある。
【００４３】
ＲＴ補正部２７は、マスタＬＳＩ１０からのワードクロックのタイミングで動作カウンタ２５のカウント値を見ることにより、動作カウンタ２５のカウントタイミングと動作カウンタ１５のカウントタイミングのずれを検出して、そのずれが所定の閾値以上となったときにだけ、動作カウンタ２５のカウント値をリセットするものである。動作カウンタのリセットを行う点こそ従来技術の「リセット型」と同じだが、ここでのリセットの目的は、動作カウンタ２５のカウント周期をマスタＬＳＩ１０に合わせることではなく、そのカウントタイミングをマスタＬＳＩ１０に合わせることにある。「ワードクロックのタイミングにおける動作カウンタ２５のカウント値」は、その最上位ビット（第１２ビット）を符号ビットと解釈すれば、最小値「−２０４８」から最大値「＋２０４７」までの、動作カウンタ１５に対する動作カウンタ２５のカウントタイミングずれを示す「ずれカウント値」となる。該ずれカウント値は、動作カウンタ２５のカウントタイミング（カウント値の位相）が動作カウンタ１５より早い場合は正となり、遅い場合は負となる。また、該ずれカウント値の絶対値は、カウントタイミング（カウント値の位相）のずれの大きさに対応する。
【００４４】
この実施例では、ＲＴ補正部２７は、制御レジスタ２６に設定された動作モードパラメータの値に応じた動作モードで動作するものとする。ＲＴ補正部２７の動作モードには、動作カウンタ２５の動作をマスタＬＳＩ１０から供給されるワードクロックに常時同期させる「モード１」と、マスタＬＳＩ１０からのワードクロックのタイミングにおける動作カウンタ２５のカウント値（位相のずれに位相）が、所定の閾値以上となったときに同期をかける「モード２」と、動作カウンタ２５の動作をマスタＬＳＩ１０から供給されるワードクロックに同期させない「モード０」との三通りのモードがある。「モード２」の動作が、ＲＴ補正部２７に特徴的な動作である。
【００４５】
「モード２」の場合、ＲＴ補正部２７には制御レジスタ２６に格納された所定の閾値が設定される。そして、ＲＴ補正部２７は、マスタＬＳＩ１０からのワードクロックのタイミングにおける動作カウンタ２５のカウント値（位相のずれに位相）が、所定の閾値以上となったときに、そのタイミングで動作カウンタ２５のカウント値をリセットする。ここで、ＲＴ補正部２７に設定される閾値は、マスタＬＳＩ１０とスレーブＬＳＩ２０の間のデータのシリアル伝送で許容できる各ビットデータの時間ずれに応じて予め設定された値であって、その具体的な値はシリアル伝送の仕様に応じて適宜の値に設定される。
【００４６】
したがって、ＲＴ補正部２７が「モード２」で動作しているときには、マスタＬＳＩ１０からのワードクロックのタイミングにおける動作カウンタ２５のカウント値（位相のずれに相当）が、前記閾値に達するまでは、該マスタＬＳＩ１０から供給されたワードクロックに応じた動作カウンタ２５のカウント値のリセットが行われない。すなわち、ワードクロックの入力タイミングに対する第２動作クロックカウンタ部のリセットタイミングに閾値分だけマージンを確保して、該閾値分のずれの範囲ならば、動作カウンタ２５のカウント周期とマスタＬＳＩ１０から供給されるワードクロックとの同期がとれているものと見なす。
【００４７】
また、「モード１」の場合、マスタＬＳＩ１０からＲＴ補正部２７にワードクロックが入力される毎に、ＲＴ補正部２７は動作カウンタ２５のカウント値をリセットする。よって、ＲＴ補正部２７が「モード１」で動作しているときには、マスタＬＳＩ１０から供給されるワードクロックの１クロックが入る毎に、動作カウンタ２５のカウント値がリセットされる。したがって、動作カウンタ２５のリセットタイミングは、マスタＬＳＩ１０から供給されるワードクロックに常時同期する。これは従来のスレーブＬＳＩの「リセット型」ワードクロック同期方法と同じ動作である。
【００４８】
また、「モード０」は、マスタＬＳＩ１０からＲＴ補正部２７にワードクロックが入力されても、動作カウンタ２５にリセットをかけない動作モードである。つまり、動作カウンタ２５のカウント周期とマスタＬＳＩ１０から供給されるワードクロックの同期をとらない。これは、ＬＳＩ２０を単独又はワードクロックマスタとして使うときの動作カウンタの使い方であるから、スレーブＬＳＩではＲＴ補正部２７に「モード０」を設定することはない。
【００４９】
図３の例では、音響信号処理部４を構成するマスタＬＳＩ１０とスレーブＬＳＩ２０とがそれぞれ異なる構成（スレーブＬＳＩ２０にのみＲＴ補正部２７が備わる構成）を示したが、２つのＬＳＩ１０，２０は、それぞれ、マスタＬＳＩとスレーブＬＳＩとのいずれの働きも可能な同一構成のＬＳＩで構成されてもよい。図５は、マスタＬＳＩとスレーブＬＳＩとのいずれの働きも可能なＬＳＩの構成例を示す。図５に示す通り、ＬＳＩ４０は、処理回路４１、第１シリアルＩ／Ｏ４２、第２シリアルＩ／Ｏ４３、動作クロック発生器４４、動作カウンタ４５、制御レジスタ４６、およびＲＴ補正部４７を備える。ＬＳＩ４０を、マスタＬＳＩとして機能させるときには、ＲＴ補正部４７に動作モードパラメータとして「モード０」を設定することで、動作カウンタ４５の動作を外部のクロックに同期させない。また、動作カウンタ４５でカウントした動作クロックのカウント値に基づくワードクロックをスレーブＬＳＩに出力する。一方、ＬＳＩ４０を、スレーブＬＳＩとして機能させるときには、ＲＴ補正部４７に動作モードパラメータとして「モード１」又は「モード２」を設定して、外部（マスタＬＳＩ）から供給されたワードクロックに動作カウンタ４５のカウント周期を同期させる。
【００５０】
図６は、図１の音響信号処理装置を制御するためにＣＰＵ１が実行するメイン処理の手順の一例を示すフローチャートである。音響信号処理装置の起動時に、ＣＰＵ１は、音響信号処理部４の初期設定処理を行い（ステップＳ１）、また、音響信号処理部４以外のその他の各部の初期設定を行う（ステップＳ２）。図７は、前記ステップＳ１においてＣＰＵ１が実行する音響信号処理部４の初期設定処理の手順の一例を示すフローチャートである。図７のステップＳ６において、ＣＰＵ１は、スレーブＬＳＩ２０の制御レジスタ２６にＲＴ補正部２７の動作モードパラメータの値として「モード１」をセットする処理を行う。なお、マスタＬＳＩがＲＴ補正部を備える構成（図５の構成）の場合には、当該ステップＳ６においてマスタＬＳＩの制御レジスタ（図５において符号４６）にＲＴ補正部の動作モードパラメータの値として「モード０」をセットする。マスタＬＳＩが図３に示すようにＲＴ補正部を備えない構成であれば、当該ステップＳ６でのマスタＬＳＩに関するモード設定は不要である。
【００５１】
上記ステップＳ６によりスレーブＬＳＩ２０のＲＴ補正部２７は「モード１」で動作するよう設定される。したがって、音響信号処理装置の起動時には、スレーブＬＳＩ２０の動作カウンタ２５のカウント周期はマスタＬＳＩ１０から供給されるワードクロックに常時同期する状態になる。一方、マスタＬＳＩ１０は、外部からのクロックに同期することなく、動作カウンタ（図３において符号１５）で動作クロックを自身のカウントし、そのカウント値に基づくワードクロックをスレーブＬＳＩ２０に供給可能な状態になる。
【００５２】
ステップＳ７において、ＣＰＵ１は、マスタＬＳＩ１０からスレーブＬＳＩ２０にワードクロックが供給されるのを待つ。前記ステップＳ６によりスレーブＬＳＩ２０のＲＴ補正部２７の動作モードに「モード１」が設定されているので、マスタＬＳＩ１０からスレーブＬＳＩ２０にワードクロックが供給されると、スレーブＬＳＩ２０のＲＴ補正部２７は、マスタＬＳＩ１０からワードクロックが入力されたタイミングで動作カウンタ２５のカウント値をリセットする。これにより、スレーブＬＳＩ２０とマスタＬＳＩ１０のワードクロック位相の同期（動作カウンタ１５と動作カウンタ２５のカウントタイミングの同期）が行われる。ワードクロックは、サンプリング周期で入力（変化）するので、ステップＳ７では、最低１サンプリング周期相当の期間だけ待てばよい。
【００５３】
ステップＳ８において、ＣＰＵ１は、スレーブＬＳＩ２０の制御レジスタ２６に、ＲＴ補正部２７の動作モードのパラメータの値として「モード２」をセットするとともに、ＲＴ補正部２７に設定される閾値をセットする。これにより、スレーブＬＳＩ２０は、マスタＬＳＩ１０からワードクロックが供給されたタイミングにおける動作カウンタ２５のカウント値と、ワードクロックの１クロックに対応する動作クロックのクロック数との差が前記閾値に達するまでは、該マスタＬＳＩ１０から供給されたワードクロックに応じた動作カウンタ２５のリセットが行われないよう設定される。そして、ステップＳ９において、ＣＰＵ１は、マスタＬＳＩ１０の制御レジスタ１６とスレーブＬＳＩ２０の制御レジスタ２６とのそれぞれに所定の初期データを設定する。ここで設定される初期データは、例えばＬＳＩが楽音生成部（音源）であれば、全ての発音チャンネルに対する発音オフを指示するデータなどであり、また、例えばＬＳＩが音特性制御部（エフェクタ）であれば、波形データの出力ミュートを指示するデータなどである。
【００５４】
図６に戻ると、ＣＰＵ１は、上記ステップＳ１およびステップＳ２において初期設定を行った後、音響信号処理装置のメイン動作を行う。すなわち、ＣＰＵ１は、操作子５の操作に応じた操作データの入力や入力部８からの波形データの入力など、何らかのイベントを検出し（ステップＳ３）、イベントを検出したら（ステップＳ４のＹＥＳ）、該検出したイベントに応じた処理を実行する（ステップＳ５）。前記ステップＳ５において実行される処理は、具体的には、例えば、音響信号処理部４（マスタＬＳＩ１０，スレーブＬＳＩ２０）が１ないし複数の楽音信号生成部（ＴＧ）を含む場合には、発音を支持するイベント（ノートオン）に応じて、何れかの発音チャンネルを割り当て、レジスタに割り当てた発音チャンネルの楽音制御パラメータを設定し、同発音チャンネルに波形データの生成を開始させる処理や、音量を指示するイベント（エクスプレッション）に応じて、波形データを生成している発音チャンネルの音量パラメータの値を変更し、該波形データの音量を変化させる処理などである。また、音響信号処理部４が音特性制御部（ＴＣＣ）を含む場合には、エフェクトを選択するイベントに応じて、レジスタにその選択されたエフェクトのマイクロプログラム、アドレス、係数などを設定することにより、選択されたエフェクトの信号処理を実行させる処理や、該エフェクトのパラメータを変更するイベントに応じて、レジスタのアドレスないし係数の値を変更する処理などである。
【００５５】
音響信号処理装置のメイン動作における、マスタＬＳＩ１０とスレーブＬＳＩ２０とのワードクロック同期（マスタＬＳＩ１０のワードクロックと動作カウンタ２５のカウント周期の同期）の動作について説明する。マスタＬＳＩ１０とスレーブＬＳＩ２０には、それぞれ、Ｓ＿ＣＬＫ発生器３０から出力された同期クロックが供給される。マスタＬＳＩ１０の動作クロック発生器１４と、スレーブＬＳＩ２０の動作クロック発生器２４は、それぞれ、その同期クロックに同期した動作クロックを発生する。マスタＬＳＩ１０は、動作カウンタ１５において動作クロック発生器１４で発生した動作クロックをカウントし、該動作カウンタ１５のカウント値に同期したタイミングで該ワードクロックに同期した波形データのサンプルを処理する一方で、そのカウント値の最上位ビットであるワードクロックをスレーブＬＳＩ２０に供給する。
【００５６】
スレーブＬＳＩ２０の動作カウンタ２５は、動作クロック発生器２４発生した動作クロックをカウントする。スレーブＬＳＩ２０のＲＴ補正部２７は、前記ステップＳ８により「モード２」で動作するよう設定されているので、マスタＬＳＩ１０からのワードクロックのタイミングにおける動作カウンタ２５のカウント値（位相ずれに相当）が、前記閾値に達するまでは、該マスタＬＳＩ１０から供給されたワードクロックに応じた動作カウンタ２５のカウント値のリセットが行われない。そして、マスタＬＳＩ１０からのワードクロックのタイミングにおける動作カウンタ２５のカウント値（位相ずれに相当）が、前記閾値を越えたときに、ＲＴ補正部２７は動作カウンタ２５をリセットして、スレーブＬＳＩ２０の動作カウンタ２５のカウントタイミングをマスタＬＳＩ１０の動作カウンタ１５のカウントタイミングに一致させる。
【００５７】
図８は、ＲＴ補正部２７の閾値、すなわち、マスタＬＳＩ１０からワードクロックが供給されたタイミングにおける動作カウンタ２５のカウント値と、ワードクロックの１クロックに対応する動作クロックのクロック数とのずれとして許容する範囲を説明するためのタイミングチャートである。閾値は、ＬＳＩ１０，２０の間のデータのシリアル伝送の仕様、具体的にはワードクロックに対する各ビットデータの時間ずれの許容限度に基づき決定される。図８において（ａ）は１クロック（１周期）のワードクロックである。例えば、シリアル伝送の仕様の一例として、上述したように、マスタＬＳＩ１０およびスレーブＬＳＩ２０の動作クロックを２００ＭＨｚ程度、ＬＳＩ間のシリアル伝送クロックを約２．５ＭＨｚであり、シリアル伝送クロックの１クロックに対する動作クロックのクロック数が８０であるとする。（ｂ）はワードクロックの１クロックで波形データのサンプルがシリアル伝送される様子を示す。上記仕様のシリアル伝送では、ＬチャンネルおよびＲチャンネルの２チャンネルステレオ波形データ（ステレオ信号）のサンプルをそれぞれ２０ビットずつシリアル伝送する（最大２６ビットずつ伝送可能）。また（ｂ）に示す通り、ワードクロックの半周期以内にステレオ信号の１チャンネル分のデータが伝送されるようになっており、ワードクロックの立ち上がり及び立ち下がりのタイミングが各チャンネルのデータの先頭を示している。
【００５８】
シリアル伝送の仕様の一例として、シリアル伝送における各ビットデータの時間ずれの許容限度を２５％とすると、図８（ｃ）に示すマスタＬＳＩ１０のシリアル伝送クロックに対して、スレーブＬＳＩ１０のデータ伝送タイミングに２５％進んだ時間ずれがある場合、（ｄ）に示すように、スレーブＬＳＩ２０では、波形データのサンプルの伝送開始タイミングはワードクロックの立ち上がりと立下りに対して２５％分早くなる。反対に、２５％遅れた時間ずれがある場合、（ｅ）に示すように、スレーブＬＳＩ２０では、波形データのサンプルの伝送開始タイミングはワードクロックの立ち上がりと立下りに対して２５％分遅くなる。いずれにせよ、許容限度の範囲内ならば、マスタＬＳＩ１０とスレーブＬＳＩ２０との間で波形データのシリアル伝送は行うことができる。シリアル伝送における各ビットデータの時間ずれを動作クロックで表現すると、ここで述べている例ではシリアル伝送クロックの１クロックに対する動作クロックのクロック数を８０としているので、シリアル伝送における各ビットデータの２５％の時間ずれは、動作クロックの２０クロック分に相当する。従って、（ｄ）及び（ｃ）に示された時間ずれは、それぞれワードクロックのタイミングに対するスレーブＬＳＩの動作クロックの２０クロック分の進み又は遅れに相当する。なお、図８（ｃ）、（ｄ）及び（ｅ）の時間軸は、（ａ）及び（ｂ）の時間軸を約５０倍に拡大したものとなっている。
【００５９】
よって、シリアル伝送における各ビットデータの時間ずれ許容限度（２５％）に対応する動作クロックのクロック数「２０クロック」を、ＲＴ補正部２７の閾値に設定することことにより、この実施例のようにワードクロックの１クロックに対する動作クロックのクロック数を「４０９６」とする場合には、ずれカウント値の上限値は「＋２０」（カウント値の「２０」に相当）、下限値は「−２０」（カウント値の「４０７６」に相当）となる。動作カウンタ２５のカウント値の位相と動作カウンタ１５のカウント値の位相ずれを閾値分だけ許容し、該閾値分のずれの範囲ならば、動作カウンタ２５のカウント周期とマスタＬＳＩ１０から供給されるワードクロックとの同期がとれているものと見なす。これにより、マスタＬＳＩ１０からのワードクロックのタイミングにおける動作カウンタ２５のカウント値が「４０７６」〜「４０９５」又は「０」〜「２０」の範囲（ずれカウント値の「−２０」〜「＋２０」の範囲に相当）内であれば、ワードクロックのタイミングに応じた動作カウンタ２５のリセットを行わないようになり、動作カウンタ２５のリセットによって生じる波形データの品質劣化を防止することができる。そして、ＲＴ補正部２７は、マスタＬＳＩ１０からのワードクロックのタイミングにおける動作カウンタ２５のカウント値が、「２１」〜「４０７５」の範囲（ずれカウント値の「−２１」以下又は「＋２１」以上の範囲に相当）であれば、マスタＬＳＩ１０からのワードクロックのタイミングで動作カウンタ２５のカウント値をリセットすることで、動作カウンタ２５のカウント値の位相をマスタＬＳＩ１０の動作カウンタ１５のカウント値の位相に合わせる。
【００６０】
このように本実施例によれば、スレーブＬＳＩ２０にＲＴ補正部２７を設けることにより、マスタＬＳＩ１０からのワードクロックのタイミングにおける動作カウンタ２５のカウント値（位相ずれに相当）が、閾値に応じた範囲から外れるときだけ、ワードクロックのタイミングに動作カウンタ２５をリセットする、つまり、スレーブＬＳＩ２０の動作カウンタ２５のカウント値の位相と、マスタＬＳＩ１０の動作カウンタ１５のカウント値の位相との差が、閾値を越えない限り動作カウンタ２５をリセットしないよう構成することで、ＬＳＩ間のシリアル伝送の信頼性を確保しつつ、動作カウンタ２５のリセットによって生じる波形データの品質が劣化することを防止することができる。
【００６１】
マスタＬＳＩ１０の動作クロックもスレーブＬＳＩ２０の動作クロックも、互いに同じ同期クロックに同期しているクロックであるから、理想的には、マスタＬＳＩ１０とスレーブＬＳＩ２０とは同じ動作クロックで動作する。しかし、実際には、動作クロック発生器１４、２４において同期クロックを逓倍してそれぞれの動作クロックを生成していることから、マスタＬＳＩ１０とスレーブＬＳＩ２０との動作クロックの間には「わずかな周波数ずれ」が生じる。そして、このスタＬＳＩ１０とスレーブＬＳＩ２０との動作クロックの間の「わずかな周波数ずれ」のために、動作カウンタ１５のカウント値と動作カウンタ２５のカウント値の間には位相差が生じる。しかし、マスタＬＳＩ１０の動作クロックもスレーブＬＳＩ２０の動作クロックも、同じ同期クロックに同期しているクロックであるから、それだけの要因であれば、その位相差は、それ程大きくなることはなく、ＲＴ補正部２７による動作カウンタ２５のリセットは起こらない。より大きな位相差が生じるそれ以外の要因としては、例えば突発的なノイズ、信号の飛びつき、電磁波などが考えられる。これら要因により、動作カウンタ１５のカウント値と動作カウンタ２５のカウント値の間に閾値以上の位相差が生じた場合は、ＲＴ補正部２７が、ワードクロックのタイミングで動作カウンタ２５をリセットし、その位相差を解消する。しかしながら、このような要因が生じることは極めて希である。よって、本発明の音響信号処理装置によれば、動作カウンタ２５のリセットによって波形データが品質劣化することを、実質的になくすることができる。
【００６２】
なお、前記図３の音響信号処理部４は、シリアル接続された２つのＬＳＩ１０，２０のうちで、波形データの入力部８に接続されたＬＳＩ１０をワードクロックのマスタＬＳＩとし、出力部９に接続されたＬＳＩ２０をワードクロックのスレーブＬＳＩとする接続例を示したが、図９（ａ）のように、シリアル接続された２つのＬＳＩ４８，４９のうちで、波形データの入力部８に接続されたＬＳＩ４８をワードクロックのスレーブＬＳＩとし、波形データの出力部９に接続されたＬＳＩ４９をワードクロックのマスタＬＳＩとすることもできる。つまり、マスタＬＳＩは、図３のように波形データの経路の上流にあってもよいし、図９（ａ）のように波形データの経路の下流にあってもよい。
【００６３】
また、３つ以上のＬＳＩをシリアル接続した場合は、複数のＬＳＩのいずれか１つがマスタＬＳＩとなり、残りがスレーブＬＳＩとなる。図９（ｂ）に３つ以上のＬＳＩをシリアル接続した場合の接続例を示す。図９（ｂ）においては、シリアルに接続された４つのＬＳＩ５０、５１、５２、および５３のうち、ＬＳＩ５１がマスタＬＳＩとなり、スレーブＬＳＩ５０、５２、および５３にワードクロックを供給する。この場合、スレーブＬＳＩ５０、及び５２とマスタＬＳＩ５１とのシリアル伝送は、前述の２つのＬＳＩをシリアル接続する接続例と同様にマスタＬＳＩとスレーブＬＳＩとの間のシリアル伝送であるが、スレーブＬＳＩ５２とスレーブＬＳＩ５３との間では、スレーブＬＳＩ同士で波形データのシリアル伝送を行う。このようにスレーブＬＳＩ同士で波形データをシリアル伝送する場合には、マスタＬＳＩと直接波形データをシリアル伝送する場合よりも、ワードクロックに対する各ビットデータの時間ずれの許容限度が狭くなるので、ＲＴ補正部に設定する閾値をマスタＬＳＩとスレーブＬＳＩとでシリアル伝送する場合の閾値の半分に設定する。すなわち、ワードクロックの１クロックに対する動作クロックのクロック数を４０９６、シリアル伝送における各ビットデータの時間ずれ許容限度が２５％とすると、スレーブＬＳＩ同士で波形データをシリアル伝送する場合には、ＲＴ補正部に設定する閾値は動作クロックのクロック数「１０クロック」である。その場合、マスタＬＳＩからのワードクロックのタイミングにおける動作カウンタ２５のカウント地位が、「４０８６」〜「４０９５」又は「０」〜「１０」の範囲（ずれカウント値「−１０」〜「＋１０」の範囲に相当）内にあれば、動作カウンタ２５のリセットを行わない。このように、スレーブＬＳＩ同士で波形データをシリアル伝送する場合には、ＲＴ補正部に小さな閾値（１／２の閾値）を設定して、小さなずれで動作カウンタ２５のリセットがかかるようにする。
【００６４】
なお、上記実施例では、音響信号処理部４の初期設定処理として、図７のステップＳ６でＲＴ補正部２７の動作モードとして「モード１」をセットし、ワードクロックのタイミングと動作カウンタ２５のカウント動作を同期させてから（ステップＳ７）、ステップＳ８においてＲＴ補正部２７の動作モードとして「モード２」モード２をセットするものとした。しかかし、この処理は、ＲＴ補正部２７の動作モードを切り替える処理によって実現する方法に限らず、ステップＳ６においてＲＴ補正部２７の閾値として「０」をセットすることで実質的にモード１と同じ動作（常時同期）を行ってから、ステップＳ８で実質的な閾値、すなわちシリアル伝送における各ビットデータの時間ずれの許容限度に対応する値をセットするよう構成することもできる。また、この信号処理部４の初期設定のための制御は、上記実施例のようにＣＰＵ１の制御によって実行されるのではなく、スレーブＬＳＩの起動時にＲＴ補正部の閾値切り替え処理を含む初期設定用のマイクロプログラムをスレーブＬＳＩに実行させることで、スレーブＬＳＩで自動的に行ってもよい。
【００６５】
また、上記実施例では、各ワードクロックのタイミングで、カウントタイミングのずれを閾値と比較し、比較結果に応じてリセットを行うようになっていたが、比較とリセ宇ットとを異なるワードクロックのタイミグで行うようにしてもよい。例えば、あるワードクロックで、カウントタイミングのずれを閾値と比較し、その比較結果に応じて、次のワードクロックのタイミングでリセットを行うようにしてもよい。
【００６６】
また、上記実施例におけるサンプリング周波数、同期クロック、動作クロック、シリアル伝送クロックの各周波数、動作クロック発生器１４、２４の逓倍数、およびシリアル伝送クロックを生成する際の分周比は、一例に過ぎず、それぞれ異なる値で設計できる。また、シリアル伝送における各ビットデータの時間ずれの許容限度も一例であり、シリアル伝送回路や動作条件によって異なる。
【図面の簡単な説明】
【００６７】
【図１】この発明の一実施形態に係る音響信号処理装置の一例を示すブロック図。
【図２】（ａ）〜（ｃ）は図１の音響信号処理装置に備わる音響信号処理部の処理内容の具体例を説明する図。
【図３】音響信号処理部を構成する複数の集積回路（ＬＳＩ）の構成例を示すブロック図。
【図４】前記図３の動作クロック発生器の詳細な構成例を示すブロック図。
【図５】音響信号処理部を構成する複数の集積回路の別の構成例を示すブロック図。
【図６】音響信号処理装置のメイン処理の手順の一例を示すフローチャート。
【図７】音響信号処理部の初期設定処理の手順の一例を示すフローチャート。
【図８】ワードクロックとシリアル伝送クロック（動作クロック）の時間ずれの関係を説明するタイミングチャート。
【図９】（ａ）及び（ｂ）は音響信号処理部を構成する複数の集積回路の接続例のバリエーションを説明する図。
【符号の説明】
【００６８】
１  ＣＰＵ、２  フラッシュメモリ、３  ＲＡＭ、４  音響信号処理部、５  操作子、６  表示器、７  通信Ｉ／Ｏ、８  入力部、９  出力部、１０  マスタＬＳＩ、１１  処理回路、１２，１３  シリアルＩ／Ｏ、１４  動作クロック発生器、１５  動作カウンタ、１６  制御レジスタ、２０  スレーブＬＳＩ、２１  処理回路、２２，２３  シリアルＩ／Ｏ、２４  動作クロック発生器、２５  動作カウンタ、２６  制御レジスタ、２７  リセットタイミング補正部、３０  同期クロック発生器
【図１】
2010039265.tif 000003
【図２】
2010039265.tif 000004
【図３】
2010039265.tif 000005
【図４】
2010039265.tif 000006
【図５】
2010039265.tif 000007
【図６】
2010039265.tif 000008
【図７】
2010039265.tif 000009
【図８】
2010039265.tif 000010
【図９】
2010039265.tif 000011