(57)【特許請求の範囲】
【請求項１】
音の波形をそれぞれ表わす複数の基本波形データを記憶した基本波形データ記憶手段と、
前記複数の基本波形データのうちの１つ又は複数の基本波形データを読み出すとともに、前記読み出した１つ又は複数の基本波形データを連結して１つの波形データを生成し、前記波形データに基づいて音を再生する再生手段と、を備え、
前記複数の音は、所定の高周波帯域に含まれる周波数成分からそれぞれ構成され、
前記複数の基本波形データは、互いに異なるディジタル信号に対応づけられており、
前記ディジタル信号は複数ビットから構成され、
前記互いに異なるディジタル信号のうちの１つ又は複数のディジタル信号を組み合わせることにより、外部機器を制御する複数種類の制御信号を生成可能であり、
前記再生手段は、前記制御信号を構成する１つ又は複数のディジタル信号に対応する１つ又は複数の基本波形データを前記基本波形データ記憶手段から読み出すとともに、前記制御信号のビットパターンに応じた順に前記読み出した基本波形データを連結して、前記制御信号に対応する音の波形データを生成し、前記生成した波形データに基づいて前記制御信号に対応する音を再生することを特徴とする演奏装置。
【請求項２】
請求項１に記載の演奏装置において、
前記基本波形データが表わす音は、前記ディジタル信号を用いて搬送波を変調した変調音であることを特徴とする演奏装置。
【請求項３】
請求項１に記載の演奏装置において、
前記基本波形データが表わす音は、前記制御信号の各ビットを拡散化するとともに差動符号化し、前記差動符号化した信号を用いて搬送波を変調した変調音であることを特徴とする波形データ生成装置。
【請求項４】
請求項１乃至３のうちのいずれか１つに記載の演奏装置において、
前記基本波形データが表わす音の波形は、前記制御信号の隣接する２つのビットの境界部に相当する部分の波形を含むことを特徴とする波形データ生成装置。
【請求項５】
コンピュータを、
音の波形をそれぞれ表わす複数の基本波形データを記憶した基本波形データ記憶手段と、
前記複数の基本波形データのうちの１つ又は複数の基本波形データを読み出すとともに、前記読み出した１つ又は複数の基本波形データを連結して１つの波形データを生成し、前記波形データに基づいて音を再生する再生手段と、を備え、
前記複数の音は、所定の高周波帯域に含まれる周波数成分からそれぞれ構成され、
前記複数の基本波形データは、互いに異なるディジタル信号に対応づけられており、
前記ディジタル信号は複数ビットから構成され、
前記互いに異なるディジタル信号のうちの１つ又は複数のディジタル信号を組み合わせることにより、外部機器を制御する複数種類の制御信号を生成可能であり、
前記再生手段は、前記制御信号を構成する１つ又は複数のディジタル信号に対応する１つ又は複数の基本波形データを前記基本波形データ記憶手段から読み出すとともに、前記制御信号のビットパターンに応じた順に前記読み出した基本波形データを連結して、前記制御信号に対応する音の波形データを生成し、前記生成した波形データに基づいて前記制御信号に対応する音を再生することを特徴とする演奏装置として機能させるコンピュータプログラム。

