(57)【要約】【課題】  特定のチャンネルに固定的な状態にならないようにして、外部のプロセッサから波形メモリへのアクセスができるようにした音源装置を提供する。【解決手段】  波形メモリ１０１と、時分割チャンネル処理で動作し、楽音生成に関するパラメータに基づいて１又は複数チャンネル分の楽音波形データを波形メモリ１０１から読み出して、所望の楽音信号を生成すると共に、空きのあるチャンネルとその空きタイミングとを含む空きチャンネル情報を出力する楽音生成部１００１と、該空きチャンネル情報に基づき、空きチャンネルの少なくとも１つを用いて、その空きタイミングの間、外部のＣＰＵ２０１から、波形メモリ１０１へアクセスさせるアクセス制御部１００２とを有している。【選択図】        図４
2005266662.tif 000002
【特許請求の範囲】
【請求項１】
楽音波形データを記憶する波形メモリと、
時分割チャンネル処理で動作し、楽音生成に関するパラメータに基づいて１又は複数チャンネル分の楽音波形データを上記波形メモリから読み出して、所望の楽音信号を生成すると共に、空きのあるチャンネルとその空きタイミングとを含む空きチャンネル情報を出力する楽音生成手段と、
該空きチャンネル情報に基づき、空きチャンネルの少なくとも１つを用いて、その空きタイミングの間、外部のプロセッサから、上記波形メモリへアクセスさせるアクセス制御手段と
を有することを特徴とする音源装置。
【請求項２】
空きチャンネルがない時に、上記楽音生成手段により、特定のチャンネルをトランケート処理して発音処理を終了させ、その空きチャンネル情報を受信した上記アクセス制御手段により、特定の空きチャンネルを使用して、外部のプロセッサから、上記波形メモリへアクセスさせることを特徴とする請求項１記載の音源装置。
【請求項３】
上記楽音生成手段によるチャンネルのトランケート処理は、最も先に押されたキーが使用しているチャンネルに対して行われることを特徴とする請求項２記載の音源装置。
【請求項４】
上記楽音生成手段によるチャンネルのトランケート処理は、特定の音域にあるキーが使用しているチャンネルに対して行われることを特徴とする請求項２記載の音源装置。
【請求項５】
上記楽音生成手段によるチャンネルのトランケート処理は、最も発音レベルの小さなチャンネルに対して行われることを特徴とする請求項２記載の音源装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部のプロセッサ（ＣＰＵなどのマイクロプロセッサ）から波形メモリへのアクセスが可能な音源装置に関する。
【背景技術】
【０００２】
従来電子楽器などにおいては、楽音波形のサンプル値データを記憶している波形メモリから波形データを順次読み出すことで、楽音信号を生成している。このような電子楽器では、複数の楽音信号を同時に発音するために、１サンプリングタイム時間内に、時分割処理により、複数のチャンネル毎に波形データを読み出し、該サンプリングタイム時間内に読み出された波形データを夫々のチャンネル毎に累算して、複数の波形データが同時に読み出されることになる。
【０００３】
他方上記波形メモリには、波形データ以外にも例えば電子楽器に備えられたＣＰＵが使用する特定のシーケンスデータなどを記憶しておくことが可能である。そのため、該ＣＰＵから、波形メモリへのアクセスができるようにすることを目的として、複数のチャンネルのうち、１チャンネルをＣＰＵによるデータ読み出し書き込み専用にする構成が提案されている（後述する特許文献１、特に段落番号００１１の記載を参照のこと）。
【特許文献１】特開平７−１６８５７４号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、上記従来構成では、特定のチャンネルがＣＰＵアクセス専用に固定的に使用され、例えば或るタイミングで全てのチャンネルを楽音信号発生に使用したい場合などは、それができないなど、チャンネルアサインにおいてフレキシブルさを欠くといった問題を生じていた。
【０００５】
本発明は、以上のような問題に鑑み創案されたもので、特定のチャンネルに固定的な状態にならないようにして、外部のプロセッサから波形メモリへのアクセスができるようにした音源装置を提供せんとするものである。
【課題を解決するための手段】
【０００６】
そのため本発明に係る音源装置は、
楽音波形データを記憶する波形メモリと、
時分割チャンネル処理で動作し、楽音生成に関するパラメータに基づいて１又は複数チャンネル分の楽音波形データを上記波形メモリから読み出して、所望の楽音信号を生成すると共に、空きのあるチャンネルとその空きタイミングとを含む空きチャンネル情報を出力する楽音生成手段と、
該空きチャンネル情報に基づき、空きチャンネルの少なくとも１つを用いて、その空きタイミングの間、外部のプロセッサから、上記波形メモリへアクセスさせるアクセス制御手段と
を有することを基本的特徴としている。
【０００７】
上記構成によれば、楽音生成手段が、楽音信号の生成以外にも空きチャンネル情報をアクセス制御手段に対して出力しており、その空きチャンネル情報を基に、該アクセス制御手段が、空きチャンネルの少なくとも１つを用いて、その空きタイミングの間、外部のプロセッサ（ＣＰＵなどのマイクロプロセッサ）から、上記波形メモリへアクセスさせることになる。そのため、外部のプロセッサから波形メモリへのアクセスが特定のチャンネルに固定してしまわない状態にして、波形メモリへのアクセスを可能にしている。
【０００８】
他方、上記のような構成において、空きチャンネルがなくなったタイミングでは、上記楽音生成手段により、特定のチャンネルをトランケート処理して発音処理を終了させ、その空きチャンネル情報を受信した上記アクセス制御手段により、特定の空きチャンネルを使用して、外部のプロセッサから、上記波形メモリへアクセスさせるようにする構成とすることも可能である。
【０００９】
そのようなチャンネルのトランケート処理は、最も先に押されたキーが使用しているチャンネルに対して行われることでも良い。
【００１０】
また同じくチャンネルのトランケート処理は、特定の音域にあるキー（目立たない音域にあるキー）が使用しているチャンネルに対して行われることでも良い。
【００１１】
さらに上記トランケート処理は、最も発音レベルの小さなチャンネルに対して行われるようにしても良い。
【発明の効果】
【００１２】
本発明の請求項１記載の音源装置によれば、楽音生成手段が、楽音信号の生成以外にも空きチャンネル情報をアクセス制御手段に対して出力しており、その空きチャンネル情報を基に、該アクセス制御手段が、空きチャンネルの少なくとも１つを用いて、その空きタイミングの間、外部のプロセッサから、上記波形メモリへアクセスさせることになるため、外部のプロセッサから波形メモリへのアクセスが特定のチャンネルに固定してしまわない状態にして、波形メモリへのアクセスを可能になるという優れた効果を奏し得る。すなわち、外部のプロセッサから波形メモリへアクセスさせる構成の場合にも、そのアクセスについてフレキシブルなチャンネルアサインを可能にする。
【００１３】
また請求項２〜５の構成によれば、上記空きチャンネルを使用して外部のプロセッサから波形メモリへアクセスさせる請求項１の構成の場合に、空きチャンネルがなくなったタイミングでも、上記楽音生成手段により、特定のチャンネル（請求項３〜５に記載）をトランケート処理して発音処理を終了させ、その空きチャンネル情報を受信した上記アクセス制御手段により、特定の空きチャンネルを使用して、外部のプロセッサから、上記波形メモリへアクセスさせるようにすることが可能となる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態を図示例と共に説明する。
図１は、本発明に係る音源装置の構成を備えた電子楽器（例えば電子オルガン）の回路概略図である。
【００１５】
本電子楽器は、電子ピアノの鍵盤で任意の音色を演奏したり、電子オルガンの上下手鍵盤及び足鍵盤などに夫々異なる音色を割り当てることができるようになっており、しかも鍵盤は、左右でスプリットされ、夫々の位置で同じく違う音色が設定できるようになっている。従って、これらの鍵盤などを押鍵すると、夫々の楽音が同時に発生するのに必要なチャンネル数は、６４チャンネル数を超えることも多い。
【００１６】
本電子楽器は、図１に示すように、システムバス２００を介して、ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、パネルスキャン回路２０４ａ、鍵盤スキャン回路２０５ａ、楽音発生部１００が相互に接続されて構成されている。システムバス２００は、アドレス信号、データ信号又は制御信号等を送受するために使用される（アドレスバス、データバス、コントロール信号ラインよりなる信号バス）。
【００１７】
ＣＰＵ２０１は、本電子楽器の制御をつかさどる中央演算装置であって、後述するＲＯＭ２０２に格納されているプログラムに従って、鍵盤スキャン回路２０５ａとパネルスキャン回路２０４ａを制御して鍵盤２０５のキー、操作パネル２０４の音色設定スイッチなどを走査し、鍵盤２０５の押鍵・離鍵に伴う押鍵データ［キーＯＮ・ＯＦＦ、キー識別情報（キー番号など）、キータッチレスポンス：キーデータ］の楽音発生部１００への割り当て処理、操作パネル２０４の音色設定スイッチ、ボリュームに応じて楽音発生部１００より所望の楽音信号を発生させるように制御する。また後述するように、必要に応じて、直接波形メモリ１０１のＣＰＵ用データエリアに、アクセス制御部の制御に従って、シーケンスデータなどの読み込み・書き込みを行う。
【００１８】
上記ＲＯＭ２０２は、上述したＣＰＵ２０１用のプログラムの他に、ＣＰＵ２０１が楽音発生に参照する種々のパラメータデータを格納する読み出し専用メモリである。
【００１９】
上記ＲＡＭ２０３は、ＣＰＵ２０１におけるプログラム処理での処理段階のデータを一時記憶しておいたり、エディット可能なパラメータデータを記憶しておく、読み書き可能でメモリである。一部はバッテリバックアップされており、操作パネル２０４の音色設定に応じた必要なデータを格納保持（電源がＯＦＦとなっても格納保持）しておくことができる。また、このＲＡＭには、必要に応じてレジスタ、カウンタ、フラグ機能等が定義されている。
【００２０】
パネルスキャン回路２０４ａは、ＣＰＵ２０１からの指令に応答して操作パネル２０４上の各スイッチをスキャンし、このスキャンにより得られた各スイッチの開閉状態を示す信号に基づいて、各スイッチを１ビットに対応させたパネルデータを作成する。各ビットは、例えば「１」でスイッチオン状態、「０」でスイッチオフ状態を表す。このパネルデータは、システムバス２００を介してＣＰＵ２０１に送られる。このパネルデータは、操作パネル２０４上のスイッチのオンイベント又はオフイベントが発生したかどうかを判断するために使用される。
【００２１】
また、パネルスキャン回路２０４ａは、ＣＰＵ２０１から送られてきた表示データを操作パネル２０４上のＬＥＤ表示器及びＬＣＤに送る。これにより、ＣＰＵ２０１から送られてきたデータに従って、ＬＥＤ表示器が点灯／消灯され、またＬＣＤにメッセージが表示される。
【００２２】
パネルスキャン回路２０４ａには、操作パネル２０４が接続されている。操作パネル２０４には、音色選択及び設定するためのスイッチやボリュームや、選択及び設定状態を表示する上記ＬＣＤ乃至ＬＥＤ表示器などより構成される表示部を有している。操作パネル２０４の音色選択により音色設定フラグの設定がなされる。また、演奏者の操作パネル２０４の操作により、音色設定フラグが直接変更される場合もある。
【００２３】
上記鍵盤スキャン回路２０５ａは、鍵盤２０５で生成される押鍵データを検出する検出回路である。すなわち、これらの鍵盤２０５には、夫々２点スイッチが設けられており、任意の鍵盤２０５が所定以上の深さまで押し下げられたことを検出すると、その鍵盤の音高データ（キー番号）の押鍵信号を生成すると共に、２点スイッチ間を通過する速度からベロシティを生成し、それらを押鍵データとして、鍵盤スキャン回路２０５ａに送る。２点スイッチとしては、鍵が所定以上の深さまで押し下げられたことを検出できる光センサ、圧力センサ、その他のセンサを使用できる。鍵盤スキャン回路２０５ａは、２点スイッチからの押鍵データを受け取ると、それをＣＰＵ２０１に送る。
【００２４】
鍵盤スキャン回路２０５ａからの押鍵データは、ＣＰＵ２０１により、ＲＡＭ２０３上の音色設定フラグが参照され、夫々のチャンネルに対応する楽音発生部１００に送られることになる。
【００２５】
楽音発生部１００は、専用のＬＳＩで設計されており、上記操作パネル２０４で選択及び設定された音色で、鍵盤２０５で演奏されたキーに応じた読み出しアドレスを発生して、本願の波形データ記憶手段に相当する後述の波形メモリ１０１から原データを読み出し、さらに、該原データの補間処理を行った後、同じく同回路で生成された音色毎のエンベロープを乗算し、夫々の音色の波形データを設定されたチャンネル分累算して、外部に楽音信号を発生する。この構成の詳細は後に説明する。また図示していないが、この楽音信号に所定の音響効果（残響効果を含む）を付加する音響効果付加構成も備えていても良い。さらに、楽音発生部１００から出力された楽音信号は、Ｄ／Ａ変換回路２０６に入力され、デジタル−アナログ変換され、アナログ信号処理部２０７でノイズが除去され、アンプ２０８で増幅されて、スピーカ２０９から外部に楽音として放出される。
【００２６】
波形メモリ１０１は、本実施形態構成では、データの読み書きが可能なランダムアクセスメモリで構成されている。従って、本電子楽器がスイッチＯＮされてイニシャル処理がなされた後などに、上記ＲＯＭ２０２などから楽音波形データが読み出され、そこに記憶されることになる。該楽音波形データは、音色及び音域（音高）に対応しているため、音色選択及び押鍵データに応じて、所望の楽音周波数に従って上記楽音発生部１００からの読み出し信号で該データが読み出されることになる。この波形データは、例えばヘッド部とループ部で構成される波形データとして音色・音域に関連して所定のエリアに記憶されている。またこの波形メモリ１０１の一部には、後述する図５(ｂ)に示すように、ＣＰＵ用データエリアが確保されている。
【００２７】
Ｄ／Ａ変換回路２０６は、上記楽音発生部１００で生成されたデジタル楽音信号をアナログ楽音信号に変換するデジタル−アナログ変換器である。
【００２８】
アナログ信号処理部２０７は、アナログ楽音信号に対して簡単なフィルタ処理（ノイズ除去）、増幅処理を施す信号処理回路である。
【００２９】
アンプ２０８は、アナログ処理されたアナログ楽音信号をスピーカ２０９で発生させるために増幅するパワーアンプである。
【００３０】
スピーカ２０９は、アナログ信号を可聴信号として放音するスピーカであり、１乃至複数個よりなる。
【００３１】
図２は、上記楽音発生部１００（後述するようにこの構成は、さらに楽音生成部とアクセス制御部により構成される）と波形メモリ１０１とで構成される本願発明に係る音源装置構成の概要図を示し、図３はその構成における波形データ読み出しタイミングのタイムチャートを示している。
【００３２】
図２(ａ)に示される構成は、楽音発生部１００が１つの場合であり、該楽音発生部１００が波形メモリ１０１に対して記憶されている波形データを読み出すために１つのチャンネル（任意のチャンネルをｎとしている）で一回アクセスしている。そのアクセスタイミングは、図３(ａ)に示されるように、１つおきになされており、半分のタイミングは余っている。この半分の空きタイミングにおいて、ＣＰＵ２０１が該波形メモリ１０１に対してアクセスすることを可能にしている。
【００３３】
図２(ｂ)に示される構成は、楽音発生部１００が２つの場合であり、マスタ楽音発生部１００ａ及びスレーブ楽音発生部１００ｂが、波形メモリ１０１に対して、夫々１つのチャンネルｎと６４＋ｎ（６４は１つの楽音発生部が有するチャンネル数）で一回アクセスしている。この場合は、マスタ楽音発生部１００ａ及びスレーブ楽音発生部１００ｂが波形メモリ１０１から波形データを読み出すために、図３(ｂ)に示されるように、アクセスタイミングが全て使われており、ＣＰＵ２０１が波形メモリ１０１に対するアクセスタイミングがない。強制的にＣＰＵ２０１が波形メモリ１０１にアクセスするようにすることも可能であるが、そうすると発音中に楽音信号にＣＰＵ２０１とのデータが混じり込みノイズになってしまう。この点については本実施形態構成では後述する構成によりそのような不具合を回避できるようにしている。
【００３４】
図４は、図１の波形メモリ１０１と楽音発生部１００（一点鎖線で示している）に備えられたＣＰＵインタフェースを中心とした説明図である。同図には、特に波形メモリ１０１とのＣＰＵインタフェースを詳細にしたインタフェース部（点線で示している）が示されている。
【００３５】
楽音発生部１００に構成されるＣＰＵインターフェースのうち、点線で示されたＣＰＵインターフェース部Ａは、波形メモリ１０１に対してＣＰＵ２０１がアクセスするためのインタフェース回路である。該ＣＰＵ２０１は、図５(ｂ)に示される構成の波形メモリ１０１に対して、その楽音波形データエリアに楽音波形データを書き込んだり、必要に応じて設けられているＣＰＵ用データエリアに対して、ＣＰＵ２０１が予め記憶されている楽音生成のパラメータを使用したり、或いは演算途中のデータを一時的に蓄えたりするために、それらのデータの読み書きを行う。
【００３６】
一方点線の外側にあるＣＰＵインターフェース部Ｂは、楽音発生のために使用するデータをＣＰＵ２０１から書き込む（一部読み出すことも想定される）ためのインターフェース回路である。上記ＣＰＵ２０１は、図５(ａ)で示す構成の制御パラメータメモリに対して、例えば発音のために特定のチャンネルが割り当てられれば、該当するチャンネルに発音に必要な制御パラメータ（波形読み出しパラメータ、フィルタ制御パラメータ、振幅制御パラメータ、出力制御パラメータ）をセットするようにする。
【００３７】
楽音発生部１００に備えられた楽音生成部１００１は、図５(ａ)に示された制御パラメータメモリ１１０１の制御パラメータに応答して、操作パネル２０４で選択・設定された音色で、鍵盤２０５で演奏されたキーに応じた楽音信号を発生する。またこの楽音生成部１００１は、チャンネル毎に時分割で構成される各チャンネル毎の発音状態から、空きのあるチャンネルとその空きタイミングとを含む空きチャンネル情報ＥＭＰＴを、後述するアクセス制御部１００２に出力する。
【００３８】
同じく楽音発生部１００に備えられたアクセス制御部１００２は、ＣＰＵ２０１側に波形メモリ１０１へのアクセスを許可する信号ＥＮＸ（アクティブ“Ｌ”）とＣＰＵ２０１側からのアクセスがリード（Ｒｅａｄ）であるかライト（Ｗｒｉｔｅ）であるかを表すリードライト信号ＲＷＳを出力する。その出力条件は、後述するラッチ１００９における、図６(ｂ)に示す上位２ビットとして保持されている制御信号Ｃ1、Ｃ0が、“10b”（データの波形メモリ２０１への書き込み）か“11b”（データを波形メモリ２０１より読み込み）で、上記楽音生成部１００１より出力される空きチャンネル情報ＥＭＰＴの出力があり、その情報から得られる空いているチャンネルと空きタイミングからＣＰＵ２０１からのアクセスが可能であることを示す時、出力される。すなわち、ＣＰＵ２０１より波形メモリ１０１へのアクセス許可は、楽音生成部１００１の空きチャンネル・空きタイミングを利用して行うことになる。
【００３９】
一方上記制御パラメータメモリ１１０１は、図５(ａ)に示すように、例えば６４発音を制御するためにチャンネル１〜６４で構成されるエリアを持つメモリである。夫々のパラメータについては、次のように定義される。
【００４０】
波形読み出しパラメータ：押鍵データ［キーＯＮ・ＯＦＦ、キー識別情報］と音色情報に応答して、波形メモリ１０１から記憶されている所望の楽音波形データを所望の楽音周波数に応じた速度で読み出すためのパラメータである。
【００４１】
フィルタ制御パラメータ：押鍵データ［キーＯＮ・ＯＦＦ、キー識別情報（キー番号など）、キータッチレスポンス］と音色情報によって、楽音周波数に応じて出力される波形データに含まれる周波数成分を制御するパラメータである。
【００４２】
振幅制御パラメータ：押鍵データ［キーＯＮ・ＯＦＦ、キー識別情報（キー番号など）、キータッチレスポンス］と音色情報に応答して、振幅を制御するためのパラメータである。
【００４３】
出力制御パラメータ：押鍵データ［キーＯＮ・ＯＦＦ、キー識別情報（キー番号など）、キータッチレスポンス］と音色情報に応答して、出力信号のパンポット制御などをするためのパラメータである。
【００４４】
さらにインターフェース部Ａ１０００内のコントロール信号発生器１００３は、ＣＰＵ２０１からのアドレスバスＡＢ及びコントロール信号ＣＴＳ（チップセレクト信号ＣＥＸ、ライトＷＥＸ、出力イネーブルＯＥＸなどで構成）を受けて、ＣＰＵ２０１からのアクセスに必要なコントロール信号Ｌ0〜Ｌ8を発生する。図６(ａ)は、そのアドレスとコントロール信号の対応関係を示している。左欄はアドレス、その隣の欄は該アドレスに対するインターフェース部Ａ内のジョブ内容、更に右欄はそれに対応するコントロール信号Ｌ0〜Ｌ8と信号の形状種類（アクティブ“Ｈ”：ＣＰＵ２０１からのデータライト、アクティブ“Ｌ”：ＣＰＵ２０１からのデータリード）を示している。
【００４５】
ラッチ１００４及び１００５は、８ビットのデータ保持器で、ＣＰＵ２０１から波形メモリ２０１に書き込みたいデータをセットしておくものである。
【００４６】
ラッチ１００６〜１００９は、８ビットのデータ保持器で、波形メモリ１０１にアクセスするために、アクセスしたいエリアを特定するアドレスをＣＰＵ２０１からセットしておくものである。ラッチ１００９に関しては、上述したように、ＣＰＵ２０１とのインターフェースのジョブの種類を示す制御情報［図６(ｂ)に示す上位２ビットとして保持されている制御信号Ｃ1、Ｃ0］も含まれている。
【００４７】
バッファ１０１０は、ＣＰＵ２０１からのデータバスＤＢをバッファする構成である。
【００４８】
ラッチ１０１１は、波形メモリ１０１からバッファ１０１６を経由して送られてきた、波形メモリ１０１から読み出したデータを保持しておく構成である。
【００４９】
バッファ１０１２〜１０１４は、入力される制御信号に応答して入力されている信号を出力側に出力するバッファで、制御信号がアクティブ以外の時はハイインピーダンス状態となる。そのうちバッファ１０１２は状態を読む（状態フラグで読み取られる）ためのもの、またバッファ１０１３及び１０１４はラッチ１０１１に蓄えられている波形メモリ１０１から読み出したデータを８ビット単位で読み込むための構成で、夫々ＣＰＵ２０１のデータバスＤＢに出力する。
【００５０】
バッファ１０１５は、入力される制御信号に応じて入力されている信号を出力側に出力するバッファで、制御信号がアクティブ以外の時はハイインピーダンス状態になり、ラッチ１００４及び１００５に保持されているＣＰＵ２０１から波形メモリ１０１に書き込みたいデータを波形メモリ１０１のデータバス（Ｄ15〜0）に供給する。
【００５１】
バッファ１０１６は、波形メモリ１０１からのデータバスをバッファするものである。
【００５２】
ＮＯＴバッファ１０１７は、入力信号を反転して出力するバッファで、ライト信号がアクティブ“Ｌ”の時“Ｈ”を出力して、波形メモリ１０１よりデータが出力されないようにする。
【００５３】
ＯＲゲート１０１８は、ＮＯＴバッファ１０１７からの出力が“Ｌ”（波形メモリ１０１からデータがリードされる場合）で、上述したアクセス制御部１００２からの信号が“Ｌ”→“Ｈ”になるのを出力するゲートで、この信号の立ち上がり（ＣＰＵ２０１アクセスジョブが終了したことを意味する）によってラッチ１０１１においてバッファ１０１６を経て供給される波形メモリ１０１からのデータを保持するためのラッチ用信号を供給する。
【００５４】
選択器１０１９は、そのＳ端子に供給される信号に応じて入力される信号を選択出力するセレクタであり、“Ｌ”の時ラッチ１００６〜１００９に記憶されているＣＰＵ２０１よりセットされたアクセス用アドレス（Ａ29〜Ａ0の３０ビット；ラッチ１００９の上位２ビットＣ1〜Ｃ0はＣＰＵ２０１とのインターフェースのジョブの種類を示す制御情報）とアクセス制御部１００２より発生されたリードライト信号ＲＷＳが選択され、“Ｈ”の時楽音生成部１００１より送られてくる押鍵データ［キーＯＮ・ＯＦＦ、キー識別情報（キー番号など）］と音色情報に応答して、波形メモリ１０１から記憶されている所望の楽音波形データを所望の楽音周波数に応じた速度で読み出すためのアドレスとリード状態にする“Ｈ”が選択される。
【００５５】
パルス発生器ＰＯＳ１０２０は、ポジティブパルスを発生する発生器で、アクセスをＣＰＵ２０１側に許可する信号ＥＮＸの立ち上がりを検出し（これはＣＰＵ２０１アクセスジョブが終了したことを意味する）、正方向のパルスを発生する。
【００５６】
ＳＲフリップフロップ１０２１は、Ｒ端子に入力があると出力Ｑは“Ｌ”にされ、Ｓ端子に入力があると出力Ｑは“Ｈ”にされるＳＲフリップフロップで、その出力はＣＰＵ２０１用アクセスが現在作動中であるかを示す状態フラグとなる。状態フラグが“Ｈ”の時がビジー状態である。Ｓ端子にＬ５［アクセス用アドレスの最上位ビットと制御情報をセットする信号；図６（ａ）参照］が入力されると、セットされて状態フラグがビジー状態になる。
【００５７】
ＯＲゲート１０２２は、上記ＳＲフリップフロップ１０２１のＲ端子に信号を送るゲートで、電源投入時或いは意図的なシステムリセット時に発生されるリセット信号ＲＳＴが発生された時と、パルス発生器ＰＯＳ１０２０よりＣＰＵアクセスジョブ終了を示す信号が送られてきた時、ＳＲフリップフロップ１０２１をリセットする信号を供給する。
【００５８】
図５は、上述の制御パラメータメモリ１１０１と波形メモリ１０１の格納エリアに格納される内容を示す説明図である。その内容についてはすでに、説明した通りである。
【００５９】
図６(ａ)は、上述したように、コントロール信号発生器１００３より発生されるコントロール信号Ｌ0〜Ｌ8の内容を示している。また(ｂ)も既にその詳細は示されているが、さらに説明を付加すると、同図にはコントロール信号Ｌ5の時、ＣＰＵ２０１から書き込まれる「アクセス用アドレスの最上位と制御情報」の構成の詳細が示されており、上位２ビットで、ＣＰＵ２０１とのインターフェースのジョブの種類を示している。
【００６０】
図７は、波形メモリ１０１に対して、ＣＰＵ２０１からデータを書き込む、ＣＰＵ２０１側の処理ルーチンを示すフローチャートである。
【００６１】
最初に状態フラグがチェックされ、以前のＣＰＵアクセスジョブがまだ行われていないかどうかがチェックされる（ステップＳ０１）。以前のＣＰＵアクセスジョブが終了していない場合（ステップＳ０１；フラグ＝ＯＮ“Ｈ”）、再度フラグチェックがなされる。反対にそのジョブが終了していれば（ステップＳ０１；フラグ＝ＯＦＦ“Ｌ”）、次のステップに進む。
【００６２】
次に書き込みたいデータの下位バイトをラッチ１００４へセットし（ステップＳ０２）、書き込みたいデータの上位バイトをラッチ１００５へセットする（ステップＳ０３）。
【００６３】
また書き込みたいデータを格納する図５(ｂ)に示すＣＰＵ用データエリアを指定するアドレスの下位バイトをラッチ１００６へセットし（ステップＳ０４）、同エリアのアドレスの中位バイトをラッチ１００７へセットし（ステップＳ０５）、さらに同エリアのアドレスの上位バイトをラッチ１００８へセットする（ステップＳ０６）。
【００６４】
そして同エリアを指定するアドレスの最上位と制御情報をラッチ１００９へセットする（ステップＳ０６）。
【００６５】
ＣＰＵ２０１と楽音生成部１００１は非同期で処理が行われるため、アクセス制御部１００２により、楽音生成部１００１から上記空きチャンネル情報が出力されてから、セットされたデータがセットされたアドレスに対応するデータ領域に書き込む処理が行われる。
【００６６】
また図８は、ＣＰＵ２０１が、波形メモリ１０１にデータを読み込む処理を行う際のＣＰＵ２０１側の処理ルーチンを示すフローチャートである。
【００６７】
上記と同じく、最初に状態フラグがチェックされ、以前のＣＰＵアクセスジョブがまだ行われていないかどうかがチェックされる（ステップＳ１１）。以前のＣＰＵアクセスジョブが終了していない場合（ステップＳ１１；フラグ＝ＯＮ“Ｈ”）、再度フラグチェックがなされる。反対にそのジョブが終了していれば（ステップＳ１１；フラグ＝ＯＦＦ“Ｌ”）、次のステップに進む。
【００６８】
次に読み出したいデータが格納されているＣＰＵ用データエリアを指定するアドレスの下位バイトをラッチ１００６へセットし（ステップＳ１２）、同エリアのアドレスの中位バイトをラッチ１００７へセットし（ステップＳ１３）、さらに同エリアのアドレスの上位バイトをラッチ１００８へセットする（ステップＳ１４）。
【００６９】
そして同エリアを指定するアドレスの最上位と制御情報をラッチ１００９へセットする（ステップＳ１５）。
【００７０】
読み出したいアドレス及び制御情報が以上のラッチにセットされてから、インタフェース部Ａが空きチャンネルを探して波形メモリ１０１の所望のアドレスのデータが読めたか否かが状態フラグでチェックされ（ステップＳ１６）、読み終わっていない場合（ステップＳ１６；フラグ＝ＯＮ“Ｈ”）、再度フラグチェックがなされる。反対にそのジョブが終了していれば（ステップＳ１６；フラグ＝ＯＦＦ“Ｌ”）、次のステップに進む。
【００７１】
そして波形メモリ１０１より読み出したいデータの下位バイトをＣＰＵ２０１側（ラッチ１００１）へ読み込み（ステップＳ１７）、同データの上位バイトをＣＰＵ２０１側（ラッチ１００１）へ読み込む（ステップＳ１８）。
【００７２】
これまでの説明は、楽音生成部１００１の空きチャンネルを利用し、空きチャンネルのタイミングにＣＰＵアクセスジョブを実施することで、ＣＰＵ２０１から波形メモリ１０１へのアクセスを行っているが、図９に示されるフローチャートは、全てのチャンネルが発音中で空きチャンネルが存在しない時の処理に関するルーチンを示すものである。同図において、データの書き込み処理及び読み込み処理とも同じであるので、メモリアクセスとして示す。
【００７３】
このメモリアクセスの最初の方のステップは、図面上省略されているが、アドレスの最上位と制御情報のセットの処理が起点になるので、以下その処理から説明する。
【００７４】
上述のように、アドレスの最上位と制御情報がセットされる（ステップＳ２１）。
【００７５】
すると、全てのチャンネルの処理を終了する周期を計測するサンプリング周期計測タイマがクリアされる（ステップＳ２２）。このタイマはサンプリング時間経過（サンプリング周波数４４.１ＫＨｚで約２３マイクロ秒）を計測する。
【００７６】
次に状態フラグがチェックされ、以前のＣＰＵアクセスジョブがまだ行われていないかどうかがチェックされる（ステップＳ２３）。以前のＣＰＵアクセスジョブが終了していない場合（ステップＳ２３；フラグ＝ＯＮ“Ｈ”）、後述するステップＳ２４に進む。反対にそのジョブが終了していれば（ステップＳ２３；フラグ＝ＯＦＦ“Ｌ”）、次のＣＰＵアクセスジョブを行うようにする。
【００７７】
ステップＳ２４では、タイマクリア後サンプリング周期時間が経過したか否かがチェックされる。経過していなければ（ステップＳ２４；ＮＯ）、ステップＳ２３に戻って状態フラグのチェックが行われる。反対にそのサンプリング周期時間が経過していれば（ステップＳ２４；ＹＥＳ）、空きチャンネルがなくＣＰＵアクセスジョブが完了していないことになるので、次のステップＳ２５に進む。
【００７８】
ステップＳ２５では、特定のチャンネルがトランケート処理され、発音が終了せしめられ、空きチャンネル状態が強制的に作られる。このトランケート処理が行われるチャンネルの特定に関しては、例えば、最も先に押されたキーが使用しているチャンネルに対して行われるようにしたり、特定の音域にあるキー（目立たない音域にあるキー）が使用しているチャンネルに対して行われるようにしたり、さらに最も発音レベルの小さなチャンネルに対して行われるようにして実行される。
【００７９】
その処理の後、上記ステップＳ２２に戻り、以後の処理を実行する。
【００８０】
以上説明した本実施形態構成によれば、上記楽音生成部１００１が、楽音信号の生成以外にも空きチャンネル情報をアクセス制御部１００２に出力しており、その空きチャンネル情報を基に、該アクセス制御部１００２が、空きチャンネルの少なくとも１つを用いて、その空きタイミングの間、外部のＣＰＵ２０１から、上記波形メモリ１０１へアクセスさせることになるため、該ＣＰＵ２０１から波形メモリ１０１へのアクセスが特定のチャンネルに固定してしまわない状態にして、波形メモリ１０１へのアクセスを可能になる。すなわち、外部のＣＰＵ２０１から波形メモリ１０１へアクセスさせる構成の場合にも、そのアクセスについてフレキシブルなチャンネルアサインが可能になる。
【００８１】
また空きチャンネルがなくなったタイミングでも、上記楽音生成部１００１により、特定のチャンネルをトランケート処理して発音処理を終了させ、その空きチャンネル情報を受信した上記アクセス制御部１００２により、特定の空きチャンネルを使用して、外部のＣＰＵ２０１から、上記波形メモリ１０１へアクセスさせるようにすることもできるようになる。
【００８２】
尚、本発明の音源装置は、上述の図示例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【図面の簡単な説明】
【００８３】
【図１】本発明に係る音源装置の構成を備えた電子楽器の回路概略図である。
【図２】波形メモリ１０１にアクセスする楽音発生部が１つの場合と２つの場合の構成を示す説明図である。
【図３】上記２つの構成における波形データ読み出しタイミングを示すタイムチャートである。
【図４】楽音発生部１００と波形メモリ１０１のＣＰＵインターフェースを中心とした説明図である。
【図５】制御パラメータメモリ１１０１と波形メモリ１０１におけるデータ・パラメータの格納状態を示す説明図である。
【図６】コントロール信号発生器１００３により発生せられるコントロール信号Ｌ0〜Ｌ8の状態を示す説明図である。
【図７】波形メモリ１０１に対してＣＰＵ２０１からデータを書き込むＣＰＵ２０１側の処理ルーチンを示すフローチャートである。
【図８】ＣＰＵ２０１が、波形メモリ１０１にデータを読み込む処理を行う際のＣＰＵ２０１側の処理ルーチンを示すフローチャートである。
【図９】全てのチャンネルが発音中で空きチャンネルが存在しない時の処理に関するルーチンを示すフローチャートである。
【符号の説明】
【００８４】
１００、１００ａ、１００ｂ  楽音発生部
１０１                      波形メモリ
２００                      システムバス
２０１                      ＣＰＵ
２０２                      ＲＯＭ
２０３                      ＲＡＭ
２０４                      操作パネル
２０４ａ                    パネルスキャン回路
２０５                      鍵盤
２０５ａ                    鍵盤スキャン回路
２０６                      Ｄ／Ａ変換回路
２０７                      アナログ信号処理部
２０８                      アンプ
２０９                      スピーカ
１０００                      インターフェース部Ａ
１００１                      楽音生成部
１００２                      アクセス制御部
１００３                      コントロール信号発生器
１００４〜１００９、１０１１  ラッチ
１０１０、１０１２〜１０１６  バッファ
１０１７                      ＮＯＴバッファ
１０１８、１０２２            ＯＲゲート
１０１９                      選択器
１０２０                      パルス発生器ＰＯＳ
１０２１                      ＳＲフリップフロップ
１１００                      インターフェース部Ｂ
１１０１                      制御パラメータメモリ
【図１】
2005266662.tif 000003
【図２】
2005266662.tif 000004
【図３】
2005266662.tif 000005
【図４】
2005266662.tif 000006
【図５】
2005266662.tif 000007
【図６】
2005266662.tif 000008
【図７】
2005266662.tif 000009
【図８】
2005266662.tif 000010
【図９】
2005266662.tif 000011