(57)【特許請求の範囲】
【請求項１】
ネットワークを介して相互に接続可能な波形生成装置と１のコンピュータとで構成される波形生成システムであって、
前記コンピュータは、
該コンピュータにおいて実行可能なプログラムであって、前記波形生成装置が利用可能な、各発音チャンネルになされている設定に基づいて複数の発音チャンネルで波形データを生成する拡張音源手段として前記コンピュータを機能させるための音源プログラムを記憶するとともに、
前記ネットワークを介して前記波形生成装置と相互に通信を行うための手段を備え、
前記波形生成装置は、
各発音チャンネルになされている設定に基づいて複数の発音チャンネルで波形データを生成する音源手段と、
前記音源手段に生成させる波形データの音色を規定する音色データを記憶する記憶手段と、
前記コンピュータと前記ネットワークを介して接続されているときに該コンピュータと相互に通信を行うための通信手段と、
発音開始を指示するノートオンデータを含む演奏データをリアルタイムで取得し、該演奏データに応じて前記音源手段と前記コンピュータが実行している前記音源プログラムに基づく前記拡張音源手段の少なくとも１つを制御して該演奏データに基づく波形データの生成を行わせる制御手段と、
前記音源手段が生成した波形データと、前記コンピュータが実行している前記音源プログラムに基づく前記拡張音源手段が生成して前記コンピュータによって前記通信手段に対して送信されてきた波形データとをミキシングして出力する波形出力手段とを有し、
前記通信手段が前記ネットワークに接続されている状態では、前記制御手段が、前記コンピュータの前記ネットワークへの接続状態に応じて以下の（１）乃至（３）のように動作する、すなわち、
（１）前記コンピュータが新たに前記ネットワークに接続された際には、
（１−ａ）前記通信手段を介して、前記コンピュータに、該コンピュータに前記音源プログラムを起動させるための起動コマンドを送信し、
（１−ｂ）前記ネットワーク内に、前記コンピュータに対して前記通信手段から前記演奏データを転送すると共に前記コンピュータから前記通信手段へ前記起動した音源プログラムに基づく前記拡張音源手段が生成した波形データを転送するための通信経路を設定し、
（１―ｃ）前記記憶手段が記憶している音色データを前記通信手段を介して前記コンピュータに転送し、前記コンピュータに該音色データを記憶させ、
（２）前記コンピュータがネットワークに接続され、前記通信経路が設定されている状態では、
（２−ａ）前記ノートオンデータに応じて、前記音源手段の複数の発音チャンネル及び前記コンピュータが実行している前記音源プログラムに基づく前記拡張音源手段の複数の発音チャンネルの中から少なくとも１つの発音チャンネルを割り当て、
（２−ｂ）前記音源手段の発音チャンネルを割り当てた場合には、前記記憶手段が記憶している音色データ及び前記ノートオンデータに基づいて、前記音源手段の前記割り当てた発音チャンネルにパラメータを設定すると共に、該割り当てた発音チャンネルを制御して該発音チャンネルに設定したパラメータに基づく波形データの生成を開始させ、
（２−ｃ）前記拡張音源手段の発音チャンネルを割り当てた場合には、前記ノートオンデータを、前記割り当てた発音チャンネルの情報と共に、前記通信手段を介して前記コンピュータに送信することにより、前記コンピュータに、該コンピュータが記憶している音色データ及び前記送信したノートオンデータに基づいて、前記拡張音源手段の前記割り当てた発音チャンネルにパラメータを設定させると共に、該割り当てた発音チャンネルを制御させて該発音チャンネルに設定したパラメータに基づく波形データの生成を開始させ、
（３）前記コンピュータが前記ネットワークに接続されていない状態では、
（３−ａ）前記ノートオンデータに応じて、前記音源手段の複数の発音チャンネルの中から少なくとも１つの発音チャンネルを割り当て、
（３−ｂ）前記記憶手段が記憶している音色データ及び前記ノートオンデータに基づいて、前記音源手段の前記割り当てた発音チャンネルにパラメータを設定すると共に、該割り当てた発音チャンネルを制御して該発音チャンネルに設定したパラメータに基づく波形データの生成を開始させる
ことを特徴とする波形生成システム。
【請求項２】
請求項１に記載の波形生成システムであって、
前記コンピュータは
複数の音源種別に対応する複数の前記音源プログラムを記憶し、
前記波形生成装置から前記起動コマンドを受け取ったことに応じて、該起動コマンドに基づいて、前記複数の音源プログラムのうち前記波形生成装置に対応する１の音源プログラムを選択的に起動し、
該選択的に起動した音源プログラムに基づいて、前記コンピュータを波形生成装置に対応した拡張音源手段として機能させることを特徴とする波形生成システム。
【請求項３】
請求項１又は２に記載の波形生成システムであって、
前記波形生成装置は、
ユーザによる前記音色データの編集操作を受け付けるための編集操作部と、
該編集操作部の操作に応じて前記記憶手段が記憶している音色データを編集する音色編集手段とを備え、
前記コンピュータが前記ネットワークに接続され、かつ前記ネットワーク内に前記通信経路が設定されている場合、前記音色編集手段は、前記記憶手段が記憶している音色データを編集する際に、さらに、前記操作部の操作に応じて前記通信手段を介して前記コンピュータを制御し、該コンピュータが記憶している音色データに対し、前記記憶手段が記憶している音色データに対して行う編集と同じ編集を行わせることを特徴とする波形生成システム。
【請求項４】
請求項１乃至３のいずれか一項に記載の波形生成システムであって、
前記波形生成装置は、
複数の音色データを記憶する音色ライブラリと、
ユーザによる音色選択操作を受け付ける選択操作部と、
前記選択操作部の操作に応じて前記音色ライブラリが記憶する複数の音色データの１つを選択し、該選択した音色データを前記記憶手段に記憶させる音色選択手段とを有し、
前記コンピュータが前記ネットワークに接続され、かつ前記ネットワーク内に前記通信経路が設定されている場合、前記音色選択手段は、前記選択した音色データを前記記憶手段に記憶させる際に、さらに、前記コンピュータに前記選択した音色データを転送し、前記コンピュータにその転送した音色データを記憶させることを特徴とする波形生成システム。
【請求項５】
請求項１乃至４のいずれか一項に記載の波形生成システムであって、
前記波形生成装置は、
前記コンピュータが前記ネットワークに接続され、かつ前記ネットワーク内に前記通信経路が設定された場合、ユーザに対し、前記第１の音源手段に加えて前記第２の音源手段が利用可能であり、波形データの生成に使用可能な発音チャンネルの数が増加したことを通知する通知手段を有することを特徴とする波形生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、各発音チャンネルになされている設定に基づいて複数の発音チャンネルで波形データを生成する音源手段を有する波形生成装置と、音源機能を提供可能なコンピュータとにより構成される波形生成システムに関する。
【背景技術】
【０００２】
従来から、音源手段を有する波形生成装置として、シンセサイザや電子楽器等、種々の装置が知られている。また、ＰＣ（パーソナルコンピュータ）等のコンピュータにＤＡＷ（デジタルオーディオワークステーション）アプリ等の所要のプログラムを実行させ、ソフトウェアにより音源手段の機能を実現することも行われている。
【０００３】
また、これらの波形生成装置において、装置に搭載したハードウェアでは能力が不足する場合、音源ボードやエフェクタボードをプラグインボードとして装着して機能を追加できるようにすることが行われている。
また、ＤＡＷアプリにも、ネットワーク接続された複数台のＰＣに処理を分散させて実行させることにより、負荷分散を実現し、より負荷の大きな処理を実行させることができるようにしたものが知られている。
このようなＤＡＷアプリとしては、例えば非特許文献１，２に記載のものが挙げられる。
【０００４】
【非特許文献１】“Logic Pro  Distributed Audio”、[online]、２００７年、Apple Inc.、［２００７年７月１３日検索］、インターネット＜ＵＲＬ：http://www.apple.com/logicpro/distributedaudio.html＞
【非特許文献２】“Cubase SL Features”、[online]、２００５年、Steinberg Canada、［２００７年７月１３日検索］、インターネット＜ＵＲＬ：http://www.steinbergcanada.com/products/cubase/cubasesl_features_systemlink.htm＞
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来の機能拡張手法では、シンセサイザや電子楽器のように、専用ハードウェアによって構成され、単体で動作させることも多い波形生成装置において音源機能の拡張を行う際に、十分な利便性を得ることができなかった。
例えば、音源回路を搭載したプラグインボードを波形生成装置に装着できるようにするためには、専用のソケットや通信回路、電源等を設ける必要があり、コストアップや、デザイン上の制約になった。また、プラグインボードにより拡張された音源は、本体に搭載された音源とは異なるユニットであると取り扱われ、拡張された音源を適切に動作させるためには、本体に搭載された音源とは別にパラメータの設定を行う必要があった。
【０００６】
また、波形生成装置にＰＣを接続し、ＰＣ上で実行させるＤＡＷアプリの機能を追加の音源として機能させることも知られている。しかし、この場合も、あくまでも本体に搭載された音源とは別にＤＡＷアプリの機能を追加する、という位置づけであり、本体に搭載された音源と別にパラメータの設定を行う必要がある点では、プラグインボードの場合と同様であった。
また、非特許文献１や２に記載の技術も、単に複数のＰＣ間で処理負荷を分散するのみであり、波形生成装置における音源機能の拡張という点では、十分な効果を得られるものではなかった。
【０００７】
この発明は、このような問題を解決し、波形生成装置の音源機能を容易に拡張し、かつ拡張した音源機能を本体の音源機能と同様に利用できるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
上記の目的を達成するため、この発明の波形生成システムは、ネットワークを介して相互に接続可能な波形生成装置と１のコンピュータとで構成される波形生成システムにおいて、上記コンピュータに、そのコンピュータにおいて実行可能なプログラムであって、上記波形生成装置が利用可能な、各発音チャンネルになされている設定に基づいて複数の発音チャンネルで波形データを生成する拡張音源手段として上記コンピュータを機能させるための音源プログラムを記憶させるとともに、上記ネットワークを介して上記波形生成装置と相互に通信を行うための手段を設け、上記波形生成装置に、各発音チャンネルになされている設定に基づいて複数の発音チャンネルで波形データを生成する音源手段と、上記音源手段に生成させる波形データの音色を規定する音色データを記憶する記憶手段と、上記コンピュータと上記ネットワークを介して接続されているときにそのコンピュータと相互に通信を行うための通信手段と、発音開始を指示するノートオンデータを含む演奏データをリアルタイムで取得し、その演奏データに応じて上記音源手段と上記コンピュータが実行している上記音源プログラムに基づく上記拡張音源手段の少なくとも１つを制御してその演奏データに基づく波形データの生成を行わせる制御手段と、上記音源手段が生成した波形データと、上記コンピュータが実行している上記音源プログラムに基づく上記拡張音源手段が生成して上記コンピュータによって上記通信手段に対して送信されてきた波形データとをミキシングして出力する波形出力手段とを設け、上記通信手段が上記ネットワークに接続されている状態では、上記制御手段が、上記コンピュータの上記ネットワークへの接続状態に応じて以下の（１）乃至（３）のように動作する、すなわち、（１）上記コンピュータが新たに上記ネットワークに接続された際には、（１−ａ）上記通信手段を介して、上記コンピュータに、そのコンピュータに上記音源プログラムを起動させるための起動コマンドを送信し、（１−ｂ）上記ネットワーク内に、上記コンピュータに対して上記通信手段から上記演奏データを転送すると共に上記コンピュータから上記通信手段へ上記起動した音源プログラムに基づく上記拡張音源手段が生成した波形データを転送するための通信経路を設定し、（１―ｃ）上記記憶手段が記憶している音色データを上記通信手段を介して上記コンピュータに転送し、上記コンピュータにその音色データを記憶させ、（２）上記コンピュータがネットワークに接続され、上記通信経路が設定されている状態では、（２−ａ）上記ノートオンデータに応じて、上記音源手段の複数の発音チャンネル及び上記コンピュータが実行している上記音源プログラムに基づく上記拡張音源手段の複数の発音チャンネルの中から少なくとも１つの発音チャンネルを割り当て、（２−ｂ）上記音源手段の発音チャンネルを割り当てた場合には、上記記憶手段が記憶している音色データ及び上記ノートオンデータに基づいて、上記音源手段の上記割り当てた発音チャンネルにパラメータを設定すると共に、その割り当てた発音チャンネルを制御してその発音チャンネルに設定したパラメータに基づく波形データの生成を開始させ、（２−ｃ）上記拡張音源手段の発音チャンネルを割り当てた場合には、上記ノートオンデータを、上記割り当てた発音チャンネルの情報と共に、上記通信手段を介して上記コンピュータに送信することにより、上記コンピュータに、そのコンピュータが記憶している音色データ及び上記送信したノートオンデータに基づいて、上記拡張音源手段の上記割り当てた発音チャンネルにパラメータを設定させると共に、その割り当てた発音チャンネルを制御させてその発音チャンネルに設定したパラメータに基づく波形データの生成を開始させ、（３）上記コンピュータが上記ネットワークに接続されていない状態では、（３−ａ）上記ノートオンデータに応じて、上記音源手段の複数の発音チャンネルの中から少なくとも１つの発音チャンネルを割り当て、（３−ｂ）上記記憶手段が記憶している音色データ及び上記ノートオンデータに基づいて、上記音源手段の上記割り当てた発音チャンネルにパラメータを設定すると共に、その割り当てた発音チャンネルを制御してその発音チャンネルに設定したパラメータに基づく波形データの生成を開始させるようにしたものである。
【０００９】
このような波形生成装置において、上記コンピュータが、複数の音源種別に対応する複数の上記音源プログラムを記憶し、上記波形生成装置から上記起動コマンドを受け取ったことに応じて、その起動コマンドに基づいて、上記複数の音源プログラムのうち上記波形生成装置に対応する１の音源プログラムを選択的に起動し、その選択的に起動した音源プログラムに基づいて、上記コンピュータを波形生成装置に対応した拡張音源手段として機能させるようにするとよい。
【００１０】
さらに、上記波形生成装置に、ユーザによる上記音色データの編集操作を受け付けるための編集操作部と、その編集操作部の操作に応じて上記記憶手段が記憶している音色データを編集する音色編集手段とを設け、上記コンピュータが上記ネットワークに接続され、かつ上記ネットワーク内に上記通信経路が設定されている場合、上記音色編集手段が、上記記憶手段が記憶している音色データを編集する際に、さらに、上記操作部の操作に応じて上記通信手段を介して上記コンピュータを制御し、そのコンピュータが記憶している音色データに対し、上記記憶手段が記憶している音色データに対して行う編集と同じ編集を行わせるようにするとよい。
【００１１】
さらにまた、上記波形生成装置に、複数の音色データを記憶する音色ライブラリと、ユーザによる音色選択操作を受け付ける選択操作部と、上記選択操作部の操作に応じて上記音色ライブラリが記憶する複数の音色データの１つを選択し、その選択した音色データを上記記憶手段に記憶させる音色選択手段とを設け、上記コンピュータが上記ネットワークに接続され、かつ上記ネットワーク内に上記通信経路が設定されている場合、上記音色選択手段が、上記選択した音色データを上記記憶手段に記憶させる際に、さらに、上記コンピュータに上記選択した音色データを転送し、上記コンピュータにその転送した音色データを記憶させるようにするとよい。
【００１２】
さらに、上記波形生成装置は、上記コンピュータが上記ネットワークに接続され、かつ上記ネットワーク内に上記通信経路が設定された場合、ユーザに対し、上記第１の音源手段に加えて上記第２の音源手段が利用可能であり、波形データの生成に使用可能な発音チャンネルの数が増加したことを通知する通知手段を設けるとよい。
【発明の効果】
【００１３】
以上のようなこの発明の波形生成システムによれば、波形生成装置の音源機能を容易に拡張し、かつ拡張した音源機能を本体の音源機能と同様に利用できるようにすることができる。
【発明を実施するための最良の形態】
【００１４】
以下、この発明を実施するための最良の形態を図面に基づいて具体的に説明する。
まず、図１に、この発明の波形生成装置の実施形態であるシンセサイザ及び、そのシンセサイザに音源機能を提供可能なＰＣのハードウェア構成を示す。
図１に示すように、シンセサイザ１０は、ＣＰＵ１１，フラッシュメモリ１２，ＲＡＭ１３，ＭＩＤＩ（Musical Instruments Digital Interface：登録商標）Ｉ／Ｏ（入出力部）１４，演奏操作子１５，パネル操作子１６ａ，パネル表示器１６ｂ，音源部１７，ミキサ１８，通信Ｉ／Ｆ１９を備え、これらがバスライン２２により接続されている。また、この他に、ＤＡＣ（デジタル／アナログコンバータ）２０及びサウンドシステム２１も備えている。
【００１５】
そして、ＣＰＵ１１は、シンセサイザ１０を統括制御する制御手段であり、フラッシュメモリ１２に記憶された所要の制御プログラムを実行することにより、演奏操作子１５及びパネル操作子１６ａの操作内容検出、パネル表示器１６ｂの表示制御、ＭＩＤＩ＿Ｉ／Ｏ１４を介したＭＩＤＩデータの送受信制御、通信Ｉ／Ｆ１９を介したＭＩＤＩデータ，波形データ，制御データ等の送受信の制御、音源部１７による波形データ生成の制御、ミキサ１８によるミキシングの制御等の種々の制御動作を行う。
【００１６】
フラッシュメモリ１２は、ＣＰＵ１１が実行する制御プログラムや、変更する必要のないデータ等を記憶する記憶手段である。
ＲＡＭ１３は、ＣＰＵ１１のワークメモリとして使用したり、一時的に使用するパラメータの値等を記憶したりする記憶手段である。
【００１７】
ＭＩＤＩ＿Ｉ／Ｏ１４は、外部装置との間でＭＩＤＩデータを送受信するためのインタフェースである。
演奏操作子１５は、鍵盤やペダル等、ユーザによる演奏操作を受け付けるための操作子である。
【００１８】
パネル操作子１６ａは、キー、つまみ、スライダ、ピッチベンド等、ユーザからの、シンセサイザ１０の動作に関する設定の操作を受け付けるための操作子である。
パネル表示器１６ｂは、液晶ディスプレイ（ＬＣＤ）や発光ダイオード（ＬＥＤ）ランプ等によって構成され、シンセサイザ１０の動作状態や設定内容あるいはユーザへのメッセージ、ユーザからの指示を受け付けるためのグラフィカル・ユーザ・インタフェース（ＧＵＩ）等を表示するための表示手段である。
なお、ＬＣＤにタッチパネルを積層して、パネル表示器１６ｂとパネル操作子１６ａとを一体に構成することもできる。
【００１９】
音源部１７は、各発音チャンネルになされている設定に基づいて複数の、例えば１２８の発音チャンネル（ｃｈ）でデジタル波形データを生成する第１の音源手段である。
そして、この音源部１７による波形データの生成動作は、音源制御手段として機能するＣＰＵ１１が、発音を行わせる発音ｃｈと対応したｃｈレジスタに、発音させる音の音色、音高、強度、エンベロープ等に応じた適当なパラメータの値を設定すると共に、発音開始や停止、急速減衰等の指示をすることにより、制御する。
【００２０】
ミキサ１８は、音源部１７の各発音ｃｈで生成された波形データを、ステレオのＬとＲの各系統毎に重み付けして累算すると共に、通信Ｉ／Ｆ１９を介してＰＣ３０等の外部装置から受信した波形データと合成（ミキシング）したサンプリング周期毎のステレオ波形データを出力する波形出力手段である。通信Ｉ／Ｆ１９から波形データを受信していない場合には、音源部１７が生成した波形データについてのみ累算を行えばよい。
【００２１】
通信Ｉ／Ｆ１９は、適当な通信経路（ネットワーク）５０を介してＰＣ３０等の外部装置との間で通信するためのインタフェースである。この通信経路５０は、有線でも無線でもよいし、中継機器の有無も問わないが、シンセサイザ１０側から見て少なくともＭＩＤＩデータの送信及びデジタル波形データの受信についてリアルタイム伝送（伝送遅延時間が数ミリ秒以下）が可能であり、さらにコマンドや音色データ等の制御データの伝送も可能な通信経路を採用する。例えば、ＩＥＥＥ１３９４を利用したｍＬＡＮを採用することが考えられる。また、ＵＳＢ（Universal Serial Bus）も利用可能である。もちろん、１対１の通信路に限られることはない。
【００２２】
ＤＡＣ２０は、ミキサ１８から出力されるデジタルの波形データを、アナログの楽音信号に変換し、サウンドシステム２１に供給する機能を有する。
サウンドシステム２１は、スピーカ等により構成され、ＤＡＣ２０から供給される楽音信号に従った音声を出力する音声出力手段である。
以上のようなシンセサイザ１０は、ユーザの演奏操作に従い、ユーザが指定した音色の楽音を発生させて出力することができる。自動演奏の楽音についても、同様に出力することができる。
【００２３】
一方、ＰＣ３０は、ＣＰＵ３１，ＲＯＭ３２，ＲＡＭ３３，ＨＤＤ３４，その他Ｉ／Ｏ３５，ディスプレイ３６，キーボード３７，マウス３８等のポインティングデバイス，通信Ｉ／Ｆ３９を備え、これらが必要に応じて不図示のインタフェースを介してバスライン４０により接続された構成であり、ハードウェアとしては公知のものを適宜利用すればよい。
ただし、通信Ｉ／Ｆ３９としては、シンセサイザ１０において採用されている通信経路５０を介して、シンセサイザ１０との間の通信が可能な規格のものを用いる。
【００２４】
また、ＣＰＵ３１を始めとする各ハードウェアとしては、適当なプログラムを実行することにより、後述する音源サーバの機能を実現する能力を有するものを用いる。プログラム自体は、予めＲＯＭ３２やＨＤＤ３４に格納していても、必要に応じて外部からダウンロードしてもよい。
なお、このＰＣ３０は、常にシンセサイザ１０と接続されている必要はなく、シンセサイザ１０の音源機能を拡張したい場合に、任意のタイミングでシンセサイザ１０に接続すればよい。そして、この接続を行うことにより、シンセサイザ１０とＰＣ３０とに楽音（波形）生成システムを構成させることができる。
【００２５】
次に、図２に、図１に示したシンセサイザ１０及びＰＣ３０により構成される、この発明の波形生成システムの実施形態である楽音生成システムの機能構成を示す。
この図において、ＭＩＤＩデータの伝達経路は太い実線の矢印で、波形データの伝送経路は太い破線の矢印で示している。
図２に示す通り、シンセサイザ１０は、図１に示したＭＩＤＩ＿Ｉ／Ｏ１４〜サウンドシステム２１の各構成要素により実現される機能（この図では、パネル操作子１６ａとパネル表示器１６ｂは、まとめて操作パネル１６として示している）に加え、ＭＩＤＩデータ生成部１０１，音源制御部１０２，カレント音色データメモリ１０３，カレント音色データ送信部１０４，接続処理部１０５，音色ライブラリ１０６，主制御部１０７の機能を有する。これらのＭＩＤＩデータ生成部１０１〜主制御部１０７の機能は、ＣＰＵ１１が所要のプログラムを実行し、シンセサイザ１０が備える各種ハードウェアを制御することにより実現されるものである。
また、ＰＣ３０は、主制御部３０１及び、音源サーバ３１０の機能を有する。
【００２６】
以下、各部の機能について説明する。
まず、シンセサイザ１０のＭＩＤＩデータ生成部１０１は、演奏操作子１５に対してなされた演奏操作の内容を検出し、その操作内容を示すＭＩＤＩデータ（ノートオン、ノートオフ等）を生成する機能を有する。そして、ＭＩＤＩデータ生成部１０１は、これらの生成したＭＩＤＩデータを音源制御部１０２に供給し、そのＭＩＤＩデータに従った音源部１７の制御を行わせる。
【００２７】
また、シンセサイザ１０は、後述のように複数パートの波形データの生成が可能である。そこで、ＭＩＤＩデータ生成部１０１は、演奏操作子１５のうちどの範囲の操作子がどのパートの演奏に用いられるものであるかを示す対応関係を把握し、演奏操作子１５の操作に応じてＭＩＤＩデータを生成する場合には、その対応関係に従った適切なパート番号（ＭＩＤＩチャンネル）を、生成するＭＩＤＩデータに付す。なお、演奏操作子１５とパートとの対応関係は、操作パネル１６の操作により変更可能である。
【００２８】
音源制御部１０２は、ＭＩＤＩデータ生成部１０１が生成したり、ＭＩＤＩ＿Ｉ／Ｏ１４を介してＭＩＤＩシーケンサ等の外部装置から受信したり、主制御部１０７が操作パネル１６の操作や自動演奏用の楽曲データに基づいて生成したりした、楽曲の演奏内容を規定する演奏データであるＭＩＤＩデータに基づいて、音源部１７における波形データの生成動作を制御する機能を有する。
【００２９】
この制御には、ＭＩＤＩデータに従った各発音に、使用する発音ｃｈを割り当てる処理を含む。そして、この割り当てを行う際、シンセサイザ１０がＰＣ３０と接続され、音源サーバ３１０が有する音源部３１２も発音に利用可能な状態であれば、音源制御部１０２は、シンセサイザ１０側の音源部１７が有する発音ｃｈと、音源サーバ３１０側の音源部３１２が有する発音ｃｈとを、区別せずにこの割り当てを行う。
【００３０】
そして、音源サーバ３１０側の音源部３１２の発音ｃｈを割り当てた場合には、音源制御部１０２は、受け取ったＭＩＤＩデータに、発音に使用させる発音ｃｈの番号（識別情報）を付してＰＣ３０の音源サーバ３１０に送信し、音源制御部３１１にその内容に従って音源部３１２を制御させ、波形データの生成を行わせる。どの番号の発音ｃｈがどの音源部のものであるかを示す対応関係は、音源制御部１０２が管理し、主制御部１０７もこれを把握している。
【００３１】
また、このＭＩＤＩデータは、通信Ｉ／Ｆ１９が備えるＭＩＤＩ＿Ｉ／Ｏ１９ａから送信し、ＰＣ３０側の通信Ｉ／Ｆ３９が備えるＭＩＤＩ＿Ｉ／Ｏ３９ａが受信する。
なお、図２では、通信Ｉ／Ｆ１９，３９が、それぞれＭＩＤＩ＿Ｉ／Ｏ１９ａ，３９ａ、波形Ｉ／Ｏ１９ｂ，３９ｂ、その他Ｉ／Ｏ１９ｃ，３９ｃの３つのＩ／Ｏを備えるように示しているが、これらのＩ／Ｏが物理的に独立したものである必要はなく、通信経路５０を介したデータ転送の帯域を、これら３種のデータ入出力の用途に適宜配分して用いればよい。
また、音源制御部１０２は、カレント音色データメモリへのカレント音色データの登録及び編集に関連する機能も有するが、この点についてはカレント音色データメモリ１０３及びカレント音色データ送信部１０４の説明において述べる。
【００３２】
カレント音色データメモリ１０３は、音源部１７に生成させる波形データの音色を規定するカレント音色データを記憶する記憶手段である。このカレント音色データは、音源制御部１０２がプログラムチェンジイベントを示すＭＩＤＩデータを検出した場合に、主制御部１０７を介して音色ライブラリ１０６から読み出し、カレント音色データメモリ１０３に設定する。
そして、音源部１７は、サンプリング周期毎に、このカレント音色データメモリ１０３の、ｃｈレジスタに設定されたパラメータの値に従って決定される読み出しアドレスから波形データを読み出し、これに補間やエンベロープ処理を行って、波形データを生成する。
【００３３】
ここで、図３に、カレント音色データメモリ１０３に記憶させるデータの構成を示す。
この図に示すように、カレント音色データは演奏パート毎に記憶可能であり、ここではカレント音色データメモリ１０３には１６パート分の音色データを記憶させることができる。従って、音源部１７にも、演奏パート毎に異なる音色の波形データを生成させることができる。また、カレント音色データメモリ１０３には、各パートについて、カレント音色データの音色番号も記憶させておく。
【００３４】
さらに、カレント音色データメモリ１０３には、各発音ｃｈの状態を示すデータも記憶させる。このデータとしては、例えば発音に使用中か使用中でないかの区別（オンオフ）や、ノートオンに応じて発音を開始させ、使用中となった発音ｃｈについて、そのノートオンに対応するノートオフが発生したか否か（ノートオフが発生すると減衰（リリース）状態となる）の区別、発音中の音（波形データ）のレベル等の情報が考えられる。
【００３５】
またここには、シンセサイザ１０側の音源部１７の発音ｃｈとの情報と、音源サーバ３１０側の音源部３１２の発音ｃｈの情報とをどちらも記憶させる。音源部１７の情報については、主制御部１０７が音源部１７から取得して書き込めばよい。
音源部３１２の情報については、主制御部１０７が定期的に音源サーバ３１０に問い合せて必要な情報を取得するか、音源サーバ３１０に必要な情報を定期的に主制御部１０７に送信する機能を設けるかして、主制御部１０７がその情報をカレント音色データメモリ１０３に登録すればよい。シンセサイザ１０においては、前者の構成を採用している。
【００３６】
図２の説明に戻る。
カレント音色データ送信部１０４は、シンセサイザ１０と音源サーバ３１０との間にデータ転送のための論理接続が確立されている状態で、カレント音色データメモリ１０３の内容が変更された場合に、音源制御部１０２からの変更内容の通知に基づき、音源サーバ３１０にその変更内容を送信し、音源サーバ３１０に設けたカレント音色データメモリ３１４の内容にも、カレント音色データメモリ１０３側と同じ変更を行わせる機能を有する。この変更には、プログラムチェンジイベントに応じた新たな音色の選択によるものと、操作パネル１６の操作に応じた音色パラメータの編集によるものとがある。
また、カレント音色データ送信部１０４は、シンセサイザ１０と音源サーバ３１０との間に論理接続が新たに確立された場合、接続処理部１０５からの通知に基づき、カレント音色データメモリ１０３の内容をその音源サーバ３１０に送信し、カレント音色データメモリ３１４に記憶させる機能も有する。
【００３７】
そして、これらの機能により、図３に示したように、シンセサイザ１０側のカレント音色データメモリ１０３が記憶する音色データと、音源サーバ３１０側のカレント音色データメモリ３１４が記憶する音色データとを、同一の内容に保つことができる。音色データやその変更内容は、その他Ｉ／Ｏ１９ｃから送信し、ＰＣ３０側ではその他＿Ｉ／Ｏ３９ｃが受信する。
なお、発音ｃｈの状態の情報については、カレント音色データメモリ３１４に記憶させる必要はない。
【００３８】
接続処理部１０５は、シンセサイザ１０とＰＣ３０とが新たに接続された場合に、ＰＣ３０に音源サーバ３１０を起動させ、シンセサイザ１０と音源サーバ３１０との間の論理接続を確立する機能を有する。
【００３９】
音色ライブラリ１０６は、シンセサイザ１０が使用可能な複数の音色データを記憶する記憶手段である。そして、操作パネル１６における操作や、楽曲データにおける指定により、演奏に使用するデータとして選択された音色データが、この音色ライブラリ１０６から読み出されてカレント音色データメモリ１０３に記憶され、音源部１７における波形データの生成に用いられる。
【００４０】
なお、操作パネル１６における操作により、音色ライブラリ１０６が記憶する音色データを編集したり、音色ライブラリ１０６に新たな音色データを登録したりすることも可能である。
主制御部１０７は、シンセサイザ１０の各部を制御し、以上説明してきた機能を適切に発揮させる機能を有する。また、操作パネル１６における操作の検出や表示も行う。
【００４１】
一方、ＰＣ３０の主制御部３０１は、ＰＣ３０において提供可能な音源サーバ３１０の機能を管理する機能を有する。そして、シンセサイザ１０側からの要求に応じて、提供可能な音源サーバ３１０の機能の情報を提供したり、音源サーバ３１０を起動させたりする機能を有する。
【００４２】
また、音源サーバ３１０は、必要に応じて起動され、外部装置からの要求に応じて、各発音チャンネルになされている設定に基づいて複数の発音チャンネルでステレオのデジタル波形データを生成し、外部に出力する第２の音源手段の機能を提供する。この音源サーバ３１０の機能は、常時有効にしておく必要はなく、シンセサイザ１０から音源サーバ機能の起動要求があった場合に、ＣＰＵ３１に所要のプログラムの実行を開始させて、機能を有効にすればよい。
音源サーバ３１０の機能を実現するためのプログラムをＰＣ３０に複数インストールしておき、これらを選択的に起動／停止して、機能の異なる複数の音源サーバ３１０を任意に使い分けることができるようにしてもよい。
【００４３】
そして、この音源サーバ３１０は、音源制御部３１１，音源部３１２，ミキサ３１３，カレント音色データメモリ３１４を有する。これらの各部は、概略では、シンセサイザ１０側の音源制御部１０２，音源部１７，ミキサ１８，カレント音色データメモリ１０３と同様な機能を有する。
【００４４】
ただし、音源制御部３１１は、発音に対する発音ｃｈの割り当ては行わず、音源制御部１０２から受信したＭＩＤＩデータに付された発音ｃｈ番号が示す発音ｃｈに、そのＭＩＤＩデータに従った波形データの生成を行わせる。
また、ミキサ３１３は、音源部３１２の各発音ｃｈで生成された同じサンプリング周期の波形データを、ステレオのＬとＲの各系統毎に音量制御して累算し、生成されたステレオの波形データを、シンセサイザ１０に対して送信し、サンプリング周期毎に、ミキサ１８における波形データ合成処理に供する。この波形データは、通信Ｉ／Ｆ３９が備える波形＿Ｉ／Ｏ３９ｂから送信し、シンセサイザ１０側の通信Ｉ／Ｆ１９が備える波形＿Ｉ／Ｏ１９ｂが受信する。
【００４５】
そして、シンセサイザ１０側のミキサ１８がシンセサイザ１０側の音源部１７の各発音ｃｈで生成された波形データを、ステレオのＬとＲの各系統毎に音量制御して累算すると共に、ミキサ３１３から供給されるステレオの波形データと合成することにより、あたかも、音源部１７と音源部３１２が１つの音源部として機能して音源制御部１０２が各発音ｃｈに割り当てた発音を実行しているかのような波形データを得ることができる。
【００４６】
次に、上述したシンセサイザ１０及びＰＣ３０のＣＰＵが実行する処理について説明する。
まず、図４に、シンセサイザ１０のＣＰＵ１１が定期的に実行する接続確認処理のフローチャートを示す。また、図５に、ＰＣ３０のＣＰＵ３１が実行する音源デーモン処理のフローチャートを、図６に、その処理中で実行する受信コマンドに応じた処理の具体例を示す。
【００４７】
図４に示す処理は、図２に示した接続処理部１０５の機能と対応するものである。そして、シンセサイザ１０のＣＰＵ１１は、定期的なタイミングで図４に示す処理を開始し、まず、同一のネットワークに接続されている機器を検索する（Ｓ１１）。この検索は、通信Ｉ／Ｆ１９を介してＭＩＤＩデータや波形データをリアルタイムで伝送可能な範囲にどのような機器が接続されているかを検索するものであり、通信規格に応じた適当なプロトコルにより行うことができる。また、過去に検索した結果に基づき、ネットワークにどのような機器が接続されているかを示す情報は保持しておく。
【００４８】
そして、ステップＳ１１の検索により未確認の機器が発見されたか否か判断し（Ｓ１２）、もしあれば、発見した機器に、提供可能な音源機能の内容を問い合せる（Ｓ１３）。。ここで、未確認の機器とは、前回の検索では検索されなかった装置や、音源サーバ機能の情報を取得できていない装置である。
【００４９】
一方、ＰＣ３０のＣＰＵ３１は、ＰＣ３０の電源投入時に自動的に、あるいはユーザの起動指示に応じて、図５に示す音源デーモンの処理を開始する。この処理は、図２に示した主制御部３０１の機能と対応するものであり、ＣＰＵ３１は、バックグラウンドサービスあるいはシステムプロセスとしてこの処理を実行する。
【００５０】
そしてこの処理は、シンセサイザ１０等の外部装置からの要求を受け付けて、その要求に応じた処理を行うためのものである。すなわち、ＣＰＵ３１は、所要の初期設定を行った後（Ｓ１１１）、音源サーバに関するコマンドの受信があるまで待機し（Ｓ１１２）、コマンドを受信した場合、受信したコマンドに応じた処理を実行する（Ｓ１１３）。この処理は例えば、図６に示すような問い合わせに対する応答やプロセスの起動である。そして、処理後完了後、あるいは処理の実行を他のプロセスに指示した後、再度ステップＳ１１２に戻って次のコマンドを待つ。
【００５１】
図４のステップＳ１３でＣＰＵ１１が行う問い合わせは、この音源デーモンが受け付け可能な音源機能問い合わせコマンドによって行い、ＰＣ３０は、音源デーモンが起動された状態でこのコマンドを受信すると、図６に示すように、提供可能な音源機能、すなわちＰＣ３０において起動可能な音源サーバ３１０の対応機種及び発音ｃｈ数を返答してくる。
【００５２】
なお、音源サーバ３１０の機能を実現するプログラムは、音源デーモンに対するプラグインとしてＨＤＤ３４にインストールされている。そして音源デーモンは、起動時に、ＨＤＤ３４の所定のプラグインフォルダに置かれた、音源サーバ３１０の機能を実現するプログラムをサーチし、発見された各プログラムのファイルから、メーカー名、対応機種、発音ｃｈ数、バージョン情報などを読み込んで、これらの情報を、提供可能な音源サーバ３１０の情報として登録した音源テーブルを作成しておく。そして、音源デーモンは、この音源テーブルの情報に基づき、音源機能問い合わせコマンドに対する返答を行う。
【００５３】
シンセサイザ１０のＣＰＵ１１は、ステップＳ１３での問い合わせに返答があると、対応機種の情報に基づき、問い合わせ先の機器（ここではＰＣ３０）が、自機が利用可能な音源機能を提供可能か否か判断する（Ｓ１４）。なお、問い合わせ先の機器において音源デーモンが起動していない場合には、問い合わせに対する返答はないが、この場合にはステップＳ１４の判断はＮＯとする。
【００５４】
そして、ステップＳ１４でＮＯの場合にはそのまま処理を終了するが、ＹＥＳの場合には、返答してきた機器に対し、自機が利用可能な音源機能を提供する音源サーバを指定してその起動を指示する（Ｓ１５）。複数該当する場合には、どの音源サーバを起動させるかをユーザに選択させてもよい。また、この起動指示は、音源デーモンが受け付け可能な音源サーバ起動コマンドによって行う。
【００５５】
これに対し、ＰＣ３０のＣＰＵ３１は、図６に示すように、指定された音源サーバの機能を実現するプログラムを、ＨＤＤ３４からＲＡＭ３３に読み込んで、そのプログラムの実行を開始し、結果を返答する。そして、このことにより、音源制御プロセスと、音源＋ミキサプロセスとが起動される。音源制御プロセスは、図２に示した音源制御部３１１の機能と対応する処理、音源＋ミキサプロセスは、音源部３１２及びミキサ３１３の機能と対応する処理である。
【００５６】
ここで、図７に、ＣＰＵ３１が実行する音源制御プロセスの処理のフローチャートを、図８に、その処理中で実行する受信データに応じた処理の具体例を示す。
ＣＰＵ３１は、音源デーモンが音源制御プロセスの起動を指示すると、バックグラウンドサービスあるいはシステムプロセスとしてこの処理の実行を開始する。
【００５７】
そしてこの処理は、外部装置あるいは他プロセスからデータを受信して、そのデータに応じた処理を行うためのものである。すなわち、ＣＰＵ３１は、所要の初期設定を行った後（Ｓ１２１）、データの受信があるまで待機し（Ｓ１２２）、データを受信した場合、受信したデータに応じた処理を実行する（Ｓ１２３）。この処理は例えば、図８に示すような、パラメータ値の保存や設定、論理接続、発音指示等である。そして、処理後完了後、再度ステップＳ１２２に戻って次のコマンドを待つ。
【００５８】
図４の説明に戻る。
ＣＰＵ１１は、ＰＣ３０からの返答により音源サーバ機能が起動されたと判断すると（Ｓ１６）、起動された音源サーバ（ここでは音源サーバ３１０）に対し、カレント音色データメモリ１０３に記憶している全パートの音色番号及びカレント音色データを、パート番号の指定と共に送信する（Ｓ１７）。
【００５９】
これに対し、ＰＣ３０のＣＰＵ３１は、図８に示すように、シンセサイザ１０から受信した各パートの音色番号及びカレント音色データを、指定されたパートの音色番号及びカレント音色データとしてカレント音色データメモリ３１４に記憶させる。このことにより、シンセサイザ１０側と音源サーバ３１０側とでカレント音色データメモリ中に同じ音色番号及びカレント音色データが記憶されることになる。
【００６０】
また、ＣＰＵ１１は、起動された音源サーバと自機との間でＭＩＤＩデータ及び波形データを伝送する経路の論理接続を構築する（Ｓ１８）。
具体的には、まず、ＣＰＵ１１とＣＰＵ３１とが協同して、ネットワーク５０に、シンセサイザ１０からＰＣ３０へのＭＩＤＩデータのリアルタイムの伝送路（ＭＩＤＩ伝送路）と、ＰＣ３０からシンセサイザ１０への波形データのリアルタイムの伝送路（波形伝送路）を設定すると共に、音源制御部１０２からのＭＩＤＩデータがＭＩＤＩ伝送路に供給されるよう接続し、波形伝送路からの波形データがミキサ１８に供給されるよう接続する。そして、ＣＰＵ３１に対し、起動した音源サーバ３１０のこれらＭＩＤＩ伝送路および波形伝送路への論理接続を要求する。
【００６１】
これに対し、ＣＰＵ３１は、図８に示すように、音源制御プロセスがＭＩＤＩＩ／Ｏ３９ａを介して接続要求元（ここではシンセサイザ１０）からＭＩＤＩデータを受信し、
音源＋ミキサプロセスが生成した波形データを波形Ｉ／Ｏ３９ｂから接続要求元に出力するデータ伝送経路の論理接続を行う。
【００６２】
具体的には、ＭＩＤＩ伝送路を介して受信されたＭＩＤＩデータが音源制御部３１１のプロセスに供給されるよう接続し、かつ、ミキサ３１３のプロセスから出力される波形データが波形伝送路に供給されるよう接続を行う。このように、シンセサイザ１０の音源制御部１０２とＰＣ３０の音源制御部３１１とがＭＩＤＩ伝送路を介して接続され、かつ、ＰＣ３０のミキサ３１３とシンセサイザ１０のミキサ１８とが波形伝送路を介して接続され、ＰＣ３０による音源機能の拡張が可能になった状態を、「論理接続が確立された状態」と呼ぶことにする。
【００６３】
この状態では、シンセサイザ１０側の音源制御部１０２から音源サーバ３１０側の音源制御部３１１にＭＩＤＩデータを送信し、音源サーバ３１０側の音源部３１２で生成され、ミキサ３１３で合成された波形データを、シンセサイザ１０側のミキサ１８で受信して、音源部１７が生成した波形データと合成できる。
【００６４】
ＣＰＵ１１は、これらが完了すると、ミキサ１８において波形Ｉ／Ｏ３９ｂから受信した信号をフェードインさせる（Ｓ１９）。その後、割り当て可能な発音ｃｈ数Ｎｃに、起動した音源サーバの発音ｃｈ数Ｎｐｃを加え、以後、音源制御部１０２において音源部１７と音源部３１２のいずれの発音ｃｈも発音に対する割り当てに使用できるようにして（Ｓ２０）、処理を終了する。
【００６５】
以上の処理の終了後、シンセサイザ１０のユーザは、音源サーバ３１０の音源部３１２を、自機の音源部１７と全く同様に波形データの生成に利用できるようになる。この場合において、ユーザはＰＣ３０に対して何ら設定操作を行う必要はなく、単にＰＣ３０をシンセサイザ１０が属するネットワークに接続すればよい（音源デーモンが自動起動でない場合には、これを起動する必要がある）。
なお、ステップＳ１５の後所定時間以内に起動ＯＫの返答がない場合には、ステップＳ１６で起動失敗と判断し、そのまま処理を終了する。
【００６６】
次に、シンセサイザ１０側と音源サーバ３１０側で、波形データ生成のために実行する処理について説明する。
まず、図９に、シンセサイザ１０のＣＰＵ１１がノートオンイベントの検出時に実行する処理のフローチャートを示す。
この処理は、音源制御部１０２の機能に関する処理であり、音源制御部１０２にノートオンイベントを示すＭＩＤＩデータが供給された場合に開始される。なお、ノートオンイベントを示すＭＩＤＩデータには、発音させる音のパート番号ｐ，ノートナンバｎｎ，ベロシティｖｅｌが記載されている。
【００６７】
そして、この処理においてＣＰＵ１１はまず、ノートオンイベントに応じた発音に、制御可能なＮｃ個の発音ｃｈの中から使用中でない任意の発音ｃｈを割り当て、その発音ｃｈの番号をａとする（Ｓ５１）。
なお、全ての発音ｃｈが使用中であった場合には、出力レベルの低い発音ｃｈや、既にノートオフしてある発音ｃｈを適宜選択して出力を急速減衰させ（トランケート処理）、その発音ｃｈを割り当てる。この割り当ては、カレント音色データメモリ１０３が記憶する発音ｃｈ状態のデータに基づいて行うことができる。また、ステップＳ５１でＮｃ個の発音ｃｈから具体的にどの発音ｃｈを割り当てるかを決定する手法は、適当な公知の手法を、Ｎｃ個の発音ｃｈ全てがシンセサイザ１０側の音源部１７のものであると仮定して適用すればよい。
【００６８】
次に、割り当てたａ番目の発音ｃｈが音源サーバ３１０側のｃｈであるか否かを判断する（Ｓ５２）。どの番号の発音ｃｈをどの音源部が有しているかの情報は、音源制御部１０２が把握しているとする。
そして、ステップＳ５２でＮＯであれば、ノートオンイベントに応じた発音を自機の音源部１７に行わせるべく、音源部１７のａ番目の発音ｃｈのｃｈレジスタに、カレント音色データメモリ１０３に記憶している第ｐパートのカレント音色データとノートナンバｎｎとベロシティｖｅｌとに基づくパラメータの値を設定し（Ｓ５３）、そのａ番目の発音ｃｈの発音開始を指示して（Ｓ５４）、処理を終了する。
【００６９】
一方、音源部１７は、所定のサンプリング周期毎に、各発音ｃｈについてｃｈレジスタの内容を参照し、発音開始が指示されていた場合に、ｃｈレジスタに登録されているパラメータの値に従い波形データを生成する。従って、ステップＳ５３，Ｓ５４の処理により、音源部１７にａ番目の発音ｃｈでノートオンイベントの内容に従った波形データを生成させることができる。
【００７０】
なお、ステップＳ５３で設定するパラメータは、音色データに含まれる波形データの読み出し開始アドレス、読み出す波形データとノートナンバｎｎが示す音高とに応じた波形データ読み出しアドレスの進行速度、ベロシティｖｅｌが示す音量に応じた波形エンベロープの形状等である。また、使用する音色データが、ノートナンバやベロシティの範囲に応じて異なる波形データを用いるものであれば、読み出し開始アドレスや進行速度も、ノートナンバｎｎやベロシティｖｅｌに応じて異なる値となる。
【００７１】
また、ステップＳ５２でＹＥＳの場合には、割り当てた発音ｃｈの番号ａを、音源サーバ３１０が使用するｃｈ番号ａ′に変換する（Ｓ５５）。例えば、シンセサイザ１０側では音源部１７が有する発音ｃｈを１〜１２８番目、音源部３１２が有する発音ｃｈを１２９〜２５６番目として発音ｃｈの割り当てを行う一方、音源サーバ３１０側では、音源部３１２が有する発音ｃｈに番号を振る際に、シンセサイザ１０側の発音ｃｈを考慮せずに１〜１２８番目していることが考えられる。そしてこの場合、ａ′＝ａ−１２８となる。シンセサイザ１０側と、音源サーバ３１０側とで、発音ｃｈの番号として共通の番号を用いるようネゴシエーションする機能を設けるのであれば、この処理は不要である。
【００７２】
ステップＳ５５の後、ＣＰＵ１１は、この処理の開始トリガとなったノートオンイベントに発音ｃｈ番号ａ′を付して、ａ番目の発音ｃｈを受け持つ音源サーバ３１０の音源制御プロセスに送信し（Ｓ５６）、処理を終了する。
これに対し、ＰＣ３０側では、音源制御プロセスを実行するＣＰＵ３１が、シンセサイザ１０からステップＳ５６の処理で送信されてくるｃｈ番号ａ′の付されたノートオンイベントを受信すると、図８に示すように、音源＋ミキサプロセスが参照するａ′番目の発音ｃｈのｃｈレジスタに対し、パラメータの設定と発音開始指示を行う。
この処理は、使用するカレント音色データがカレント音色データメモリ３１４に記憶されているものである点を除けば、シンセサイザ１０側の音源部１７に波形データの生成を行わせる場合のステップＳ５３の処理と同じものである。
【００７３】
以上の処理により、シンセサイザ１０は、音源サーバ３１０の音源部３１２が有する発音ｃｈを、自機の音源部１７が有する発音ｃｈと全く同様に、ノートオンイベントに応じた発音に割り当て、その内容に従った波形データの生成を行わせることができる。
なお、シンセサイザ１０と音源サーバ３１０との間に論理接続が確立されていない場合には、発音には必ず音源部１７の発音ｃｈが割り当てられることになるから、ステップＳ５２の判断は常にＮＯとなり、ステップＳ５５，Ｓ５６の処理は実行されない。
【００７４】
また、ＣＰＵ１１は、ノートオフイベント等、発音ｃｈを特定して音源部に対する制御を行う必要のある他のイベントを検出した場合にも、図９のステップＳ５２以下と同様な対応を行う。すなわち、音源サーバ３１０側の発音ｃｈに対する指示が必要な場合には、検出したイベントを示すＭＩＤＩデータに指示すべき発音ｃｈの番号を付して、その発音ｃｈを受け持つ音源サーバ３１０の音源制御プロセスに送信する。そして、これに対し、ＰＣ３０側では、音源制御プロセスを実行するＣＰＵ３１が、図８に示すように、受信したＭＩＤＩデータに付されたｃｈ番号のｃｈレジスタの値を、そのＭＩＤＩデータの内容に従って設定する。
【００７５】
従って、シンセサイザ１０は、ノートオンイベント以外のイベントについても、音源サーバ３１０の音源部３１２が有する発音ｃｈを、自機の音源部１７が有する発音ｃｈと全く同様に制御することができる。また、ステップＳ５１で特定の発音ｃｈを急速減衰させる場合にも、同様な対応が可能である。
【００７６】
また、図１０に、ＰＣ３０のＣＰＵ３１が実行する音源＋ミキサプロセスのフローチャートを示す。
ＣＰＵ３１は、音源デーモンが起動を指示すると、バックグラウンドサービスあるいはシステムプロセスとしてこの処理の実行を開始する。
そして、所要の初期処理を行った後（Ｓ１３１）、所定時間毎に、各発音ｃｈにつき、ｃｈレジスタに設定されているパラメータの値に従い、その所定時間に対応した複数サンプリング周期分の波形データを生成する（Ｓ１３２）と共に、各発音ｃｈで生成した各サンプリング周期の波形データを重み付け合成して、合成されたステレオの波形データを、論理接続されている出力先（ここではシンセサイザ１０）に、サンプリング周期毎に１サンプルずつ出力する（Ｓ１３３）。
【００７７】
そして、これらの処理を、出力先との切断検出や、ＰＣ３０の動作停止等の終了トリガを検出するまで繰り返す（Ｓ１３４）。終了トリガを検出すると、音源制御プロセスを停止する（Ｓ１３５）と共に、論理接続の解除等、プロセスの終了に必要な処理を行って（Ｓ１３６）、処理を終了する。
【００７８】
なお、音源＋ミキサプロセスにおいては、ステップＳ１３３における波形データ出力時のタイミング管理を容易にするため、ステップＳ１３２において予め後のサンプリング周期の分まで波形データを生成してキャッシュレジスタに記憶させておくが、各サンプル毎の波形データの生成手法は、音源部１７が行うものと同様である。
従って、波形データの生成を音源部１７に行わせた場合でも、音源部３１２に行わせた場合でも、同等な波形データを得ることができる。
【００７９】
次に、図１１に、シンセサイザ１０のＣＰＵ１１がプログラムチェンジイベントの検出時に実行する処理のフローチャートを示す。
この処理は、主制御部１０７及びカレント音色データ送信部１０４の機能に関する処理であり、主制御部１０７がＭＩＤＩ＿Ｉ／Ｏ１４から音源制御部１０２を介してプログラムチェンジを示すＭＩＤＩデータを受け取った場合、ないし、操作パネル１６で第ｐパートについて音色番号ｐｎの音色データの選択操作が行われた場合に開始される。なお、プログラムチェンジを示すＭＩＤＩデータには、音色を設定するパートのパート番号ｐ及び、設定する音色の音色データ番号を示すプログラムナンバｐｎが記載されており、プログラムチェンジのＭＩＤＩイベントと音色データの選択操作とは等価である。
【００８０】
そして、この処理においてＣＰＵ１１はまず、プログラムナンバｐｎの値を、第ｐパートの音色番号ＴＣＮ（ｐ）としてカレント音色データメモリ１０３に設定する（Ｓ３１）。その後、音色ライブラリ１０６から音色番号ｐｎの音色データを読み出し、第ｐパートのカレント音色データＴＣＤ（ｐ）としてカレント音色データメモリ１０３に記憶させる（Ｓ３２）。
【００８１】
そして、音源サーバとの論理接続が確立された状態でなければそのまま処理を終了するが（Ｓ３３）、確立されていれば、ステップＳ３１及びステップＳ３２で設定した音色番号ＴＣＮ（ｐ）とカレント音色データＴＣＤ（ｐ）を、パート番号ｐと共に音源サーバ３１０の音源制御プロセスに送信する（Ｓ３４）。
【００８２】
これに対し、ＰＣ３０のＣＰＵ３１は、図８に示すように、シンセサイザ１０から受信した各パートの音色番号及びカレント音色データを、指定されたパートの音色番号及びカレント音色データとしてカレント音色データメモリ３１４に記憶させる。この場合、指定されたパートのデータとして以前に記憶していたデータは破棄し、受信したデータを、新たなカレント音色データ等として記憶させる。
【００８３】
また、図１２に、シンセサイザ１０のＣＰＵ１１がパラメータ変更イベントの検出時に実行する処理のフローチャートを示す。
この処理も、図１１の処理と同様、主制御部１０７及びカレント音色データ送信部１０４の機能に関する処理であり、主制御部１０７がＭＩＤＩ＿Ｉ／Ｏ１４から音源制御部１０２を介してカレント音色データのパラメータの値を変更する要求（システム・エクスクルーシブのパラメータ・チェンジ）を示すＭＩＤＩデータを受け取った場合、ないし、操作パネルで第ｐパートのカレント音色データのｅｐ番目のパラメータの値をｅｖに変更する操作が行われた場合に開始される。
なお、上記のパラメータ・チェンジには、どのパートのカレント音色データのパラメータの値を変更するかを示すパート番号ｐ、どのパラメータの値を変更するかを示すパラメータ番号ｅｐ及び、変更後のパラメータの値を示す変更値ｅｖが記載されている。
【００８４】
そして、この処理においてＣＰＵ１１はまず、音源サーバとの論理接続が確立された状態であるか否か判断し（Ｓ４１）、確立されていれば、音源サーバ３１０の音源制御プロセスに、第ｐパートのカレント音色データのｅｐ番目のパラメータの値をｅｖに変更する指示を送信する（Ｓ４２）。
【００８５】
これに対し、ＰＣ３０のＣＰＵ３１は、図８に示すように、シンセサイザ１０からの変更指示に従い、カレント音色データメモリ３１４に記憶しているカレント音色データ中のパラメータの値を変更する。
また、シンセサイザ１０側でも、ＣＰＵ１１が、カレント音色データメモリ１０３に記憶している第ｐパートのカレント音色データのｅｐ番目のパラメータの値をｅｖに変更し（Ｓ４３）、処理を終了する。
【００８６】
シンセサイザ１０は、以上の図１１及び図１２に示した処理により、シンセサイザ１０側で波形データの生成に使用する音色が変更されたり、そのパラメータが編集されたりした場合に、音源サーバ３１０側にも速やかにその変更を反映させることができる。従って、カレント音色データが変更されたとしても、音源部１７と音源部３１２とに同等な波形データ生成動作を行わせることができる状態を維持することができる。
【００８７】
次に、図１３に、シンセサイザ１０のＣＰＵ１１が音源サーバとの接続切断を検出した場合に実行する処理のフローチャートを示す。
シンセサイザ１０のＣＰＵ１１は、論理接続が確立されていた音源サーバから波形データの受信がなくなった場合に、音源サーバとの接続が切断されたと判断する。そして、図１３に示す処理を実行し、発音ｃｈ数Ｎｃから、接続が切断された音源サーバの発音ｃｈ数Ｎｐｃを減じる（Ｓ６１）。この場合、接続が切断された音源サーバの発音ｃｈにおいて発音が実行中であったとしても、この発音に対する発音ｃｈの再割り当てを行う必要はない。
【００８８】
そして、この処理以降は、接続が切断された音源サーバの発音ｃｈは発音への割り当てには用いず、音源部１７が有する発音ｃｈのみを、発音への割り当てに用いる。なお、切断が検出された場合、ミキサ１８は、ハードウェアにより自動的に波形Ｉ／Ｏ１９ｂからの入力をミュートする。
以上の処理により、ＰＣ３０との物理的な接続切断や、ＰＣ３０の動作停止等により、音源サーバとの論理接続が切断された場合でも、シンセサイザ１０が有する能力の範囲内での波形データ生成を、切断前と同様に継続することができる。また、再度ＰＣ３０との接続が回復された場合には、図４に示した処理により再度接続を確立することができる。
【００８９】
以上説明してきたシンセサイザ１０によれば、音源機能を提供可能なＰＣ３０を接続することにより、本体の音源機能を拡張し、かつ拡張した音源機能を本体の音源機能と同様に利用することができる。このとき、ユーザが何ら新たな設定を行わなくても、自動的に、あたかも本体音源部の発音ｃｈ数を増加させたかのように機能拡張を行うことができるため、拡張機能を、極めて容易に利用することができる。
【００９０】
以上で実施形態の説明を終了するが、装置のハードウェア構成、機能構成、データの構成、具体的な処理内容等が、上述の実施形態で説明したものに限られないことはもちろんである。
例えば、上述した実施形態では、ＰＣ３０側で動作させる音源デーモンや、音源サーバ３１０の機能を実現するプロセスを、バックグラウンドサービスあるいはシステムプロセスとして実行させる例について説明したが、アプリケーションであるＤＡＷアプリをこのような用途で利用できるようにしてもよい。
【００９１】
また、音色データとして、複数のエレメント音により１つの音色を規定する音色データを用いることもできる。この場合、１つのノートオンイベントと対応する発音に複数の発音ｃｈを割り当て、各発音ｃｈで別々のエレメント音に係る波形データを生成させることになるが、発音ｃｈの割り当て自体は、図９のステップＳ５１の場合と同様に、必要な数だけの割り当てを行えばよい。そして、音源サーバ側の発音ｃｈが割り当てられた場合には、割り当てられた発音ｃｈの番号に加えて発音させるエレメント音の指定も、ノートオンイベントに付して音源制御プロセスに送信すればよい。
【００９２】
そして、音源制御プロセスが、指定された発音ｃｈで、パートに従って定められるカレント音色データのうち、指定されたエレメント音に関する発音を行わせるようにすれば、音源サーバ３１０側の音源部３１２でも、シンセサイザ１０側の音源部１７の場合と同様に、適切なエレメント音に係る波形データを生成することができる。
【００９３】
また、上述した実施形態では、シンセサイザ１０と論理接続する音源サーバを１つしか示していないが、シンセサイザ１０が複数の音源サーバと同時に論理接続を行うことも可能である。この場合には、各音源サーバと別々に論理接続を行い、シンセサイザ１０が有する発音ｃｈが、各音源サーバが提供可能な発音ｃｈ数の合計だけ増加したとして発音ｃｈの割り当てを行えばよい。
【００９４】
またこの場合、ミキサ１８は、各音源サーバから、その音源サーバの音源部が生成した波形データを、時分割や帯域分割等により別々に受け取り、最終的に、シンセサイザ１０の音源部が生成した波形データと、論理接続されている全音源サーバの音源部が生成した波形データとを、全て合成して出力するようにすればよい。そして、いずれかの音源サーバとの論理接続が切断された場合には、その音源サーバから受信していた波形データのみをミュートして合成処理を続ければよい。
これらの場合において、１台の装置が複数の音源サーバの機能を提供しても、複数の装置が各々音源サーバの機能を提供してもよい。
【００９５】
また、シンセサイザ１０において、音源サーバとの論理接続により発音に使用可能な発音ｃｈ数が増加した場合に、パネル表示器１６ｂに図１４に示すような表示を行い、増加した発音ｃｈ数と、利用可能な発音ｃｈ数とを通知するようにしてもよい。また、単に機能拡張がなされた状態になったことを示すマーク表示をする等してもよい。このようにすれば、音源機能の拡張が適切に行われたことをユーザが容易に認識でき、さらに利便性を向上させることができる。
【００９６】
また、上述した実施形態では、各種コマンドを送受信するための伝送路とは別に、ＭＩＤＩデータをリアルタイム伝送するためのＭＩＤＩ伝送路を設定するようにしていたが、コマンドのデータ形式をＭＩＤＩデータとは区別できる形式にして、コマンドを伝送するのと同じ伝送路を用いてＭＩＤＩデータを伝送するようにしてもよい。その場合、図４のステップＳ１８の論理接続時に、通信経路５０に新たなＭＩＤＩ伝送路を設定する必要は無くなる。
【００９７】
また、この発明が、シンセサイザ以外にも、電子楽器等、音源手段を有する任意の波形生成装置に適用可能なことは、もちろんである。この場合において、演奏操作子が、鍵盤ではなく、弦楽器、管楽器、打楽器等の任意の形状のものであっても構わない。演奏操作子やサウンドシステム自体も、必須の構成要素ではなく、外部から入力する演奏データに従って波形データを生成し、外部のレコーダ等に出力する装置であってもよい。
【００９８】
また、音源サーバ機能を提供する装置がＰＣ等の汎用コンピュータでなく、専用の音源装置であったとしても、ユーザが何ら新たな設定を行わなくても自動的にあたかも本体音源部の発音ｃｈ数を増加させたかのように機能拡張を行うことができるという点では、同等な効果を得ることができる。
また、以上述べてきた変形例は、矛盾しない範囲で任意に組み合わせて適用することができる。
【産業上の利用可能性】
【００９９】
以上の説明から明らかなように、この発明の波形生成システムによれば、波形生成装置の音源機能を容易に拡張し、かつ拡張した音源機能を本体の音源機能と同様に利用できるようにすることができる。
従って、利便性の高い波形生成システムを提供することができる。
【図面の簡単な説明】
【０１００】
【図１】この発明の波形生成装置の実施形態であるシンセサイザ及び、そのシンセサイザに音源機能を提供可能なＰＣのハードウェア構成を示す図である。
【図２】図１に示したシンセサイザ及びＰＣにより構成される楽音生成システムの機能構成を示す図である。
【図３】図２に示したカレント音色データメモリに記憶させるデータの構成を示す図である。
【図４】シンセサイザのＣＰＵが定期的に実行する接続確認処理のフローチャートである。
【図５】ＰＣのＣＰＵが実行する音源デーモンの処理のフローチャートである。
【０１０１】
【図６】図５のステップＳ１１３で実行する処理の例を示す図である。
【図７】ＰＣのＣＰＵが実行する音源制御プロセスの処理のフローチャートである。
【図８】図７のステップＳ１２３で実行する処理の例を示す図である。
【図９】シンセサイザのＣＰＵがノートオンイベントの検出時に実行する処理のフローチャートである。
【図１０】ＰＣのＣＰＵが実行する音源＋ミキサプロセスの処理のフローチャートである。
【０１０２】
【図１１】シンセサイザのＣＰＵがプログラムチェンジイベントの検出時に実行する処理のフローチャートである。
【図１２】シンセサイザのＣＰＵがパラメータ変更イベントの検出時に実行する処理のフローチャートである。
【図１３】シンセサイザのＣＰＵが音源サーバとの接続切断を検出した場合に実行する処理のフローチャートである。
【図１４】シンセサイザが機能拡張状態を通知する表示の例を示す図である。
【符号の説明】
【０１０３】
１０…シンセサイザ、１１…ＣＰＵ、１２…フラッシュメモリ、１３…ＲＡＭ、１４…ＭＩＤＩ＿Ｉ／Ｏ、１５…演奏操作子、１６…操作パネル、１６ａ…パネル操作子、１６ｂ…パネル表示器、１７，３１２…音源部、１８，３１３…ミキサ、１９…通信Ｉ／Ｆ、２０…ＤＡＣ、２１…サウンドシステム、２２…バスライン、３０…ＰＣ、１０１…ＭＩＤＩデータ生成部、１０２，３１１…音源制御部、１０３，３１４…カレント音色データメモリ、１０４…カレント音色データ送信部、１０５…接続処理部、１０６…音色ライブラリ、１０７，３０１…主制御部、３１０…音源サーバ
【図１】
0004544278.tif 000002
【図２】
0004544278.tif 000003
【図３】
0004544278.tif 000004
【図４】
0004544278.tif 000005
【図５】
0004544278.tif 000006
【図６】
0004544278.tif 000007
【図７】
0004544278.tif 000008
【図８】
0004544278.tif 000009
【図９】
0004544278.tif 000010
【図１０】
0004544278.tif 000011
【図１１】
0004544278.tif 000012
【図１２】
0004544278.tif 000013
【図１３】
0004544278.tif 000014
【図１４】
0004544278.tif 000015