【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メロディ、伴奏などの楽器の演奏音と、外部機器を制御する制御情報を表わす制御音とを放音する演奏装置及び演奏装置に適用されるコンピュータプログラムに関する。
【背景技術】
【０００２】
従来から、例えば、下記特許文献１に示されているように、外部機器を制御する制御音を放音する情報伝送装置は知られている。この情報伝送装置は、制御情報を用いて可聴帯域の搬送波を変調することにより制御音を生成する変調器を備えている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１０４５９８号公報
【発明の概要】
【０００４】
しかし、上記従来の情報伝送装置の変調器は、複雑な演算を実行するために、複数の情報処理装置から構成されていて、高価である。そのため、この変調器を、電子オルガン、電子ピアノなどの演奏装置に実装すると、それらの演奏装置の価格が高くなるという問題があった。
【０００５】
本発明は上記問題に対処するためになされたもので、その目的は、任意の制御情報に対応した制御音を簡単に生成できる安価な演奏装置を提供することにある。なお、下記本発明の各構成要件の記載においては、本発明の理解を容易にするために、実施形態の対応箇所の符号を括弧内に記載しているが、本発明の各構成要件は、実施形態の符号によって示された対応箇所の構成に限定解釈されるべきものではない。
【０００６】
上記目的を達成するために、本発明の特徴は、音の波形をそれぞれ表わす複数の基本波形データ（ｆ１〜ｆ４，ｇ１〜ｇ８，ｈ１〜ｈ８）を記憶した基本波形データ記憶手段（ＷＭ，１７ｃ）と、前記複数の基本波形データのうちの１つ又は複数の基本波形データを読み出すとともに、前記読み出した１つ又は複数の基本波形データを連結して１つの波形データを生成し、前記波形データに基づいて音を再生する再生手段（１５，１７）と、を備え、前記複数の音は、所定の高周波帯域に含まれる周波数成分からそれぞれ構成され、前記複数の基本波形データは、互いに異なるディジタル信号に対応づけられており、前記ディジタル信号は複数ビットから構成され、前記互いに異なるディジタル信号のうちの１つ又は複数のディジタル信号を組み合わせることにより、外部機器（２０）を制御する複数種類の制御信号（ＳＤ）を生成可能であり、前記再生手段は、前記制御信号を構成する１つ又は複数のディジタル信号に対応する１つ又は複数の基本波形データを前記基本波形データ記憶手段から読み出すとともに、前記制御信号のビットパターンに応じた順に前記読み出した基本波形データを連結して、前記制御信号に対応する音の波形データを生成し、前記生成した波形データに基づいて前記制御信号に対応する音を再生する演奏装置としたことにある。なお、ビットパターンとは、所定のビット長のデータを構成する各ビットの値（すなわち、「１」又は「０」）の順列を意味している。
【０００７】
この場合、基本波形データが表わす音は、前記ディジタル信号を用いて搬送波を変調した変調音であるとよい。また、この場合、基本波形データが表わす音は、制御信号の各ビットを拡散化するとともに差動符号化し、前記差動符号化した信号を用いて搬送波を変調した変調音であってもよい。
【０００８】
上記のように構成した演奏装置によれば、上記従来の情報伝達装置のような変調器を搭載する必要が無いので、コストダウンできる。また、制御信号のビットパターンに応じて、複数の音を組み合わせて順に再生できる。したがって、制御信号ごとに対応する音の波形データを記憶しておく場合に比べて、記憶装置の記憶容量を削減できる。また、制御信号に対応した音は所定の高周波帯域に含まれる周波数成分からなるので、演奏者は制御信号に対応した音が発生していることをほとんど認識できない。したがって、演奏を妨げることが無い。
【０００９】
また、本発明の他の特徴は、基本波形データが表わす音の波形は、前記制御信号の隣接する２つのビットの境界部に相当する部分の波形を含むことにある。すなわち、前記ディジタル信号に対応した音は、制御信号を構成する各ビットの境界に相当する部分を含んでいる。これによれば、制御信号を構成する各ビットの境界に相当する部分にて音が途切れることを防止できる。また、波形データ記憶装置に記憶する波形データを生成する波形データ生成装置における符号化方式、搬送波の変調方式などによっては、制御信号の１つのビットの先頭部分に相当する音が、隣のビットの終端部分に相当する音の影響（例えば、フィルタの群遅延による影響）を受けることがある。したがって、上記の影響を考慮しないまま、単に制御信号の各ビットの値に応じて音を組み合わせた場合には、前記各ビットにそれぞれ対応する音と音の境界部分にて、広帯域に亘る雑音が発生することがある。しかし、上記のように構成しておけば、前記雑音の発生を防止できる。これにより、外部機器における制御信号の復号の精度を向上させることができる。
【００１０】
さらに、本発明の実施にあたっては、演奏装置の発明に限定されることなく、同装置に適用されるコンピュータプログラムの発明としても実施し得るものである。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に係る演奏装置、及び演奏装置と同時に使用される楽譜表示装置の概要を示す概要図である。
【図２】演奏装置の全体構成を示すブロック図である。
【図３Ａ】制御波形データの配置を示すメモリマップである。
【図３Ｂ】制御波形データの構成を示す説明図である。
【図４】楽譜データの構成を示す説明図である。
【図５】制御波形データ生成装置の全体構成を示すブロック図である。
【図６】拡散符号の一例を示す説明図である。
【図７】図５の拡散処理部及び差動位相変調部の動作を示すタイミングチャートである。
【図８】図５の差動位相変調部の構成を示すブロック図である。
【図９】差動符号の一例を示す説明図である。
【図１０】基本波形データの取り出しを説明する説明図である。
【図１１】図２の音源回路の構成を示すブロック図である。
【図１２Ａ】単独モードにおけるチャンネル累算回路の構成を示すブロック図である。
【図１２Ｂ】制御モードにおけるチャンネル累算回路の構成を示すブロック図である。
【図１３】初期化プログラムのフローチャートである。
【図１４】自動演奏プログラムのフローチャートである。
【図１５】制御音生成プログラムのフローチャートである。
【図１６】制御音生成処理の一例を説明する説明図である。
【図１７】楽譜表示装置の全体構成を示すブロック図である。
【図１８】図１７の復号回路の構成を示すブロック図である。
【図１９Ａ】本発明の変形例に係る制御波形データの配置を示すメモリマップである。
【図１９Ｂ】本発明の変形例に係る制御波形データの構成を示す説明図である。
【図２０】図１９Ａ及び図１９Ｂの制御波形データを構成する基本波形データの組み合わせを表わした組み合わせ表である。
【図２１】本発明の変形例に係る制御音生成プログラムのフローチャートである。
【図２２】本発明の変形例に係る制御音生成処理の一例を説明する説明図である。
【図２３Ａ】本発明の他の変形例に係る制御波形データの配置を示すメモリマップである。
【図２３Ｂ】本発明の他の変形例に係る制御波形データの構成を示す説明図である。
【図２４】本発明の他の変形例に係る制御音生成プログラムのフローチャートである。
【図２５】本発明の他の変形例に係る制御音生成処理の一例を説明する説明図である。
【図２６】本発明のさらに他の変形例に係る制御モードにおけるチャンネル累算回路の構成を示すブロック図である。
【図２７】基本波形データと差動符号との対応の例を表わす表である。
【図２８】基本波形データと差動符号との対応の他の例を表わす表である。
【図２９】図２８の基本波形データの取り出しを説明する説明図である。
【発明を実施するための形態】
【００１２】
ａ．全体構成
本発明の一実施形態に係る演奏装置１０の全体概略について図１を用いて説明する。演奏装置１０は、メロディ、伴奏などの演奏を表わす演奏情報に基づいて、楽器の演奏音（以下、単に楽音という）を放音する。また、演奏装置１０は、演奏装置１０とともに使用される楽譜表示装置２０を制御する楽譜データＳＤを用いて搬送波を変調した制御音も放音する。楽譜表示装置２０は、演奏装置１０から放音された制御音を入力して、制御音に従って楽譜を表示器２２に表示する。
【００１３】
つぎに、演奏装置１０について詳しく説明する。演奏装置１０は、図２に示すように、鍵盤１１、パネル操作子１２、操作子インターフェース回路１３、表示器１４、音源回路１５、サウンドシステム１６、コンピュータ部１７、記憶装置１８及び外部インターフェース回路１９を備えている。
【００１４】
鍵盤１１は、演奏者の手によって操作されて、それぞれ発生させる楽音信号の音高を指定するとともに楽音信号の発生及び停止を指示する複数の白鍵及び黒鍵からなる。パネル操作子１２は、電子楽器の操作パネル上に設けられた複数の操作子からなる。これらの操作子も、演奏者の手によって操作されて、発生される楽音信号の音色、音量、効果等の楽音特性を設定する操作子を含み、電子楽器全体の動作を設定するためのものである。演奏装置１０は、楽譜表示装置２０を制御する制御モード及び楽譜表示装置２０を制御しない単独モードを備えており、ユーザは、パネル操作子１２を用いて、いずれかのモードを選択することができる。また、演奏装置１０は、予め記憶しておいた演奏情報に基づいて自動演奏する自動演奏機能を備えており、ユーザは、パネル操作子１２を用いて、自動演奏する曲を選択し、演奏開始、演奏停止などを指示することができる。また、ユーザは、パネル操作子１２を用いて、自動演奏における演奏パートの音量バランス、定位などを設定することができる。例えば、パネル操作子１２に含まれるマスターボリューム操作子は、発生中の全ての楽音の音量を同時に変化させる操作子である。これらの操作子には、オン・オフ操作子に加えて、回転式操作子、スライド式操作子などの各種操作子が含まれる。また、パネル操作子１２にはオン・オフ操作子に対応したスイッチ、回転式操作子に対応したボリューム又はロータリーエンコーダ、スライド式操作子に対応したボリューム又はリニアエンコーダなど、各操作子に対応した作動素子も含まれる。
【００１５】
鍵盤１１及びパネル操作子１２は、バスＢＳに接続された操作子インターフェース回路１３に接続されている。そして、鍵盤１１及びパネル操作子１２の操作を表す操作情報が、操作子インターフェース回路１３及びバスＢＳを介して後述するコンピュータ部１７に供給される。表示器１４は、液晶ディスプレイ（ＬＣＤ）によって構成され、表示画面上に文字、図形などを表示する。この表示器１４の表示は、バスＢＳを介してコンピュータ部１７によって制御される。
【００１６】
音源回路１５は、複数の波形データを記憶した波形メモリＷＭから、ＣＰＵ１７ａによって指定された楽音波形データ及び制御波形データを読み出してディジタル音信号を生成し、サウンドシステム１６に供給する。なお、詳しくは後述するように、楽音にコーラス効果、残響効果などの各種効果を付加するエフェクタ回路は、音源回路１５に含まれている。上記の波形メモリＷＭ及び音源回路１５については、詳しく後述する。サウンドシステム１６は、音源回路１５から供給されたディジタル音信号をアナログ音信号に変換するＤ／Ａ変換器、変換したアナログ音信号を増幅するアンプ、及び増幅されたアナログ音信号を音響信号に変換して出力する左右一対のスピーカを備えている。
【００１７】
コンピュータ部１７は、バスＢＳにそれぞれ接続されたＣＰＵ１７ａ、タイマ１７ｂ、ＲＯＭ１７ｃ及びＲＡＭ１７ｄからなる。ＣＰＵ１７ａは、操作子インターフェース回路１３及び外部インターフェース回路１９から供給される演奏情報に応じて、発音のために必要な情報を、音源回路１５に供給する。とくに、ＣＰＵ１７ａは、演奏者による鍵盤１１の押離鍵操作によって発生したキーイベント、及び外部インターフェース回路１９を介して外部機器から供給される演奏情報又は記憶装置１８に記憶されていて再生される演奏情報に基づいて発生したイベントに応じて、楽音に関するパラメータ（以下、楽音パラメータという。）を音源回路１５に供給する。
【００１８】
また、記憶装置１８は、ＨＤＤ、ＦＤＤ、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどの大容量の不揮発性記録媒体と、同各記録媒体に対応するドライブユニットを含むものであり、各種データ及びプログラムの記憶及び読出しを可能にしている。これらのデータ及びプログラムは予め記憶装置１８に記憶されていてもよいし、外部インターフェース回路１９を介して外部から取り込んでもよい。そして、記憶装置１８に記憶された各種データ及びプログラムは、ＣＰＵ１７ａによって読み込まれ、電子楽器の制御に利用される。上記の各種データには、楽曲の演奏内容を表わす曲データが含まれる。この曲データは、楽音の発音に関するノートイベントデータ、表示する楽譜に関する楽譜イベントデータ、各種イベントデータ間の時間を表わすデルタタイムデータなどからなる。外部インターフェース回路１９は、ＭＩＤＩインターフェース回路及び通信インターフェース回路を含んでいる。演奏装置１０は、外部インターフェース回路１９を介して、他の電子音楽装置、パーソナルコンピュータなどのＭＩＤＩ対応の外部機器に接続可能であり、インターネットなどの通信ネットワークにも接続可能である。
【００１９】
つぎに、波形メモリＷＭについて詳しく説明する。波形メモリＷＭには、複数の楽音波形データが記憶されている。楽音波形データは、楽音を所定のサンプリング周波数（例えば、４４．１ｋＨｚ）でサンプリングした複数の波高値からなる。１つの楽音についての複数の波高値は、波形メモリＷＭの連続するアドレスに順に記憶されている。
【００２０】
また、波形メモリＷＭには、図３Ａ及び図３Ｂに示すような、制御音の一部を構成する音の波形を表わす制御波形データＧ１〜Ｇ８も記憶されている。以下、制御波形データＧ１〜Ｇ８の生成について説明する。楽譜データＳＤは、図４に示すように、ヘッダー部、本体部及びフッター部からなる。ヘッダー部は、本体部の長さを表わす情報を含む１バイトのデータからなる。本体部は、曲の番号を表わす曲情報と楽譜のページ位置を表わすページ情報を含む２バイトのデータからなる。フッター部は、楽譜データＳＤの終わりを表わす情報を含む１バイトのデータからなる。以下、この楽譜データＳＤを全体として３２ビットのデータとして説明する。すなわち、フッター部の第０ビットを楽譜データＳＤの最下位ビットＬＳＢと呼び、ヘッダー部の第７ビットを楽譜データＳＤの最上位ビットＭＳＢと呼ぶ。最上位ビットＭＳＢ及び最下位ビットＬＳＢはダミーデータであり、楽譜表示装置２０においては、これらのダミーデータは無視される。
【００２１】
制御波形データＧ１〜Ｇ８は、演奏装置１０及び楽譜表示装置２０とは別に設けられた、図５に示す制御波形データ生成装置ＷＰによって生成されて、波形メモリＷＭに記憶されている。楽譜データＳＤは、その最下位ビットＬＳＢから最上位ビットＭＳＢへ向かって、１ビットずつ順に拡散処理部ＷＰ１へ入力される。以下、楽譜データＳＤのそれぞれのビットをシンボルと言う。また、拡散処理部ＷＰ１には、拡散符号ＰＮも入力される。拡散符号ＰＮは、一定の周期を有する疑似乱数符号列である。本実施形態においては、拡散符号ＰＮは、図６に示すような、１１チップの符号である。なお、拡散符号ＰＮのそれぞれのビットをチップという。ベースバンドにおける楽譜データＳＤの送信速度であるシンボルレートｆａは、４００．９ｓｐｓ（シンボル／秒）である（図７参照）。拡散符号ＰＮの周期は、シンボルレートｆａに一致している。したがって、拡散符号ＰＮのチップレートｆｂは、４，４１０ｃｐｓ（チップ／秒）である。
【００２２】
拡散処理部ＷＰ１に入力されたシンボルは、拡散符号ＰＮを用いて拡散処理される。すなわち、図７に示すように、シンボルの値が「１」であれば、拡散符号ＰＮが拡散処理部ＷＰ１からそのまま出力され、シンボルの値が「０」であれば、拡散符号ＰＮの位相を反転した符号が拡散処理部ＷＰ１から出力される。
【００２３】
拡散処理部ＷＰ１によって拡散処理されたシンボルは、先頭のチップから末尾のチップへ向かって１チップごとに、差動位相変調部ＷＰ２に入力される。差動位相変調部ＷＰ２は、図８に示すように、遅延部ＷＰ２ａとＸＯＲ演算部ＷＰ２ｂからなる。遅延部ＷＰ２ａは、次に説明するＸＯＲ演算部ＷＰ２ｂから出力された演算結果を１チップ分の期間だけ遅延して、ＸＯＲ演算部ＷＰ２ｂに出力する。ＸＯＲ演算部ＷＰ２ｂは、遅延部ＷＰ２ａから入力した符号の値と、拡散処理部ＷＰ１から入力した符号の値との排他的論理和を演算して出力する。拡散処理部ＷＰ１によって拡散処理されたシンボルは、差動位相変調部ＷＰ２によって、図９に示すように、４種類の符号のうちのいずれか１つの符号に変換される。すなわち、値が「１」であるシンボルは、差動符号Ｐ１又は差動符号Ｎ１に変換され、値が「０」であるシンボルは、差動符号Ｐ０又は差動符号Ｎ０に変換される。
【００２４】
ＸＯＲ演算部ＷＰ２ｂから出力された差動符号は、ローパスフィルタＷＰ３に入力される。ローパスフィルタＷＰ３は、後述するパスバンド変調部ＷＰ５から出力される制御音の周波数帯域を制限するフィルタである。ローパスフィルタＷＰ３から出力された差動符号は、ヒルベルト変換部ＷＰ４に入力される。ヒルベルト変換部ＷＰ４は、差動符号の位相をシフトさせることにより、差動符号をヒルベルト変換する。パスバンド変調部ＷＰ５は、搬送波生成部ＷＰ６から出力された搬送波を、ヒルベルト変換部ＷＰ４から出力された信号を用いて変調して、差動符号の周波数帯域を可聴帯域内の高周波帯域にシフトするとともに、上側波帯のみを取り出して、この上側波帯に含まれる周波数成分からなる制御音を出力する。このように差動符号の周波数帯域を半分に減らすことにより、ノイズによる影響を低減して、後述する復号回路２９における楽譜データＳＤの復号精度を向上させる。なお、この搬送波の周波数は、１７．６４ｋＨｚであるので、一般には、制御音は聴取され難い。そして、波形データ取り出し部ＷＰ７は、制御音をサンプリングして、各サンプリング期間における波高値を制御音の波形データとしてバッファメモリに記憶する。このサンプリング周波数は、４４．１ｋＨｚである。
【００２５】
差動符号Ｐ１，Ｐ０，Ｎ１，Ｎ０は、差動位相変調部ＷＰ２から順次出力されるが、差動符号の種類の遷移の仕方は、図３Ｂに示す８つの遷移の仕方に限られる。そこで、差動位相変調部ＷＰ２の出力として上記の８つの遷移が表れるようなディジタル信号（例えば、１つ又は複数の楽譜データ）を、制御波形データ生成装置ＷＰの拡散処理部ＷＰ１に入力して、制御音の波形データをバッファメモリに記憶する。そして、波形データ取り出し部ＷＰ７は、バッファメモリに記憶した制御音の波形データから所定の複数の波高値を基本波形データｇ１〜ｇ８として取り出す。具体的には、差動符号の切り替わりに相当する部分を中央とし、この中央の前後に相当する複数の波高値を取り出す。本実施形態においては、サンプリング周波数を４４．１ｋＨｚとしたので、上記のように、差動符号の切り替わりに対応する部分を中心として１１０個の波高値を取り出せば、各基本波形データｇ１〜ｇ８の先頭が、前半の差動符号の中央に相当し、各基本波形データｇ１〜ｇ８の終端が後半の差動符号の中央に相当する。
【００２６】
さらに具体的には、図１０に示すように、差動符号Ｐ０の後半から差動符号Ｎ１の前半に相当する部分を基本波形データｇ１として取り出す。基本波形データｇ２〜基本波形データｇ８についても、基本波形データｇ１と同様に取り出す。すなわち、差動符号Ｐ０の後半から差動符号Ｎ０の前半に相当する部分を基本波形データｇ２として取り出す。また、差動符号Ｎ０の後半から差動符号Ｐ１の前半に相当する部分を基本波形データｇ３とし、差動符号Ｎ０の後半から差動符号Ｐ０の前半に相当する部分を基本波形データｇ４として取り出す。また、差動符号Ｐ１の後半から差動符号Ｐ１の前半に相当する部分を基本波形データｇ５とし、差動符号Ｐ１の後半から差動符号Ｐ０の前半に相当する部分を基本波形データｇ６として取り出す。さらに、差動符号Ｎ１の後半から差動符号Ｎ１の前半に相当する部分を基本波形データｇ７とし、差動符号Ｎ１の後半から差動符号Ｎ０の前半に相当する部分を基本波形データｇ８として取り出す。上記のようにして取り出した基本波形データｇ１〜ｇ８の先頭に、共通の長さの無音部分をそれぞれ付加して、制御波形データＧ１〜Ｇ８として波形メモリＷＭに記憶する。ただし、上記の無音部分を付加しなくてもよい。各制御波形データを構成する複数の波高値は、制御波形データごとに、連続するアドレスに、サンプリングされた順に記憶されている。制御波形データＧ１〜Ｇ８のデータサイズは共通である。また、各制御波形データにおける、先頭アドレスと基本波形データの先頭アドレスとのオフセット量を表わすオフセットアドレスは共通である。演奏装置１０においては、上記のようにして取り出した制御波形データＧ１〜Ｇ８を組み合わせることにより、任意の楽譜データＳＤを用いて搬送波を変調した制御音全体の波形データを構成することができる。
【００２７】
ｂ．音源回路の構成
次に、音源回路１５の構成について詳しく説明する。まず音源回路１５の全体構成について説明する。音源回路１５は、図１１に示すように、波形メモリＷＭから波形データを読み出してディジタル音信号を生成する複数（例えば３２個）の発音チャンネルＣＨ０，ＣＨ１・・・ＣＨ３１を備えている。また、音源回路１５は、発音チャンネルＣＨ０，ＣＨ１・・・ＣＨ３１にて生成されたディジタル音信号を累算してサウンドシステム１６に出力するチャンネル累算回路１５ａを備えている。また、音源回路１５は、ＣＰＵ１７ａから出力された各発音チャンネルを制御する楽音パラメータを入力し、入力した楽音パラメータを各発音チャンネルＣＨ０，ＣＨ１・・・ＣＨ３１に所定のタイミングで出力する楽音パラメータ入出力回路１５ｂを備えている。つぎに、これらの発音チャンネルＣＨ０，ＣＨ１・・・ＣＨ３１、チャンネル累算回路１５ａ及び楽音パラメータ入出力回路１５ｂについて詳しく説明する。
【００２８】
ｂ１．発音チャンネル
各発音チャンネルＣＨ０，ＣＨ１・・・ＣＨ３１は、それぞれ同様に構成されており、サンプリング周期ごとにディジタル音信号をそれぞれ生成する。以下の説明では、発音チャンネルにおける信号のディジタル音信号の生成を単に発音という。各発音チャンネルＣＨ０，ＣＨ１・・・ＣＨ３１は、低周波信号発生回路ＬＦＯ、ピッチ変更回路ＰＥＧ、カットオフ周波数変更回路ＦＥＧ及び音量変更回路ＡＥＧを備えている。さらに、各発音チャンネルＣＨ０，ＣＨ１・・・ＣＨ３１は、アドレス発生回路ＡＤＲ、サンプル補間回路ＳＰＩ、フィルタ回路ＦＬＴ及び音量制御回路ＡＭＰも備えている。
【００２９】
低周波信号発生回路ＬＦＯは、発音開始後、音高、音色及び音量を周期的に変化させる低周波信号を生成して、アドレス発生回路ＡＤＲ、フィルタ回路ＦＬＴ及び音量制御回路ＡＭＰにそれぞれ供給する。低周波信号発生回路ＬＦＯには、楽音パラメータ入出力回路１５ｂを介して、ＣＰＵ１７ａから低周波信号制御パラメータが供給される。低周波信号制御パラメータには、低周波信号発生回路ＬＦＯから出力する低周波信号の波形、周波数及び振幅を指定するデータが含まれる。
【００３０】
ピッチ変更回路ＰＥＧは、ディジタル音信号の音高を制御する音高制御信号をアドレス発生回路ＡＤＲに供給する。ピッチ変更回路ＰＥＧは、発音開始後の時間経過に従ってエレメント信号の音高が変化するように、時間経過に従って変化する音高制御信号を生成してアドレス発生回路ＡＤＲに供給する。この時間経過に従って変化する一連の音高制御信号をピッチエンベロープと呼ぶ。また、カットオフ周波数変更回路ＦＥＧは、ディジタル音信号の周波数特性を制御するカットオフ周波数制御信号をフィルタ回路ＦＬＴに供給する。カットオフ周波数変更回路ＦＥＧは、発音開始後の時間経過に従ってフィルタのカットオフ周波数が変化するように、時間経過に従って変化するカットオフ周波数制御信号を生成して、フィルタ回路ＦＬＴに供給する。この時間経過に従って変化する一連のカットオフ周波数制御信号をカットオフエンベロープと呼ぶ。また、音量変更回路ＡＥＧは、ディジタル音信号の音量を制御する音量制御信号を音量制御回路ＡＭＰに供給する。音量変更回路ＡＥＧは、発音開始後の時間経過に従ってディジタル音信号の音量が変化するように、時間経過に従って変化する音量制御信号を生成して音量制御回路ＡＭＰに供給する。この時間経過に従って変化する一連の音量制御信号を音量エンベロープと呼ぶ。
【００３１】
アドレス発生回路ＡＤＲは、ＣＰＵ１７ａから楽音パラメータ入出力回路１５ｂを介して供給された楽音パラメータに含まれる押鍵された鍵の鍵音高を表す音高値、ピッチ変更回路ＰＥＧから供給された音高制御信号及び低周波信号発生回路ＬＦＯから供給された低周波信号を合成してピッチシフト量を算出する。なお、アドレス発生回路ＡＤＲには、ＣＰＵ１７ａから、楽音パラメータ入出力回路１５ｂを介して、波形データ情報が供給される。波形データ情報は、波形メモリＷＭから読み出す波形データの先頭アドレス及び末尾アドレス、ループ開始アドレス、ループ終端アドレス並びにこの波形データの音高を表す元ピッチからなる。
【００３２】
アドレス発生回路ＡＤＲは、ループ開始アドレスとループ終端アドレスの間のアドレスを循環的に生成することができる。これにより、各発音チャンネルは、波形データの一部の区間のデータをループして再生することができる。この機能をループ機能という。また、元ピッチと発音する楽音のピッチとの差が、ピッチシフト量である。アドレス発生回路ＡＤＲは、ピッチシフト量に応じて、波形データの読み出しレートを決定する。そして、アドレス発生回路ＡＤＲは、前記決定した読み出しレートで波形メモリＷＭから波形データを読み出す。ただし、ピッチシフト量に応じて決定される読み出しレートは、通常、小数部を含むので、波形データの読み出しアドレスも整数部と小数部からなる。そこで、この波形データの読み出しにおいては、整数部を用いて波形データの隣り合う前後一対の波高値を読み出し、サンプル補間回路ＳＰＩへ供給する。ただし、制御波形データの読み出しにおいては、ピッチシフト量は「０」であり、制御音は、元ピッチのまま発音される。サンプル補間部ＳＰＩは、供給された一対の波高値とアドレスの小数部とを用いて補間演算して、ディジタル楽音データを生成して、フィルタ回路ＦＬＴに供給する。
【００３３】
フィルタ回路ＦＬＴは、カットオフ周波数変更回路ＦＥＧから供給されたカットオフ周波数制御信号及び低周波信号発生回路ＬＦＯから供給された低周波信号を合成して、フィルタのカットオフ周波数を算出する。フィルタ回路ＦＬＴには、ＣＰＵ１７ａから、楽音パラメータ入出力回路１５ｂを介して、フィルタ制御パラメータも供給される。フィルタ制御パラメータには、フィルタの種類（例えば、ハイパスフィルタ、ローパスフィルタなど）を選択するフィルタ選択情報が含まれる。フィルタ回路ＦＬＴは、フィルタ選択情報に従って選択したフィルタのカットオフ周波数を前記算出したカットオフ周波数に設定し、サンプル補間回路ＳＰＩから供給された波形データをこのフィルタでフィルタリング処理した後、音量制御回路ＡＭＰへ出力する。ただし、制御波形データについては、フィルタリング処理は実行されない。
【００３４】
音量制御回路ＡＭＰは、音量変更回路ＡＥＧから供給された音量制御信号及び低周波信号発生回路ＬＦＯから供給された低周波信号を合成して、発生すべき楽音信号の音量を算出する。そして、音量制御回路ＡＭＰは、フィルタ回路ＦＬＴから供給された波形データを前記算出された音量に応じて増幅して、チャンネル累算回路１５ａへ出力する。ただし、制御波形データについては、前記算出した音量ではなく、所定の音量（例えば、最大音量）に増幅される。
【００３５】
なお、演奏装置１０が、楽譜表示装置２０を制御する制御モードに設定されているときは、いずれか１つの発音チャンネル（例えば、発音チャンネルＣＨ３１）が、制御音専用に確保される。すなわち、前記確保された発音チャンネルは、制御音のみを生成し、楽音を生成しない。したがって、楽音の同時発音数が３１音に制限される。
【００３６】
ｂ２．チャンネル累算回路１５ａ
チャンネル累算回路１５ａは、図１２Ａに示すように、パート累算回路１５ａ１、エフェクト処理回路１５ａ２、音量調整回路１５ａ３、パン調整回路１５ａ４、加算回路１５ａ５及び音響エフェクト回路１５ａ６を備えている。パート累算回路１５ａ１は、サンプリング周期ごとに、各発音チャンネルＣＨ０，ＣＨ１・・・ＣＨ３１から出力されたディジタル音信号をマニュアル演奏パート及び複数の自動演奏パートごとに累算して、エフェクト処理回路１５ａ２に出力するとともに、音量調整回路１５ａ３に出力する。エフェクト処理回路１５ａ２は、マニュアル演奏パート及び複数の自動演奏パートに共通の効果（例えば、コーラス効果、残響効果など）を付加する。また、音量調整回路１５ａ３は、楽音パラメータ入出力回路１５ｂから入力した音量設定パラメータに基づいて、各パートの音量を増幅して、パン調整回路１５ａ４に出力する。パン調整回路１５ａ４は、楽音パラメータ入出力回路１５ｂから入力したパン設定パラメータに基づいて、各パートのディジタル音信号の定位を調整して、加算回路１５ａ５に出力する。加算回路１５ａ５は、入力した各パートのディジタル音信号を加算して、音響エフェクト回路１５ａ６に出力する。音響エフェクト回路１５ａ６は、加算されたディジタル音信号に効果を付加して、サウンドシステム１６に出力する。
【００３７】
ただし、楽譜表示装置２０を制御する制御モードに設定されているときは、発音チャンネルＣＨ３１は、制御音のディジタル音信号を生成する発音チャンネルとして設定され、図１２Ｂに示すように、発音チャンネルＣＨ３１から出力されたディジタル音信号は、エフェクト処理回路１５ａ２には出力されず、音量調整回路１５ａ３へのみ出力される。また、各演奏パートの音量調整回路１５ａ３にそれぞれ供給されて、演奏パートの音量バランスを設定する音量設定パラメータのうち、制御音用の音量調整回路１５ａ３に供給される音量設定パラメータの値は、固定値である。この音量設定パラメータの固定値は、例えば、最大値「１２７」である。また、各演奏パートのパン調整回路１５ａ４にそれぞれ供給されて、演奏パートの定位を設定するパン設定パラメータのうち、制御音用のパン調整回路１５ａ４に供給されるパン設定パラメータの値も固定値である。このパン設定パラメータの固定値は、例えば、一方のスピーカ（例えば、左側のスピーカ）のみから出力する設定値である。なお、左右のスピーカから放音される制御音同士の干渉による問題が生じなければ、他方のスピーカから制御音を多少放音してもよい。
【００３８】
ｂ３．楽音パラメータ入出力回路１５ｂ
つぎに、楽音パラメータ入出力回路１５ｂについて説明する。楽音パラメータ入出力回路１５ｂは、バスＢＳを介してＣＰＵ１７ａから供給された楽音パラメータを入力して、各発音チャンネルＣＨ０，ＣＨ１・・・ＣＨ３１の各回路に出力する。楽音パラメータ入出力回路１５ｂは、発音チャンネルＣＨ０，ＣＨ１・・・ＣＨ３１に転送された波形データ情報であって、発音チャンネルＣＨ０，ＣＨ１・・・ＣＨ３１にて、発音中の制御音に関する波形データ情報を記憶している処理用レジスタと、発音チャンネルＣＨ０，ＣＨ１・・・ＣＨ３１にて、次に発音させる制御音に関する波形データ情報を記憶しておく予約用レジスタを備えている。また、楽音パラメータ入出力回路１５ｂは、音源回路１５の各回路（アドレス発生回路ＡＤＲ、ピッチ変更回路ＰＥＧ、カットオフ周波数変更回路ＦＥＧ、音量変更回路ＡＥＧなど）の状態を表すパラメータを入力して、ＣＰＵ１７ａに出力する。
【００３９】
つぎに、上記のように構成した演奏装置１０の動作について説明する。ユーザがこの演奏装置１０の図示しない電源スイッチをオンにすると、ＣＰＵ１７ａは、図１３の初期化プログラムを実行する。ＣＰＵ１７ａは、ステップＳ１０にて初期化処理を開始すると、ステップＳ１２にて、演奏装置１０の各回路を初期状態に設定する。すなわち、鍵盤１１に割り当てられる音色のデータ、表示器１４に表示する画像データなどをＲＯＭ１７ｃから読み出して、それぞれの初期値として設定する。つぎに、ＣＰＵ１７ａは、ステップＳ１４にて、タイマ１７ｂを作動開始させ、所定の間隔（例えば、１ミリ秒間隔）でタイマ割り込みを発生させるよう設定する。つぎに、ＣＰＵ１７ａは、ステップＳ１６にて、操作子インターフェース回路１３からの割り込みを許可する。そして、ＣＰＵ１７ａは、ステップＳ１８にて初期化処理を終了する。
【００４０】
ＣＰＵ１７ａは、操作子インターフェース回路１３から割り込みが発生し、その割り込み要因がユーザによる押離鍵操作であることを検出すると、図示しない楽音生成プログラムを実行して、前記押離鍵操作に応じて、楽音の生成を開始又は楽音の生成を停止させる。また、その割り込み要因がユーザによるモード切り替え指示であることを検出すると、図示しないモード切り替えプログラムを実行して、前記モード切り替え指示に応じて、動作モードを切り替える。
【００４１】
また、ＣＰＵ１７ａは、操作子インターフェース回路１３からの割り込み要因がユーザによる自動演奏の開始指示であることを検出すると、図１４に示す自動演奏プログラムを実行する。
【００４２】
ＣＰＵ１７ａは、ステップＳ２０にて自動演奏処理を開始すると、ステップＳ２２にて、タイマ１７ｂを用いて時間計測を開始する。つぎに、ＣＰＵ１７ａは、ステップＳ２４にて、ユーザによって選択された曲データを記憶装置１８（又は、予めコピーしておいたＲＡＭ１７ｄ）から読み出し、前記読み出した曲データに含まれるイベントデータのうち、テンポクロックタイミングと現在時刻が一致するイベントデータを検索する。該当するイベントデータが無い場合には、「Ｎｏ」と判定して、再びステップＳ２４を実行する。一方、該当するイベントデータがある場合には、「Ｙｅｓ」と判定して、ステップＳ２６にて、そのイベントデータを読み出してイベント処理バッファに記憶する。そして、ＣＰＵ１７ａは、ステップＳ２８にて、イベント処理バッファに記憶されているイベントデータの種類に応じて、次に実行する処理を決定する。すなわち、イベントデータが押鍵又は離鍵に関するキーイベントデータである場合には、ステップＳ３０にて、図示しない楽音生成プログラムを実行して、キーイベントデータに対応した楽音の生成を開始又はキーイベントデータに対応した楽音の生成を停止し、ステップＳ２４に戻る。
【００４３】
また、ステップＳ２８において検出したイベントデータが、楽譜表示装置２０に表示させる楽譜のページを表わす楽譜データＳＤを含む楽譜イベントデータである場合には、ＣＰＵ１７ａは、ステップＳ３２にて、現在の動作モードが単独モード又は制御モードのいずれのモードであるか判定する。現在の動作モードが単独モードである場合には、ステップＳ２４に戻る。一方、現在の動作モードが制御モードである場合には、ステップＳ３４にて、図１５に示す制御音生成プログラムを実行する。
【００４４】
以下、図１５及び図１６を用いて、制御音の生成について具体的に説明する。なお、図１６の例においては、楽譜データＳＤの最下位ビットＬＳＢ側から最上位ビットＭＳＢ側へ向かうシンボルの値の順列が「０１０１・・・」であるとする。そして、楽譜データＳＤの最下位ビットＬＳＢ側から最上位ビットＭＳＢ側へ向かう隣り合う２つのビットには、制御波形データＧ４、制御波形データＧ１、制御波形データＧ８、制御波形データＧ３・・・がそれぞれ対応している。すなわち、第０ビット及び第１ビットには、制御波形データＧ４が対応していて、第１ビット及び第２ビットには、制御波形データＧ１が対応している。また、第２ビット及び第３ビットには、制御波形データＧ８が対応していて、第３ビット及び第４ビットには、制御波形データＧ３が対応している。また、図１６においては、後述するステップの実行タイミングに対応する位置にそのステップの番号を記載している。
【００４５】
ＣＰＵ１７ａは、ステップＳ４０にて制御音生成処理を開始すると、ステップＳ４２にて、前記楽譜データＳＤの先頭部分の２つのシンボル（すなわち、第０ビット及び第１ビット）を最初の処理対象のシンボルとして選択する。つぎに、ＣＰＵ１７ａは、ステップＳ４４にて、制御波形データＧ１〜Ｇ８のうち、前記選択した２つのシンボルに対応した制御波形データ（図１６の例においては、制御波形データＧ４）を選択して、前記選択した制御波形データの各種アドレスを、楽音パラメータ入出力回路１５ｂにおける発音チャンネルＣＨ３１の処理用レジスタに書き込む。なお、各種アドレスとは、先頭アドレス、末尾アドレス、ループ先頭アドレス及びループ終端アドレスである。ループ先頭アドレスは、制御波形データを構成する基本波形データの先頭アドレスである。また、ループ終端アドレスは、末尾アドレスである。
【００４６】
つぎに、ＣＰＵ１７ａは、ステップＳ４６にて、前記ステップＳ４４において選択した制御波形データを用いたディジタル音信号の生成開始を発音チャンネルＣＨ３１に指示する。発音チャンネルＣＨ３１のアドレス発生回路ＡＤＲは、サンプリング周期ごとに、オフセットアドレスをインクリメントすることにより、処理用レジスタに書き込まれている先頭アドレスを起点として、読み出しアドレスを１つずつ進める。そして、アドレス発生回路ＡＤＲは、読み出しアドレスに記憶されている波高値を読み出す。このようにして、発音チャンネルＣＨ３１は、ステップＳ４４において選択した制御波形データに対応するディジタル音信号を生成する。
【００４７】
つぎに、ＣＰＵ１７ａは、ステップＳ４８にて、読み出しアドレスが、処理用レジスタに書き込まれているループ先頭アドレスを超えているか否かを判定する。すなわち、オフセットアドレスが、先頭アドレスと無音部分の終端に対応するアドレスとの差分よりも大きいか否かを判定する。読み出しアドレスが、ループ先頭アドレスを超えていなければ、ＣＰＵ１７ａは、再びステップＳ４８を実行する。一方、読み出しアドレスが、ループ先頭アドレスを超えていれば、ＣＰＵ１７ａは、ステップＳ５０にて、処理対象のシンボルに楽譜データＳＤの最上位ビットＭＳＢが含まれているか否か判定する。処理対象のシンボルに、楽譜データＳＤの最上位ビットＭＳＢが含まれていないときには、ＣＰＵ１７ａは、「Ｎｏ」と判定して、ステップＳ５２に処理を進める。ＣＰＵ１７ａは、ステップＳ５２にて、処理対象の２つのシンボルを１ビット分だけ楽譜データＳＤの最上位ビットＭＳＢ側にずらして、次の処理対象の２つのシンボルとして選択する。例えば、最初、処理対象のシンボルは、ステップＳ４２において、楽譜データＳＤの第０ビット及び第１ビットに設定されているので、ステップＳ５２の初回の実行時には、楽譜データＳＤの第２ビット及び第１ビットを処理対象のシンボルとして選択する。
【００４８】
つぎに、ＣＰＵ１７ａは、ステップＳ５４にて、前記ステップＳ５２において選択した処理対象のシンボルに対応する制御波形データを選択し、選択した制御波形データの各種アドレスを、楽音パラメータ入出力回路１５ｂにおける発音チャンネルＣＨ３１の予約用レジスタに書き込む。つぎに、ＣＰＵ１７ａは、ステップＳ５６にて、読み出しアドレスが、処理用レジスタに書き込まれているループ終端アドレスに到達したか否かを判定する。読み出しアドレスが、ループ終端アドレスに到達していなければ、ＣＰＵ１７ａは、「Ｎｏ」と判定して、再びステップＳ５６を実行する。一方、読み出しアドレスがループ終端アドレスに到達していれば、ＣＰＵ１７ａは、「Ｙｅｓ」と判定して、ステップＳ４８に戻る。
【００４９】
発音チャンネルＣＨ３１においては、読み出しアドレスが、ループ終端アドレスに到達すると、アドレス発生回路ＡＤＲが、予約用レジスタに書き込まれた各種アドレスを処理用レジスタにコピーする。この段階においては、オフセットアドレスは、変更されない。そして、アドレス発生回路ＡＤＲは、次のサンプリング周期における読み出しアドレスを、以下のようにして設定する。まず、アドレス発生回路ＡＤＲは、前記処理用レジスタにコピーされた先頭アドレスにオフセットアドレスを加算する。この場合、前記加算処理により算出されたアドレスは、処理用レジスタにコピーされた末尾アドレス（ループ終端アドレス）に相当する。したがって、オフセットアドレスを、処理用レジスタにコピーされた先頭アドレスとループ先頭アドレスとのオフセット量に設定する。これにより、次のサンプリング周期における読み出しアドレスが、処理用レジスタにコピーされたループ先頭アドレスに設定される。
【００５０】
以降、ＣＰＵ１７ａは、上記のステップＳ４８〜ステップＳ５６からなる処理を繰り返すことにより、処理対象の２つのシンボルにそれぞれ対応した制御波形データ（図１６の例においては、制御波形データＧ４、制御波形データＧ１、制御波形データＧ８、制御波形データＧ３・・・）を順に選択するごとに、それらの各種アドレスを予約レジスタに書き込む。そして、ステップＳ５０において、処理対象のシンボルに、楽譜データＳＤの最上位ビットＭＳＢが含まれていると、ＣＰＵ１７ａは、「Ｙｅｓ」と判定し、ステップＳ５８にて、予約用レジスタをクリアする。例えば、予約用レジスタに、先頭アドレス、末尾アドレス、ループ先頭アドレス及びループ終端アドレスとして、「０」をそれぞれ書き込む。予約レジスタに「０」が書き込まれているとき、発音チャンネルＣＨ３１は、再生中の制御波形データの末尾のデータを読み出して再生した後、発音を停止する。そして、ＣＰＵ１７ａは、ステップＳ６０にて、制御音生成処理を終了する。
【００５１】
再び、自動演奏処理（図１４）の説明に戻る。イベント処理バッファに記憶されているイベントデータがその他のデータである場合には、ステップＳ３６にて、そのイベントデータに応じた処理を実行して、ステップＳ２４に戻る。例えば、イベントデータが音色を変更するプログラムチェンジデータである場合には、音色を変更することを表す楽音制御パラメータを生成して音源回路１５に出力し、ステップＳ２４に戻る。また、ステップＳ２６において記憶したイベントデータがエンドデータである場合には、ＣＰＵ１７ａは、ステップＳ３８にて、自動演奏処理を終了する。
【００５２】
つぎに、楽譜表示装置２０について説明する。楽譜表示装置２０は、小型コンピュータ、携帯電話などの携帯情報端末であり、図１７に示すように、パネル操作子２１、表示器２２、表示制御回路２３、タッチパネル２４、操作子インターフェース回路２５、コンピュータ部２６、通信インターフェース回路２７、集音装置２８及び復号回路２９を備えている。パネル操作子２１は、楽譜表示装置２０の電源をオン・オフするための電源スイッチ、表示器２２の明るさを調整するボタンなどからなる。パネル操作子２１は、操作子インターフェース回路２５に接続されていて、操作子インターフェース回路２５によって、パネル操作子２１の操作状態が検出される。
【００５３】
表示器２２は、液晶ディスプレイ（ＬＣＤ）によって構成され、表示画面上に文字、図形などを表示する。この表示器２２の表示は、表示制御回路２３によって制御される。楽譜表示装置２０の表示器２２の表示領域は、演奏装置１０の表示器１４の表示領域よりも広い。表示制御回路２３は、バスＢＵＳを介して、後述のコンピュータ部２６から表示器２２に表示する画像を表す画像データを入力する。
【００５４】
タッチパネル２４は、表示器２２の表示画面に重なるようにして配置されている。タッチパネル２４も操作子インターフェース回路２５に接続されていて、操作子インターフェース回路２５によって制御されて、ユーザによってタッチされた位置の座標を表す座標データを操作子インターフェース回路２５に出力する。
【００５５】
操作子インターフェース回路２５は、パネル操作子２１の操作及びタッチパネル２４の操作に関する各種データを、バスＢＵＳを介して、コンピュータ部２６に供給する。
【００５６】
コンピュータ部２６は、演奏装置１０のコンピュータ部１７と同様に、ＣＰＵ２６ａ、タイマ２６ｂ、ＲＯＭ２６ｃ及びＲＡＭ２６ｄからなる。また、通信インターフェース回路２７は、楽譜表示装置２０をパーソナルコンピュータなどのＭＩＤＩ対応の外部機器に、無線又は有線で接続可能にするとともに、インターネットなどの通信ネットワークに接続可能にしている。
【００５７】
集音装置２８は、音響信号を入力するマイク及び増幅回路からなる。集音装置２８は、楽譜表示装置２０の角部であって、楽譜表示装置２０が演奏装置１０に取り付けられたとき、演奏装置１０の左側のスピーカに近い位置に設けられている（図１参照）。復号回路２９は、集音装置２８によって集音されて増幅された音響信号を入力し、演奏装置１０によって放音された制御音から楽譜データＳＤを復号する。復号回路２９に入力された音響信号は、図１８に示すように、ハイパスフィルタ２９ａに入力される。ハイパスフィルタ２９ａは、入力した音響信号から、制御音の周波数帯域よりも低い周波数帯域に含まれる周波数成分を除去して、遅延部２９ｂ及び乗算部２９ｃに出力する。
【００５８】
遅延部２９ｂは、入力した信号を差動符号の１チップ分の時間だけ遅延させて乗算部２９ｃに出力する。乗算部２９ｃは、ハイパスフィルタ２９ａから入力した信号と、遅延部２９ｂから入力した信号とを乗算することにより、遅延検波処理を実行する。そして、乗算部２９ｃからの出力信号は、ローパスフィルタ２９ｄによって、ベースバンド信号に変換され、相関部２９ｅに入力される。相関部２９ｅは、拡散符号ＰＮ（図６参照）を用いて、相関係数を出力する。そして、相関部２９ｅから出力された相関係数は、ピーク検出部２９ｆに入力され、ピーク検出部２９ｆにおいて、拡散符号ＰＮの周期で、入力された相関係数のうちの正負のピーク成分が抽出される。抽出されたピーク成分の値は、符号判定部２９ｇに入力される。符号判定部２９ｇは、入力したピーク成分の値が「１」であれば、符号（すなわち、楽譜データＳＤを構成するシンボル）の値を「０」とし、入力したピーク成分の値が「−１」であれば、符号の値を「１」とする。
【００５９】
なお、制御波形データは、シンボルの中間から隣のシンボルの中間までに相当するので、楽譜データＳＤの最下位ビットＬＳＢ及び最上位ビットＭＳＢにそれぞれ対応する差動符号の端部の５ビット（又は、６ビット）の部分に相当する制御音が放音されない。そのため、復号した楽譜データＳＤの最下位ビットＬＳＢ及び最上位ビットＭＳＢの値は、演奏装置１０が送信した楽譜データＳＤの最下位ビットＬＳＢ及び最上位ビットＭＳＢの値とは異なることがある。しかし、上記のように、楽譜データＳＤの最下位ビットＬＳＢ及び最上位ビットＭＳＢのデータは、ダミーデータであるので問題ない。上記のようにして、復号された楽譜データＳＤは、バスＢＵＳを介してＣＰＵ２６ａに出力され、ＣＰＵ２６ａは、入力した楽譜データＳＤに対応する画像データを、ＲＯＭ２６ｃから読み出して、表示制御回路２３に出力する。これにより、復号した楽譜データＳＤに対応する画像が表示器２２に表示される。すなわち、演奏装置１０による演奏の進行に応じて、楽譜の画像が表示器２２に表示される。なお、集音装置２８によって集音されて増幅された音響信号を、復号回路２９ではなくコンピュータ部２６に入力し、ＣＰＵ２６ａは、復号回路２９を用いることなく、入力した音響信号から楽譜データＳＤを復号するプログラムを実行するようにしてもよい。
【００６０】
上記のように構成した演奏装置１０によれば、演奏装置１０と楽譜表示装置２０とをケーブルによって接続する必要が無いので、簡単に楽譜データＳＤを楽譜表示装置２０に送信できる。また、演奏装置１０と楽譜表示装置２０とをケーブルによって接続する場合に比べて、楽譜表示装置２０の配置位置の制限が緩和される。また、上記従来の情報伝達装置のような変調器を搭載する必要が無いので、コストダウンできる。また、複数の制御波形データを組み合わせることにより、任意の楽譜データＳＤに対応する制御音を生成することができるので、値の異なる楽譜データＳＤごとに搬送波を変調した制御音全体の波形データをそれぞれ記憶しておく場合に比べて、波形メモリＷＭの容量を大幅に節約できる。また、制御波形データは、差動符号の切り替わり部分がデータの中央に位置する基本波形データからなるようにした。したがって、前記切り替わり部分が制御波形データの末尾に位置する場合とは異なり、前記切り替わり部分に対応する制御音の区間が不連続になることがない。これにより、楽譜表示装置２０における楽譜データＳＤの復号の精度を向上させることができる。
【００６１】
また、発音チャンネルＣＨ３１のループ機能を用いて、楽譜データＳＤを構成する隣り合う２つのシンボルにそれぞれ対応する複数の制御波形データを連続して読み出すようにした。これらの複数の制御波形データの発音を、１つ又は複数の発音チャンネルに割り当てて、複数の制御波形データごとに発音開始を指示する場合、１つの制御波形データの発音が終了すると同時に、次の制御波形データを割り当てた発音チャンネルに発音を開始させる必要がある。すなわち、複数の制御波形データの読み出し開始タイミングをＣＰＵ１７ａ又は音源回路１５によって調整する必要がある。しかし、上記のように構成すれば、複数の制御波形データを全体として途切れることなく、簡単かつ確実に再生できる。したがって、ＣＰＵ１７ａ、音源回路１５及び制御音制御プログラムの構成を簡単にできる。また、上記のように、楽譜データＳＤに対応する制御音全体として途切れることが無いので、楽譜表示装置２０における楽譜データＳＤの復号の精度を向上させることができる。また、上記のように構成した場合、制御音において、シンボルの境界付近に相当する部分に、ローパスフィルタＷＰ３及びヒルベルト変換部ＷＰ４における処理の影響が生じる。そこで、基本波形データｇ１〜ｇ８をシンボル（差動符号）の境界を中心として取り出すようにした。したがって、送信する楽譜データＳＤのシンボルの各境界に相当する部分において、広帯域に亘る雑音が発生することを防止できるので、演奏を妨げることが無い。
【００６２】
また、演奏装置１０が制御モードに設定されているとき、制御音を生成する発音チャンネルＣＨ３１の音量を一定にした。すなわち、ユーザがマスターボリューム操作子を操作しても、楽音のパートの音量を変化させるだけで、制御音の音量を最大音量に固定するようにした。また、制御音の音程が元ピッチのままであるように、発音チャンネルＣＨ３１のアドレス発生回路ＡＤＲ及び補間回路ＳＰＩを設定した。したがって、楽譜表示装置２０における楽譜データＳＤの復号の精度を一定に保つことができる。なお、制御音の周波数帯域は、１８ｋＨｚを中心とした高く、かつ狭い帯域であるので、音量を最大音量に固定しても、ユーザは、制御音の発生をほとんど認識できない。したがって、演奏を妨げることが無い。
【００６３】
また、制御音を左側のスピーカのみから発生するようにした。したがって、複数のスピーカから同時に制御音を発生した場合に発生する複数の制御音同士の干渉を防止することができる。これにより、楽譜表示装置２０による楽譜データＳＤの復号の精度が低下することを防止できる。
【００６４】
さらに、本発明の実施にあたっては、上記実施形態に限定されるものではなく、本発明の目的を逸脱しない限りにおいて種々の変更が可能である。
【００６５】
例えば、上記実施形態においては、発音チャンネルＣＨ３１のループ機能を用いて、複数の制御波形データを途切れることなく連続的に読み出して再生するようにした。しかし、制御音に限られず、発音チャンネルＣＨ１〜ＣＨ３０のループ機能を用いて、複数の楽音波形データを途切れることなく連続的に読み出して再生するようにしてもよい。これによれば、連続的に読み出す複数の楽音波形データの順列を変更することにより、多様な音色の楽音を発生させることができる。また、これらの音色の楽音波形データを全体として波形メモリＷＭにそれぞれ記憶しておく場合に比べて、波形メモリＷＭの容量を大幅に節約することができる。
【００６６】
また、上記実施形態においては、曲データ中に、楽譜データＳＤを楽譜イベントデータとして埋め込んでおき、この楽譜イベントデータを検出したとき、制御音生成処理を実行するようにした。しかし、パネル操作子１２のうちのいずれかの操作子に、楽譜のページを変更する機能を割り当てておき、前記操作子が操作されたことを検出したとき、制御音生成処理を実行するようにしてもよい。
【００６７】
また、上記実施形態においては、ステップＳ５２及びステップＳ５４を実行して、処理対象のシンボルを選択するごとに、対応する制御波形データを選択するようにしたが、ステップＳ４６による発音開始指示の前に、楽譜データＳＤに対応する制御波形データの順列を決定するようにしておいてもよい。そして、ステップＳ５２及びステップＳ５４に代えて、前記予め決定した順列に従って、制御波形データの先頭アドレス、末尾アドレス、ループ開始アドレス及びループ終端アドレスを楽音パラメータ入出力回路１５ｂに書き込むようにしてもよい。この場合、所定の楽譜データＳＤと制御波形データの順列との関係を表わしたテーブルを記憶しておき、このテーブルに従って、制御波形データの順列を決定するようにしてもよい。これによれば、制御音生成プログラムにおける、処理対象シンボルを選択するごとに、前記選択したシンボルに対応する制御波形データを選択する必要が無いので、制御音生成プログラムを簡単にできる。
【００６８】
また、上記実施形態においては、ユーザがマスターボリューム操作子を操作しても、楽音のパートの音量を変化させるだけで、制御音の音量を最大音量に固定するようにした。しかし、制御音の音量をマスターボリューム操作子の操作に連動させてもよい。この場合、楽音のパートの音量の低下に比べて、制御音の音量の低下が小さくなるように構成すればよい。
【００６９】
また、例えば、楽音の周波数成分のうち、制御音の周波数帯域に含まれる周波数成分の音量が、制御音の音量よりも十分小さくなるように、楽音を発生する発音チャンネルのフィルタ回路ＦＬＴのカットオフ周波数を調整してもよい。また、楽音をサンプリングするときに、制御音の周波数帯域に含まれる周波数成分の音量を十分小さくしておいてもよい。例えば、楽音の周波数成分のうち制御音の周波数帯域に含まれる周波数成分の音量と、制御音の音量との差を１０ｄＢ以上にするとよい。また、楽音の周波数帯域が制御音の周波数帯域に重ならないように、楽音を発生する発音チャンネルのフィルタ回路ＦＬＴのカットオフ周波数を調整してもよい。また、楽音をサンプリングするときに、制御音の周波数帯域に含まれる周波数成分を予め除去しておいてもよい。これによれば、楽譜表示装置２０における楽譜データＳＤの復号の精度をさらに向上させることができる。
【００７０】
また、例えば、図１９Ａ及び図１９Ｂに示すように、基本波形データｇ１〜ｇ８を２つずつ組み合わせた、制御波形データＧ１４，Ｇ１６，・・・，Ｇ２３，Ｇ２４，・・・・・・，Ｇ８４，Ｇ８７を波形メモリＷＭに記憶しておいてもよい。基本波形データｇ１〜ｇ８を２つずつ組み合わせることにより、最大で５６種類の制御波形データを構成することができる。しかし、連続することがありえない基本波形データを組み合わせて構成される制御波形データは不要であるので、図２０に丸印で示した、２８種類の制御波形データを波形メモリＷＭに記憶しておけばよい。それぞれの制御波形データは、先頭に共通の長さの無音部分を有している。ただし、上記実施形態と同様に、この無音部分を設けなくてもよい。
【００７１】
この場合、図１５の制御音生成プログラムに代えて、図２１の制御音生成プログラムを実行する。すなわち、ＣＰＵ１７ａは、ステップＳ７０にて制御音生成処理を開始すると、ステップＳ７２にて、楽譜データＳＤの各シンボルの値の順列に応じて、制御波形データの順列を決定する。図２２に示す例において、楽譜データＳＤの最下位ビットＬＳＢ側から最上位ビットＭＳＢ側へ向かうシンボルの値の順列が「０１０１・・・」であるとする。この場合、ＣＰＵ１７ａは、まず、楽譜データＳＤの第０ビットと第１ビットの値に対応する制御波形データＧ４１を第１の制御波形データとして選択する。すなわち、制御波形データＧ４１を構成する、基本波形データｇ４の後半部と基本波形データｇ１の前半部とが、楽譜データＳＤの第０ビットの値に対応している。また、基本波形データｇ１の後半部と、次に説明する第２の制御波形データを構成する基本波形データｇ８の前半部とが、楽譜データＳＤの第１ビットの値に対応している。
【００７２】
つぎに、ＣＰＵ１７ａは、楽譜データＳＤの第１ビット及び第２ビットの値、並びに第１の制御波形データに対応する制御波形データＧ８１を第２の制御波形データとして選択する。すなわち、制御波形データＧ８１は、第１の制御波形データと同様に後段部が基本波形データｇ１により構成されている。また、制御波形データＧ８１を構成する基本波形データｇ８の前半部は、基本波形データｇ１の後半部に対応している。また、基本波形データｇ８の後半部と、次に説明する第３の制御波形データを構成する基本波形データｇ３の前半部分とが、楽譜データＳＤの第２ビットの値に対応している。
【００７３】
つぎに、ＣＰＵ１７ａは、楽譜データＳＤの第２ビット及び第３ビットの値、並びに第２の制御波形データに対応する制御波形データＧ８３を第３の制御波形データとして選択する。すなわち、制御波形データＧ８３は、第２の制御波形データと同様に前段部が基本波形データｇ８により構成されている。また、制御波形データＧ８３を構成する基本波形データｇ３の後半部は、楽譜データＳＤの第３ビットの値に対応している。
【００７４】
楽譜データＳＤの容量は、４バイト（３２ビット）であるが、ＣＰＵ１７ａは、第３ビットよりも上位に位置する隣り合う２つのシンボルに対応する第４の制御波形データ〜第３２の制御波形データについても、上記の第０ビット〜第３ビットの場合と同様にして選択する。すなわち、次の４つの条件を満たすように制御波形データを選択する。第１の条件は、楽譜データの対象のシンボルに対応した制御波形データであることである。第２の条件は、偶数番目の制御波形データの後段部は、１つ前の奇数番目の制御波形データの後段部と同じ基本波形データで構成され、奇数番目の制御波形データの前段部は、１つ前の偶数番目の制御波形データの前段部と同じ基本波形データで構成されていることである。第３の条件は、偶数番目の制御波形データの後段部の基本波形データの後半部と、その制御波形データの前段部を構成する基本波形データの前半部は、同一の差動符号に対応していることである。第４の条件は、奇数番目の制御波形データの前段部の基本波形データの後半部と、その制御波形データの後段部の基本波形データの前半部は、同一の差動符号に対応していることである。
【００７５】
つぎに、制御波形データの読み出しについて説明する。まず、ＣＰＵ１７ａは、ステップＳ７４にて、処理中の制御波形データを識別するための制御波形カウンタｎを「１」に初期化する。つぎに、ＣＰＵ１７ａは、ステップＳ７６にて、第１の制御波形データの各種アドレスを楽音パラメータ入出力回路１５ｂにおける発音チャンネルＣＨ３１の処理用レジスタに書き込む。図２２の例においては、制御波形データＧ４１の各種アドレスを楽音パラメータ入出力回路１５ｂにおける発音チャンネルＣＨ３１の処理用レジスタに書き込む。なお、ループ先頭アドレスは、無音部分の終端に対応するアドレスである。つぎに、ＣＰＵ１７ａは、ステップＳ７８にて、第１の制御波形データを用いたディジタル音信号の生成開始を発音チャンネルＣＨ３１に指示して、制御音の発音開始を指示する。
【００７６】
つぎに、ＣＰＵ１７ａは、ステップＳ８０にて、読み出しアドレスが、第ｎの制御波形データのループ中央アドレス（制御波形データを構成する２つの基本波形データのうちの後段部の基本波形データの先頭アドレス）を超えているか否かを判定する。読み出しアドレスが、第ｎの制御波形データのループ中央アドレスを超えていなければ、ＣＰＵ１７ａは、「Ｎｏ」と判定して、再びステップＳ８０を実行する。一方、読み出しアドレスが、第ｎの制御波形データのループ中央アドレスを超えていれば、ＣＰＵ１７ａは、「Ｙｅｓ」と判定して、ステップＳ８２にて、制御波形カウンタｎをインクリメントする。最初、制御波形カウンタｎは、「１」に初期化されているから、第１の制御波形データである制御波形データＧ４１のループ中央アドレスを超えていれば、制御波形データを「２」に設定する。
【００７７】
つぎに、ＣＰＵ１７ａは、ステップＳ８４にて、第ｎの制御波形データの各種アドレスを楽音パラメータ入出力回路１５ｂにおける発音チャンネルＣＨ３１の処理用レジスタに書き込む。ループ先頭アドレスは、第ｎの制御波形データの前段部を構成する基本波形データの先頭アドレスである。ループ終端アドレスは、第ｎの制御波形データの末尾アドレスである。発音チャンネルＣＨ３１のアドレス発生回路ＡＤＲは、第ｎの制御波形データの先頭アドレスにオフセットアドレスを加算したアドレスを読み出しアドレスとして算出する。このとき、オフセットアドレスは、上記ステップＳ８４の実行によっては変化しない。上記のように、偶数番目の制御波形データとその１つ前の奇数番目の制御波形データは、後段部が同じ基本波形データから構成されていて、かつステップＳ８４による先頭アドレスの変更前後において、オフセットアドレスが変化しないため、アドレス発生回路ＡＤＲは、同一の基本波形データの読み出しを継続することができる。
【００７８】
例えば、図２２の例においては、第１の制御波形データ及び第２の制御波形データの後段部は、基本波形データｇ１から構成されており、アドレス発生回路ＡＤＲは、ステップＳ８４の実行前後において、基本波形データｇ１の読み出しを継続することができる。そして、アドレス発生回路ＡＤＲは、第ｎの制御波形データにおけるループ終端アドレスまで読み出しアドレスを進めると、次のサンプリング周期における読み出しアドレスを、ループ開始アドレスに設定する。すなわち、オフセットアドレスを先頭アドレスとループ開始アドレスとの差に設定する。そして、第ｎの制御波形データの前段部の基本波形データの読み出しを開始する。図２２の例においては、制御波形データＧ８１におけるループ終端アドレスまで読み出しアドレスを進めると、次のサンプリング周期における読み出しアドレスを、制御波形データＧ８１の前段部を構成する基本波形データｇ８の先頭アドレスに設定する。
【００７９】
つぎに、ＣＰＵ１７ａは、ステップＳ８６にて、読み出しアドレスが、末尾アドレスからループ開始アドレスに遷移したか否かを判定する。未だ、読み出しアドレスが末尾アドレスからループ開始アドレスに遷移していなければ、ＣＰＵ１７ａは、「Ｎｏ」と判定して、再びステップＳ８６を実行する。
【００８０】
一方、読み出しアドレスが末尾アドレスからループ開始アドレスに遷移していれば、ＣＰＵ１７ａは「Ｙｅｓ」と判定して、ステップＳ８８にて、制御波形カウンタｎをインクリメントする。図２２の例において、読み出しアドレスが、第２の制御波形データの末尾アドレスに到達して、第２の制御波形データの前段部を構成する基本波形データｇ８の先頭アドレスに遷移していれば、制御波形カウンタｎを「３」に設定する。そして、ＣＰＵ１７ａは、ステップＳ９０にて、第ｎの制御波形データの各種アドレスを楽音パラメータ入出力回路１５ｂの処理用レジスタに書き込む。この場合、ループ先頭アドレスは、第ｎの制御波形データの前段部を構成する基本波形データの先頭アドレスであり、ループ終端アドレスは、第ｎの制御波形データの末尾アドレスである。
【００８１】
発音チャンネルＣＨ３１のアドレス発生回路ＡＤＲは、第ｎの制御波形データの先頭アドレスにオフセットアドレスを加算したアドレスを読み出しアドレスとして設定する。この場合も、オフセットアドレスは、上記ステップＳ９０の実行によっては変化しない。上記のように、奇数番目の制御波形データと、その１つ前の偶数番目の制御波形データは、前段部が同じ基本波形データから構成されていて、かつステップＳ８０による先頭アドレスの変更前後において、オフセットアドレスが変化しないため、アドレス発生回路ＡＤＲは、同一の基本波形データの読み出しを継続することができる。例えば、図２２の例においては、第２の制御波形データ及び第３の制御波形データの前段部は、基本波形データｇ８から構成されており、アドレス発生回路ＡＤＲは、ステップＳ９０の実行前後において、基本波形データｇ８の読み出しを継続することができる。
【００８２】
つぎに、ＣＰＵ１７ａは、ステップＳ９２にて、制御波形カウンタｎの値が「３２」であるか否かを判定することにより、楽譜データＳＤを構成する３２ビット分の制御音を生成するための指示を終了したか否かを判定する。制御波形カウンタｎの値が「３２」とは異なっていれば、ＣＰＵ１７ａは「Ｎｏ」と判定してステップＳ８０に処理を進める。一方、制御波形カウンタｎの値が「３２」であれば、ＣＰＵ１７ａは、「Ｙｅｓ」と判定して、ステップＳ９４にて、読み出しアドレスが第ｎの制御波形データの末尾アドレスに到達したか否か判定する。未だ、読み出しアドレスが第ｎの制御波形データの末尾アドレスに到達していないときには、ＣＰＵ１７ａは、「Ｎｏ」と判定して再びステップＳ９４を実行する。一方、読み出しアドレスが第ｎの制御波形データの末尾アドレスに到達したときには、ＣＰＵ１７ａは「Ｙｅｓ」と判定して、ステップＳ９６にて、発音チャンネルＣＨ３１にディジタル音信号の生成の停止を指示して、制御音の生成を停止させ、ステップＳ９８にて、制御音生成処理を終了して、自動演奏処理に戻る。
【００８３】
これによれば、上記実施形態とは異なり、予約用レジスタが不要であるので、楽音パラメータ入出力回路１５ｂの構成を簡単にできる。
【００８４】
また、例えば、図２３Ａ及び図２３Ｂに示すように、基本波形データｇ１〜ｇ８の前部に基本波形データｇ１〜ｇ８と同じ長さの無音部分をそれぞれ設け、さらにその前部に短い無音部分を設けた制御波形データＧ０１〜Ｇ０８及び基本波形データｇ１〜ｇ８の後部に基本波形データｇ１〜ｇ８と同じ長さの無音部分をそれぞれ設け、さらに基本波形データｇ１〜ｇ８の前部に短い無音部分を設けた制御波形データＧ１０〜Ｇ８０を波形メモリＷＭに記憶しておいてもよい。制御波形データＧ０１〜Ｇ０８及び制御波形データＧ１０〜Ｇ８０の先頭部分に設けた短い無音部分の長さは共通であるが、上記実施形態と同様に、この短い無音部分を設けなくてもよい。
【００８５】
なお、この場合、波形メモリＷＭには、基本波形データｇ１〜ｇ８と、無音部分とを交互に連続するアドレスに配置している。この無音部分の長さは、基本波形データと同じ長さの無音部分と、前記先頭に設けた短い無音部分を足した長さである。そして、無音部分が基本波形データｇ１〜ｇ８の前部に配置されるように先頭アドレス及び末尾アドレスを指定することにより、制御波形データＧ０１〜Ｇ０８のうちの１つの制御波形データを選択する。また、無音部分が基本波形データｇ１〜ｇ８の前部及び後部に配置されるように先頭アドレス及び末尾アドレスを指定することにより、制御波形データＧ１０〜Ｇ８０のうちの１つの制御波形データを選択する。
【００８６】
この場合、上記実施形態及びその変形例とは異なり、制御音の生成のために、発音チャンネルＣＨ３０と発音チャンネルＣＨ３１が用いられる。すなわち、演奏装置１０が、楽譜表示装置２０を制御する制御モードに設定されているときは、発音チャンネルＣＨ３０及び発音チャンネルＣＨ３１は、制御音のディジタル音信号を生成する発音チャンネルとして設定され、発音チャンネルＣＨ３０及び発音チャンネルＣＨ３１から出力されたディジタル音信号は、エフェクト処理回路１５ａ２には出力されず、音量調整回路１５ａ３へのみ出力される。また、上記実施形態と同様に、制御音用の音量調整回路１５ａ３に供給される音量設定パラメータの値は、固定値（例えば、最大値「１２７」）である。また、制御音用のパン調整回路１５ａ４に供給されるパン設定パラメータの値も固定値（例えば、左側スピーカのみから出力する設定値）である。
【００８７】
また、この場合、ＣＰＵ１７ａは、図１５の制御音生成プログラムに代えて、図２４の制御音生成プログラムを実行する。ＣＰＵ１７ａは、ステップＳ１００にて制御音生成処理を開始すると、ステップＳ１０２にて、楽譜データＳＤの各シンボルの値の順列に応じて、制御波形データの順列を決定する。図２５に示す例においては、楽譜データＳＤの最下位ビットＬＳＢ側から最上位ビットＭＳＢ側へ向かうシンボルの値の順列が「０１０１・・・」であるとする。この場合、ＣＰＵ１７ａは、まず、楽譜データＳＤの第０ビットと第１ビットの値に対応する制御波形データＧ４０を第１の制御波形データとして選択し、制御波形データＧ０１を第２の波形データとして選択する。第１の制御波形データは、発音チャンネルＣＨ３０によって読み出され、第２の制御波形データは、発音チャンネルＣＨ３１によって読み出される。制御波形データＧ４０を構成する基本波形データｇ４の後半部と、制御波形データＧ０１を構成する基本波形データｇ１の前半部とが、楽譜データＳＤの第０ビットの値に対応している。また、基本波形データｇ１の後半部と、次に説明する第３の制御波形データを構成する基本波形データｇ８の前半部とが、楽譜データＳＤの第１ビットの値に対応している。
【００８８】
つぎに、ＣＰＵ１７ａは、楽譜データＳＤの第１ビット及び第２ビットの値、並びに第１の制御波形データに対応する制御波形データＧ８０を第３の制御波形データとして選択し、制御波形データＧ０３を第４の制御波形データとして選択する。第３の制御波形データは、発音チャンネルＣＨ３０によって読み出され、第４の制御波形データは、発音チャンネルＣＨ３１によって読み出される。制御波形データＧ８０を構成する基本波形データｇ８の後半部と、制御波形データＧ０３を構成する基本波形データｇ３の前半部とが、楽譜データＳＤの第２ビットの値に対応している。
【００８９】
楽譜データＳＤは４バイト（３２ビット）であるが、第３ビット以上の隣り合う２つのシンボルに対応する第５の制御波形データ〜第３２の制御波形データについても、上記の第０ビット〜第２ビットの場合と同様にして選択する。すなわち、奇数番目の制御波形データの後段部は無音部分であり、偶数番目の制御波形データの前段部は無音部分である。そして、奇数番目の制御波形データの前段部を構成する基本波形データの後半部と、その１つ後の偶数番目の制御波形データの後段部を構成する基本波形データの前半部とが、楽譜データＳＤの１つのシンボルに対応し、この偶数番目の制御波形データの後段部を構成する基本波形データの後半部と、さらに１つ後の奇数番目の制御波形データの前半部とが、楽譜データＳＤの１つのシンボルに対応するように、制御波形データを選択する。
【００９０】
つぎに、ＣＰＵ１７ａは、ステップＳ１０４にて、発音チャンネルＣＨ３０において処理中の制御波形データを識別するための制御波形カウンタｎを「１」に初期化し、発音チャンネルＣＨ３１において処理中の制御波形データを識別するための制御波形カウンタｍを「２」に初期化する。つぎに、ＣＰＵ１７ａは、ステップＳ１０６にて、第１の制御波形データの各種アドレスを楽音パラメータ入出力回路１５ｂの発音チャンネルＣＨ３０の処理用レジスタに書き込む。なお、ループ先頭アドレスは、第１の制御波形データを構成する基本波形データの先頭アドレスである。ループ終端アドレスは、末尾アドレスである。図２５の例においては、制御波形データＧ４０の各種アドレスを楽音パラメータ入出力回路１５ｂの発音チャンネルＣＨ３０の処理用レジスタに書き込む。
【００９１】
つぎに、ＣＰＵ１７ａは、ステップＳ１０８にて、第２の制御波形データの各種アドレスを楽音パラメータ入出力回路１５ｂの発音チャンネルＣＨ３１の処理用レジスタに書き込む。なお、ループ先頭アドレスは、第２の制御波形データを構成する基本波形データの前部に設けられた、基本波形データと同じ長さの無音部分の先頭に対応するアドレスである。ループ終端アドレスは、末尾アドレスである。図２５の例においては、制御波形データＧ０１の各種アドレスを楽音パラメータ入出力回路１５ｂの発音チャンネルＣＨ３１の処理用レジスタに書き込む。
【００９２】
つぎに、ＣＰＵ１７ａは、ステップＳ１１０にて、第１の制御波形データ及び第２の制御波形データを用いたディジタル音信号の生成開始を発音チャンネルＣＨ３０及び発音チャンネルＣＨ３１にそれぞれ指示して、両チャンネルに制御音の発音を同時に開始させる。第２の制御波形データの前段は無音部分なので、最初、発音チャンネルＣＨ３０のみが発音する。
【００９３】
つぎに、ＣＰＵ１７ａは、ステップＳ１１２にて、発音チャンネルＣＨ３０の読み出しアドレスが、第ｎの制御波形データのループ中央アドレス（制御波形データを構成する基本波形データの後部に付加された無音部分の先頭に対応するアドレス）を超えているか否かを判定する。発音チャンネルＣＨ３０の読み出しアドレスが、第ｎの制御波形データのループ中央アドレスを超えていなければ、ＣＰＵ１７ａは、再びステップＳ１１２を実行する。一方、発音チャンネルＣＨ３０の読み出しアドレスが、第ｎの制御波形データのループ中央アドレスを超えていれば、ＣＰＵ１７ａは、ステップＳ１１４にて、制御波形カウンタｎに「２」を加算する。
【００９４】
つぎに、ＣＰＵ１７ａは、ステップＳ１１６にて、第ｎの制御波形データの各種アドレスを楽音パラメータ入出力回路１５ｂの発音チャンネルＣＨ３０の処理用レジスタに書き込む。この場合、ループ先頭アドレスは、第ｎの制御波形データを構成する基本波形データの先頭アドレスである。ループ終端アドレスは、末尾アドレスである。最初、制御波形カウンタｎは「１」に初期化されているので、読み出しアドレスが、第１の制御波形データのループ中央アドレスを超えていれば、ステップＳ１１４にて、制御波形カウンタｎを「３」に設定し、ステップＳ１１６にて、第３の制御波形データの各種アドレスを楽音パラメータ入出力回路１５ｂの発音チャンネルＣＨ３０の処理用レジスタに書き込む。図２５の例においては、読み出しアドレスが、制御波形データＧ４０のループ中央アドレスを超えていれば、制御波形データＧ８０の各種アドレスを楽音パラメータ入出力回路１５ｂの発音チャンネルＣＨ３０の処理用レジスタに書き込む。
【００９５】
発音チャンネルＣＨ３０のアドレス発生回路ＡＤＲは、先頭アドレスにオフセットアドレスを加算したアドレスを読み出しアドレスとして算出する。このとき、オフセットアドレスは、上記ステップＳ１１６の実行によっては変化しない。上記のように、奇数番目の制御波形データは、後段部が無音部分から構成されていて、かつステップＳ１１６による先頭アドレスの変更前後において、オフセットアドレスが変化しないため、発音チャンネルＣＨ３０のアドレス発生回路ＡＤＲは、ステップＳ１１６の実行直後において、無音部分の波形データの読み出しを継続する。図２５の例においては、制御波形データＧ４０及び制御波形データＧ８０の後段部は、無音部分から構成されており、発音チャンネルＣＨ３０のアドレス発生回路ＡＤＲは、ステップＳ１１６の初回（ｎ＝３）の実行において、制御波形データＧ４０の無音部分の読み出しから制御波形データＧ８０の無音部分の読み出しに切り替える。
【００９６】
一方、発音チャンネルＣＨ３０の読み出しアドレスが、第ｎの制御波形データのループ中央アドレスを超えると、発音チャンネルＣＨ３１の読み出しアドレスも、第ｍの制御波形データのループ中央アドレスを超える。これにより、発音チャンネルＣＨ３１のアドレス発生回路ＡＤＲは、第ｍの制御波形データ後段を構成する基本波形データの読み出しを開始する。図２５の例において、ステップＳ１１６の初回（ｍ＝２）の実行後、発音チャンネルＣＨ３１のアドレス発生回路ＡＤＲは、第２の制御波形データの後段部を構成する基本波形データｇ１の読み出しを開始する。
【００９７】
発音チャンネルＣＨ３０のアドレス発生回路ＡＤＲは、第ｎ（＝ｍ＋１）の制御波形データにおけるループ終端アドレスまで読み出しアドレスを進めると、次のサンプリング周期における読み出しアドレスをループ開始アドレスに設定する。すなわち、オフセットアドレスを先頭アドレスとループ開始アドレスとの差に設定する。そして、第ｎの制御波形データの前段部を構成する基本波形データの読み出しを開始する。図２５における制御波形カウンタｎの値が「３」である場合において、読み出しアドレスを制御波形データＧ８０の末尾まで進めると、次のサンプリング周期における読み出しアドレスを、基本波形データｇ８の先頭アドレスに設定する。一方、発音チャンネルＣＨ３１のアドレス発生回路ＡＤＲも、第ｍの制御波形データにおけるループ終端アドレスまで読み出しアドレスを進めると、次のサンプリング周期における読み出しアドレスをループ開始アドレスに設定する。そして、第ｍの制御波形データの前段部を構成する無音部分の読み出しを開始する。したがって、発音チャンネルＣＨ３０のみが発音する。図２５における制御波形カウンタｍの値が「２」である場合において、読み出しアドレスを制御波形データＧ０１の末尾まで進めると、次のサンプリング周期における読み出しアドレスを、基本波形データｇ１の前部に設けられた、基本波形データｇ１と同じ長さの無音部分の先頭に対応するアドレスに設定する。
【００９８】
つぎに、ＣＰＵ１７ａは、ステップＳ１１８にて、発音チャンネルＣＨ３０及び発音チャンネルＣＨ３１の読み出しアドレスが、ループ終端アドレスからループ開始アドレスに遷移したか否かを判定する。未だ、読み出しアドレスがループ終端アドレスからループ開始アドレスに遷移していなければ、ＣＰＵ１７ａは、「Ｎｏ」と判定して、再びステップＳ１１８を実行する。
【００９９】
一方、発音チャンネルＣＨ３０及び発音チャンネルＣＨ３１の読み出しアドレスがループ終端アドレスからループ開始アドレスに遷移していれば、ＣＰＵ１７ａは「Ｙｅｓ」と判定して、ステップＳ１２０にて、制御波形カウンタｍに「２」を加算する。そして、ＣＰＵ１７ａは、ステップＳ１２２にて、第ｍの制御波形データの各種アドレスを発音チャンネルＣＨ３１の楽音パラメータ入出力回路１５ｂの処理用レジスタに書き込む。この場合、ループ先頭アドレスは、先頭に付加された無音部分の終端のアドレスであり、ループ終端アドレスは、第ｍの制御波形データの末尾アドレスである。最初、制御波形カウンタｍは「２」に初期化されているので、読み出しアドレスがループ終端アドレスからループ開始アドレスに遷移していれば、ステップＳ１２０にて、制御波形カウンタｍを「４」に設定し、ステップＳ１２２にて、第４の制御波形データの各種アドレスを楽音パラメータ入出力回路１５ｂの発音チャンネルＣＨ３１の処理用レジスタに書き込む。図２５の例においては、読み出しアドレスが制御波形データＧ０１のループ終端アドレスからループ開始アドレスに遷移していれば、制御波形データＧ０３の各種アドレスを楽音パラメータ入出力回路１５ｂの発音チャンネルＣＨ３１の処理用レジスタに書き込む。
【０１００】
発音チャンネルＣＨ３１のアドレス発生回路ＡＤＲは、第ｍの制御波形データの先頭アドレスにオフセットアドレスを加算したアドレスを読み出しアドレスとして設定する。この場合も、オフセットアドレスは、上記ステップＳ１２２の実行によっては変化しない。上記のように、偶数番目の制御波形データは、前段部が無音部分から構成されていて、かつステップＳ１２２による先頭アドレスの変更前後において、オフセットアドレスが変化しないため、発音チャンネルＣＨ３１のアドレス発生回路ＡＤＲは、第ｍ（＝ｎ＋１）の制御波形データの無音部分を読み出す。図２５の例においては、制御波形データＧ０１及び制御波形データＧ０３の前段部は、無音部分から構成されており、発音チャンネルＣＨ３１のアドレス発生回路ＡＤＲは、ステップＳ１２２の初回（ｍ＝４）の実行において、制御波形データＧ０１の無音部分の読み出しから制御波形データＧ０３の無音部分の読み出しに切り替える。このとき、発音チャンネルＣＨ３０のアドレス発生回路ＡＤＲは、第３の制御波形データを構成する基本波形データｇ８の読み出しを開始している。
【０１０１】
つぎに、ＣＰＵ１７ａは、ステップＳ１２４にて、制御波形カウンタｎの値が「３２」であるか否かを判定することにより、楽譜データＳＤを構成する３２ビット分の制御音を生成するための指示を終了したか否かを判定する。制御波形カウンタｎの値が「３２」とは異なっていれば、ＣＰＵ１７ａは「Ｎｏ」と判定してステップＳ１１２に処理を進める。一方、制御波形カウンタｎの値が「３２」であれば、ＣＰＵ１７ａは、「Ｙｅｓ」と判定して、ステップＳ１２６にて、読み出しアドレスが第ｎの制御波形データの末尾アドレスに到達したか否か判定する。未だ、読み出しアドレスが第ｎの制御波形データの末尾アドレスに到達していないときには、ＣＰＵ１７ａは、「Ｎｏ」と判定して再びステップＳ１２６を実行する。一方、読み出しアドレスが第ｎの制御波形データの末尾アドレスに到達したときには、ＣＰＵ１７ａは「Ｙｅｓ」と判定して、ステップＳ１２８にて、発音チャンネルＣＨ３１にディジタル音信号の生成の停止を指示して、制御音の生成を停止させ、ステップＳ１３０にて、制御音生成処理を終了して、自動演奏処理に戻る。
【０１０２】
上記のように構成しても、図１９Ａ乃至図２２を用いて説明した例と同様に、予約レジスタが不要なので、楽音パラメータ入出力回路１５ｂの構成を簡単にできる。
【０１０３】
また、例えば、次に説明するように、基本波形データｇ１〜ｇ８を波形メモリＷＭではなく、ＲＯＭ１７ｃに記憶しておいてもよい。そして、ＣＰＵ１７ａが、波形データ生成装置ＷＰと同様に、送信する楽譜データＳＤのシンボルを差動符号化し、その差動符号の順列に応じて、基本波形データｇ１〜ｇ８のうちの複数の基本波形データを選択して、音源回路１５に供給する。すなわち、音源回路１５は、図２６に示すように、基本波形データを書き込むためのバッファメモリＢＦを備えていて、ＣＰＵ１７ａは、前記選択した基本波形データが、バッファメモリＢＦ内において、対応する差動符号の順に並び、かつそれらを構成する波高値のアドレスが連続するように、各基本波形データを書き込む。音源回路１５は、バッファメモリＢＦに基本波形データが書き込まれると、サンプリング周期ごとに、バッファメモリＢＦの先頭アドレスから読み出しアドレスを１つずつ進めて、各基本波形データを構成する波高値を読み出して、制御音を生成する。これによれば、発音チャンネルのループ機能を用いることなく、制御音を放音することができる。
【０１０４】
上記のように、発音チャンネルを用いない場合、波形データ取り出し部ＷＰ７において、差動符号の種類に対応するように基本波形データを取り出すようにしてもよい。すなわち、波形データ取り出し部ＷＰ７は、差動符号の境界を跨ぐことの無いように、基本波形データを取り出すようにしてもよい。具体的には、図２７に示すように、入力した制御音のうちの、差動符号Ｐ０に対応する部分を、基本波形データｆ１として取り出し、差動符号Ｎ０に対応する部分を、基本波形データｆ２として取り出す。また、差動符号Ｐ１に対応する部分を、基本波形データｆ３として取り出し、差動符号Ｎ１に対応する部分を、基本波形データｆ４として取り出す。
【０１０５】
上記のようにして取り出した基本波形データｆ１〜ｆ４を、ＲＯＭ１７ｃに記憶しておけばよい。この場合も、ＣＰＵ１７ａは、送信する楽譜データＳＤのシンボルを差動符号化し、その差動符号の順列に対応するように、基本波形データを選択すればよい。そして、ＣＰＵ１７ａは、上記のようにして選択した基本波形データを、バッファメモリＢＦに書き込めばよい。これによっても、発音チャンネルのループ機能を用いることなく、制御音を放音することができる。
【０１０６】
さらに、この場合、波形データ生成装置ＷＰにおいて、拡散処理、差動符号化などを省略して、シンボルの値（「１」及び「０」）に対応した変調波を生成するようにしてもよい。例えば、シンボルの値に応じて振幅を異ならせてもよいし、位相を異ならせてもよい。この場合、演奏装置１０から楽譜表示装置２０に対して、同期信号を別途送信してもよい。
【０１０７】
ただし、上記実施形態及びその変形例のように、１つのシンボル（又は差動符号）に対応する音が次のシンボルに対応する音の先頭部分に影響を与えるような変調方式を採用した場合は、対応する波形データを取り出す対象のシンボルの最上位ビットＭＳＢ側及び最下位ビットＬＳＢ側に隣接するシンボルの値に応じて、異なる種類の基本波形データとして取り出す。
【０１０８】
具体的には、図２８及び図２９に示すように、値が「０」であるシンボルを対象のシンボルとすると、この対象のシンボルの最上位ビットＭＳＢ側及び最下位ビットＬＳＢ側に隣接するシンボル（以下、単に両隣のシンボルという）の値がそれぞれ「０」及び「０」であれば、前記対象のシンボルに対応する部分の波形を基本波形データｈ１として取り出す。また、両隣のシンボルの値がそれぞれ「０」及び「１」であれば、前記対象のシンボルに対応する部分の波形を基本波形データｈ２として取り出す。また、両隣のシンボルの値がそれぞれ「１」及び「０」であれば、前記対象のシンボルに対応する部分の波形を基本波形データｈ３として取り出し、両隣のシンボルの値がそれぞれ「１」及び「１」であれば、前記対象のシンボルに対応する部分の波形を基本波形データｈ４として取り出す。
【０１０９】
値が「１」であるシンボルに対応する基本波形データｈ５〜ｈ８の取り出しについても、値が「０」である場合と同様である。すなわち、両隣のシンボルの値がそれぞれ「０」及び「０」であれば、前記対象のシンボルに対応する部分の波形を基本波形データｈ５として取り出し、両隣のシンボルの値がそれぞれ「０」及び「１」であれば、前記対象のシンボルに対応する部分の波形を基本波形データｈ６として取り出す。また、両隣のシンボルの値がそれぞれ「１」及び「０」であれば、前記対象のシンボルに対応する部分の波形を基本波形データｈ７として取り出し、両隣のシンボルの値がそれぞれ「１」及び「１」であれば、前記対象のシンボルに対応する部分の波形を基本波形データｈ８として取り出す。なお、図２９においては、基本波形データｈ４及び基本波形データｈ６を取り出す例を示している。
【０１１０】
上記のようにして取り出した基本波形データｈ１〜ｈ８を、ＲＯＭ１７ｃに記憶しておき、ＣＰＵ１７ａは、送信する楽譜データＳＤのビットパターンに対応するように、複数の基本波形データを選択すればよい。ただし、楽譜データＳＤを構成する１つのシンボルに対応する基本波形データを選択するとき、そのシンボルの両隣のシンボルの値も考慮する必要がある。例えば、値が「０」であるシンボルに対応する基本波形データを選択する場合、そのシンボルの両隣のシンボルの値に応じて、基本波形データｈ１〜ｈ４のうちの１つを選択する。値が「１」であるシンボルに対応する基本波形データを選択する場合も、対象のシンボルの両隣のシンボルの値に応じて、基本波形データｈ５〜ｈ８のうちの１つを選択する。なお、最下位のシンボルに対応する基本波形データを選択する場合には、最上位ビットＭＳＢ側に隣接するシンボルの値のみを考慮し、最上位のシンボルに対応する基本波形データを選択する場合には、最下位ビットＬＳＢ側に隣接するシンボルの値のみを考慮する。
【０１１１】
例えば、楽譜データＳＤの第０ビット（最下位ビットＬＳＢ）の値が「０」であるとき、第１ビットの値に応じて、基本波形データｈ１又はｈ３を選択する。また、楽譜データＳＤの第０ビットの値が「１」であるとき、第１ビットの値に応じて、基本波形データｈ５又はｈ７を選択する。また、楽譜データＳＤの第３１ビット（最上位ビットＭＳＢ）の値が「０」であるとき、第３０ビットの値に応じて、基本波形データｈ１又はｈ２を選択する。また、楽譜データＳＤの第３１ビットの値が「１」であるとき、第３０ビットの値に応じて、基本波形データｈ５又はｈ６を選択する。これによっても、発音チャンネルのループ機能を用いることなく、制御音を放音することができる。
【０１１２】
なお、上記実施形態及びその変形例において、制御波形データＧ１〜Ｇ８のデータ長は同一なので、処理用レジスタ及び予約用レジスタには、末尾アドレス（すなわち、ループ終端アドレス）を書き込むこと無く、先頭アドレスのみを書き込んでおいて、先頭アドレスに、制御波形データＧ１〜Ｇ８のデータ長に応じたオフセットアドレスを加算することにより、末尾アドレスを算出するようにしてもよい。また、各制御波形データＧ１〜Ｇ８の先頭に設けられた無音部分のデータ長は同一なので、先頭アドレスに、無音部分のデータ長に応じたオフセットアドレスを加算することにより、ループ先頭アドレスを算出するようにしてもよい。
【０１１３】
また、楽譜データＳＤの形式は、上記実施形態及びその変形例に限られず、どのような形式であってもよい。また、演奏装置１０から放音する制御音によって制御する制御対象は、楽譜表示装置２０に限られず、演奏装置１０とともに用いられる外部機器であればよい。
【０１１４】
また、上記実施形態及びその変形例においては、発音チャンネルＣＨ３０及び発音チャンネルＣＨ３１を制御音のディジタル音信号を生成する発音チャンネルとして設定した。しかし、これに限られず、他の発音チャンネルを制御音のディジタル音信号を生成する発音チャンネルとして設定してもよい。また、単独モードにおいて、幾つかの発音チャンネルを用いて楽音のディジタル音信号を生成している最中に制御モードに移行した場合には、楽音の生成に使用されていない発音チャンネル、生成中の楽音のディジタル音信号の音量が十分に小さい発音チャンネルをＣＰＵ１７ａによって選択し、前記選択した発音チャンネルを制御音のディジタル音信号を生成する発音チャンネルとして設定してもよい。
【符号の説明】
【０１１５】
１０・・・演奏装置、１５・・・音源回路、１５ａ・・・チャンネル累算回路、１５ａ３・・・音量調整回路、１５ａ４・・・パン調整回路、１６・・・サウンドシステム、１７・・・コンピュータ部、ＷＭ・・・波形メモリ、ＡＤＲ・・・アドレス発生回路、ＦＬＴ・・・フィルタ回路、ＡＭＰ・・・音量制御回路、Ｇ１〜Ｇ８，Ｇ１４〜Ｇ８７，Ｇ０１〜Ｇ８０・・・制御波形データ、ＳＤ・・・楽譜データ、ＰＮ・・・拡散符号、Ｐ０，Ｐ１，Ｎ０，Ｎ１・・・差動符号
【図１】
0005494677.tif 000002
【図２】
0005494677.tif 000003
【図３Ａ】
0005494677.tif 000004
【図３Ｂ】
0005494677.tif 000005
【図４】
0005494677.tif 000006
【図５】
0005494677.tif 000007
【図６】
0005494677.tif 000008
【図７】
0005494677.tif 000009
【図８】
0005494677.tif 000010
【図９】
0005494677.tif 000011
【図１０】
0005494677.tif 000012
【図１１】
0005494677.tif 000013
【図１２Ａ】
0005494677.tif 000014
【図１２Ｂ】
0005494677.tif 000015
【図１３】
0005494677.tif 000016
【図１４】
0005494677.tif 000017
【図１５】
0005494677.tif 000018
【図１６】
0005494677.tif 000019
【図１７】
0005494677.tif 000020
【図１８】
0005494677.tif 000021
【図１９Ａ】
0005494677.tif 000022
【図１９Ｂ】
0005494677.tif 000023
【図２０】
0005494677.tif 000024
【図２１】
0005494677.tif 000025
【図２２】
0005494677.tif 000026
【図２３Ａ】
0005494677.tif 000027
【図２３Ｂ】
0005494677.tif 000028
【図２４】
0005494677.tif 000029
【図２５】
0005494677.tif 000030
【図２６】
0005494677.tif 000031
【図２７】
0005494677.tif 000032
【図２８】
0005494677.tif 000033
【図２９】
0005494677.tif 000034