JP3846388B2 - Waveform data processor - Google Patents

Waveform data processor Download PDF

Info

Publication number
JP3846388B2
JP3846388B2 JP2002266878A JP2002266878A JP3846388B2 JP 3846388 B2 JP3846388 B2 JP 3846388B2 JP 2002266878 A JP2002266878 A JP 2002266878A JP 2002266878 A JP2002266878 A JP 2002266878A JP 3846388 B2 JP3846388 B2 JP 3846388B2
Authority
JP
Japan
Prior art keywords
frame
transmission
node
data
waveform data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002266878A
Other languages
Japanese (ja)
Other versions
JP2004102136A (en
Inventor
和久 岡村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP2002266878A priority Critical patent/JP3846388B2/en
Priority to US10/655,386 priority patent/US7220908B2/en
Priority to DE60321520T priority patent/DE60321520D1/en
Priority to EP03103300A priority patent/EP1400949B1/en
Priority to CNB031570860A priority patent/CN100512184C/en
Priority to CNU032094949U priority patent/CN2696075Y/en
Publication of JP2004102136A publication Critical patent/JP2004102136A/en
Priority to US11/450,162 priority patent/US7459625B2/en
Application granted granted Critical
Publication of JP3846388B2 publication Critical patent/JP3846388B2/en
Priority to US12/038,778 priority patent/US20080156175A1/en
Priority to US12/959,249 priority patent/USRE43076E1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)
  • Small-Scale Networks (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、楽音処理デバイス間の接続に用いて好適な波形データ処理装置に関する。
【0002】
【従来の技術】
電子楽器、あるいはパーソナルコンピュータ等に搭載される音源ボードには、楽音信号を処理する複数のLSIが搭載され、これらLSI間に楽音信号を送受信するための結線が接続されることにより、必要な機能が実現されている。ここで、電子楽器に実装される音源ボードの一例を図1(a)に示す。図において100は音源ボードであり、音源LSI102,104が実装されている。音源LSI102,104には、複数チャンネルの楽音信号を生成する波形合成部およびこれら複数チャンネルの楽音信号を必要に応じてミキシングするミキサ等が含まれている。また、106,108はDSP(デジタル・シグナル・プロセッサ)であり、生成された楽音信号に対して各種の効果処理を施す。
【0003】
効果処理が施された楽音信号は再び音源LSI102,104に供給される。また、音源LSI102,104はこれら音源LSI相互間においても楽音信号のやりとりを行っている。そして、最終的に出力される楽音信号は、音源LSI104からDAコンバータ110に供給され、ここでアナログ信号に変換される。また、114はオプションとして追加できるプラグインボードであり、追加の波形合成部あるいはDSP等が搭載される。このプラグインボード114は、必要に応じてコネクタ112に装着される。
【0004】
また、音源ボードの他の構成を同図(b)に示す。図において120は他の音源ボードであり、その内部の音源LSI122,124は、それぞれ複数チャンネルの楽音信号を合成する。合成された楽音信号は音源LSI122,124内のミキサによってミキシングされ、そのミキシング結果である楽音信号がDSP126,128に供給される。また、DSP126,128においては、供給された楽音信号に対して効果処理が施される。ここで、DSP126において効果処理の施された楽音信号は、DSP128に供給される。また、コネクタ132にプラグインボード134が装着されている場合には、このプラグインボード134において生成された楽音信号もDSP128に供給される。DSP128においては、これらの信号がさらにミキシングされ、そのミキシング結果はDAコンバータ130においてアナログ信号に変換される。
【0005】
ところで、図1(a),(b)の例にあっては、音源ボード100,120において使用されている音源LSIおよびDSPが全く共通のものであったとしても、これらの接続状態が異なるため、音源ボード100,120自体は互換性を有しない。換言すれば、音源ボードに発揮させようとする機能に応じて、音源ボードの種類毎にハードウエアを設計/製造しなければならならなかった。
【0006】
一方、複数のノードのハードウエア的な接続状態を共通にしながら、最終的に必要な機能に応じて信号の受け渡し状態を設定し、論理的な接続関係を設定する技術が知られている。例えば、IEEE1394インタフェース上においてシンセサイザやデジタルミキサなどの電子楽器・機器およびコンピュータ等を、シリアルケーブルによって接続し、楽音信号や演奏情報の受け渡しを行うmLAN(商標)なる規格を本出願人は提案している。また、特許文献1においては、共通のバス上にADコンバータ、ハードディスク、波形メモリを接続し、これらのノード間において波形データ等の受け渡しを時分割に行う技術が開示されている。
【0007】
【特許文献1】
特開平5−188967号公報
【0008】
【発明が解決しようとする課題】
上述したように、図1(a),(b)の例にあっては音源ボード100,120は互換性を有しないため、音源ボード毎の種類毎にハードウエアを設計/製造しなければならず、設計費用が多大になるとともに、大量生産によるコストダウンを図ることが困難になる。このため、例えば図1(c)に示すように共通のバス156上に音源LSI142,144、DSP146,148、DAコンバータ150および(コネクタ152を介して)プラグインボード154を接続できれば好適である。すなわち、ハードウエア的な接続関係を共通にしておき、論理的な接続関係を必要に応じて設定できれば、図1(c)の音源ボードは例えば同図(a)または(b)に示す音源ボードと共通の機能を発揮することができる。
【0009】
この場合、バス156に各LSIを接続するための規格として如何なるものを採用するかが重要である。上述したmLAN(商標)は、シンセサイザやデジタルミキサ等の独立した機器をノードとすることを想定しているため、信号の構成が複雑であり、個々のLSIをその規格に適合させることは実現性に乏しい。また、特許文献1に開示された技術は、当該公報に示されたノード間においては波形データ等の受け渡しは可能であるが、様々な種類のノードに対して一般的・汎用的に採用できるものではなかった。
この発明は上述した事情に鑑みてなされたものであり、簡易な回路によって高い汎用性を確保できる波形データ処理装置を提供することを目的としている。
【0010】
【課題を解決するための手段】
上記課題を解決するため本発明にあっては、下記構成を具備することを特徴とする。なお、括弧内は例示である。
請求項1記載の波形データ処理装置にあっては、サンプリング周期毎に時分割で複数タイムスロットのデータ信号(ADAT)の転送を行うためのデータ転送バス(262)と、前記データ転送バス(262)に対して前記データ信号を送信する複数の送信ノード(15,16,17)と、前記データ転送バス(262)から前記データ信号を受信する少なくとも一つの受信ノード(15,16,17)と、前記各送信ノードに対して、各々異なる送信フレームの番号とユニット数とを設定するとともに、前記受信ノードに対して、前記送信フレームのうち何れかに等しい受信フレームの番号を前記受信ノードに対して設定する制御手段(212)と、を具備し、前記各送信ノードは各サンプリング周期毎に、設定された送信フレームの番号が示すフレームを検出し、検出されたフレームにおいて前記設定されたユニット数の波形データを前記データ転送バス(262)に供給するものであり、前記受信ノードは各サンプリング周期毎に、設定された受信フレームの番号が示すフレームを検出し、検出されたフレームにおいて前記設定されたユニット数の波形データを受信するものであり、前記各送信ノードが送信するフレームのサイズは、当該送信ノードに設定された前記ユニット数に応じて増減することを特徴とする。
さらに、請求項2記載の構成にあっては、請求項1記載の波形データ処理装置において、前記複数の送信ノードは、前記データ転送バス(262)にワイヤードオア形式で接続されていることを特徴とする。
さらに、請求項3記載の構成にあっては、請求項1または2に記載の波形データ処理装置において、前記複数の送信ノードは、それぞれ前記データ信号を前記データ転送バス(262)に出力する際、同時に、当該送信ノードが送信を行うフレームであることを示すフレーム信号を前記データ転送バス(262)に出力するものであり、各々の前記送信ノードは、前記複数の送信ノードがそれぞれ前記データ転送バス(262)に出力した該フレーム信号をカウントすることによりフレーム番号を特定し、該フレーム番号の示す順番のフレームを検出するものであり、各々の前記受信ノードは、前記複数の送信ノードがそれぞれ前記データ転送バス(262)に出力した該フレーム信号をカウントすることによりフレーム番号を特定し、該フレーム番号の示す順番のフレームを検出するものであることを特徴とする。
さらに、請求項記載の構成にあっては、請求項1記載の波形データ処理装置において、前記制御手段(212)は、前記データ転送バス(262)に接続された各送信ノードの種別を検出し、その検出結果に基づいて各送信ノードの前記送信フレームの番号とユニット数とを設定することを特徴とする。
さらに、請求項記載の構成にあっては、請求項1記載の波形データ処理装置において、前記制御手段(212)は、前記データ転送バス(262)に接続された受信ノードの種別を検出し、その検出結果に基づいて該受信ノードの前記受信フレームの番号を設定することを特徴とする。
さらに、請求項記載の構成にあっては、請求項1記載の波形データ処理装置において、ユーザからのユーザ指示を受信する指示入力部(206)をさらに具備し、前記制御手段(212)は、該ユーザ指示に応じて少なくとも一つの送信ノードの前記送信フレームの番号およびユニット数、または前記受信ノードの受信フレームの番号を設定することを特徴とする。
さらに、請求項記載の構成にあっては、請求項1記載の波形データ処理装置において、ユーザからの指示に応じて動作モードを指定する指示入力部(206)をさらに具備し、前記制御手段(212)は、指定された動作モードに応じて前記複数の送信ノードそれぞれの前記送信フレームの番号およびユニット数と、前記受信ノードの前記受信フレームの番号とを設定することを特徴とする。
さらに、請求項記載の構成にあっては、請求項1記載の波形データ処理装置において、ユーザからの指示に応じて前記各送信ノードおよび前記受信ノード間の論理的な結合状態を指定する指示入力部(206)をさらに具備し、前記制御手段(212)は指定された結合状態と前記複数の送信ノードの各送信フレームの番号とに応じて前記受信ノードにおける受信フレームの番号を設定することを特徴とする。
さらに、請求項記載の構成にあっては、請求項1記載の波形データ処理装置において、前記制御手段(212)は、前記波形データ処理装置が実装されるシステムの種別を検出し、その検出結果に基づいて前記複数の送信ノードの各送信フレームの番号およびユニット数と、前記受信ノードの前記受信フレームの番号とを設定することを特徴とする。
さらに、請求項10記載の構成にあっては、請求項1記載の波形データ処理装置において、前記制御手段は、前記受信ノードに対し、前記受信フレームの番号に加えて、該受信フレーム内の受信すべき波形データを示すユニット番号を設定し、前記受信ノードは、設定されたフレーム番号に応じて、前記検出されたフレーム内の受信すべきデータを検出し、検出された波形データを選択的に受信することを特徴とする。
【0011】
【発明の実施の形態】
1.実施形態の一般的構成
1.1.全体構成
次に、本発明の一実施形態の楽音合成装置のハードウエア構成を図2を参照し説明する。図において202はMIDI・I/O部であり、外部のMIDI機器との間でMIDI信号の入出力を行う。MIDI・I/O部202には、例えば鍵盤、その他の演奏操作子が接続され、その演奏情報がMIDI信号として入力される。204はその他I/O部であり、MIDI信号以外の各種の信号の入出力を行う。206はパネルスイッチ部であり、ユーザによって操作される各種の音色設定操作子等が設けられている。
【0012】
250は音源部であり、後述する処理によって楽音信号を合成する。208は表示器であり、音源部250の設定状態等、ユーザに対して各種の情報を表示する。210は外部記憶装置であり、ハードディスク、フレキシブルディスク等から構成されている。212はCPUであり、所定の制御プログラムに基づいて、CPUバス218を介して楽音合成装置の各部を制御する。214はROMであり、CPUの制御プログラム等が記憶されている。216はRAMであり、CPU212のワークメモリとして用いられる。
【0013】
また、音源部250の内部において252,254は音源LSIであり、CPUバス218を介して供給される演奏情報および発音パラメータ等に基づいて波形データを生成するとともに、同様に供給されるエフェクトパラメータ等に基づいて、当該波形データにエフェクト処理を施す。256,258,260は増設ボードであり、その種類に応じて波形データの合成処理、エフェクト処理、記録処理等、各種の処理を行い、音源LSI252,254とともに音源部250に所期の機能を実現させるものである。
【0014】
262は波形データ転送用のバス(以下、Aバスという)であり、音源LSI252,254および増設ボード256,258,260間において波形データを転送する。一般に、通信ネットワークにおいては、送信すべきデータに送信先アドレス、送信チャンネル等の情報等を含むヘッダが付与されることによってパケットが構成され、当該パケットが送信される場合が多い。また、複数の送信ノードが同時に送信を開始した際の送信データの衝突を避けるため、ネットワークにノードの識別子やアドレスに基づいて調停を行う機構が設けられている。このようなネットワークと比較すると、このAバス262は、送信先アドレス、送信チャンネル等の付与されていない波形データのみが伝送されるため、送信クロックあたりの伝送効率を極めて高くすることができる。また、Aバス262に接続された各送信ノードにAバス262とは異なるバス(CPUバス218)を介して接続された制御手段(CPU212)が、各送信ノードに対して異なる送信タイミングを設定することによって衝突が防止されている。Aバス262自体には調停機能が設けられていないため、従来のネットワークと比較して構成が極めて簡単になっている。
【0015】
また、音源LSI252,254相互間においては転送される波形データ量が多いため、一部の波形データは直結ライン253を介して伝送される。264はDAコンバータであり、音源LSI252の一部の出力チャンネルの波形データをアナログ信号に変換する。変換されたアナログ信号はサウンドシステム220を介して発音される。
【0016】
251はワードクロック発生器であり、サンプリング周期毎に立ち上がるワードクロックWCKを生成する。このワードクロックWCKは、音源部250内の各部に供給される。268はワードクロック外部入力端子であり、該ワードクロック発生器251が発生するワードクロックWCKに代えて、外部からワードクロックWCKを受信するために設けられている。これは、外部機器とサンプリング周期を同期させる場合に用いられる。
【0017】
なお、上述した各構成のうち、CPUバス218またはAバス262等のバスと、MIDI・I/O部202と、その他I/O部204と、CPU212と、ROM214と、RAM216と、ワードクロック発生器251と、音源LSI252,254,DAコンバータ264等の半導体回路と、外部記憶装置210接続用のインタフェース(図示せず)と、CPUバス218にパネルスイッチ部206および表示器208を接続するためのコネクタ(図示せず)と、増設ボード256,258,260を接続するコネクタ(図示せず)と、全体に電源を供給する電源回路(図示せず)とによって本実施形態の「音源ボード」が構成されている。増設ボード256,258,260用のコネクタはCPUバス218とAバス262との双方に接続されており、これら増設ボードはこれらコネクタを介して、「音源ボード」に対して着脱自在に構成されている。
【0018】
1.2.バス構成およびタイミング
音源LSI252,254および増設ボード256,258,260等、Aバス262を介して波形データを入出力する構成要素を「ノード」と呼ぶ。各ノードとAバス262との接続関係を図3に示す。図においてAバス262は、データ信号線10と、各1ビットのクロック信号線11、方向信号線12およびフレーム信号線13とから構成されている。データ信号線10のビット幅は16ビットあるいは4ビットのうち何れも選択可能であり、一部のみ4ビット幅にすることも可能である。15,16,17は各々ノードであり、具体的には上述した音源LSI252,254あるいは増設ボード256,258,260等によって構成される。
【0019】
これらノードにおいては、Aバス262に対して、データ信号ADAT、方向信号ADIRおよびクロック信号ACLKが入出力される。これらの各信号の入出力端は、ワイアードオア形式でAバス262に接続されている。換言すれば、何れかのノードから“0”信号が出力されていない限り、Aバス262上の当該信号は必ず“1”になる。そして、これらノードのうち何れか一つのノードがデータ信号ADAT等の信号を出力しているタイミングにおいては、他のノードの入出力端はハイインピーダンス状態に設定され、必要に応じて該一つのノードの出力信号が受信される。ここで、データ信号ADATはノード間で受け渡しすべき波形データ等の信号である。また、クロック信号ACLKはデータ信号ADATに同期するクロック信号である。
【0020】
データ信号ADATおよびクロック信号ACLKを出力すべき期間は、CPU212により各ノード毎に重複しないように設定されている。この期間を「フレーム」と呼ぶ。方向信号ADIRは、このフレーム期間中“0”に設定され、これによって他のノードに対して信号出力を禁止する。また、各ノードにおいては、方向信号ADIRが“1”に立上がるよりもクロック信号ACLKの1クロック相当だけ早く立上がるフレーム信号AFRMも出力される。各ノードに割り当てられるフレームは、「ワードクロックWCKが立ち上がった後の何回目のフレームか」によって定義される。従って、各ノードにおいては、ワードクロックWCKが立ち上がった後、フレームが何回発生したかをカウントすることにより(具体的にはフレーム信号AFRMの立上がり回数をカウントすることにより)、自ノードのフレームの開始タイミングを認識することができる。
【0021】
ここで、ワードクロックWCKの立上がり後に発生する順序によって、各フレームをフレーム#0、フレーム#1、フレーム#2、……のように表記することとする。各ノードに対しては、1サンプリング周期内に一または複数の送信フレームを割り当てることができる。ここで、送信フレームとして、ノード15にフレーム#2、ノード16にフレーム#0、ノード17にフレーム#1が割り当てられた場合におけるタイミングチャートを図4および図5を参照し説明する。
【0022】
図4(a)の時刻t0においてワードクロックWCKが立上ると、その旨が各ノード15,16,17によって検知される。そして、フレーム#0が割り当てられたノード16においては、時刻t0から所定時間経過した時刻t1に方向信号ADIRおよびフレーム信号AFRMが“0”に立下げられる。そして、クロック信号ACLKが所定のクロック周期毎に立上げられ、これに同期してデータ信号ADATがデータ信号線10のビット幅(ここでは16ビット)毎に出力される。
【0023】
時刻t2においてノード16からのデータ出力が終了すると、ノード16により方向信号ADIRが“1”に立上げられる。なお、時刻t2よりもクロック信号ACLKの1周期前にフレーム信号AFRMが“1”に立上げられる。ノード17においては、このAバス262上のフレーム信号AFRMの1回めの立上がりが検出されると、次のフレームが自ノードに割り当てられたフレーム#1であることが認識される。
【0024】
そして、方向信号ADIRが立上がった後、所定のマージン時間を経た時刻t3において、上述したノード16と同様にノード17が動作する。すなわち、ノード17の方向信号ADIRおよびフレーム信号AFRMが“0”に立下げられ、クロック信号ACLKが所定のクロック周期毎に立上げられ、これに同期してデータ信号ADATがデータ信号線10に出力される。なお、フレーム間のマージン時間は、データの衝突を避けるために設けられたものである。
【0025】
次に、ノード17によってフレーム信号AFRMが“1”に立上げられると、その旨がノード15によって検知される。これはワードクロックWCKが立上がった後のフレーム信号AFRMの2回めの立上がりであるから、ノード15においては、次のフレームが自ノードに割り当てられたフレーム#2であることが認識される。そして、時刻t4においてノード17の方向信号ADIRが“1”に立上がった後、所定のマージン時間を経た時刻t5において、上述したのと同様の出力処理がノード15において実行される。
【0026】
上記例においては、各ノードに1フレームづつフレームを割り当てたが、1サンプリング周期内に複数の送信フレームを一つのノードに割り当ててもよい。このように、全てのフレームからの出力処理が終了すると、次にワードクロックWCKが立上がるまで、Aバス262の各線はハイインピーダンス状態に保たれる。ここで、図4(a),(b),(c)に示された波形のワイアードオア、すなわちAバス262上に実際に現れる波形を図5に示しておく。
【0027】
本実施形態においては、クロック信号ACLKのクロック周期およびクロック数は各ノード毎に任意に設定できる。換言すれば、各ノードにおいては、他のノードに対して送信しようとするデータ量およびデータ信号線10のビット幅に応じて、1フレーム内のクロック数が設定される。また、データを送信するノード(以下、送信ノードという)と、データを受信する一または複数のノード(以下、受信ノードという)の処理速度のうち最も遅いノードに合せて、クロック周期を決定するとよい。
【0028】
1.3.データ信号のフォーマット
上述したように、データ信号線10のビット幅は16ビットあるいは4ビットのうち何れも選択可能であり、一部のみ4ビット幅にすることも可能である。4ビット幅を採用すると、データ転送速度は遅くなるが、配線数を少なくすることができる。これによってコネクタ等のコストダウンが可能になるため、例えばコネクタが必要な増設ボード256,258,260の部分のみ4ビット幅を採用することが考えられる。
【0029】
かかる場合に、データ信号線10の16ビット幅の部分に接続されている送信ノードが16ビット幅の受信ノードおよび4ビット幅の他の受信ノードの双方に対してデータを出力する場合には、各受信ノードに応じたビット幅でデータを出力する必要がある。その場合、対応する受信ノード毎に複数のフレームを当該送信ノードに割り当てると、これらフレーム毎にビット幅を変更しつつ波形データを送信することができる。
【0030】
また、双方の受信ノードに対して波形データを送信する場合であっても、必ずしも複数のフレームに分割する必要は無く、タイムスロット毎にビット幅を設定してもよい。すなわち、1フレーム内の一部のタイムスロットにおいては16ビット幅でデータを出力し、他のタイムスロットにおいては4ビット幅でデータを出力してもよい。この場合、各受信ノードにおいては、1フレーム内において自ノードが必要とするタイムスロットが認識され、それぞれ対応するビット幅のデータ信号が受信されることになる。
【0031】
本実施形態において、ノード間で受け渡しされるデータのデータ幅は、基本的には32ビットであることとしている。この32ビットの単位を本明細書では「1ユニット」という。すなわち、1ユニットのデータは、データ信号線10が16ビット幅である場合は2(=32/16)タイムスロット、4ビット幅である場合は8(=32/4)タイムスロットを費やして出力される。各々のビット幅に対する各ビットの配列を図6(a),(b)に示す。この1タイムスロットあたりに伝送されるデータの単位(16または4ビット)を本明細書では「1ワード」と呼ぶ。なお、データ信号線10の16ビット幅の部分に接続されている送信ノードが4ビット幅の部分に接続されている受信ノードにデータを伝送する場合には、データ信号線10の上位4ビットのみが使用され、下位12ビットは常に“0”に設定される。
【0032】
一般的に、電子楽器においては複数チャンネルの楽音信号の生成等の処理が可能である。1フレーム内にノード間で複数ユニットのデータを送受信することが可能であるから、例えば1ユニットを1チャンネル分のデータに割り当てると、ユニットに相当するチャンネルの最大32ビットの波形データをノード間で受け渡しすることが可能になる。また、1ユニットにステレオのLチャンネルとRチャンネルを割り当て、L,Rチャンネルの各16ビット波形データを詰め込んでもよい。あるいは、1ユニットに独立した2チャンネルを割り当てるようにしてもよい。各フレームの長さは、当該フレームで送信すべき波形データのチャンネル数ではなく、その送信すべきチャンネルを割り当てたユニットの数に応じて決定される。
【0033】
1.4.各ノードの一般的構成
次に、各ノードの一般的構成を図7を参照し説明する。図において304はバッファアンプであり、ノード300の入出力信号をバッファリングする。306はタイムスロット変換部であり、ノード300の受信信号のタイムスロット変換を行う。なお、その詳細については後述する。
【0034】
ここで、元々のデータ信号ADATにあっては、図6において説明したように各ビットが配列されている。タイムスロット変換部306から出力されるデータ信号ADAT’も同様である。400は受信部であり、これらのビットを通常の1ユニット(32ビット)毎のビット列に変換する。320は波形処理部であり、各ノードに応じた様々な波形処理を行う。具体的には、音源処理、ミキサ処理、エフェクト処理、AD変換、DA変換、LAN用の通信処理、ハードディスクレコーディング等が挙げられる。
【0035】
450は送信部であり、波形処理部320の出力データのビット配列を図6において説明したように変換し、その結果をデータ信号ADATとして出力するとともに、クロック信号ACLK、フレーム信号AFRMおよび方向信号ADIRをバッファアンプ304を介して出力する。470は制御レジスタであり、ノード300に対する各種の制御データやマイクロプログラム等が記憶される。制御レジスタ470の内容は、CPUバス218を介して、CPU212によって設定される。302は動作クロック発生部であり、ノード300のシステムクロックを生成するとともに、これを分周してデータ出力用のクロック信号ACLK等を生成する。Aバス262に接続される各ノードは、それぞれ自ノードの動作クロック発生部302の発生する動作クロック(個別動作クロック)に基づいて動作するが、他ノードの動作クロック発生部から動作クロック(共通動作クロック)の供給を受けることによって動作するようにしてもよい。
【0036】
制御レジスタ470に記憶される制御データの中には、ノード300に対して割り当てられるフレーム番号、クロック信号ACLKの周期およびクロック数、波形処理部320に対するパラメータ等が含まれる。490はパラメータROMであり、当該ノード300の種別、送受信可能なチャンネル数、受信および送信レートの最高速度等のパラメータが記憶されている。パラメータROM490の内容は、楽音合成装置の電源投入時にCPU212によって読み出される。
【0037】
なお、図7の構成は各ノードにおける一般的な構成であるため、ノードの種類によっては図示の構成要件の一部を有しない場合もある。例えば、ノード300が音源あるいはADコンバータ等である場合、他のノードから波形データ等を受信する必要が無いため、タイムスロット変換部306および受信部400は設けられない。また、ノード300がDAコンバータ等である場合には他のノードに波形データ等を送信する必要が無いため、送信部450は設けられない。
【0038】
1.4.1.タイムスロット変換部306の詳細
ここで、タイムスロット変換部306における動作の詳細を図8を参照し説明する。図8においてデータ信号ADATおよびクロック信号ACLKは、バッファアンプ304を介してAバス262から受信される信号である。タイムスロット変換部306においては、クロック信号ACLKの立上がりタイミングにおいてデータ信号ADATがラッチされる。その結果が図示の「中間データ」である。
【0039】
次に、図示の「システムクロック」は上記動作クロック発生部302において生成されるクロックであり、図示の例にあっては出力用のクロック信号ACLKの2倍の周波数を有する。但し、図示のクロック信号ACLKすなわちバッファアンプ304を介して受信されるクロック信号ACLKは、他のノードにおいて生成された信号であり、各ノードのシステムクロックは相互に独立しているため、その周波数はノード300のシステムクロックとは同期していない。
【0040】
システムクロックの各立上がりタイミングにおいては上記中間データがラッチされ、そのラッチ結果が図示のデータ信号ADAT’になる。このデータ信号ADAT’は、受信部400に供給される。また、システムクロックの各立下がりタイミングにおいては、クロック信号ACLKがラッチされる。そして、クロック信号ACLKがラッチされる毎に、前回の立下がりタイミングにおけるラッチ結果と、今回のラッチ結果とが比較され、クロック信号ACLKの立上がりが検出された場合(すなわち、前回ラッチ結果が“0”であって今回のラッチ結果が“1”である場合)には、システムクロックの半周期だけ取込信号ACLK’が“1”に設定される。
【0041】
なお、取込信号ACLK’は、それ以外の場合には“0”に設定される。そして、この取込信号ACLK’は、データ信号ADAT’を取り込むためのタイミング信号として、データ信号ADAT’とともに受信部400に供給される。このように、本実施形態においては、各受信ノードは自ノードにおいて生成されるシステムクロックに同期して取込信号ACLK’およびデータ信号ADAT’を生成するから、各ノード間におけるシステムクロックの周波数/位相のずれを補償することが可能である。
【0042】
1.4.2.受信部400の詳細
次に、受信部400の詳細構成を図9を参照し説明するが、最初に受信部400に関連する制御レジスタ470の内容を説明しておく。図9において472は受信制御レジスタであり、複数のアドレスを有している。各アドレスは、ノード300が受信すべきデータの各ユニットに対応しており、各アドレスには各ユニット対するフレーム番号およびオフセット値が発生順に記憶される。ここに、オフセット値とは、各受信フレーム内において受信されるデータのユニット番号である。
【0043】
例えば、ノード300が1サンプリング周期内に「100」ユニットのデータを受信するのであれば、フレーム番号およびオフセット値の組が「100」のアドレスに発生順に記憶されることになる。474はデータ線ビット数レジスタであり、上記受信制御レジスタ472の各アドレスに対応してデータ信号ADATのビット幅を記憶する。なお、前記フレーム番号の示す受信フレームのオフセット値で示されるユニットにおけるデータのビット幅は、当該フレーム番号および当該オフセット値に対応して、上記データ線ビット数レジスタ474に記憶された値が“0”であれば「16ビット」、“1”であれば「4ビット」である。
【0044】
また、受信部400の内部において402はフレームカウンタであり、Aバス262上のフレーム信号AFRMの立下がり回数をカウントするとともに、ワードクロックWCKの立上がりタイミングでリセットされる。これにより、フレームカウンタ402のカウント結果は、現時点のフレーム番号になる。404はワードカウンタであり、各フレーム内において取込信号ACLK’の数をカウントするとともに、各フレーム信号AFRMの立下がりタイミングにおいてリセットされる。これにより、ワードカウンタ404のカウント結果は、各フレーム内における現在のワード番号になる。
【0045】
406はオフセットカウンタであり、ワードカウンタ404から出力されるワード番号をカウントすることによって、現在受信中のフレームにおけるオフセット値(ユニット番号)を出力する。すなわち、データ線ビット数レジスタ474の記憶内容に基づいて、現在受信しているデータ信号ADAT’のビット幅が特定されるため、そのビット幅が「16」であればワード番号を「2」で除算した結果が現在のオフセット値になり、ビット幅が「4」であればワード番号を「8」で除算した結果が現在のオフセット値になる。
【0046】
410は取込カウンタであり、受信制御レジスタ472およびデータ線ビット数レジスタ474の読出しアドレスを記憶する。この取込カウンタ410は、後述する一致信号RCXによって「1」づつカウントアップされるとともに、ワードクロックWCKによってリセットされる。取込カウンタ410のカウント結果は、受信制御レジスタ472およびデータ線ビット数レジスタ474の読出しアドレスとして用いられる。従って、各サンプリング周期の開始時においては、レジスタ472,474のアドレス「0」のフレーム番号、オフセット値およびビット幅が読み出されることになる。
【0047】
408は比較器であり、フレームカウンタ402が出力するフレーム番号と、受信制御レジスタ472の現在の読出しアドレスに記憶されているフレーム番号とを比較するとともに、オフセットカウンタ406の出力するオフセット値と受信制御レジスタ472の現在の読出しアドレスに記憶されているオフセット値とを比較する。そして、フレーム番号およびオフセット値の双方について一致した場合に上記一致信号RCXを“1”に立上げる。なお、フレーム番号またはオフセット値のうち少なくとも一方が一致しない場合には一致信号RCXは“0”に設定される。
【0048】
さて、一致信号RCXが“1”に立上がると、取込カウンタ410のカウント結果が「1」だけインクリメントされる。従って、その後はレジスタ472,474の次のアドレスの内容が読み出されるようになり、一致信号RCXは直ちに“0”に立下ることになる。412は取込みレジスタ部であり、4ビットのレジスタIN1〜IN8から構成されている。データ信号ADAT’のビット幅が「4」である場合においては、連続する「8」スロットにおいて、「8」ワードのデータがこれらレジスタIN1〜IN8に順次ラッチされる。
【0049】
また、データ信号ADAT’のビット幅が「16」である場合においては、連続する「2」スロットのデータがラッチされる。すなわち、最初のスロットのデータがレジスタIN1〜IN4に、次のスロットのデータがレジスタIN5〜IN8にラッチされる。414はビット並べ替え部であり、レジスタIN1〜IN8にラッチされたデータの各ビットを、通常の1ユニット(32ビット)毎のビット列に並べ替える。
【0050】
416は受信データレジスタであり、一致信号RCXに同期してこの並べ替えられたデータをラッチする。受信データレジスタ416は複数のアドレスを有し、アドレス毎に1ユニットの波形データを記憶することができる。この受信データレジスタ416に対する書込みアドレスは、上述した取込カウンタ410のカウント結果が用いられる。そして、受信データレジスタ416に記憶された波形データは、必要に応じて波形処理部320によって読み出される。
【0051】
1.4.3.送信部450の詳細
次に、送信部450の詳細構成を図10を参照し説明するが、最初に送信部450に関連する制御レジスタ470の内容を説明する。図において476は送信制御レジスタであり、ノード300がデータ送信を行う一または複数の送信フレームのフレーム番号が記憶されている。また、これら送信フレームの各々に対して、送信レートと送信データのユニット数とが記憶されている。ここに、「送信レート」は、出力されるクロック信号ACLKのシステムクロックに対する分周比によって表される。
【0052】
また、478はデータ線ビット数レジスタであり、上記各送信フレームにおける送信データ信号ADATのビット数を記憶する。なお、送信フレームにおけるビット幅は、上記データ線ビット数レジスタ478に記憶された値が“0”であれば「16ビット」、“1”であれば「4ビット」である。上述したように、本実施形態においては、1サンプリング周期内に複数の送信フレームを一のノードに割り当てることができる。これにより、例えば、処理速度の速い受信ノードに対しては一の送信フレームにおいて高速のレートでデータ信号ADATを出力し、他の処理速度の遅い受信ノードに対しては他の送信フレームにおいて低速のレートでデータ信号ADATを出力することができる。また、データ線のビット幅(4または16ビット)が異なる複数の受信ノードに対しても、個々の異なる送信フレームを割り当てておくと好適である。
【0053】
送信部450の内部において452は比較器であり、送信制御レジスタ476に記憶された各送信フレームのフレーム番号と、受信部400内のフレームカウンタ402から供給される現在のフレーム番号とを比較し、現在のフレーム番号が何れかの送信フレームのフレーム番号に一致すると“1”信号を出力する。また、454は比較器であり、各送信フレームにおいて、当該送信フレームにおける送信ユニット数と、後述する読出カウンタ462のカウント結果とを比較し、カウント結果が送信ユニット数未満であれば“1”信号を出力する。
【0054】
456はSフラグ設定回路であり、上記比較器452,454から共に“1”信号が出力されている状態において、Sフラグ(送信フラグ)を“1”に設定し、それ以外の場合にはSフラグを“0”に設定する。458はタイミング信号発生部であり、Sフラグが“1”に立上がると、送信制御レジスタ476に記憶された送信レートに基づいてクロック信号ACLKを発生させとともに、方向信号ADIRおよびフレーム信号AFRMを共に“0”に設定する。
【0055】
また、タイミング信号発生部458においては、Sフラグが“0”になると、まずフレーム信号AFRMが“1”に立上げられる。そして、クロック信号ACLKの1周期分遅れてクロック信号ACLKの出力が停止され、方向信号ADIRが“1”に立上げられる(図4参照)。460はワードカウンタであり、出力されるクロック信号ACLKをカウントする。464は送信データレジスタであり、複数のアドレスに各々1ユニットづつの波形データを記憶する。なお、これらの波形データは、送信を行うサンプリング周期の前のサンプリング周期の任意のタイミングに波形処理部320によって書き込まれる。
【0056】
462は読出カウンタであり、上述した受信部400内のオフセットカウンタ406と同様に、データ線ビット数レジスタ478に記憶された値に基づいて、送信されたユニット数をカウントする。このカウント結果は、読出しアドレスとして送信データレジスタ464に供給される。これにより、送信データレジスタ464に記憶された32ビットの波形データが順次アクセスされ読み出されることになる。466はビット選択部であり、ワードカウンタ460のカウント結果に応じて、32ビットの波形データのうち送信すべき一部のビット(図6参照)を選択する。選択されたビットはデータ信号ADATとして、バッファアンプ304を介して出力される。
【0057】
2.実施形態の具体的構成
2.1.波形処理部320の具体的構成例
次に、波形処理部320の具体的構成例を図11(a)〜(c)に示す。同図(a)における波形処理部320aは、波形処理部320として音源を構成した場合の例である。この波形処理部320aに対しては、CPU212の制御の下、制御レジスタ470(図7参照)に各発音チャンネルの楽音制御データが記憶される。351は波形合成部であり、これら楽音制御データに基づいて、複数の発音チャンネルの波形データを合成する。352はチャンネル累算器であり、合成された各発音チャンネルの波形データをパート毎に重み付けして累算し、16パートの波形データを出力する。
【0058】
合成された16パートの波形データは、送信部450を介してAバス262上に出力される。ここでは、この1パートの波形データが、Aバス262上における1ユニットに割り当てられるものとする。累算の態様は、例えば、各パートのモノラル発音している発音チャンネルの波形データを1系列で累算して1チャンネルの波形データを生成してもよく、あるいはパンを制御して2系列で累算し2チャンネルの波形データを生成してもよい。ステレオで発音する場合には、同一音色のL(左)とR(右)の発音を行う発音チャンネルを、それぞれ別のパートにまとめるとよい。
【0059】
次に、図11(b)における波形処理部320bは、波形処理部320としてエフェクタを構成した場合の例である。361はエフェクト処理部であり、受信部400を介してAバス262から2系統のステレオ信号の波形データ(合計4チャンネル)を受信し、これら波形データにエフェクト処理を施した結果を、送信部450を介してAバス262に出力する。このエフェクト処理の内容は、CPU212によって制御レジスタ470に設定されるマイクロプログラム、エフェクト係数、遅延制御データによって決定される。なお、エフェクト処理部362もエフェクト処理部361と同様に構成されている。
【0060】
次に、図11(c)における波形処理部320cは、音源、ミキサ、エフェクタ等の機能を1チップ内に収納した場合の例であり、上述した音源LSI252,254のノード300における波形処理部320として、用いられるものである。図において371は波形合成部であり、制御レジスタ470を介してCPU212から楽音制御データを受信し、これに基づいて複数発音チャンネルの波形データを生成する。372はミキサであり、各種波形データのミキシング処理を行う。ミキシング処理のための入力波形データの一部は、Aバス262から受信部400を介して供給され、また、出力波形データの一部は送信部450を介してAバス262に出力される。
【0061】
373はマルチDSP(複数ブロックのDSP)であり、ミキサ372から供給された波形データに対してエフェクト処理等を施し、その結果をミキサ372に供給する。そのエフェクト処理等を特定するマイクロプログラム、エフェクト係数、遅延制御データ等はCPU212によって制御レジスタ470に設定される。374はI/O部であり、シリアルバスに対する16チャンネルの入出力と、DAコンバータ用のバスに対する2チャンネルの入出力とを行う。
【0062】
ここで、ミキサ372におけるチャンネル構成を図12を参照し説明する。
ミキサ372においては、波形合成部371の出力データに対して64チャンネル(TG#1〜TG#64)、マルチDSP373の出力データに対して32チャンネル(DSP#1〜#32)、および波形処理部320cの外部からのデータ入力用に80チャンネル(EXT#1〜#80)の合計176チャンネルが入力チャンネルとして確保される。なお、データ入力用に80チャンネルのうち64チャンネルはAバス262からのデータ入力用であり、残り16チャンネルはI/O部374からのデータ入力用である。また、データ入力用のチャンネルを「80」より少ない数とし、そのチャンネルをAバス262からのデータ入力(最大64)と、I/O部374からのデータ入力(最大16)とに選択的に割り当てて使用するようにしてもよい。
【0063】
このように入力された波形データに対して、レベル調節等を行うミキシングチャンネルが合計400チャンネル(MIX#1〜#400)が設けられている。そして、ミキシングチャンネルの出力データを混合して出力する出力チャンネルが114チャンネルだけ確保されていてる。出力チャンネルの内訳は、マルチDSP373に対する32チャンネル(DSP#1〜#32)、外部出力用の82チャンネル(EXT#1〜#82)である。なお、データ出力用の82チャンネルのうち64チャンネルはAバス262に対するデータ出力用であり、残り18チャンネルはI/O部374へのデータ出力用である。また、データ出力用のチャンネルを「82」より少ない数とし、そのチャンネルをAバス262へのデータ出力(最大64)とI/O部374へのデータ出力(最大18)に割り当てて使用するようにしてもよい。
【0064】
2.2.全体構成の具体例(1)
次に、本実施形態の音源部250において、音源LSI252,254および増設ボード256,258,260に具体的な機能を設定した例を説明する。まず、音源部250を通常の音源として構成した場合のこれら構成要素間の論理的接続例を図13に示す。図において、増設ボード256,258,260として、各々16パート音源256a、エフェクタ258a、およびデジタル入出力部260aが挿入されている。
【0065】
16パート音源256aは16チャンネルの波形データを出力するものであり、その構成は図11(a)において説明した通りである。エフェクタ258aは4チャンネル(ステレオ2系統)の波形データが入力されると、これに効果処理を施して4チャンネルの波形データを出力するものであり、その構成は図11(b)において説明した通りである。また、デジタル入出力部260aは、外部機器との間で各8チャンネルのデジタル音声信号を入出力するものである。
【0066】
音源LSI252,254の内部構成は図11(c)および図12において説明した通りである。すなわち、音源LSI252,254内の各波形合成部371,371によって各々64チャンネルづつの波形データが合成され、マルチDSP373,373によってこれら波形データに対して効果処理が施され、これら波形データは、他の構成要素256a,258a,260aから供給された波形データあるいは音源LSI252,254相互間でやりとりされる波形データとともに、ミキサ372,372においてミキシングされる。
【0067】
図13において、各構成要素間を結ぶ矢印は、各構成要素間の論理的接続状態を示す。このうち、音源LSI252,254間の一点鎖線の結線は直結ライン253を経由するものであり、その他の結線はAバス262を経由する結線である。図13において、16パート音源256aから出力される16チャンネルの波形データは、Aバス262を介して、音源LSI252,254にそれぞれ入力される。
【0068】
そして、音源LSI254から音源LSI252に対して、直結ライン253を介して16チャンネル、Aバス262を介して14チャンネルの波形データが供給される。後者の14チャンネルの波形データのうち、2チャンネルは音源LSI252からステレオ出力される波形データの伝送用であり、音源LSI252のミキサ372において音源LSI252からステレオ出力される波形データと混合される。そして、混合されたステレオ波形データは音源LSI252のI/O部374を介してDAコンバータ264へ出力される。また、4チャンネルはエフェクタ258aにおいてエフェクト処理を施すための波形データであり、8チャンネルはデジタル入出力部260aを介して外部に出力するための波形データである。
【0069】
これら4チャンネルおよび8チャンネルの波形データは、音源LSI252において生成された他の波形データとミキシングされ、そのミキシング結果である4チャンネルおよび8チャンネルの波形データは各々エフェクタ258aおよびデジタル入出力部260aに供給される。エフェクタ258aにおいては、この音源LSI252を介して供給された4チャンネルの波形データに対してエフェクト処理が施され、その結果が4チャンネルの波形データとして音源LSI252,254に出力される。
【0070】
また、デジタル入出力部260aは、音源LSI252を介して供給された8チャンネルの波形データをデジタル音声信号として外部機器に出力するとともに、外部機器から受信した8チャンネルの音声信号を音源LSI252,254に供給する。次に、上述した論理的接続状態を実現するためのフレーム割当例を図14に示す。図においてフレーム#0は音源LSI252の送信フレームとして割り当てられている。音源LSI252からAバス262を介して他の構成要素に出力される波形データは、エフェクタ258aに対して4チャンネル、デジタル入出力部260aに対して8チャンネルであるから、合計12チャンネル相当分の時間(1ユニットに1チャンネルを割り当てるとすれば12ユニット分の時間)がフレーム#0に割り当てられることになる。
【0071】
また、フレーム#1は音源LSI254の送信フレームとして割り当てられている。音源LSI254からAバス262を介して他の構成要素に出力される波形データは、音源LSI252に対する14チャンネルのみであるから、14チャンネル相当分の時間(同14ユニット分の時間)がフレーム#1に割り当てられることになる。また、フレーム#2は16パート音源256aの送信フレームとして割り当てられている。16パート音源256aは16チャンネルの波形データを音源LSI252,254に出力するが、これら音源LSIにおける受信は同時に実行されるため、16チャンネル相当分の時間がフレーム#2に割り当てられることになる。同様に、フレーム#3,#4は各々エフェクタ258aおよびデジタル入出力部260aの送信フレームとして割り当てられ、これらの波形データの出力チャンネル数に応じた長さがフレーム#3,#4に割り当てられることになる。
【0072】
2.3.全体構成の具体例(2)
また、本実施形態の音源部250は、単なる音源部とは全く異なる機能を実現することもできる。その一例として、音源部250を用いて、音源付きマルチトラック・レコーディング装置を構成した論理的接続例を図15に示す。図において、増設ボード256,258,260として、各々ADコンバータ256b、マルチトラックレコーダ258b、およびDAコンバータ260bが挿入されている。
【0073】
ADコンバータ256bは、16チャンネルのアナログ信号を外部機器から受信し、これを16チャンネルの波形データに変換するものである。マルチトラックレコーダ258bは、16トラックの音声信号を記録/再生するものであり、DAコンバータ260bは供給された8チャンネルの波形データを各々アナログ信号に変換し外部機器に出力するものである。
【0074】
図13と同様に図15において、各構成要素間を結ぶ矢印は各構成要素間の論理的接続状態であり、音源LSI252,254間の一点鎖線の結線は直結ライン253を経由するものであり、その他の結線はAバス262を経由する結線である。図15において、ADコンバータ256bから出力される16チャンネルの波形データは、Aバス262を介して、音源LSI252,254にそれぞれ入力される。
【0075】
そして、音源LSI254から音源LSI252に対して、直結ライン253を介して16チャンネル、Aバス262を介して26チャンネルの波形データが供給される。後者の26チャンネルの波形データのうち、2チャンネルは単に音源LSI252に供給されるものであるが、16チャンネルはマルチトラックレコーダ258bに記録するための波形データであり、8チャンネルはDAコンバータ260bを介して外部に出力するための波形データである。
【0076】
これら16チャンネルおよび8チャンネルの波形データは、音源LSI252において生成された他の波形データとミキシングされ、そのミキシング結果である16チャンネルおよび8チャンネルの波形データは各々マルチトラックレコーダ258bおよびDAコンバータ260bに供給される。マルチトラックレコーダ258bが記録状態である場合は、この音源LSI252を介して供給された16チャンネルの波形データが記録される。また、マルチトラックレコーダ258bが再生状態である場合は、その再生結果が16チャンネルの波形データとして音源LSI252,254に出力される。
【0077】
また、DAコンバータ260bは、音源LSI252を介して供給された8チャンネルの波形データをアナログ信号に変換し外部機器に出力する。次に、上述した論理的接続状態を実現するためのフレーム割当例を図16に示す。図においてフレーム#0は音源LSI252の送信フレームとして割り当てられている。音源LSI252からAバス262を介して他の構成要素に出力される波形データは、マルチトラックレコーダ258bに対して16チャンネル、DAコンバータ260bに対して8チャンネルであるから、合計24チャンネル相当分の時間がフレーム#0に割り当てられることになる。
【0078】
また、フレーム#1は音源LSI254の送信フレームとして割り当てられている。音源LSI254からAバス262を介して他の構成要素に出力される波形データは、音源LSI252に対する26チャンネルのみであるから、26チャンネル相当分の時間がフレーム#1に割り当てられることになる。また、フレーム#2,#3は各々ADコンバータ256bおよびマルチトラックレコーダ258bの送信フレームとして割り当てられ、これらの波形データの出力チャンネル数に応じた長さがフレーム#2,#3に割り当てられることになる。なお、DAコンバータ260bは受信ノードとしてのみ機能し波形データをAバス262に出力しないため、送信フレームは割り当てられない。
【0079】
3.実施形態の動作
次に、本実施形態の動作を説明する。
まず、本実施形態の楽音合成装置の電源が投入されると、CPU212によって各ノードのパラメータROM490の内容が読み出され、これによって各ノードの種別等が検出される。次に、現在実装されているノードに応じて、実現可能な動作モードが表示器208にリストアップされる。実現可能な動作モードとは、例えば、「一般用音源(図13)」、「電子ピアノ用音源」、「シンセサイザ用音源」、「マルチトラック・レコーディング装置(図15)」等である。ユーザがこれらの動作モードのうち何れかを選択すると、選択された動作モードに応じた詳細なパラメータ(例えば音源において合成する波形データのパート数、エフェクトの詳細な内容、複数チャンネルのミキシング比)などがさらに設定可能になる。
【0080】
以上の設定が終了すると、各ノードの詳細な動作内容が決定される。すなわち、1サンプリング周期内に設けられるフレームの数、および各ノードが送信ノードになるフレームおよび受信ノードになるフレームが決定され、さらに、受信ノードになるフレームにおいてはオフセット値が決定される。また、各フレームにおける詳細なタイミング関係も決定される。
【0081】
例えば、ある送信ノードから一または複数の受信ノードに波形データを転送すべき場合には、これら全ての送受信ノードのうち、最高送信レートまたは受信レートが最も遅いノードに合せて送受信レートが決定される。そして、送受信されるデータ量およびバス幅に応じて各フレームにおけるクロック信号ACLKのクロック数が決定され、各フレームの長さが決定される。このように全てのパラメータが決定されると、CPU212によってこれらパラメータが各ノードの制御レジスタ470に書き込まれる。これにより、楽音合成装置を所望の動作モードで機能させることができる。
【0082】
また、各ノード間の論理的接続状態をユーザが自由にエディットできるようにしておけば、電源投入時にリストアップされた動作モード以外に、ユーザ独自の動作モードも実現することができる。かかる場合には、設定された論理的接続状態に応じて各ノードが送信を行う送信スロット(送信フレーム番号とユニット数)、および/または、各ノードが受信を行う受信スロット(受信フレームとユニット番号)がCPU212によって自動的に決定され、各ノードの受信制御レジスタ472および送信制御レジスタ476に設定される。ここで、異なるノードに対して同じ送信スロットが設定されないように、CPU212によって各ノードに対して異なる送信スロット番号が順次割り当てられる。また、複数の送信スロットの各ユニット数の和が、Aバス262のサンプリング周期毎の転送能力を超えないか否かがチェックされ、超える場合にはユーザに対して警告を行うようにするとよい。
【0083】
あるいは、各ノードの送信フレームおよび/またはユニット数をユーザが自由に指定できるようにしてもよい。その場合、CPU212が、複数ノードの何れか二つにおいて送信フレームとして同一のフレーム番号が指定されていないかどうかチェックし、同一のフレーム番号が指定されていればユーザに対して警告を行い、あるいはその一方のフレーム番号を自動的に補正するようにするとよい。また、複数のノードでの送信ユニット数がAバス262の転送能力を超える場合には、その旨を警告するようにするとよい。
【0084】
このように、本実施形態によれば、音源部250内の物理的な結線状態を変更することなく、論理的接続状態を自在に設定することができる。これにより、音源部250によって実現される機能あるいは動作モードのバリエーションを豊富にすることができ、その汎用性をきわめて高くすることができる。
【0085】
4.変形例
本発明は上述した実施形態に限定されるものではなく、例えば以下のように種々の変形が可能である。
(1)上記実施形態においては、楽音合成装置の動作モードをユーザが選択動作によって決定したが、動作モードを自動的に決定することも可能である。例えば、上記実施形態の楽音合成装置が電子ピアノ、電子オルガン、シンセサイザ等のシステムの一部として用いられる場合には、CPU212によって当該楽音合成装置が実装されているシステムの種別を検出し、これに適合するように楽音合成装置の動作モードを自動的に設定するとよい。
【0086】
(2)上記実施形態においてデータ線ビット数レジスタ474(図9参照)は、受信制御レジスタ472の各アドレスに対応してデータ信号ADATのビット幅を記憶したが、各フレームにおけるビット幅を「16ビット」または「4ビット」の何れかに固定し、ビット幅を「フレーム」毎に記憶させてもよい。
【0087】
(3)上記実施形態においては、楽音合成装置の電源の投入時に各ノードの種別等が検出され、ノードの種別に応じた動作モードが選択された。しかし、ノードの種別に関係なく動作モードを設定してもよい。また、ユーザが複数の動作モードから一つの動作モードを選択しているが、ユーザが選択できることは必須ではない。例えば、各機種毎にメーカが動作モードを固定的に決定し、楽音合成装置に設定するようにしてもよい。具体的には、ROM214に当該機種に対し決定された動作モードに応じたCPUプログラムのみを記憶し、それに従ってCPU212がAバス262に接続された各ノードへの設定を行うようにしてもよい。あるいは、ROM214に複数機種分の動作モードに対応した複数のCPUプログラムを記憶させ、音源ボード上のジャンパ線、マイクロスイッチ、プルアップないしプルダウン抵抗等によって、当該機種の動作モードに対応した一つのCPUプログラムを選択してもよい。
【0088】
【発明の効果】
以上説明したように、本発明によれば、制御手段が各送信ノードおよび受信ノードに対して送信フレームおよび受信フレーム等を指定すると、その後は制御手段を介在することなく各送信ノードおよび受信ノード間でデータ転送が行われるから、任意の送信ノードから任意の受信ノードに対する論理的接続状態を自在に設定することができ、簡易な回路でありながら高い汎用性を実現することができる。
【図面の簡単な説明】
【図1】 従来の音源部および本発明の目的とする音源部のブロック図である。
【図2】 本発明の一実施形態の楽音合成装置の全体ブロック図である。
【図3】 各ノードとAバス262との接続関係を示す回路図である。
【図4】 図3の回路におけるタイミングチャート(1/2)である。
【図5】 図3の回路におけるタイミングチャート(2/2)である。
【図6】 送信ビット幅に対する各ビットの配列を示す図である。
【図7】 各ノードの一般的構成を示すブロック図である。
【図8】 タイムスロット変換部306の動作説明図である。
【図9】 受信部400のブロック図である。
【図10】 送信部450のブロック図である。
【図11】 波形処理部320の具体的構成を示すブロック図である。
【図12】 ミキサ372におけるチャンネル構成を示す図である。
【図13】 音源部250を通常の音源として構成した場合の論理的接続状態を示すブロック図である。
【図14】 図13の論理的接続状態を実現するためのフレーム割当例を示す図である。
【図15】 音源部250をマルチトラック・レコーディング装置として構成した場合の論理的接続状態を示すブロック図である。
【図16】 図15の論理的接続状態を実現するためのフレーム割当例を示す図である。
【符号の説明】
10…データ信号線、11…クロック信号線、12…方向信号線、13…フレーム信号線、15,16,17…ノード、202…MIDI・I/O部、204…その他I/O部、206…パネルスイッチ部、208…表示器、210…外部記憶装置、212…CPU、214…ROM、216…RAM、218…CPUバス、220…サウンドシステム、250…音源部、251…ワードクロック発生器、253…直結ライン、256,258,260…増設ボード、256a…16パート音源、256b…ADコンバータ、258a…エフェクタ、258b…マルチトラックレコーダ、260a…デジタル入出力部、260b…DAコンバータ、262…Aバス、264…DAコンバータ、268…ワードクロック外部入力端子、300…ノード、302…動作クロック発生部、304…バッファアンプ、306…タイムスロット変換部、320…波形処理部、351…波形合成部、352…チャンネル累算器、361,362…エフェクト処理部、371,371…波形合成部、372,372…ミキサ、374…I/O部、400…受信部、402…フレームカウンタ、404…ワードカウンタ、406…オフセットカウンタ、408…比較器、410…取込カウンタ、412…取込みレジスタ部、414…ビット並べ替え部、416…受信データレジスタ、450…送信部、452,454…比較器、456…Sフラグ設定回路、458…タイミング信号発生部、460…ワードカウンタ、462…読出カウンタ、464…送信データレジスタ、466…ビット選択部、470…制御レジスタ、472…受信制御レジスタ、472,474…レジスタ、474,478…データ線ビット数レジスタ、476…送信制御レジスタ、490…パラメータROM。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a waveform data processing apparatus suitable for connection between musical sound processing devices.
[0002]
[Prior art]
A sound source board mounted on an electronic musical instrument or a personal computer is equipped with a plurality of LSIs for processing musical tone signals, and by connecting connections for transmitting and receiving musical tone signals between these LSIs, necessary functions are provided. Is realized. Here, an example of a sound source board mounted on an electronic musical instrument is shown in FIG. In the figure, reference numeral 100 denotes a sound source board on which sound source LSIs 102 and 104 are mounted. The tone generator LSIs 102 and 104 include a waveform synthesizing unit that generates a plurality of channels of tone signals and a mixer that mixes the plurality of channels of tone signals as necessary. Reference numerals 106 and 108 denote DSPs (digital signal processors), which perform various kinds of effect processing on the generated tone signals.
[0003]
The musical tone signal subjected to the effect processing is supplied to the sound source LSIs 102 and 104 again. The tone generator LSIs 102 and 104 also exchange musical tone signals between these tone generator LSIs. The musical sound signal that is finally output is supplied from the sound source LSI 104 to the DA converter 110, where it is converted into an analog signal. Reference numeral 114 denotes a plug-in board that can be added as an option, and is equipped with an additional waveform synthesis unit or DSP. The plug-in board 114 is attached to the connector 112 as necessary.
[0004]
The other configuration of the sound source board is shown in FIG. In the figure, reference numeral 120 denotes another tone generator board, and tone generator LSIs 122 and 124 therein synthesize a plurality of channels of tone signals. The synthesized musical sound signal is mixed by a mixer in the sound source LSIs 122 and 124, and the musical sound signal as a result of the mixing is supplied to the DSPs 126 and 128. In the DSPs 126 and 128, effect processing is performed on the supplied musical sound signal. Here, the musical sound signal subjected to the effect processing in the DSP 126 is supplied to the DSP 128. When the plug-in board 134 is attached to the connector 132, a musical sound signal generated in the plug-in board 134 is also supplied to the DSP 128. In the DSP 128, these signals are further mixed, and the mixing result is converted into an analog signal in the DA converter 130.
[0005]
By the way, in the example of FIGS. 1A and 1B, even if the tone generator LSI and DSP used in the tone generator boards 100 and 120 are completely the same, their connection states are different. The sound source boards 100 and 120 themselves are not compatible. In other words, hardware has to be designed / manufactured for each type of sound source board in accordance with the function to be exhibited by the sound source board.
[0006]
On the other hand, there is known a technique for setting a logical connection relationship by setting a signal delivery state according to a finally required function while sharing a hardware connection state of a plurality of nodes. For example, the applicant proposes a standard called mLAN (trademark) for connecting musical instruments and devices such as synthesizers and digital mixers, computers, etc. via a serial cable on an IEEE1394 interface, and transferring musical tone signals and performance information. Yes. Patent Document 1 discloses a technique in which an AD converter, a hard disk, and a waveform memory are connected to a common bus, and waveform data and the like are transferred in time division between these nodes.
[0007]
[Patent Document 1]
Japanese Patent Laid-Open No. 5-188967
[0008]
[Problems to be solved by the invention]
As described above, in the example of FIGS. 1A and 1B, the sound source boards 100 and 120 are not compatible, so hardware must be designed / manufactured for each type of sound source board. In addition, the design cost increases and it is difficult to reduce the cost by mass production. Therefore, for example, as shown in FIG. 1C, it is preferable that the sound source LSIs 142 and 144, the DSPs 146 and 148, the DA converter 150, and the plug-in board 154 (via the connector 152) can be connected to the common bus 156. That is, if the hardware connection relationship is made common and the logical connection relationship can be set as necessary, the sound source board of FIG. 1 (c) is, for example, the sound source board shown in FIG. 1 (a) or (b). And exhibit common functions.
[0009]
In this case, what is adopted as a standard for connecting each LSI to the bus 156 is important. Since the above-described mLAN (trademark) assumes that an independent device such as a synthesizer or a digital mixer is used as a node, the signal configuration is complicated, and it is feasible to adapt each LSI to the standard. It is scarce. In addition, the technique disclosed in Patent Document 1 can transfer waveform data and the like between nodes disclosed in the publication, but can be generally and universally used for various types of nodes. It wasn't.
The present invention has been made in view of the above-described circumstances, and an object thereof is to provide a waveform data processing device that can ensure high versatility with a simple circuit.
[0010]
[Means for Solving the Problems]
  In order to solve the above problems, the present invention is characterized by having the following configuration. The parentheses are examples.
  In the waveform data processing apparatus according to claim 1, a data transfer bus (262) for transferring a data signal (ADAT) of a plurality of time slots in a time division manner for each sampling period;data transferbus(262)A plurality of transmission nodes (15, 16, 17) for transmitting the data signal todata transferbus(262)And at least one receiving node (15, 16, 17) that receives the data signal from each of the transmitting nodesThe number of transmission frames and the number of unitsAnd for the receiving node, theReceived frame number equal to any of the transmitted framesControl means (212) for setting the receiving node to each receiving node, and each transmitting node is set to each sampling period,Frame indicated by the set transmission frame numberDetected and detectedflameInOf the set number of unitsWaveform data is supplied to the data transfer bus (262), and the receiving node receives a sampling period for each sampling period.Frame indicated by the set receive frame numberDetected and detectedflameInOf the set number of unitsReceive waveform dataThe size of the frame transmitted by each transmission node increases or decreases according to the number of units set in the transmission node.It is characterized by that.
  The waveform data processing apparatus according to claim 1, wherein the plurality of transmission nodes are connected to the data transfer bus (262) in a wired OR format. And
  Furthermore, in the configuration according to claim 3, in the waveform data processing device according to claim 1 or 2, when each of the plurality of transmission nodes outputs the data signal to the data transfer bus (262). At the same time, a frame signal indicating that the transmission node is a frame to be transmitted is output to the data transfer bus (262), and each of the transmission nodes is connected to the data transfer bus. A frame number is specified by counting the frame signal output to the bus (262), and a frame in the order indicated by the frame number is detected. Each of the receiving nodes is connected to each of the plurality of transmitting nodes. A frame number is specified by counting the frame signal output to the data transfer bus (262), and the frame number is determined. It characterized in that in order to detect the order of the frame indicated by the over-time number.
  And claims4In the waveform data processing apparatus according to claim 1, the control means (212) detects the type of each transmission node connected to the data transfer bus (262), and the detection result Based on each sending nodeThe number of transmission frames and the number of unitsIs set.
  And claims5In the configuration described above, in the waveform data processing device according to claim 1, the control means (212) detects the type of the receiving node connected to the data transfer bus (262), and the detection result Based on the receiving nodeNumber of the received frameIs set.
  And claims6The waveform data processing apparatus according to claim 1, further comprising an instruction input unit (206) for receiving a user instruction from a user, wherein the control means (212) receives the user instruction. Depending on at least one sending nodeThe number of transmission frames and the number of units;Or of the receiving nodeReceived frame numberIs set.
  And claims7The waveform data processing apparatus according to claim 1, further comprising an instruction input unit (206) for designating an operation mode in response to an instruction from a user, wherein the control means (212) includes: The plurality of transmitting nodes according to a designated operation modeThe number and unit number of each said transmission frame;Of the receiving nodeThe received frame number andIs set.
  And claims8In the configuration described above, in the waveform data processing device according to claim 1, an instruction input unit (206) for designating a logical coupling state between each of the transmission nodes and the reception nodes in accordance with an instruction from a user. The control means (212) further comprises a designated combined state and the plurality of transmitting nodes.Each transmitted frame number andDepending on the receiving nodeReceived frame numberIs set.
  And claims9In the configuration described above, in the waveform data processing device according to claim 1, the control means (212) detects a type of a system in which the waveform data processing device is mounted, and based on the detection result, the control unit (212). Each of multiple sending nodesThe number of transmission frames and the number of units,Of the receiving nodeThe received frame number andIs set.
  Furthermore, in the configuration according to claim 10, in the waveform data processing device according to claim 1, the control means receives the reception in the reception frame in addition to the number of the reception frame to the reception node. A unit number indicating waveform data to be set is set, and the receiving node detects data to be received in the detected frame in accordance with the set frame number, and selectively detects the detected waveform data. It is characterized by receiving.
[0011]
DETAILED DESCRIPTION OF THE INVENTION
1. General configuration of the embodiment
1.1. overall structure
Next, the hardware configuration of the musical tone synthesizer according to the embodiment of the present invention will be described with reference to FIG. In the figure, reference numeral 202 denotes a MIDI I / O unit which inputs / outputs MIDI signals to / from an external MIDI device. For example, a keyboard and other performance operators are connected to the MIDI I / O unit 202, and the performance information is input as a MIDI signal. Reference numeral 204 denotes another I / O unit which inputs and outputs various signals other than MIDI signals. A panel switch unit 206 is provided with various tone color setting operators and the like operated by the user.
[0012]
Reference numeral 250 denotes a sound source unit that synthesizes a musical sound signal by processing described later. Reference numeral 208 denotes a display that displays various types of information to the user, such as the setting state of the sound source unit 250. An external storage device 210 includes a hard disk, a flexible disk, and the like. Reference numeral 212 denotes a CPU which controls each unit of the musical tone synthesis apparatus via the CPU bus 218 based on a predetermined control program. A ROM 214 stores a CPU control program and the like. Reference numeral 216 denotes a RAM, which is used as a work memory for the CPU 212.
[0013]
In the tone generator 250, reference numerals 252 and 254 denote tone generator LSIs, which generate waveform data based on performance information and tone generation parameters supplied via the CPU bus 218, and similarly supply effect parameters and the like. Based on the above, effect processing is performed on the waveform data. Reference numerals 256, 258, and 260 are expansion boards that perform various processing such as waveform data synthesis processing, effect processing, and recording processing according to the type of the board, and realize the desired functions in the sound source unit 250 together with the sound source LSIs 252 and 254. It is something to be made.
[0014]
Reference numeral 262 denotes a waveform data transfer bus (hereinafter referred to as A bus), which transfers waveform data between the tone generator LSIs 252 and 254 and the extension boards 256, 258, and 260. In general, in a communication network, a packet is configured by adding a header including information such as a transmission destination address and a transmission channel to data to be transmitted, and the packet is often transmitted. Further, in order to avoid collision of transmission data when a plurality of transmission nodes start transmission at the same time, a mechanism is provided in the network to perform arbitration based on node identifiers and addresses. Compared to such a network, the A bus 262 transmits only waveform data to which a transmission destination address, a transmission channel, and the like are not attached, and therefore, transmission efficiency per transmission clock can be extremely increased. Further, the control means (CPU 212) connected to each transmission node connected to the A bus 262 via a bus (CPU bus 218) different from the A bus 262 sets different transmission timings for each transmission node. This prevents collisions. Since the arbitration function is not provided in the A bus 262 itself, the configuration is extremely simple as compared with the conventional network.
[0015]
In addition, since a large amount of waveform data is transferred between the sound source LSIs 252 and 254, a part of the waveform data is transmitted via the direct connection line 253. Reference numeral 264 denotes a DA converter that converts waveform data of some output channels of the tone generator LSI 252 into an analog signal. The converted analog signal is sounded through the sound system 220.
[0016]
A word clock generator 251 generates a word clock WCK that rises at every sampling period. The word clock WCK is supplied to each unit in the sound source unit 250. A word clock external input terminal 268 is provided for receiving the word clock WCK from the outside instead of the word clock WCK generated by the word clock generator 251. This is used when synchronizing the sampling period with an external device.
[0017]
Of the above-described components, a bus such as CPU bus 218 or A bus 262, MIDI / I / O unit 202, other I / O unit 204, CPU 212, ROM 214, RAM 216, and word clock generation For connecting the panel switch unit 206 and the display 208 to the CPU bus 218, a semiconductor circuit such as a sound generator LSI 252, 254, a DA converter 264, an interface (not shown) for connecting the external storage device 210, and the CPU bus 218. The “sound source board” of this embodiment includes a connector (not shown), a connector (not shown) for connecting the extension boards 256, 258, and 260, and a power supply circuit (not shown) for supplying power to the whole. It is configured. The connectors for the expansion boards 256, 258, and 260 are connected to both the CPU bus 218 and the A bus 262, and these expansion boards are configured to be detachable from the “sound source board” via these connectors. Yes.
[0018]
1.2. Bus configuration and timing
Components that input and output waveform data via the A bus 262, such as the sound source LSIs 252 and 254 and the extension boards 256, 258, and 260, are referred to as “nodes”. The connection relationship between each node and the A bus 262 is shown in FIG. In the figure, the A bus 262 includes a data signal line 10, a 1-bit clock signal line 11, a direction signal line 12, and a frame signal line 13. The bit width of the data signal line 10 can be selected from either 16 bits or 4 bits, and only a part of the data signal line 10 can be 4 bits wide. Reference numerals 15, 16, and 17 denote nodes, which are specifically configured by the above-described tone generator LSIs 252, 254 or expansion boards 256, 258, 260, and the like.
[0019]
In these nodes, a data signal ADAT, a direction signal ADIR, and a clock signal ACLK are input / output to / from the A bus 262. The input / output terminals of these signals are connected to the A bus 262 in a wired OR format. In other words, the signal on the A bus 262 is always “1” unless a “0” signal is output from any node. At the timing when any one of these nodes outputs a signal such as the data signal ADAT, the input / output terminals of the other nodes are set to a high impedance state, and the one node is set as necessary. Output signal is received. Here, the data signal ADAT is a signal such as waveform data to be transferred between nodes. The clock signal ACLK is a clock signal synchronized with the data signal ADAT.
[0020]
The period during which the data signal ADAT and the clock signal ACLK are to be output is set by the CPU 212 so as not to overlap each node. This period is called a “frame”. The direction signal ADIR is set to “0” during this frame period, thereby prohibiting signal output to other nodes. In each node, the frame signal AFRM that rises earlier by one clock of the clock signal ACLK than the direction signal ADIR rises to “1” is also output. The frame assigned to each node is defined by “the number of frames after the word clock WCK rises”. Accordingly, each node counts how many frames have occurred after the word clock WCK rises (specifically, by counting the number of rises of the frame signal AFRM), thereby determining the frame of the own node. The start timing can be recognized.
[0021]
Here, the frames are expressed as frame # 0, frame # 1, frame # 2,... According to the order generated after the rise of the word clock WCK. One or a plurality of transmission frames can be assigned to each node within one sampling period. Here, a timing chart when frame # 2 is assigned to node 15, frame # 0 is assigned to node 16, and frame # 1 is assigned to node 17 as transmission frames will be described with reference to FIGS.
[0022]
When the word clock WCK rises at time t0 in FIG. 4A, this is detected by each of the nodes 15, 16, and 17. At the node 16 to which the frame # 0 is assigned, the direction signal ADIR and the frame signal AFRM are lowered to “0” at a time t1 when a predetermined time has elapsed from the time t0. Then, the clock signal ACLK is raised every predetermined clock cycle, and in synchronization with this, the data signal ADAT is output every bit width (16 bits in this case) of the data signal line 10.
[0023]
When the data output from the node 16 is completed at the time t2, the direction signal ADIR is raised to "1" by the node 16. The frame signal AFRM is raised to “1” one period before the clock signal ACLK before the time t2. In the node 17, when the first rise of the frame signal AFRM on the A bus 262 is detected, it is recognized that the next frame is the frame # 1 assigned to the own node.
[0024]
Then, after the direction signal ADIR rises, at the time t3 after a predetermined margin time, the node 17 operates in the same manner as the node 16 described above. That is, the direction signal ADIR and the frame signal AFRM of the node 17 are lowered to “0”, the clock signal ACLK is raised every predetermined clock cycle, and the data signal ADAT is output to the data signal line 10 in synchronization with this. Is done. The margin time between frames is provided in order to avoid data collision.
[0025]
Next, when the frame signal AFRM is raised to “1” by the node 17, the fact is detected by the node 15. Since this is the second rise of the frame signal AFRM after the word clock WCK rises, the node 15 recognizes that the next frame is the frame # 2 assigned to the own node. Then, after the direction signal ADIR of the node 17 rises to “1” at the time t4, the output process similar to the above is executed in the node 15 at the time t5 after a predetermined margin time.
[0026]
In the above example, one frame is assigned to each node, but a plurality of transmission frames may be assigned to one node within one sampling period. In this way, when the output processing from all the frames is completed, each line of the A bus 262 is kept in a high impedance state until the word clock WCK rises next time. Here, the wired OR of the waveforms shown in FIGS. 4A, 4B, and 4C, that is, the waveforms that actually appear on the A bus 262 are shown in FIG.
[0027]
In the present embodiment, the clock cycle and the number of clocks of the clock signal ACLK can be arbitrarily set for each node. In other words, in each node, the number of clocks in one frame is set according to the amount of data to be transmitted to other nodes and the bit width of the data signal line 10. The clock cycle may be determined according to the slowest node among the processing speeds of the node that transmits data (hereinafter referred to as a transmission node) and one or more nodes that receive data (hereinafter referred to as reception nodes). .
[0028]
1.3. Data signal format
As described above, the bit width of the data signal line 10 can be selected from either 16 bits or 4 bits, and only a part of the data signal line 10 can be 4 bits wide. When the 4-bit width is adopted, the data transfer speed is reduced, but the number of wirings can be reduced. This makes it possible to reduce the cost of connectors and the like. For example, it is conceivable to adopt a 4-bit width only for the portions of the extension boards 256, 258, and 260 that require connectors.
[0029]
In such a case, when the transmitting node connected to the 16-bit width portion of the data signal line 10 outputs data to both the 16-bit width receiving node and the 4-bit width other receiving node, It is necessary to output data with a bit width corresponding to each receiving node. In that case, if a plurality of frames are assigned to the corresponding receiving node for each corresponding receiving node, the waveform data can be transmitted while changing the bit width for each frame.
[0030]
Further, even when waveform data is transmitted to both receiving nodes, it is not necessarily divided into a plurality of frames, and a bit width may be set for each time slot. That is, data may be output with a 16-bit width in some time slots within one frame, and data may be output with a 4-bit width in other time slots. In this case, each receiving node recognizes a time slot required by the own node within one frame and receives a data signal having a corresponding bit width.
[0031]
In the present embodiment, the data width of data transferred between nodes is basically 32 bits. This 32-bit unit is referred to as “one unit” in this specification. That is, one unit of data is output by spending 2 (= 32/16) time slots when the data signal line 10 is 16 bits wide and 8 (= 32/4) time slots when the data signal line 10 is 4 bits wide. Is done. The arrangement of each bit with respect to each bit width is shown in FIGS. The unit of data (16 or 4 bits) transmitted per time slot is referred to as “one word” in this specification. Note that when the transmission node connected to the 16-bit width portion of the data signal line 10 transmits data to the reception node connected to the 4-bit width portion, only the upper 4 bits of the data signal line 10 are transmitted. Are used, and the lower 12 bits are always set to "0".
[0032]
In general, an electronic musical instrument can perform processing such as generation of musical sound signals of a plurality of channels. Since it is possible to transmit / receive data of a plurality of units between nodes within one frame, for example, if one unit is assigned to data for one channel, waveform data of up to 32 bits of a channel corresponding to the unit can be transmitted between nodes. It becomes possible to deliver. Further, stereo L channel and R channel may be assigned to one unit, and 16-bit waveform data of each of L and R channels may be packed. Alternatively, two independent channels may be assigned to one unit. The length of each frame is determined according to the number of units to which the channel to be transmitted is assigned, not the number of channels of waveform data to be transmitted in the frame.
[0033]
1.4. General configuration of each node
Next, a general configuration of each node will be described with reference to FIG. In the figure, reference numeral 304 denotes a buffer amplifier that buffers input / output signals of the node 300. A time slot conversion unit 306 performs time slot conversion of the reception signal of the node 300. Details thereof will be described later.
[0034]
Here, in the original data signal ADAT, each bit is arranged as described in FIG. The same applies to the data signal ADAT ′ output from the time slot conversion unit 306. A receiving unit 400 converts these bits into a normal bit string for each unit (32 bits). A waveform processing unit 320 performs various waveform processing according to each node. Specific examples include sound source processing, mixer processing, effect processing, AD conversion, DA conversion, LAN communication processing, and hard disk recording.
[0035]
Reference numeral 450 denotes a transmission unit that converts the bit arrangement of the output data of the waveform processing unit 320 as described with reference to FIG. 6 and outputs the result as a data signal ADAT. Is output via the buffer amplifier 304. A control register 470 stores various control data, microprograms, and the like for the node 300. The contents of the control register 470 are set by the CPU 212 via the CPU bus 218. An operation clock generation unit 302 generates a system clock of the node 300 and divides this to generate a data output clock signal ACLK and the like. Each node connected to the A bus 262 operates based on the operation clock (individual operation clock) generated by the operation clock generation unit 302 of its own node, but the operation clock (common operation) from the operation clock generation unit of the other node. The operation may be performed by receiving the supply of the clock.
[0036]
The control data stored in the control register 470 includes a frame number assigned to the node 300, the cycle and number of clock signals ACLK, parameters for the waveform processing unit 320, and the like. A parameter ROM 490 stores parameters such as the type of the node 300, the number of channels that can be transmitted and received, and the maximum reception and transmission rate. The contents of the parameter ROM 490 are read by the CPU 212 when the musical tone synthesizer is turned on.
[0037]
Since the configuration in FIG. 7 is a general configuration in each node, some of the illustrated configuration requirements may not be included depending on the type of node. For example, when the node 300 is a sound source or an AD converter, the time slot conversion unit 306 and the reception unit 400 are not provided because it is not necessary to receive waveform data or the like from another node. When node 300 is a DA converter or the like, there is no need to transmit waveform data or the like to other nodes, and therefore transmission unit 450 is not provided.
[0038]
1.4.1. Details of time slot converter 306
Details of the operation in the time slot conversion unit 306 will be described with reference to FIG. In FIG. 8, the data signal ADAT and the clock signal ACLK are signals received from the A bus 262 via the buffer amplifier 304. In time slot converter 306, data signal ADAT is latched at the rising timing of clock signal ACLK. The result is the “intermediate data” shown in the figure.
[0039]
Next, the “system clock” shown in the figure is a clock generated by the operation clock generator 302, and in the example shown in the figure, has a frequency twice that of the output clock signal ACLK. However, the clock signal ACLK shown, that is, the clock signal ACLK received via the buffer amplifier 304, is a signal generated in another node, and the system clocks of the nodes are independent of each other, so the frequency is It is not synchronized with the system clock of the node 300.
[0040]
At each rise timing of the system clock, the intermediate data is latched, and the latch result is the data signal ADAT 'shown in the figure. The data signal ADAT ′ is supplied to the receiving unit 400. At each falling timing of the system clock, the clock signal ACLK is latched. Each time the clock signal ACLK is latched, the latch result at the previous fall timing is compared with the current latch result, and the rise of the clock signal ACLK is detected (that is, the previous latch result is “0”). "And the current latch result is" 1 "), the capture signal ACLK 'is set to" 1 "for the half cycle of the system clock.
[0041]
Note that the capture signal ACLK ′ is set to “0” in other cases. The capture signal ACLK ′ is supplied to the receiving unit 400 together with the data signal ADAT ′ as a timing signal for capturing the data signal ADAT ′. As described above, in this embodiment, each receiving node generates the capture signal ACLK ′ and the data signal ADAT ′ in synchronization with the system clock generated in the own node. It is possible to compensate for the phase shift.
[0042]
1.4.2. Details of receiver 400
Next, the detailed configuration of the receiving unit 400 will be described with reference to FIG. 9. First, the contents of the control register 470 related to the receiving unit 400 will be described. In FIG. 9, reference numeral 472 denotes a reception control register having a plurality of addresses. Each address corresponds to each unit of data to be received by the node 300, and a frame number and an offset value for each unit are stored in the order of occurrence in each address. Here, the offset value is a unit number of data received in each received frame.
[0043]
For example, if the node 300 receives data of “100” units within one sampling period, the set of frame number and offset value is stored in the address “100” in the order of occurrence. A data line bit number register 474 stores the bit width of the data signal ADAT corresponding to each address of the reception control register 472. The bit width of the data in the unit indicated by the offset value of the received frame indicated by the frame number corresponds to the value stored in the data line bit number register 474 corresponding to the frame number and the offset value. "16 bits", "1" is "4 bits".
[0044]
In the receiving unit 400, reference numeral 402 denotes a frame counter, which counts the number of falling times of the frame signal AFRM on the A bus 262 and is reset at the rising timing of the word clock WCK. Thereby, the count result of the frame counter 402 becomes the current frame number. Reference numeral 404 denotes a word counter that counts the number of capture signals ACLK 'in each frame and is reset at the falling timing of each frame signal AFRM. As a result, the count result of the word counter 404 becomes the current word number in each frame.
[0045]
Reference numeral 406 denotes an offset counter, which counts the word number output from the word counter 404 and outputs an offset value (unit number) in the currently received frame. That is, since the bit width of the currently received data signal ADAT ′ is specified based on the stored contents of the data line bit number register 474, if the bit width is “16”, the word number is “2”. The result of the division becomes the current offset value. If the bit width is “4”, the result of dividing the word number by “8” becomes the current offset value.
[0046]
Reference numeral 410 denotes an acquisition counter that stores read addresses of the reception control register 472 and the data line bit number register 474. The take-in counter 410 is incremented by “1” by a coincidence signal RCX, which will be described later, and is reset by the word clock WCK. The count result of the capture counter 410 is used as a read address for the reception control register 472 and the data line bit number register 474. Accordingly, at the start of each sampling cycle, the frame number, offset value, and bit width of the address “0” of the registers 472 and 474 are read out.
[0047]
Reference numeral 408 denotes a comparator that compares the frame number output from the frame counter 402 with the frame number stored in the current read address of the reception control register 472, and also compares the offset value output from the offset counter 406 and reception control. The offset value stored in the current read address of the register 472 is compared. When both the frame number and the offset value match, the match signal RCX is raised to “1”. If at least one of the frame number and the offset value does not match, the match signal RCX is set to “0”.
[0048]
When the coincidence signal RCX rises to “1”, the count result of the capture counter 410 is incremented by “1”. Therefore, after that, the contents of the next address of the registers 472 and 474 are read, and the coincidence signal RCX immediately falls to “0”. Reference numeral 412 denotes a fetch register unit, which is composed of 4-bit registers IN1 to IN8. When the bit width of the data signal ADAT 'is "4", "8" words of data are sequentially latched in these registers IN1 to IN8 in consecutive "8" slots.
[0049]
Further, when the bit width of the data signal ADAT 'is "16", data of consecutive "2" slots are latched. That is, data in the first slot is latched in registers IN1 to IN4, and data in the next slot is latched in registers IN5 to IN8. A bit rearrangement unit 414 rearranges each bit of the data latched in the registers IN1 to IN8 into a normal bit string for each unit (32 bits).
[0050]
A reception data register 416 latches the rearranged data in synchronization with the coincidence signal RCX. The reception data register 416 has a plurality of addresses, and can store one unit of waveform data for each address. As a write address for the reception data register 416, the count result of the capture counter 410 described above is used. The waveform data stored in the reception data register 416 is read by the waveform processing unit 320 as necessary.
[0051]
1.4.3. Details of transmitter 450
Next, the detailed configuration of the transmission unit 450 will be described with reference to FIG. 10. First, the contents of the control register 470 related to the transmission unit 450 will be described. In the figure, reference numeral 476 denotes a transmission control register, which stores the frame numbers of one or a plurality of transmission frames in which the node 300 performs data transmission. Further, the transmission rate and the number of units of transmission data are stored for each of these transmission frames. Here, the “transmission rate” is expressed by a frequency division ratio of the output clock signal ACLK to the system clock.
[0052]
Reference numeral 478 denotes a data line bit number register, which stores the number of bits of the transmission data signal ADAT in each transmission frame. The bit width in the transmission frame is “16 bits” if the value stored in the data line bit number register 478 is “0”, and “4 bits” if the value is “1”. As described above, in the present embodiment, a plurality of transmission frames can be assigned to one node within one sampling period. Thus, for example, a data signal ADAT is output at a high rate in one transmission frame for a reception node having a high processing speed, and a low speed in another transmission frame for a reception node having a low processing speed. The data signal ADAT can be output at a rate. Also, it is preferable to assign different transmission frames to a plurality of receiving nodes having different data line bit widths (4 or 16 bits).
[0053]
452 is a comparator inside the transmission unit 450, and compares the frame number of each transmission frame stored in the transmission control register 476 with the current frame number supplied from the frame counter 402 in the reception unit 400, When the current frame number matches the frame number of any transmission frame, a “1” signal is output. Reference numeral 454 denotes a comparator that compares the number of transmission units in the transmission frame with a count result of a readout counter 462 described later in each transmission frame. If the count result is less than the number of transmission units, a “1” signal Is output.
[0054]
Reference numeral 456 denotes an S flag setting circuit which sets the S flag (transmission flag) to “1” in a state where both of the comparators 452 and 454 output the “1” signal. Set the flag to “0”. Reference numeral 458 denotes a timing signal generator. When the S flag rises to “1”, the clock signal ACLK is generated based on the transmission rate stored in the transmission control register 476, and the direction signal ADIR and the frame signal AFRM are both generated. Set to “0”.
[0055]
In the timing signal generator 458, when the S flag becomes “0”, the frame signal AFRM is first raised to “1”. Then, the output of the clock signal ACLK is stopped with a delay of one cycle of the clock signal ACLK, and the direction signal ADIR is raised to “1” (see FIG. 4). Reference numeral 460 denotes a word counter that counts the output clock signal ACLK. Reference numeral 464 denotes a transmission data register, which stores waveform data of one unit at each of a plurality of addresses. These waveform data are written by the waveform processing unit 320 at an arbitrary timing of the sampling period before the sampling period for transmission.
[0056]
Reference numeral 462 denotes a read counter, which counts the number of transmitted units based on the value stored in the data line bit number register 478, similarly to the offset counter 406 in the receiving unit 400 described above. This count result is supplied to the transmission data register 464 as a read address. As a result, the 32-bit waveform data stored in the transmission data register 464 is sequentially accessed and read. A bit selection unit 466 selects some bits (see FIG. 6) to be transmitted from the 32-bit waveform data according to the count result of the word counter 460. The selected bit is output via the buffer amplifier 304 as the data signal ADAT.
[0057]
2. Specific configuration of the embodiment
2.1. Specific configuration example of the waveform processing unit 320
Next, a specific configuration example of the waveform processing unit 320 is shown in FIGS. The waveform processing unit 320a in FIG. 5A is an example in the case where a sound source is configured as the waveform processing unit 320. For the waveform processing unit 320a, musical tone control data for each tone generation channel is stored in the control register 470 (see FIG. 7) under the control of the CPU 212. Reference numeral 351 denotes a waveform synthesizer that synthesizes waveform data of a plurality of tone generation channels based on the tone control data. A channel accumulator 352 weights and accumulates the synthesized waveform data of each tone generation channel for each part, and outputs 16-part waveform data.
[0058]
The combined 16-part waveform data is output to the A bus 262 via the transmission unit 450. Here, it is assumed that this one-part waveform data is assigned to one unit on the A bus 262. As the accumulation mode, for example, waveform data of the sound generation channels that produce monaural sound of each part may be accumulated in one series to generate one channel of waveform data, or panning is controlled to generate two channels. Accumulation may generate two-channel waveform data. In the case of sounding in stereo, sound generation channels for sounding L (left) and R (right) of the same tone color may be combined into separate parts.
[0059]
Next, the waveform processing unit 320 b in FIG. 11B is an example in the case where an effector is configured as the waveform processing unit 320. Reference numeral 361 denotes an effect processing unit, which receives waveform data (a total of four channels) of two systems of stereo signals from the A bus 262 via the reception unit 400, and transmits the result of effect processing on these waveform data as a transmission unit 450. To the A bus 262. The contents of the effect processing are determined by the micro program, the effect coefficient, and the delay control data set in the control register 470 by the CPU 212. Note that the effect processing unit 362 is configured in the same manner as the effect processing unit 361.
[0060]
Next, the waveform processing unit 320c in FIG. 11C is an example in which functions such as a sound source, a mixer, and an effector are stored in one chip, and the waveform processing unit 320 in the node 300 of the sound source LSIs 252 and 254 described above. As used. In the figure, reference numeral 371 denotes a waveform synthesizer, which receives musical tone control data from the CPU 212 via the control register 470, and generates waveform data of a plurality of sound generation channels based on this. Reference numeral 372 denotes a mixer that performs mixing processing of various waveform data. A part of input waveform data for mixing processing is supplied from the A bus 262 via the receiving unit 400, and a part of the output waveform data is output to the A bus 262 via the transmitting unit 450.
[0061]
Reference numeral 373 denotes a multi-DSP (multiple block DSP), which performs effect processing on the waveform data supplied from the mixer 372 and supplies the result to the mixer 372. The micro program, effect coefficient, delay control data, and the like for specifying the effect processing are set in the control register 470 by the CPU 212. An I / O unit 374 performs input / output of 16 channels to / from the serial bus and input / output of 2 channels to / from the DA converter bus.
[0062]
Here, the channel configuration in the mixer 372 will be described with reference to FIG.
In the mixer 372, 64 channels (TG # 1 to TG # 64) for the output data of the waveform synthesis unit 371, 32 channels (DSP # 1 to # 32) for the output data of the multi DSP 373, and a waveform processing unit A total of 176 channels of 80 channels (EXT # 1 to # 80) are secured as input channels for data input from the outside of 320c. Of the 80 channels for data input, 64 channels are for data input from the A bus 262, and the remaining 16 channels are for data input from the I / O unit 374. Further, the number of channels for data input is set to a number smaller than “80”, and the channels are selectively used for data input from the A bus 262 (maximum 64) and data input from the I / O unit 374 (maximum 16). You may make it allocate and use.
[0063]
A total of 400 mixing channels (MIX # 1 to # 400) for performing level adjustment and the like are provided for the waveform data input in this way. And only 114 output channels for mixing and outputting the output data of the mixing channels are secured. The breakdown of the output channels is 32 channels (DSP # 1 to # 32) for the multi DSP 373 and 82 channels (EXT # 1 to # 82) for external output. Of the 82 channels for data output, 64 channels are for data output to the A bus 262, and the remaining 18 channels are for data output to the I / O unit 374. Further, the number of channels for data output is set to a number smaller than “82”, and the channels are allocated and used for data output to the A bus 262 (maximum 64) and data output to the I / O unit 374 (maximum 18). It may be.
[0064]
2.2. Specific example of overall configuration (1)
Next, an example in which specific functions are set in the sound source LSIs 252 and 254 and the extension boards 256, 258, and 260 in the sound source unit 250 of this embodiment will be described. First, FIG. 13 shows a logical connection example between these components when the sound source unit 250 is configured as a normal sound source. In the figure, 16-part sound source 256a, effector 258a, and digital input / output unit 260a are inserted as expansion boards 256, 258, and 260, respectively.
[0065]
The 16-part sound source 256a outputs 16-channel waveform data, and its configuration is as described with reference to FIG. When the effector 258a receives 4-channel (two stereo) waveform data, the effector 258a performs effect processing on this and outputs 4-channel waveform data. The configuration is as described with reference to FIG. It is. The digital input / output unit 260a inputs / outputs digital audio signals of 8 channels to / from an external device.
[0066]
The internal configuration of the tone generator LSIs 252 and 254 is as described with reference to FIGS. That is, the waveform data of 64 channels is synthesized by the waveform synthesis units 371 and 371 in the tone generator LSIs 252 and 254, respectively, and the effect processing is performed on these waveform data by the multi-DSPs 373 and 373. Are mixed in the mixers 372 and 372 together with the waveform data supplied from the component elements 256a, 258a and 260a or the waveform data exchanged between the sound source LSIs 252 and 254.
[0067]
In FIG. 13, the arrows connecting the components indicate the logical connection state between the components. Among these, the connection of the alternate long and short dash line between the sound source LSIs 252 and 254 is through the direct connection line 253, and the other connection is through the A bus 262. In FIG. 13, 16-channel waveform data output from the 16-part sound source 256 a is input to the sound source LSIs 252 and 254 via the A bus 262, respectively.
[0068]
The sound source LSI 254 supplies waveform data of 16 channels via the direct connection line 253 and 14 channels via the A bus 262 to the sound source LSI 252. Of the latter 14 channels of waveform data, 2 channels are for transmission of waveform data output in stereo from the sound source LSI 252, and are mixed with waveform data output in stereo from the sound source LSI 252 in the mixer 372 of the sound source LSI 252. The mixed stereo waveform data is output to the DA converter 264 via the I / O unit 374 of the sound source LSI 252. Channel 4 is waveform data for effect processing in the effector 258a, and channel 8 is waveform data for output to the outside via the digital input / output unit 260a.
[0069]
These 4-channel and 8-channel waveform data are mixed with other waveform data generated by the tone generator LSI 252, and the resulting 4-channel and 8-channel waveform data are supplied to the effector 258a and the digital input / output unit 260a, respectively. Is done. In the effector 258a, effect processing is performed on the 4-channel waveform data supplied via the tone generator LSI 252, and the result is output to the tone generator LSIs 252 and 254 as 4-channel waveform data.
[0070]
The digital input / output unit 260 a outputs the 8-channel waveform data supplied via the sound source LSI 252 to the external device as a digital audio signal, and also outputs the 8-channel audio signal received from the external device to the sound source LSIs 252 and 254. Supply. Next, FIG. 14 shows an example of frame allocation for realizing the above-described logical connection state. In the figure, frame # 0 is assigned as a transmission frame of the sound source LSI 252. The waveform data output from the tone generator LSI 252 to the other components via the A bus 262 is 4 channels for the effector 258a and 8 channels for the digital input / output unit 260a. (If one channel is assigned to one unit, the time corresponding to 12 units) is assigned to frame # 0.
[0071]
Frame # 1 is assigned as a transmission frame of the sound source LSI 254. Since the waveform data output from the sound source LSI 254 to other components via the A bus 262 is only 14 channels for the sound source LSI 252, the time corresponding to 14 channels (time for the same 14 units) is in frame # 1. Will be assigned. Frame # 2 is assigned as a transmission frame of 16-part sound source 256a. The 16-part sound source 256a outputs 16-channel waveform data to the sound source LSIs 252 and 254. Since reception by these sound source LSIs is performed simultaneously, a time corresponding to 16 channels is assigned to the frame # 2. Similarly, frames # 3 and # 4 are assigned as transmission frames of the effector 258a and the digital input / output unit 260a, respectively, and a length corresponding to the number of output channels of these waveform data is assigned to frames # 3 and # 4. become.
[0072]
2.3. Specific example of overall configuration (2)
In addition, the sound source unit 250 of the present embodiment can also realize a completely different function from a simple sound source unit. As an example, FIG. 15 shows a logical connection example in which a sound source unit 250 is used to configure a multitrack recording apparatus with a sound source. In the figure, AD converters 256b, a multitrack recorder 258b, and a DA converter 260b are inserted as expansion boards 256, 258, and 260, respectively.
[0073]
The AD converter 256b receives a 16-channel analog signal from an external device and converts it into 16-channel waveform data. The multi-track recorder 258b records / reproduces a 16-track audio signal, and the DA converter 260b converts the supplied 8-channel waveform data into analog signals and outputs them to an external device.
[0074]
As in FIG. 13, in FIG. 15, the arrows connecting the components are the logical connection states between the components, and the dashed-dotted connection between the sound source LSIs 252 and 254 is via the direct connection line 253. Other connections are connections via the A bus 262. In FIG. 15, the 16-channel waveform data output from the AD converter 256 b is input to the sound source LSIs 252 and 254 via the A bus 262, respectively.
[0075]
The sound source LSI 254 supplies waveform data of 16 channels via the direct connection line 253 and 26 channels via the A bus 262 to the sound source LSI 252. Of the latter 26 channels of waveform data, 2 channels are simply supplied to the sound source LSI 252, 16 channels are waveform data for recording in the multitrack recorder 258b, and 8 channels are sent via the DA converter 260b. Waveform data for output to the outside.
[0076]
These 16-channel and 8-channel waveform data are mixed with other waveform data generated by the tone generator LSI 252, and the mixed 16-channel and 8-channel waveform data are supplied to the multi-track recorder 258b and the DA converter 260b, respectively. Is done. When the multitrack recorder 258b is in the recording state, 16-channel waveform data supplied via the sound source LSI 252 is recorded. When the multitrack recorder 258b is in a playback state, the playback result is output to the sound source LSIs 252 and 254 as 16-channel waveform data.
[0077]
The DA converter 260b converts 8-channel waveform data supplied via the sound source LSI 252 into an analog signal and outputs the analog signal to an external device. Next, FIG. 16 shows an example of frame allocation for realizing the above-described logical connection state. In the figure, frame # 0 is assigned as a transmission frame of the sound source LSI 252. The waveform data output from the tone generator LSI 252 to the other components via the A bus 262 is 16 channels for the multitrack recorder 258b and 8 channels for the DA converter 260b. Is assigned to frame # 0.
[0078]
Frame # 1 is assigned as a transmission frame of the sound source LSI 254. Since the waveform data output from the sound source LSI 254 to other components via the A bus 262 is only 26 channels for the sound source LSI 252, the time corresponding to 26 channels is assigned to the frame # 1. Frames # 2 and # 3 are assigned as transmission frames of the AD converter 256b and the multitrack recorder 258b, respectively, and a length corresponding to the number of output channels of these waveform data is assigned to the frames # 2 and # 3. Become. Since the DA converter 260b functions only as a reception node and does not output waveform data to the A bus 262, no transmission frame is assigned.
[0079]
3. Operation of the embodiment
Next, the operation of this embodiment will be described.
First, when the power of the tone synthesizer of this embodiment is turned on, the contents of the parameter ROM 490 of each node are read by the CPU 212, thereby detecting the type of each node. Next, depending on the currently implemented node, possible operation modes are listed on the display 208. The realizable operation modes are, for example, “general sound source (FIG. 13)”, “electronic piano sound source”, “synthesizer sound source”, “multitrack recording device (FIG. 15)”, and the like. When the user selects one of these operation modes, detailed parameters according to the selected operation mode (for example, the number of parts of waveform data to be synthesized in the sound source, detailed contents of effects, mixing ratio of multiple channels), etc. Can be further set.
[0080]
When the above setting is completed, detailed operation contents of each node are determined. That is, the number of frames provided within one sampling period, and the frame in which each node becomes a transmission node and the frame that becomes a reception node are determined, and the offset value is determined in the frame that becomes a reception node. The detailed timing relationship in each frame is also determined.
[0081]
For example, when waveform data is to be transferred from a certain transmission node to one or a plurality of reception nodes, the transmission / reception rate is determined according to the node having the highest transmission rate or the lowest reception rate among all the transmission / reception nodes. . The number of clocks of the clock signal ACLK in each frame is determined according to the amount of data transmitted and received and the bus width, and the length of each frame is determined. When all parameters are determined in this way, the CPU 212 writes these parameters in the control register 470 of each node. As a result, the musical tone synthesizer can function in a desired operation mode.
[0082]
Further, if the user can freely edit the logical connection state between the nodes, in addition to the operation modes listed when the power is turned on, a user-specific operation mode can be realized. In such a case, a transmission slot (transmission frame number and the number of units) in which each node performs transmission and / or a reception slot (reception frame and unit number in which each node receives) according to the set logical connection state ) Is automatically determined by the CPU 212 and set in the reception control register 472 and the transmission control register 476 of each node. Here, different transmission slot numbers are sequentially assigned to each node by the CPU 212 so that the same transmission slot is not set for different nodes. Further, it is checked whether or not the sum of the number of units of the plurality of transmission slots exceeds the transfer capability for each sampling period of the A bus 262, and if it exceeds, it is preferable to warn the user.
[0083]
Alternatively, the user may be able to freely specify the transmission frame and / or the number of units of each node. In that case, the CPU 212 checks whether the same frame number is designated as a transmission frame in any two of the plurality of nodes, and warns the user if the same frame number is designated, or One frame number may be automatically corrected. Further, when the number of transmission units in a plurality of nodes exceeds the transfer capability of the A bus 262, it is preferable to warn to that effect.
[0084]
Thus, according to the present embodiment, the logical connection state can be freely set without changing the physical connection state in the sound source unit 250. Thereby, the variation of the function or operation mode realized by the sound source unit 250 can be made rich, and the versatility can be made extremely high.
[0085]
Four. Modified example
The present invention is not limited to the above-described embodiment, and various modifications can be made as follows, for example.
(1) In the above embodiment, the user determines the operation mode of the musical tone synthesizer by the selection operation. However, the operation mode can be automatically determined. For example, when the musical tone synthesizer of the above embodiment is used as a part of a system such as an electronic piano, an electronic organ, or a synthesizer, the CPU 212 detects the type of the system in which the musical tone synthesizer is mounted, and It is preferable to automatically set the operation mode of the musical tone synthesizer so as to be suitable.
[0086]
(2) In the above embodiment, the data line bit number register 474 (see FIG. 9) stores the bit width of the data signal ADAT corresponding to each address of the reception control register 472. It may be fixed to either “bit” or “4 bits”, and the bit width may be stored for each “frame”.
[0087]
(3) In the above embodiment, the type of each node is detected when the musical tone synthesizer is turned on, and the operation mode corresponding to the type of node is selected. However, the operation mode may be set regardless of the node type. Moreover, although the user has selected one operation mode from a plurality of operation modes, it is not essential that the user can select. For example, the manufacturer may fixedly determine the operation mode for each model and set it in the musical tone synthesizer. Specifically, only the CPU program corresponding to the operation mode determined for the model may be stored in the ROM 214, and the CPU 212 may set the respective nodes connected to the A bus 262 accordingly. Alternatively, a plurality of CPU programs corresponding to the operation modes for a plurality of models are stored in the ROM 214, and one CPU corresponding to the operation mode of the corresponding model is selected by a jumper line, a micro switch, a pull-up or pull-down resistor, etc. on the sound source board. A program may be selected.
[0088]
【The invention's effect】
  As described above, according to the present invention, the control means applies to each transmitting node and receiving node.Transmission frame and reception frame, etc.After that, since data transfer is performed between each transmitting node and receiving node without intervening control means, it is possible to freely set the logical connection state from any transmitting node to any receiving node. Even though it is a simple circuit, high versatility can be realized.
[Brief description of the drawings]
FIG. 1 is a block diagram of a conventional sound source unit and a sound source unit targeted by the present invention.
FIG. 2 is an overall block diagram of a musical tone synthesis apparatus according to an embodiment of the present invention.
FIG. 3 is a circuit diagram showing a connection relationship between each node and an A bus 262;
4 is a timing chart (1/2) in the circuit of FIG. 3;
FIG. 5 is a timing chart (2/2) in the circuit of FIG. 3;
FIG. 6 is a diagram illustrating an arrangement of bits with respect to a transmission bit width.
FIG. 7 is a block diagram showing a general configuration of each node.
8 is an operation explanatory diagram of a time slot conversion unit 306. FIG.
9 is a block diagram of a receiving unit 400. FIG.
10 is a block diagram of a transmission unit 450. FIG.
11 is a block diagram showing a specific configuration of a waveform processing unit 320. FIG.
12 is a diagram showing a channel configuration in a mixer 372. FIG.
FIG. 13 is a block diagram showing a logical connection state when the sound source unit 250 is configured as a normal sound source.
14 is a diagram showing an example of frame allocation for realizing the logical connection state of FIG. 13;
FIG. 15 is a block diagram showing a logical connection state when the sound source unit 250 is configured as a multi-track recording apparatus.
16 is a diagram showing an example of frame allocation for realizing the logical connection state of FIG. 15;
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 10 ... Data signal line, 11 ... Clock signal line, 12 ... Direction signal line, 13 ... Frame signal line, 15, 16, 17 ... Node, 202 ... MIDI / I / O unit, 204 ... Other I / O unit, 206 DESCRIPTION OF SYMBOLS ... Panel switch part, 208 ... Display, 210 ... External storage device, 212 ... CPU, 214 ... ROM, 216 ... RAM, 218 ... CPU bus, 220 ... Sound system, 250 ... Sound source part, 251 ... Word clock generator, 253 ... Direct connection line, 256,258,260 ... Expansion board, 256a ... 16 part sound source, 256b ... AD converter, 258a ... effector, 258b ... multitrack recorder, 260a ... digital input / output unit, 260b ... DA converter, 262 ... A Bus, 264 ... DA converter, 268 ... Word clock external input terminal, 300 ... 302, operation clock generation unit, 304 ... buffer amplifier, 306 ... time slot conversion unit, 320 ... waveform processing unit, 351 ... waveform synthesis unit, 352 ... channel accumulator, 361, 362 ... effect processing unit, 371 , 371 ... Waveform synthesis section, 372, 372 ... Mixer, 374 ... I / O section, 400 ... Reception section, 402 ... Frame counter, 404 ... Word counter, 406 ... Offset counter, 408 ... Comparator, 410 ... Acquisition counter Reference numeral 412: Acquisition register unit, 414: Bit rearrangement unit, 416: Reception data register, 450: Transmission unit, 452, 454 ... Comparator, 456 ... S flag setting circuit, 458 ... Timing signal generation unit, 460 ... Word counter , 462 ... Read counter, 464 ... Transmission data register, 466 ... Bit selection unit, 4 0 ... control register 472 ... reception control register, 472, 474 ... register, 474,478 ... data line bit number register, 476 ... transmission control register, 490 ... parameter ROM.

Claims (10)

サンプリング周期毎に時分割で複数タイムスロットのデータ信号の転送を行うためのデータ転送バスと、
前記データ転送バスに対して前記データ信号を送信する複数の送信ノードと、
前記データ転送バスから前記データ信号を受信する少なくとも一つの受信ノードと、
前記各送信ノードに対して、各々異なる送信フレームの番号とユニット数とを設定するとともに、前記受信ノードに対して、前記送信フレームのうち何れかに等しい受信フレームの番号を前記受信ノードに対して設定する制御手段と、
を具備し、
前記各送信ノードは各サンプリング周期毎に、設定された送信フレームの番号が示すフレームを検出し、検出されたフレームにおいて前記設定されたユニット数の波形データを前記データ転送バスに供給するものであり、
前記受信ノードは各サンプリング周期毎に、設定された受信フレームの番号が示すフレームを検出し、検出されたフレームにおいて前記設定されたユニット数の波形データを受信するものであり、
前記各送信ノードが送信するフレームのサイズは、当該送信ノードに設定された前記ユニット数に応じて増減する
ことを特徴とする波形データ処理装置。
A data transfer bus for transferring data signals of a plurality of time slots in a time-sharing manner for each sampling period;
A plurality of transmission nodes for transmitting the data signal to the data transfer bus;
At least one receiving node for receiving the data signal from the data transfer bus;
A different transmission frame number and unit number are set for each transmission node, and a reception frame number equal to any of the transmission frames is set for the reception node. Control means to set;
Comprising
Each transmission node detects a frame indicated by a set transmission frame number at each sampling period, and supplies waveform data of the set number of units to the data transfer bus in the detected frame . ,
The receiving node detects a frame indicated by a set received frame number for each sampling period, and receives waveform data of the set number of units in the detected frame .
The waveform data processing apparatus characterized in that the size of the frame transmitted by each transmission node increases or decreases according to the number of units set in the transmission node .
前記複数の送信ノードは、前記データ転送バスにワイヤードオア形式で接続されていることを特徴とする請求項1記載の波形データ処理装置。The waveform data processing apparatus according to claim 1, wherein the plurality of transmission nodes are connected to the data transfer bus in a wired OR format. 前記複数の送信ノードは、それぞれ前記データ信号を前記データ転送バスに出力する際、同時に、当該送信ノードが送信を行うフレームであることを示すフレーム信号を前記データ転送バスに出力するものであり、Each of the plurality of transmission nodes outputs a frame signal indicating that the transmission node is a frame to be transmitted to the data transfer bus simultaneously when outputting the data signal to the data transfer bus,
各々の前記送信ノードは、前記複数の送信ノードがそれぞれ前記データ転送バスに出力した該フレーム信号をカウントすることによりフレーム番号を特定し、該フレーム番号の示す順番のフレームを検出するものであり、Each of the transmission nodes specifies a frame number by counting the frame signal output to the data transfer bus by each of the plurality of transmission nodes, and detects frames in the order indicated by the frame number,
各々の前記受信ノードは、前記複数の送信ノードがそれぞれ前記データ転送バスに出力した該フレーム信号をカウントすることによりフレーム番号を特定し、該フレーム番号の示す順番のフレームを検出するものであるEach of the receiving nodes specifies a frame number by counting the frame signal output to the data transfer bus by each of the plurality of transmitting nodes, and detects a frame in the order indicated by the frame number.
ことを特徴とする請求項1または2に記載の波形データ処理装置。The waveform data processing apparatus according to claim 1 or 2, characterized in that
前記制御手段は、前記データ転送バスに接続された各送信ノードの種別を検出し、その検出結果に基づいて各送信ノードの前記送信フレームの番号とユニット数とを設定する
ことを特徴とする請求項1記載の波形データ処理装置。
The control means detects the type of each transmission node connected to the data transfer bus, and sets the number of transmission frames and the number of units of each transmission node based on the detection result. Item 2. The waveform data processing apparatus according to Item 1.
前記制御手段は、前記データ転送バスに接続された受信ノードの種別を検出し、その検出結果に基づいて該受信ノードの前記受信フレームの番号を設定する
ことを特徴とする請求項1記載の波形データ処理装置。
The waveform according to claim 1, wherein the control means detects a type of a reception node connected to the data transfer bus and sets the number of the reception frame of the reception node based on a detection result. Data processing device.
ユーザからのユーザ指示を受信する指示入力部をさらに具備し、前記制御手段は、該ユーザ指示に応じて少なくとも一つの送信ノードの前記送信フレームの番号およびユニット数、または前記受信ノードの受信フレームの番号を設定する
ことを特徴とする請求項1記載の波形データ処理装置。
An instruction input unit for receiving a user instruction from a user is further provided, and the control means determines the number and unit number of the transmission frame of at least one transmission node or the reception frame of the reception node according to the user instruction . The waveform data processing device according to claim 1, wherein a number is set.
ユーザからの指示に応じて動作モードを指定する指示入力部をさらに具備し、
前記制御手段は、指定された動作モードに応じて前記複数の送信ノードそれぞれの前記送信フレームの番号およびユニット数と、前記受信ノードの前記受信フレームの番号とを設定する
ことを特徴とする請求項1記載の波形データ処理装置。
An instruction input unit for specifying an operation mode according to an instruction from the user;
The control means sets the number and unit number of the transmission frame of each of the plurality of transmission nodes and the number of the reception frame of the reception node according to a designated operation mode. 1. The waveform data processing apparatus according to 1.
ユーザからの指示に応じて前記各送信ノードおよび前記受信ノード間の論理的な結合状態を指定する指示入力部をさらに具備し、
前記制御手段は指定された結合状態と前記複数の送信ノードの各送信フレームの番号とに応じて前記受信ノードにおける受信フレームの番号を設定することを特徴とする請求項1記載の波形データ処理装置。
An instruction input unit for designating a logical connection state between each of the transmission nodes and the reception node according to an instruction from a user;
2. The waveform data processing apparatus according to claim 1, wherein the control means sets the number of the received frame at the receiving node according to the designated combined state and the number of each transmission frame of the plurality of transmitting nodes. .
前記制御手段は、前記波形データ処理装置が実装されるシステムの種別を検出し、その検出結果に基づいて前記複数の送信ノードの各送信フレームの番号およびユニット数と、前記受信ノードの前記受信フレームの番号とを設定することを特徴とする請求項1記載の波形データ処理装置。The control means detects the type of system in which the waveform data processing device is mounted, and based on the detection result, the number and unit number of each transmission frame of the plurality of transmission nodes, and the reception frame of the reception node The waveform data processing apparatus according to claim 1, wherein: 前記制御手段は、前記受信ノードに対し、前記受信フレームの番号に加えて、該受信フレーム内の受信すべき波形データを示すユニット番号を設定し、The control means sets a unit number indicating waveform data to be received in the received frame in addition to the number of the received frame for the receiving node,
前記受信ノードは、設定されたフレーム番号に応じて、前記検出されたフレーム内の受信すべきデータを検出し、検出された波形データを選択的に受信するThe receiving node detects data to be received in the detected frame according to a set frame number, and selectively receives the detected waveform data.
ことを特徴とする請求項1記載の波形データ処理装置。The waveform data processing apparatus according to claim 1.
JP2002266878A 2002-09-12 2002-09-12 Waveform data processor Expired - Fee Related JP3846388B2 (en)

Priority Applications (9)

Application Number Priority Date Filing Date Title
JP2002266878A JP3846388B2 (en) 2002-09-12 2002-09-12 Waveform data processor
US10/655,386 US7220908B2 (en) 2002-09-12 2003-09-04 Waveform processing apparatus with versatile data bus
EP03103300A EP1400949B1 (en) 2002-09-12 2003-09-05 Waveform processing apparatus with versatile data bus
DE60321520T DE60321520D1 (en) 2002-09-12 2003-09-05 Flexible data bus device for processing waveforms
CNB031570860A CN100512184C (en) 2002-09-12 2003-09-12 Wave-type data processing equipment with general data bus and method thereof
CNU032094949U CN2696075Y (en) 2002-09-12 2003-09-12 Wave-shape data processor
US11/450,162 US7459625B2 (en) 2002-09-12 2006-06-06 Waveform processing apparatus with versatile data bus
US12/038,778 US20080156175A1 (en) 2002-09-12 2008-02-27 Waveform processing apparatus with versatile data bus
US12/959,249 USRE43076E1 (en) 2002-09-12 2010-12-02 Waveform processing apparatus with versatile data bus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002266878A JP3846388B2 (en) 2002-09-12 2002-09-12 Waveform data processor

Publications (2)

Publication Number Publication Date
JP2004102136A JP2004102136A (en) 2004-04-02
JP3846388B2 true JP3846388B2 (en) 2006-11-15

Family

ID=32265567

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002266878A Expired - Fee Related JP3846388B2 (en) 2002-09-12 2002-09-12 Waveform data processor

Country Status (1)

Country Link
JP (1) JP3846388B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5228579B2 (en) * 2008-03-31 2013-07-03 ヤマハ株式会社 Integrated circuit for musical sound generator
JP2023140619A (en) * 2022-03-23 2023-10-05 カシオ計算機株式会社 Sound source system, method and program

Also Published As

Publication number Publication date
JP2004102136A (en) 2004-04-02

Similar Documents

Publication Publication Date Title
USRE43076E1 (en) Waveform processing apparatus with versatile data bus
US5933430A (en) Data communication method
JP3915585B2 (en) DATA GENERATION METHOD, PROGRAM, RECORDING MEDIUM, AND DATA GENERATION DEVICE
US6665409B1 (en) Methods for surround sound simulation and circuits and systems using the same
EP0551884B1 (en) Tone signal generator adapted for coupling with personal computer
JPS6211921A (en) Frequency conversion system between different types of computers
US20040071169A1 (en) Command synchronization establishment system
US6404770B1 (en) Data communication interface with adjustable-size buffer
EP1217604B1 (en) Musical sound generator
US5262580A (en) Musical instrument digital interface processing unit
JP3846388B2 (en) Waveform data processor
JP3952916B2 (en) Waveform data processor
JP2850707B2 (en) Music control device
JP3846387B2 (en) Waveform data processing device, transmission node and reception node
JP3861873B2 (en) Music system and music data transmission / reception device
JPH09258737A (en) Sound source system using computer software
US7474753B2 (en) Sound field control apparatus, signal processing apparatus, sound field control program, and signal processing program
JP3482893B2 (en) Interface device
JP3060920B2 (en) Digital signal processor
JP4206613B2 (en) Music data transmitter
JP4178641B2 (en) Karaoke equipment
JPH0732396B2 (en) Data transfer system and timing control device
JP3252426B2 (en) Digital sound recording and playback device
JP3741047B2 (en) Sound generator
JP2003271150A (en) Multitrack player, multitrack recorder and multitrack recorder/player

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040722

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060404

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060601

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060801

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060814

R150 Certificate of patent or registration of utility model

Ref document number: 3846388

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100901

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100901

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110901

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120901

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130901

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees