波形生成装置
【課題】 波形生成装置の音源機能を容易に拡張し、かつ拡張した音源機能を本体の音源機能と同様に利用できるようにする。
【解決手段】 シンセサイザ10において、外部の音源サーバ310が提供する音源部312の機能が利用可能である場合、音源制御部102が、MIDIデータに従った発音に、内部の音源部17が有する発音ch及び外部の音源部312が有する発音chのうち必要な数の発音chを割り当て、音源部312が有する発音chを割り当てた場合には、上記MIDIデータにその割り当てた発音chの識別情報を付して音源サーバ310に送信することにより、音源部312の、その識別情報が示す発音チャンネルにおいて、送信したMIDIデータに従った波形データの生成を行わせるようにした。
【解決手段】 シンセサイザ10において、外部の音源サーバ310が提供する音源部312の機能が利用可能である場合、音源制御部102が、MIDIデータに従った発音に、内部の音源部17が有する発音ch及び外部の音源部312が有する発音chのうち必要な数の発音chを割り当て、音源部312が有する発音chを割り当てた場合には、上記MIDIデータにその割り当てた発音chの識別情報を付して音源サーバ310に送信することにより、音源部312の、その識別情報が示す発音チャンネルにおいて、送信したMIDIデータに従った波形データの生成を行わせるようにした。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、各発音チャンネルになされている設定に基づいて複数の発音チャンネルで波形データを生成する音源手段を有する波形生成装置に関する。特に、音源機能を提供可能な外部の情報処理装置と通信可能な波形生成装置に関する。
【背景技術】
【0002】
従来から、音源手段を有する波形生成装置として、シンセサイザや電子楽器等、種々の装置が知られている。また、PC(パーソナルコンピュータ)等のコンピュータにDAW(デジタルオーディオワークステーション)アプリ等の所要のプログラムを実行させ、ソフトウェアにより音源手段の機能を実現することも行われている。
【0003】
また、これらの波形生成装置において、装置に搭載したハードウェアでは能力が不足する場合、音源ボードやエフェクタボードをプラグインボートとして装着して機能を追加できるようにすることが行われている。
また、DAWアプリにも、ネットワーク接続された複数台のPCに処理を分散させて実行させることにより、負荷分散を実現し、より負荷の大きな処理を実行させることができるようにしたものが知られている。
このようなDAWアプリとしては、例えば非特許文献1,2に記載のものが挙げられる。
【0004】
【非特許文献1】“Logic Pro Distributed Audio”、[online]、2007年、Apple Inc.、[2007年7月13日検索]、インターネット<URL:http://www.apple.com/logicpro/distributedaudio.html>
【非特許文献2】“Cubase SL Features”、[online]、2005年、Steinberg Canada、[2007年7月13日検索]、インターネット<URL:http://www.steinbergcanada.com/products/cubase/cubasesl_features_systemlink.htm>
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、上述した従来の機能拡張手法では、シンセサイザや電子楽器のように、専用ハードウェアによって構成され、単体で動作させることも多い波形生成装置において音源機能の拡張を行う際に、十分な利便性を得ることができなかった。
例えば、音源回路を搭載したプラグインボードを波形生成装置に装着できるようにするためには、専用のソケットや通信回路、電源等を設ける必要があり、コストアップや、デザイン上の制約になった。また、プラグインボードにより拡張された音源は、本体に搭載された音源とは異なるユニットであると取り扱われ、拡張された音源を適切に動作させるためには、本体に搭載された音源とは別にパラメータの設定を行う必要があった。
【0006】
また、波形生成装置にPCを接続し、PC上で実行させるDAWアプリの機能を追加の音源として機能させることも知られている。しかし、この場合も、あくまでも本体に搭載された音源とは別にDAWアプリの機能を追加する、という位置づけであり、本体に搭載された音源と別にパラメータの設定を行う必要がある点では、プラグインボードの場合と同様であった。
また、非特許文献1や2に記載の技術も、単に複数のPC間で処理負荷を分散するのみであり、波形生成装置における音源機能の拡張という点では、十分な効果を得られるものではなかった。
【0007】
この発明は、このような問題を解決し、波形生成装置の音源機能を容易に拡張し、かつ拡張した音源機能を本体の音源機能と同様に利用できるようにすることを目的とする。
【課題を解決するための手段】
【0008】
上記の目的を達成するため、この発明の波形生成装置は、各発音チャンネルになされている設定に基づいて複数の発音チャンネルで波形データを生成する第1の音源手段と、上記第1の音源手段に生成させる波形データの音色を規定するカレント音色データを記憶するカレント音色記憶手段と、演奏内容を規定する演奏データを取得し、その演奏データに従って音源手段を制御して波形データの生成を行わせる音源制御手段と、各発音チャンネルになされている設定に基づいて複数の発音チャンネルで波形データを生成し、外部に出力する第2の音源手段を有する情報処理装置と通信するための通信手段と、上記第1の音源手段が生成した波形データと、上記通信手段が上記情報処理装置から受信した波形データとを合成して出力する波形出力手段とを有する波形生成装置において、上記カレント音色記憶手段に記憶しているカレント音色データを、上記通信手段に接続された情報処理装置に送信し、上記第2の音源手段で生成する波形データの音色を規定するカレント音色データとして記憶させる音色データ送信手段と、上記接続された情報処理装置に、上記第2の音源手段が生成した波形データの送信先をその波形生成装置と設定させる接続要求手段とを設け、上記音源制御手段が、上記通信手段に上記情報処理装置が接続されていない場合、上記演奏データに従った発音に、上記第1の音源手段が有する発音チャンネルのうち必要な数の発音チャンネルを割り当て、その割り当てた発音チャンネルに対して、演奏データ及び上記音色記憶手段が記憶しているカレント音色データの内容に従ったパラメータの値を設定すると共に発音指示を行うことにより、上記第1の音源手段に波形データを生成させ、上記通信手段に上記情報処理装置が接続されている場合、(a)上記演奏データに従った発音に、上記第1の音源手段が有する発音チャンネル及び接続された上記情報処理装置において動作している第2の音源手段が有する発音チャンネルのうち必要な数の発音チャンネルを割り当て、(b)上記第1の音源手段が有する発音チャンネルを割り当てた場合には、その割り当てた発音チャンネルに対して、上記演奏データ及び上記音色記憶手段が記憶しているカレント音色データの内容に従ったパラメータの値を設定すると共に発音指示を行うことにより、上記第1の音源手段に波形データを生成させ、(c)上記第2の音源手段が有する発音チャンネルを割り当てた場合には、上記演奏データにその割り当てた発音チャンネルの識別情報を付して上記接続された情報処理装置に送信することにより、その情報処理装置に、その識別情報が示す発音チャンネルにおいて、送信した演奏データと、上記音色データ送信手段により送信して記憶させたカレント音色データとに従った波形データの生成を行わせるようにしたものである。
【0009】
このような波形生成装置において、上記カレント音色データの編集操作を受け付けるための操作子と、その操作子の操作に応じてカレント音色データの内容を編集する音色編集手段とを設け、その音色編集手段が、上記通信手段に上記情報処理装置が接続されていない場合、上記操作子の操作に応じて上記カレント音色記憶手段が記憶するカレント音色データの内容を編集し、上記通信手段に上記情報処理装置が接続されている場合、上記操作子の操作に応じて上記カレント音色記憶手段が記憶するカレント音色データの内容を編集すると共に、その編集内容を上記接続されている情報処理装置に送信し、その情報処理装置に記憶させたカレント音色データの内容に対し、上記カレント音色記憶手段が記憶するカレント音色データになされた編集と同じ編集を行わせるようにするとよい。
【0010】
さらに、上記通信手段を介して上記情報処理装置と通信可能となったことを検出した場合に、(d)上記情報処理装置に上記第2の音源手段の機能を起動させ、(e)上記第2の音源手段との間で、種々の動作を指示するための制御データの送受信と、その第2の音源手段における波形データの生成に使用させる演奏データの送信と、その第2の音源手段が生成した波形データの受信とを行うための論理接続を行うと共に、(f)上記音色記憶手段に記憶しているカレント音色データを、上記通信可能となった情報処理装置に送信し、上記論理接続を行った第2の音源手段で生成する波形データの音色を規定するカレント音色データとして記憶させる手段を設けるとよい。
【0011】
さらにまた、複数の音色データを記憶する音色ライブラリと、その音色ライブラリに記憶されている音色データのうち、上記第1の音源手段に波形データを生成させる際に用いる音色データの選択を受け付ける選択受付手段と、その選択受付手段が受け付けた選択に従って上記カレント音色データを設定するカレント音色設定手段とを設け、そのカレント音色設定手段が、上記通信手段に上記情報処理装置が接続されていない場合、上記選択された音色データを新たなカレント音色データとして上記カレント音色記憶手段に記憶させ、上記通信手段に上記情報処理装置が接続されている場合、上記選択された音色データを新たなカレント音色データとして上記カレント音色記憶手段に記憶させると共に、上記接続されている情報処理装置に送信し、その情報処理装置に、新たなカレント音色データとして記憶させるようにするとよい。
【0012】
さらに、波形生成装置と上記第2の音源手段との間で上記論理接続がなされた場合に、音源手段の機能が拡張され、波形データの生成に使用可能な発音chの数が増加したことを示す表示を行う手段を設けるとよい。
【発明の効果】
【0013】
以上のようなこの発明の波形生成装置によれば、波形生成装置の音源機能を容易に拡張し、かつ拡張した音源機能を本体の音源機能と同様に利用できるようにすることができる。
【発明を実施するための最良の形態】
【0014】
以下、この発明を実施するための最良の形態を図面に基づいて具体的に説明する。
まず、図1に、この発明の波形生成装置の実施形態であるシンセサイザ及び、そのシンセサイザに音源機能を提供可能なPCのハードウェア構成を示す。
図1に示すように、シンセサイザ10は、CPU11,フラッシュメモリ12,RAM13,MIDI(Musical Instruments Digital Interface:登録商標)I/O(入出力部)14,演奏操作子15,パネル操作子16a,パネル表示器16b,音源部17,ミキサ18,通信I/F19を備え、これらがバスライン22により接続されている。また、この他に、DAC(デジタル/アナログコンバータ)20及びサウンドシステム21も備えている。
【0015】
そして、CPU11は、シンセサイザ10を統括制御する制御手段であり、フラッシュメモリ12に記憶された所要の制御プログラムを実行することにより、演奏操作子15及びパネル操作子16aの操作内容検出、パネル表示器16bの表示制御、MIDI_I/O14を介したMIDIデータの送受信制御、通信I/F19を介したMIDIデータ,波形データ,制御データ等の送受信の制御、音源部17による波形データ生成の制御、ミキサ18によるミキシングの制御等の種々の制御動作を行う。
【0016】
フラッシュメモリ12は、CPU11が実行する制御プログラムや、変更する必要のないデータ等を記憶する記憶手段である。
RAM13は、CPU11のワークメモリとして使用したり、一時的に使用するパラメータの値等を記憶したりする記憶手段である。
【0017】
MIDI_I/O14は、外部装置との間でMIDIデータを送受信するためのインタフェースである。
演奏操作子15は、鍵盤やペダル等、ユーザによる演奏操作を受け付けるための操作子である。
【0018】
パネル操作子16aは、キー、つまみ、スライダ、ピッチベンド等、ユーザからの、シンセサイザ10の動作に関する設定の操作を受け付けるための操作子である。
パネル表示器16bは、液晶ディスプレイ(LCD)や発光ダイオード(LED)ランプ等によって構成され、シンセサイザ10の動作状態や設定内容あるいはユーザへのメッセージ、ユーザからの指示を受け付けるためのグラフィカル・ユーザ・インタフェース(GUI)等を表示するための表示手段である。
なお、LCDにタッチパネルを積層して、パネル表示器16bとパネル操作子16aとを一体に構成することもできる。
【0019】
音源部17は、各発音チャンネルになされている設定に基づいて複数の、例えば128の発音チャンネル(ch)でデジタル波形データを生成する第1の音源手段である。
そして、この音源部17による波形データの生成動作は、音源制御手段として機能するCPU11が、発音を行わせる発音chと対応したchレジスタに、発音させる音の音色、音高、強度、エンベロープ等に応じた適当なパラメータの値を設定すると共に、発音開始や停止、急速減衰等の指示をすることにより、制御する。
【0020】
ミキサ18は、音源部17の各発音chで生成された波形データを、ステレオのLとRの各系統毎に重み付けして累算すると共に、通信I/F19を介してPC30等の外部装置から受信した波形データと合成(ミキシング)したサンプリング周期毎のステレオ波形データを出力する波形出力手段である。通信I/F19から波形データを受信していない場合には、音源部17が生成した波形データについてのみ累算を行えばよい。
【0021】
通信I/F19は、適当な通信経路(ネットワーク)50を介してPC30等の外部装置との間で通信するためのインタフェースである。この通信経路50は、有線でも無線でもよいし、中継機器の有無も問わないが、シンセサイザ10側から見て少なくともMIDIデータの送信及びデジタル波形データの受信についてリアルタイム伝送(伝送遅延時間が数ミリ秒以下)が可能であり、さらにコマンドや音色データ等の制御データの伝送も可能な通信経路を採用する。例えば、IEEE1394を利用したmLANを採用することが考えられる。また、USB(Universal Serial Bus)も利用可能である。もちろん、1対1の通信路に限られることはない。
【0022】
DAC20は、ミキサ18から出力されるデジタルの波形データを、アナログの楽音信号に変換し、サウンドシステム21に供給する機能を有する。
サウンドシステム21は、スピーカ等により構成され、DAC20から供給される楽音信号に従った音声を出力する音声出力手段である。
以上のようなシンセサイザ10は、ユーザの演奏操作に従い、ユーザが指定した音色の楽音を発生させて出力することができる。自動演奏の楽音についても、同様に出力することができる。
【0023】
一方、PC30は、CPU31,ROM32,RAM33,HDD34,その他I/O35,ディスプレイ36,キーボード37,マウス38等のポインティングデバイス,通信I/F39を備え、これらが必要に応じて不図示のインタフェースを介してバスライン40により接続された構成であり、ハードウェアとしては公知のものを適宜利用すればよい。
ただし、通信I/F39としては、シンセサイザ10において採用されている通信経路50を介して、シンセサイザ10との間の通信が可能な規格のものを用いる。
【0024】
また、CPU31を始めとする各ハードウェアとしては、適当なプログラムを実行することにより、後述する音源サーバの機能を実現する能力を有するものを用いる。プログラム自体は、予めROM32やHDD34に格納していても、必要に応じて外部からダウンロードしてもよい。
なお、このPC30は、常にシンセサイザ10と接続されている必要はなく、シンセサイザ10の音源機能を拡張したい場合に、任意のタイミングでシンセサイザ10に接続すればよい。そして、この接続を行うことにより、シンセサイザ10とPC30とに楽音(波形)生成システムを構成させることができる。
【0025】
次に、図2に、図1に示したシンセサイザ10及びPC30の機能構成を示す。
この図において、MIDIデータの伝達経路は太い実線の矢印で、波形データの伝送経路は太い破線の矢印で示している。
図2に示す通り、シンセサイザ10は、図1に示したMIDI_I/O14〜サウンドシステム21の各構成要素により実現される機能(この図では、パネル操作子16aとパネル表示器16bは、まとめて操作パネル16として示している)に加え、MIDIデータ生成部101,音源制御部102,カレント音色データメモリ103,カレント音色データ送信部104,接続処理部105,音色ライブラリ106,主制御部107の機能を有する。これらのMIDIデータ生成部101〜主制御部107の機能は、CPU11が所要のプログラムを実行し、シンセサイザ10が備える各種ハードウェアを制御することにより実現されるものである。
また、PC30は、主制御部301及び、音源サーバ310の機能を有する。
【0026】
以下、各部の機能について説明する。
まず、シンセサイザ10のMIDIデータ生成部101は、演奏操作子15に対してなされた演奏操作の内容を検出し、その操作内容を示すMIDIデータ(ノートオン、ノートオフ等)を生成する機能を有する。そして、MIDIデータ生成部101は、これらの生成したMIDIデータを音源制御部102に供給し、そのMIDIデータに従った音源部17の制御を行わせる。
【0027】
また、シンセサイザ10は、後述のように複数パートの波形データの生成が可能である。そこで、MIDIデータ生成部101は、演奏操作子15のうちどの範囲の操作子がどのパートの演奏に用いられるものであるかを示す対応関係を把握し、演奏操作子15の操作に応じてMIDIデータを生成する場合には、その対応関係に従った適切なパート番号(MIDIチャンネル)を、生成するMIDIデータに付す。なお、演奏操作子15とパートとの対応関係は、操作パネル16の操作により変更可能である。
【0028】
音源制御部102は、MIDIデータ生成部101が生成したり、MIDI_I/O14を介してMIDIシーケンサ等の外部装置から受信したり、主制御部107が操作パネル16の操作や自動演奏用の楽曲データに基づいて生成したりした、楽曲の演奏内容を規定する演奏データであるMIDIデータに基づいて、音源部17における波形データの生成動作を制御する機能を有する。
【0029】
この制御には、MIDIデータに従った各発音に、使用する発音chを割り当てる処理を含む。そして、この割り当てを行う際、シンセサイザ10がPC30と接続され、音源サーバ310が有する音源部312も発音に利用可能な状態であれば、音源制御部102は、シンセサイザ10側の音源部17が有する発音chと、音源サーバ310側の音源部312が有する発音chとを、区別せずにこの割り当てを行う。
【0030】
そして、音源サーバ310側の音源部312の発音chを割り当てた場合には、音源制御部102は、受け取ったMIDIデータに、発音に使用させる発音chの番号(識別情報)を付してPC30の音源サーバ310に送信し、音源制御部311にその内容に従って音源部312を制御させ、波形データの生成を行わせる。どの番号の発音chがどの音源部のものであるかを示す対応関係は、音源制御部102が管理し、主制御部107もこれを把握している。
【0031】
また、このMIDIデータは、通信I/F19が備えるMIDI_I/O19aから送信し、PC30側の通信I/F39が備えるMIDI_I/O39aが受信する。
なお、図2では、通信I/F19,39が、それぞれMIDI_I/O19a,39a、波形I/O19b,39b、その他I/O19c,39cの3つのI/Oを備えるように示しているが、これらのI/Oが物理的に独立したものである必要はなく、通信経路50を介したデータ転送の帯域を、これら3種のデータ入出力の用途に適宜配分して用いればよい。
また、音源制御部102は、カレント音色データメモリへのカレント音色データの登録及び編集に関連する機能も有するが、この点についてはカレント音色データメモリ103及びカレント音色データ送信部104の説明において述べる。
【0032】
カレント音色データメモリ103は、音源部17に生成させる波形データの音色を規定するカレント音色データを記憶する記憶手段である。このカレント音色データは、音源制御部102がプログラムチェンジイベントを示すMIDIデータを検出した場合に、主制御部107を介して音色ライブラリ106から読み出し、カレント音色データメモリ103に設定する。
そして、音源部17は、サンプリング周期毎に、このカレント音色データメモリ103の、chレジスタに設定されたパラメータの値に従って決定される読み出しアドレスから波形データを読み出し、これに補間やエンベロープ処理を行って、波形データを生成する。
【0033】
ここで、図3に、カレント音色データメモリ103に記憶させるデータの構成を示す。
この図に示すように、カレント音色データは演奏パート毎に記憶可能であり、ここではカレント音色データメモリ103には16パート分の音色データを記憶させることができる。従って、音源部17にも、演奏パート毎に異なる音色の波形データを生成させることができる。また、カレント音色データメモリ103には、各パートについて、カレント音色データの音色番号も記憶させておく。
【0034】
さらに、カレント音色データメモリ103には、各発音chの状態を示すデータも記憶させる。このデータとしては、例えば発音に使用中か使用中でないかの区別(オンオフ)や、ノートオンに応じて発音を開始させ、使用中となった発音chについて、そのノートオンに対応するノートオフが発生したか否か(ノートオフが発生すると減衰(リリース)状態となる)の区別、発音中の音(波形データ)のレベル等の情報が考えられる。
【0035】
またここには、シンセサイザ10側の音源部17の発音chとの情報と、音源サーバ310側の音源部312の発音chの情報とをどちらも記憶させる。音源部17の情報については、主制御部107が音源部17から取得して書き込めばよい。
音源部312の情報については、主制御部107が定期的に音源サーバ310に問い合せて必要な情報を取得するか、音源サーバ310に必要な情報を定期的に主制御部107に送信する機能を設けるかして、主制御部107がその情報をカレント音色データメモリ103に登録すればよい。シンセサイザ10においては、前者の構成を採用している。
【0036】
図2の説明に戻る。
カレント音色データ送信部104は、シンセサイザ10と音源サーバ310との間にデータ転送のための論理接続が確立されている状態で、カレント音色データメモリ103の内容が変更された場合に、音源制御部102からの変更内容の通知に基づき、音源サーバ310にその変更内容を送信し、音源サーバ310に設けたカレント音色データメモリ314の内容にも、カレント音色データメモリ103側と同じ変更を行わせる機能を有する。この変更には、プログラムチェンジイベントに応じた新たな音色の選択によるものと、操作パネル16の操作に応じた音色パラメータの編集によるものとがある。
また、カレント音色データ送信部104は、シンセサイザ10と音源サーバ310との間に論理接続が新たに確立された場合、接続処理部105からの通知に基づき、カレント音色データメモリ103の内容をその音源サーバ310に送信し、カレント音色データメモリ314に記憶させる機能も有する。
【0037】
そして、これらの機能により、図3に示したように、シンセサイザ10側のカレント音色データメモリ103が記憶する音色データと、音源サーバ310側のカレント音色データメモリ314が記憶する音色データとを、同一の内容に保つことができる。音色データやその変更内容は、その他I/O19cから送信し、PC30側ではその他_I/O39cが受信する。
なお、発音chの状態の情報については、カレント音色データメモリ314に記憶させる必要はない。
【0038】
接続処理部105は、シンセサイザ10とPC30とが新たに接続された場合に、PC30に音源サーバ310を起動させ、シンセサイザ10と音源サーバ310との間の論理接続を確立する機能を有する。
【0039】
音色ライブラリ106は、シンセサイザ10が使用可能な複数の音色データを記憶する記憶手段である。そして、操作パネル16における操作や、楽曲データにおける指定により、演奏に使用するデータとして選択された音色データが、この音色ライブラリ106から読み出されてカレント音色データメモリ103に記憶され、音源部17における波形データの生成に用いられる。
【0040】
なお、操作パネル16における操作により、音色ライブラリ106が記憶する音色データを編集したり、音色ライブラリ106に新たな音色データを登録したりすることも可能である。
主制御部107は、シンセサイザ10の各部を制御し、以上説明してきた機能を適切に発揮させる機能を有する。また、操作パネル16における操作の検出や表示も行う。
【0041】
一方、PC30の主制御部301は、PC30において提供可能な音源サーバ310の機能を管理する機能を有する。そして、シンセサイザ10側からの要求に応じて、提供可能な音源サーバ310の機能の情報を提供したり、音源サーバ310を起動させたりする機能を有する。
【0042】
また、音源サーバ310は、必要に応じて起動され、外部装置からの要求に応じて、各発音チャンネルになされている設定に基づいて複数の発音チャンネルでステレオのデジタル波形データを生成し、外部に出力する第2の音源手段の機能を提供する。この音源サーバ310の機能は、常時有効にしておく必要はなく、シンセサイザ10から音源サーバ機能の起動要求があった場合に、CPU31に所要のプログラムの実行を開始させて、機能を有効にすればよい。
音源サーバ310の機能を実現するためのプログラムをPC30に複数インストールしておき、これらを選択的に起動/停止して、機能の異なる複数の音源サーバ310を任意に使い分けることができるようにしてもよい。
【0043】
そして、この音源サーバ310は、音源制御部311,音源部312,ミキサ313,カレント音色データメモリ314を有する。これらの各部は、概略では、シンセサイザ10側の音源制御部102,音源部17,ミキサ18,カレント音色データメモリ103と同様な機能を有する。
【0044】
ただし、音源制御部311は、発音に対する発音chの割り当ては行わず、音源制御部102から受信したMIDIデータに付された発音ch番号が示す発音chに、そのMIDIデータに従った波形データの生成を行わせる。
また、ミキサ313は、音源部312の各発音chで生成された同じサンプリング周期の波形データを、ステレオのLとRの各系統毎に音量制御して累算し、生成されたステレオの波形データを、シンセサイザ10に対して送信し、サンプリング周期毎に、ミキサ18における波形データ合成処理に供する。この波形データは、通信I/F39が備える波形_I/O39bから送信し、シンセサイザ10側の通信I/F19が備える波形_I/O19bが受信する。
【0045】
そして、シンセサイザ10側のミキサ18がシンセサイザ10側の音源部17の各発音chで生成された波形データを、ステレオのLとRの各系統毎に音量制御して累算すると共に、ミキサ313から供給されるステレオの波形データと合成することにより、あたかも、音源部17と音源部312が1つの音源部として機能して音源制御部102が各発音chに割り当てた発音を実行しているかのような波形データを得ることができる。
【0046】
次に、上述したシンセサイザ10及びPC30のCPUが実行する処理について説明する。
まず、図4に、シンセサイザ10のCPU11が定期的に実行する接続確認処理のフローチャートを示す。また、図5に、PC30のCPU31が実行する音源デーモン処理のフローチャートを、図6に、その処理中で実行する受信コマンドに応じた処理の具体例を示す。
【0047】
図4に示す処理は、図2に示した接続処理部105の機能と対応するものである。そして、シンセサイザ10のCPU11は、定期的なタイミングで図4に示す処理を開始し、まず、同一のネットワークに接続されている機器を検索する(S11)。この検索は、通信I/F19を介してMIDIデータや波形データをリアルタイムで伝送可能な範囲にどのような機器が接続されているかを検索するものであり、通信規格に応じた適当なプロトコルにより行うことができる。また、過去に検索した結果に基づき、ネットワークにどのような機器が接続されているかを示す情報は保持しておく。
【0048】
そして、ステップS11の検索により未確認の機器が発見されたか否か判断し(S12)、もしあれば、発見した機器に、提供可能な音源機能の内容を問い合せる(S13)。。ここで、未確認の機器とは、前回の検索では検索されなかった装置や、音源サーバ機能の情報を取得できていない装置である。
【0049】
一方、PC30のCPU31は、PC30の電源投入時に自動的に、あるいはユーザの起動指示に応じて、図5に示す音源デーモンの処理を開始する。この処理は、図2に示した主制御部301の機能と対応するものであり、CPU31は、バックグラウンドサービスあるいはシステムプロセスとしてこの処理を実行する。
【0050】
そしてこの処理は、シンセサイザ10等の外部装置からの要求を受け付けて、その要求に応じた処理を行うためのものである。すなわち、CPU31は、所要の初期設定を行った後(S111)、音源サーバに関するコマンドの受信があるまで待機し(S112)、コマンドを受信した場合、受信したコマンドに応じた処理を実行する(S113)。この処理は例えば、図6に示すような問い合わせに対する応答やプロセスの起動である。そして、処理後完了後、あるいは処理の実行を他のプロセスに指示した後、再度ステップS112に戻って次のコマンドを待つ。
【0051】
図4のステップS13でCPU11が行う問い合わせは、この音源デーモンが受け付け可能な音源機能問い合わせコマンドによって行い、PC30は、音源デーモンが起動された状態でこのコマンドを受信すると、図6に示すように、提供可能な音源機能、すなわちPC30において起動可能な音源サーバ310の対応機種及び発音ch数を返答してくる。
【0052】
なお、音源サーバ310の機能を実現するプログラムは、音源デーモンに対するプラグインとしてHDD34にインストールされている。そして音源デーモンは、起動時に、HDD34の所定のプラグインフォルダに置かれた、音源サーバ310の機能を実現するプログラムをサーチし、発見された各プログラムのファイルから、メーカー名、対応機種、発音ch数、バージョン情報などを読み込んで、これらの情報を、提供可能な音源サーバ310の情報として登録した音源テーブルを作成しておく。そして、音源デーモンは、この音源テーブルの情報に基づき、音源機能問い合わせコマンドに対する返答を行う。
【0053】
シンセサイザ10のCPU11は、ステップS13での問い合わせに返答があると、対応機種の情報に基づき、問い合わせ先の機器(ここではPC30)が、自機が利用可能な音源機能を提供可能か否か判断する(S14)。なお、問い合わせ先の機器において音源デーモンが起動していない場合には、問い合わせに対する返答はないが、この場合にはステップS14の判断はNOとする。
【0054】
そして、ステップS14でNOの場合にはそのまま処理を終了するが、YESの場合には、返答してきた機器に対し、自機が利用可能な音源機能を提供する音源サーバを指定してその起動を指示する(S15)。複数該当する場合には、どの音源サーバを起動させるかをユーザに選択させてもよい。また、この起動指示は、音源デーモンが受け付け可能な音源サーバ起動コマンドによって行う。
【0055】
これに対し、PC30のCPU31は、図6に示すように、指定された音源サーバの機能を実現するプログラムを、HDD34からRAM33に読み込んで、そのプログラムの実行を開始し、結果を返答する。そして、このことにより、音源制御プロセスと、音源+ミキサプロセスとが起動される。音源制御プロセスは、図2に示した音源制御部311の機能と対応する処理、音源+ミキサプロセスは、音源部312及びミキサ313の機能と対応する処理である。
【0056】
ここで、図7に、CPU31が実行する音源制御プロセスの処理のフローチャートを、図8に、その処理中で実行する受信データに応じた処理の具体例を示す。
CPU31は、音源デーモンが音源制御プロセスの起動を指示すると、バックグラウンドサービスあるいはシステムプロセスとしてこの処理の実行を開始する。
【0057】
そしてこの処理は、外部装置あるいは他プロセスからデータを受信して、そのデータに応じた処理を行うためのものである。すなわち、CPU31は、所要の初期設定を行った後(S121)、データの受信があるまで待機し(S122)、データを受信した場合、受信したデータに応じた処理を実行する(S123)。この処理は例えば、図8に示すような、パラメータ値の保存や設定、論理接続、発音指示等である。そして、処理後完了後、再度ステップS122に戻って次のコマンドを待つ。
【0058】
図4の説明に戻る。
CPU11は、PC30からの返答により音源サーバ機能が起動されたと判断すると(S16)、起動された音源サーバ(ここでは音源サーバ310)に対し、カレント音色データメモリ103に記憶している全パートの音色番号及びカレント音色データを、パート番号の指定と共に送信する(S17)。
【0059】
これに対し、PC30のCPU31は、図8に示すように、シンセサイザ10から受信した各パートの音色番号及びカレント音色データを、指定されたパートの音色番号及びカレント音色データとしてカレント音色データメモリ314に記憶させる。このことにより、シンセサイザ10側と音源サーバ310側とでカレント音色データメモリ中に同じ音色番号及びカレント音色データが記憶されることになる。
【0060】
また、CPU11は、起動された音源サーバと自機との間でMIDIデータ及び波形データを伝送する経路の論理接続を構築する(S18)。
具体的には、まず、CPU11とCPU31とが協同して、ネットワーク50に、シンセサイザ10からPC30へのMIDIデータのリアルタイムの伝送路(MIDI伝送路)と、PC30からシンセサイザ10への波形データのリアルタイムの伝送路(波形伝送路)を設定すると共に、音源制御部102からのMIDIデータがMIDI伝送路に供給されるよう接続し、波形伝送路からの波形データがミキサ18に供給されるよう接続する。そして、CPU31に対し、起動した音源サーバ310のこれらMIDI伝送路および波形伝送路への論理接続を要求する。
【0061】
これに対し、CPU31は、図8に示すように、音源制御プロセスがMIDII/O39aを介して接続要求元(ここではシンセサイザ10)からMIDIデータを受信し、
音源+ミキサプロセスが生成した波形データを波形I/O39bから接続要求元に出力するデータ伝送経路の論理接続を行う。
【0062】
具体的には、MIDI伝送路を介して受信されたMIDIデータが音源制御部311のプロセスに供給されるよう接続し、かつ、ミキサ313のプロセスから出力される波形データが波形伝送路に供給されるよう接続を行う。このように、シンセサイザ10の音源制御部102とPC30の音源制御部311とがMIDI伝送路を介して接続され、かつ、PC30のミキサ313とシンセサイザ10のミキサ18とが波形伝送路を介して接続され、PC30による音源機能の拡張が可能になった状態を、「論理接続が確立された状態」と呼ぶことにする。
【0063】
この状態では、シンセサイザ10側の音源制御部102から音源サーバ310側の音源制御部311にMIDIデータを送信し、音源サーバ310側の音源部312で生成され、ミキサ313で合成された波形データを、シンセサイザ10側のミキサ18で受信して、音源部17が生成した波形データと合成できる。
【0064】
CPU11は、これらが完了すると、ミキサ18において波形I/O39bから受信した信号をフェードインさせる(S19)。その後、割り当て可能な発音ch数Ncに、起動した音源サーバの発音ch数Npcを加え、以後、音源制御部102において音源部17と音源部312のいずれの発音chも発音に対する割り当てに使用できるようにして(S20)、処理を終了する。
【0065】
以上の処理の終了後、シンセサイザ10のユーザは、音源サーバ310の音源部312を、自機の音源部17と全く同様に波形データの生成に利用できるようになる。この場合において、ユーザはPC30に対して何ら設定操作を行う必要はなく、単にPC30をシンセサイザ10が属するネットワークに接続すればよい(音源デーモンが自動起動でない場合には、これを起動する必要がある)。
なお、ステップS15の後所定時間以内に起動OKの返答がない場合には、ステップS16で起動失敗と判断し、そのまま処理を終了する。
【0066】
次に、シンセサイザ10側と音源サーバ310側で、波形データ生成のために実行する処理について説明する。
まず、図9に、シンセサイザ10のCPU11がノートオンイベントの検出時に実行する処理のフローチャートを示す。
この処理は、音源制御部102の機能に関する処理であり、音源制御部102にノートオンイベントを示すMIDIデータが供給された場合に開始される。なお、ノートオンイベントを示すMIDIデータには、発音させる音のパート番号p,ノートナンバnn,ベロシティvelが記載されている。
【0067】
そして、この処理においてCPU11はまず、ノートオンイベントに応じた発音に、制御可能なNc個の発音chの中から使用中でない任意の発音chを割り当て、その発音chの番号をaとする(S51)。
なお、全ての発音chが使用中であった場合には、出力レベルの低い発音chや、既にノートオフしてある発音chを適宜選択して出力を急速減衰させ(トランケート処理)、その発音chを割り当てる。この割り当ては、カレント音色データメモリ103が記憶する発音ch状態のデータに基づいて行うことができる。また、ステップS51でNc個の発音chから具体的にどの発音chを割り当てるかを決定する手法は、適当な公知の手法を、Nc個の発音ch全てがシンセサイザ10側の音源部17のものであると仮定して適用すればよい。
【0068】
次に、割り当てたa番目の発音chが音源サーバ310側のchであるか否かを判断する(S52)。どの番号の発音chをどの音源部が有しているかの情報は、音源制御部102が把握しているとする。
そして、ステップS52でNOであれば、ノートオンイベントに応じた発音を自機の音源部17に行わせるべく、音源部17のa番目の発音chのchレジスタに、カレント音色データメモリ103に記憶している第pパートのカレント音色データとノートナンバnnとベロシティvelとに基づくパラメータの値を設定し(S53)、そのa番目の発音chの発音開始を指示して(S54)、処理を終了する。
【0069】
一方、音源部17は、所定のサンプリング周期毎に、各発音chについてchレジスタの内容を参照し、発音開始が指示されていた場合に、chレジスタに登録されているパラメータの値に従い波形データを生成する。従って、ステップS53,S54の処理により、音源部17にa番目の発音chでノートオンイベントの内容に従った波形データを生成させることができる。
【0070】
なお、ステップS53で設定するパラメータは、音色データに含まれる波形データの読み出し開始アドレス、読み出す波形データとノートナンバnnが示す音高とに応じた波形データ読み出しアドレスの進行速度、ベロシティvelが示す音量に応じた波形エンベロープの形状等である。また、使用する音色データが、ノートナンバやベロシティの範囲に応じて異なる波形データを用いるものであれば、読み出し開始アドレスや進行速度も、ノートナンバnnやベロシティvelに応じて異なる値となる。
【0071】
また、ステップS52でYESの場合には、割り当てた発音chの番号aを、音源サーバ310が使用するch番号a′に変換する(S55)。例えば、シンセサイザ10側では音源部17が有する発音chを1〜128番目、音源部312が有する発音chを129〜256番目として発音chの割り当てを行う一方、音源サーバ310側では、音源部312が有する発音chに番号を振る際に、シンセサイザ10側の発音chを考慮せずに1〜128番目していることが考えられる。そしてこの場合、a′=a−128となる。シンセサイザ10側と、音源サーバ310側とで、発音chの番号として共通の番号を用いるようネゴシエーションする機能を設けるのであれば、この処理は不要である。
【0072】
ステップS55の後、CPU11は、この処理の開始トリガとなったノートオンイベントに発音ch番号a′を付して、a番目の発音chを受け持つ音源サーバ310の音源制御プロセスに送信し(S56)、処理を終了する。
これに対し、PC30側では、音源制御プロセスを実行するCPU31が、シンセサイザ10からステップS56の処理で送信されてくるch番号a′の付されたノートオンイベントを受信すると、図8に示すように、音源+ミキサプロセスが参照するa′番目の発音chのchレジスタに対し、パラメータの設定と発音開始指示を行う。
この処理は、使用するカレント音色データがカレント音色データメモリ314に記憶されているものである点を除けば、シンセサイザ10側の音源部17に波形データの生成を行わせる場合のステップS53の処理と同じものである。
【0073】
以上の処理により、シンセサイザ10は、音源サーバ310の音源部312が有する発音chを、自機の音源部17が有する発音chと全く同様に、ノートオンイベントに応じた発音に割り当て、その内容に従った波形データの生成を行わせることができる。
なお、シンセサイザ10と音源サーバ310との間に論理接続が確立されていない場合には、発音には必ず音源部17の発音chが割り当てられることになるから、ステップS52の判断は常にNOとなり、ステップS55,S56の処理は実行されない。
【0074】
また、CPU11は、ノートオフイベント等、発音chを特定して音源部に対する制御を行う必要のある他のイベントを検出した場合にも、図9のステップS52以下と同様な対応を行う。すなわち、音源サーバ310側の発音chに対する指示が必要な場合には、検出したイベントを示すMIDIデータに指示すべき発音chの番号を付して、その発音chを受け持つ音源サーバ310の音源制御プロセスに送信する。そして、これに対し、PC30側では、音源制御プロセスを実行するCPU31が、図8に示すように、受信したMIDIデータに付されたch番号のchレジスタの値を、そのMIDIデータの内容に従って設定する。
【0075】
従って、シンセサイザ10は、ノートオンイベント以外のイベントについても、音源サーバ310の音源部312が有する発音chを、自機の音源部17が有する発音chと全く同様に制御することができる。また、ステップS51で特定の発音chを急速減衰させる場合にも、同様な対応が可能である。
【0076】
また、図10に、PC30のCPU31が実行する音源+ミキサプロセスのフローチャートを示す。
CPU31は、音源デーモンが起動を指示すると、バックグラウンドサービスあるいはシステムプロセスとしてこの処理の実行を開始する。
そして、所要の初期処理を行った後(S131)、所定時間毎に、各発音chにつき、chレジスタに設定されているパラメータの値に従い、その所定時間に対応した複数サンプリング周期分の波形データを生成する(S132)と共に、各発音chで生成した各サンプリング周期の波形データを重み付け合成して、合成されたステレオの波形データを、論理接続されている出力先(ここではシンセサイザ10)に、サンプリング周期毎に1サンプルずつ出力する(S133)。
【0077】
そして、これらの処理を、出力先との切断検出や、PC30の動作停止等の終了トリガを検出するまで繰り返す(S134)。終了トリガを検出すると、音源制御プロセスを停止する(S135)と共に、論理接続の解除等、プロセスの終了に必要な処理を行って(S136)、処理を終了する。
【0078】
なお、音源+ミキサプロセスにおいては、ステップS133における波形データ出力時のタイミング管理を容易にするため、ステップS132において予め後のサンプリング周期の分まで波形データを生成してキャッシュレジスタに記憶させておくが、各サンプル毎の波形データの生成手法は、音源部17が行うものと同様である。
従って、波形データの生成を音源部17に行わせた場合でも、音源部312に行わせた場合でも、同等な波形データを得ることができる。
【0079】
次に、図11に、シンセサイザ10のCPU11がプログラムチェンジイベントの検出時に実行する処理のフローチャートを示す。
この処理は、主制御部107及びカレント音色データ送信部104の機能に関する処理であり、主制御部107がMIDI_I/O14から音源制御部102を介してプログラムチェンジを示すMIDIデータを受け取った場合、ないし、操作パネル16で第pパートについて音色番号pnの音色データの選択操作が行われた場合に開始される。なお、プログラムチェンジを示すMIDIデータには、音色を設定するパートのパート番号p及び、設定する音色の音色データ番号を示すプログラムナンバpnが記載されており、プログラムチェンジのMIDIイベントと音色データの選択操作とは等価である。
【0080】
そして、この処理においてCPU11はまず、プログラムナンバpnの値を、第pパートの音色番号TCN(p)としてカレント音色データメモリ103に設定する(S31)。その後、音色ライブラリ106から音色番号pnの音色データを読み出し、第pパートのカレント音色データTCD(p)としてカレント音色データメモリ103に記憶させる(S32)。
【0081】
そして、音源サーバとの論理接続が確立された状態でなければそのまま処理を終了するが(S33)、確立されていれば、ステップS31及びステップS32で設定した音色番号TCN(p)とカレント音色データTCD(p)を、パート番号pと共に音源サーバ310の音源制御プロセスに送信する(S34)。
【0082】
これに対し、PC30のCPU31は、図8に示すように、シンセサイザ10から受信した各パートの音色番号及びカレント音色データを、指定されたパートの音色番号及びカレント音色データとしてカレント音色データメモリ314に記憶させる。この場合、指定されたパートのデータとして以前に記憶していたデータは破棄し、受信したデータを、新たなカレント音色データ等として記憶させる。
【0083】
また、図12に、シンセサイザ10のCPU11がパラメータ変更イベントの検出時に実行する処理のフローチャートを示す。
この処理も、図11の処理と同様、主制御部107及びカレント音色データ送信部104の機能に関する処理であり、主制御部10がMIDI_I/O14から音源制御部102を介してカレント音色データのパラメータの値を変更する要求(システム・エクスクルーシブのパラメータ・チェンジ)を示すMIDIデータを受け取った場合、ないし、操作パネルで第pパートのカレント音色データのep番目のパラメータの値をevに変更する操作が行われた場合に開始される。
なお、上記のパラメータ・チェンジには、どのパートのカレント音色データのパラメータの値を変更するかを示すパート番号p、どのパラメータの値を変更するかを示すパラメータ番号ep及び、変更後のパラメータの値を示す変更値evが記載されている。
【0084】
そして、この処理においてCPU11はまず、音源サーバとの論理接続が確立された状態であるか否か判断し(S41)、確立されていれば、音源サーバ310の音源制御プロセスに、第pパートのカレント音色データのep番目のパラメータの値をevに変更する指示を送信する(S42)。
【0085】
これに対し、PC30のCPU31は、図8に示すように、シンセサイザ10からの変更指示に従い、カレント音色データメモリ314に記憶しているカレント音色データ中のパラメータの値を変更する。
また、シンセサイザ10側でも、CPU11が、カレント音色データメモリ103に記憶している第pパートのカレント音色データのep番目のパラメータの値をevに変更し(S43)、処理を終了する。
【0086】
シンセサイザ10は、以上の図11及び図12に示した処理により、シンセサイザ10側で波形データの生成に使用する音色が変更されたり、そのパラメータが編集されたりした場合に、音源サーバ310側にも速やかにその変更を反映させることができる。従って、カレント音色データが変更されたとしても、音源部17と音源部312とに同等な波形データ生成動作を行わせることができる状態を維持することができる。
【0087】
次に、図13に、シンセサイザ10のCPU11が音源サーバとの接続切断を検出した場合に実行する処理のフローチャートを示す。
シンセサイザ10のCPU11は、論理接続が確立されていた音源サーバから波形データの受信がなくなった場合に、音源サーバとの接続が切断されたと判断する。そして、図13に示す処理を実行し、発音ch数Ncから、接続が切断された音源サーバの発音ch数Npcを減じる(S61)。この場合、接続が切断された音源サーバの発音chにおいて発音が実行中であったとしても、この発音に対する発音chの再割り当てを行う必要はない。
【0088】
そして、この処理以降は、接続が切断された音源サーバの発音chは発音への割り当てには用いず、音源部17が有する発音chのみを、発音への割り当てに用いる。なお、切断が検出された場合、ミキサ18は、ハードウェアにより自動的に波形I/O19bからの入力をミュートする。
以上の処理により、PC30との物理的な接続切断や、PC30の動作停止等により、音源サーバとの論理接続が切断された場合でも、シンセサイザ10が有する能力の範囲内での波形データ生成を、切断前と同様に継続することができる。また、再度PC30との接続が回復された場合には、図4に示した処理により再度接続を確立することができる。
【0089】
以上説明してきたシンセサイザ10によれば、音源機能を提供可能なPC30を接続することにより、本体の音源機能を拡張し、かつ拡張した音源機能を本体の音源機能と同様に利用することができる。このとき、ユーザが何ら新たな設定を行わなくても、自動的に、あたかも本体音源部の発音ch数を増加させたかのように機能拡張を行うことができるため、拡張機能を、極めて容易に利用することができる。
【0090】
以上で実施形態の説明を終了するが、装置のハードウェア構成、機能構成、データの構成、具体的な処理内容等が、上述の実施形態で説明したものに限られないことはもちろんである。
例えば、上述した実施形態では、PC30側で動作させる音源デーモンや、音源サーバ310の機能を実現するプロセスを、バックグラウンドサービスあるいはシステムプロセスとして実行させる例について説明したが、アプリケーションであるDAWアプリをこのような用途で利用できるようにしてもよい。
【0091】
また、音色データとして、複数のエレメント音により1つの音色を規定する音色データを用いることもできる。この場合、1つのノートオンイベントと対応する発音に複数の発音chを割り当て、各発音chで別々のエレメント音に係る波形データを生成させることになるが、発音chの割り当て自体は、図9のステップS51の場合と同様に、必要な数だけの割り当てを行えばよい。そして、音源サーバ側の発音chが割り当てられた場合には、割り当てられた発音chの番号に加えて発音させるエレメント音の指定も、ノートオンイベントに付して音源制御プロセスに送信すればよい。
【0092】
そして、音源制御プロセスが、指定された発音chで、パートに従って定められるカレント音色データのうち、指定されたエレメント音に関する発音を行わせるようにすれば、音源サーバ310側の音源部312でも、シンセサイザ10側の音源部17の場合と同様に、適切なエレメント音に係る波形データを生成することができる。
【0093】
また、上述した実施形態では、シンセサイザ10と論理接続する音源サーバを1つしか示していないが、シンセサイザ10が複数の音源サーバと同時に論理接続を行うことも可能である。この場合には、各音源サーバと別々に論理接続を行い、シンセサイザ10が有する発音chが、各音源サーバが提供可能な発音ch数の合計だけ増加したとして発音chの割り当てを行えばよい。
【0094】
またこの場合、ミキサ18は、各音源サーバから、その音源サーバの音源部が生成した波形データを、時分割や帯域分割等により別々に受け取り、最終的に、シンセサイザ10の音源部が生成した波形データと、論理接続されている全音源サーバの音源部が生成した波形データとを、全て合成して出力するようにすればよい。そして、いずれかの音源サーバとの論理接続が切断された場合には、その音源サーバから受信していた波形データのみをミュートして合成処理を続ければよい。
これらの場合において、1台の装置が複数の音源サーバの機能を提供しても、複数の装置が各々音源サーバの機能を提供してもよい。
【0095】
また、シンセサイザ10において、音源サーバとの論理接続により発音に使用可能な発音ch数が増加した場合に、パネル表示器16bに図14に示すような表示を行い、増加した発音ch数と、利用可能な発音ch数とを通知するようにしてもよい。また、単に機能拡張がなされた状態になったことを示すマーク表示をする等してもよい。このようにすれば、音源機能の拡張が適切に行われたことをユーザが容易に認識でき、さらに利便性を向上させることができる。
【0096】
また、上述した実施形態では、各種コマンドを送受信するための伝送路とは別に、MIDIデータをリアルタイム伝送するためのMIDI伝送路を設定するようにしていたが、コマンドのデータ形式をMIDIデータとは区別できる形式にして、コマンドを伝送するのと同じ伝送路を用いてMIDIデータを伝送するようにしてもよい。その場合、図4のステップS18の論理接続時に、通信経路50に新たなMIDI伝送路を設定する必要は無くなる。
【0097】
また、この発明が、シンセサイザ以外にも、電子楽器等、音源手段を有する任意の波形生成装置に適用可能なことは、もちろんである。この場合において、演奏操作子が、鍵盤ではなく、弦楽器、管楽器、打楽器等の任意の形状のものであっても構わない。演奏操作子やサウンドシステム自体も、必須の構成要素ではなく、外部から入力する演奏データに従って波形データを生成し、外部のレコーダ等に出力する装置であってもよい。
【0098】
また、音源サーバ機能を提供する装置がPC等の汎用コンピュータでなく、専用の音源装置であったとしても、ユーザが何ら新たな設定を行わなくても自動的にあたかも本体音源部の発音ch数を増加させたかのように機能拡張を行うことができるという点では、同等な効果を得ることができる。
また、以上述べてきた変形例は、矛盾しない範囲で任意に組み合わせて適用することができる。
【産業上の利用可能性】
【0099】
以上の説明から明らかなように、この発明の波形生成装置によれば、波形生成装置の音源機能を容易に拡張し、かつ拡張した音源機能を本体の音源機能と同様に利用できるようにすることができる。
従って、利便性の高い波形生成装置を提供することができる。
【図面の簡単な説明】
【0100】
【図1】この発明の波形生成装置の実施形態であるシンセサイザ及び、そのシンセサイザに音源機能を提供可能なPCのハードウェア構成を示す図である。
【図2】図1に示したシンセサイザ及びPCの機能構成を示す図である。
【図3】図2に示したカレント音色データメモリに記憶させるデータの構成を示す図である。
【図4】シンセサイザのCPUが定期的に実行する接続確認処理のフローチャートである。
【図5】PCのCPUが実行する音源デーモンの処理のフローチャートである。
【0101】
【図6】図5のステップS113で実行する処理の例を示す図である。
【図7】PCのCPUが実行する音源制御プロセスの処理のフローチャートである。
【図8】図7のステップS123で実行する処理の例を示す図である。
【図9】シンセサイザのCPUがノートオンイベントの検出時に実行する処理のフローチャートである。
【図10】PCのCPUが実行する音源+ミキサプロセスの処理のフローチャートである。
【0102】
【図11】シンセサイザのCPUがプログラムチェンジイベントの検出時に実行する処理のフローチャートである。
【図12】シンセサイザのCPUがパラメータ変更イベントの検出時に実行する処理のフローチャートである。
【図13】シンセサイザのCPUが音源サーバとの接続切断を検出した場合に実行する処理のフローチャートである。
【図14】シンセサイザが機能拡張状態を通知する表示の例を示す図である。
【符号の説明】
【0103】
10…シンセサイザ、11…CPU、12…フラッシュメモリ、13…RAM、14…MIDI_I/O、15…演奏操作子、16…操作パネル、16a…パネル操作子、16b…パネル表示器、17,312…音源部、18,313…ミキサ、19…通信I/F、20…DAC、21…サウンドシステム、22…バスライン、30…PC、101…MIDIデータ生成部、102,311…音源制御部、103,314…カレント音色データメモリ、104…カレント音色データ送信部、105…接続処理部、106…音色ライブラリ、107,301…主制御部、310…音源サーバ
【技術分野】
【0001】
この発明は、各発音チャンネルになされている設定に基づいて複数の発音チャンネルで波形データを生成する音源手段を有する波形生成装置に関する。特に、音源機能を提供可能な外部の情報処理装置と通信可能な波形生成装置に関する。
【背景技術】
【0002】
従来から、音源手段を有する波形生成装置として、シンセサイザや電子楽器等、種々の装置が知られている。また、PC(パーソナルコンピュータ)等のコンピュータにDAW(デジタルオーディオワークステーション)アプリ等の所要のプログラムを実行させ、ソフトウェアにより音源手段の機能を実現することも行われている。
【0003】
また、これらの波形生成装置において、装置に搭載したハードウェアでは能力が不足する場合、音源ボードやエフェクタボードをプラグインボートとして装着して機能を追加できるようにすることが行われている。
また、DAWアプリにも、ネットワーク接続された複数台のPCに処理を分散させて実行させることにより、負荷分散を実現し、より負荷の大きな処理を実行させることができるようにしたものが知られている。
このようなDAWアプリとしては、例えば非特許文献1,2に記載のものが挙げられる。
【0004】
【非特許文献1】“Logic Pro Distributed Audio”、[online]、2007年、Apple Inc.、[2007年7月13日検索]、インターネット<URL:http://www.apple.com/logicpro/distributedaudio.html>
【非特許文献2】“Cubase SL Features”、[online]、2005年、Steinberg Canada、[2007年7月13日検索]、インターネット<URL:http://www.steinbergcanada.com/products/cubase/cubasesl_features_systemlink.htm>
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、上述した従来の機能拡張手法では、シンセサイザや電子楽器のように、専用ハードウェアによって構成され、単体で動作させることも多い波形生成装置において音源機能の拡張を行う際に、十分な利便性を得ることができなかった。
例えば、音源回路を搭載したプラグインボードを波形生成装置に装着できるようにするためには、専用のソケットや通信回路、電源等を設ける必要があり、コストアップや、デザイン上の制約になった。また、プラグインボードにより拡張された音源は、本体に搭載された音源とは異なるユニットであると取り扱われ、拡張された音源を適切に動作させるためには、本体に搭載された音源とは別にパラメータの設定を行う必要があった。
【0006】
また、波形生成装置にPCを接続し、PC上で実行させるDAWアプリの機能を追加の音源として機能させることも知られている。しかし、この場合も、あくまでも本体に搭載された音源とは別にDAWアプリの機能を追加する、という位置づけであり、本体に搭載された音源と別にパラメータの設定を行う必要がある点では、プラグインボードの場合と同様であった。
また、非特許文献1や2に記載の技術も、単に複数のPC間で処理負荷を分散するのみであり、波形生成装置における音源機能の拡張という点では、十分な効果を得られるものではなかった。
【0007】
この発明は、このような問題を解決し、波形生成装置の音源機能を容易に拡張し、かつ拡張した音源機能を本体の音源機能と同様に利用できるようにすることを目的とする。
【課題を解決するための手段】
【0008】
上記の目的を達成するため、この発明の波形生成装置は、各発音チャンネルになされている設定に基づいて複数の発音チャンネルで波形データを生成する第1の音源手段と、上記第1の音源手段に生成させる波形データの音色を規定するカレント音色データを記憶するカレント音色記憶手段と、演奏内容を規定する演奏データを取得し、その演奏データに従って音源手段を制御して波形データの生成を行わせる音源制御手段と、各発音チャンネルになされている設定に基づいて複数の発音チャンネルで波形データを生成し、外部に出力する第2の音源手段を有する情報処理装置と通信するための通信手段と、上記第1の音源手段が生成した波形データと、上記通信手段が上記情報処理装置から受信した波形データとを合成して出力する波形出力手段とを有する波形生成装置において、上記カレント音色記憶手段に記憶しているカレント音色データを、上記通信手段に接続された情報処理装置に送信し、上記第2の音源手段で生成する波形データの音色を規定するカレント音色データとして記憶させる音色データ送信手段と、上記接続された情報処理装置に、上記第2の音源手段が生成した波形データの送信先をその波形生成装置と設定させる接続要求手段とを設け、上記音源制御手段が、上記通信手段に上記情報処理装置が接続されていない場合、上記演奏データに従った発音に、上記第1の音源手段が有する発音チャンネルのうち必要な数の発音チャンネルを割り当て、その割り当てた発音チャンネルに対して、演奏データ及び上記音色記憶手段が記憶しているカレント音色データの内容に従ったパラメータの値を設定すると共に発音指示を行うことにより、上記第1の音源手段に波形データを生成させ、上記通信手段に上記情報処理装置が接続されている場合、(a)上記演奏データに従った発音に、上記第1の音源手段が有する発音チャンネル及び接続された上記情報処理装置において動作している第2の音源手段が有する発音チャンネルのうち必要な数の発音チャンネルを割り当て、(b)上記第1の音源手段が有する発音チャンネルを割り当てた場合には、その割り当てた発音チャンネルに対して、上記演奏データ及び上記音色記憶手段が記憶しているカレント音色データの内容に従ったパラメータの値を設定すると共に発音指示を行うことにより、上記第1の音源手段に波形データを生成させ、(c)上記第2の音源手段が有する発音チャンネルを割り当てた場合には、上記演奏データにその割り当てた発音チャンネルの識別情報を付して上記接続された情報処理装置に送信することにより、その情報処理装置に、その識別情報が示す発音チャンネルにおいて、送信した演奏データと、上記音色データ送信手段により送信して記憶させたカレント音色データとに従った波形データの生成を行わせるようにしたものである。
【0009】
このような波形生成装置において、上記カレント音色データの編集操作を受け付けるための操作子と、その操作子の操作に応じてカレント音色データの内容を編集する音色編集手段とを設け、その音色編集手段が、上記通信手段に上記情報処理装置が接続されていない場合、上記操作子の操作に応じて上記カレント音色記憶手段が記憶するカレント音色データの内容を編集し、上記通信手段に上記情報処理装置が接続されている場合、上記操作子の操作に応じて上記カレント音色記憶手段が記憶するカレント音色データの内容を編集すると共に、その編集内容を上記接続されている情報処理装置に送信し、その情報処理装置に記憶させたカレント音色データの内容に対し、上記カレント音色記憶手段が記憶するカレント音色データになされた編集と同じ編集を行わせるようにするとよい。
【0010】
さらに、上記通信手段を介して上記情報処理装置と通信可能となったことを検出した場合に、(d)上記情報処理装置に上記第2の音源手段の機能を起動させ、(e)上記第2の音源手段との間で、種々の動作を指示するための制御データの送受信と、その第2の音源手段における波形データの生成に使用させる演奏データの送信と、その第2の音源手段が生成した波形データの受信とを行うための論理接続を行うと共に、(f)上記音色記憶手段に記憶しているカレント音色データを、上記通信可能となった情報処理装置に送信し、上記論理接続を行った第2の音源手段で生成する波形データの音色を規定するカレント音色データとして記憶させる手段を設けるとよい。
【0011】
さらにまた、複数の音色データを記憶する音色ライブラリと、その音色ライブラリに記憶されている音色データのうち、上記第1の音源手段に波形データを生成させる際に用いる音色データの選択を受け付ける選択受付手段と、その選択受付手段が受け付けた選択に従って上記カレント音色データを設定するカレント音色設定手段とを設け、そのカレント音色設定手段が、上記通信手段に上記情報処理装置が接続されていない場合、上記選択された音色データを新たなカレント音色データとして上記カレント音色記憶手段に記憶させ、上記通信手段に上記情報処理装置が接続されている場合、上記選択された音色データを新たなカレント音色データとして上記カレント音色記憶手段に記憶させると共に、上記接続されている情報処理装置に送信し、その情報処理装置に、新たなカレント音色データとして記憶させるようにするとよい。
【0012】
さらに、波形生成装置と上記第2の音源手段との間で上記論理接続がなされた場合に、音源手段の機能が拡張され、波形データの生成に使用可能な発音chの数が増加したことを示す表示を行う手段を設けるとよい。
【発明の効果】
【0013】
以上のようなこの発明の波形生成装置によれば、波形生成装置の音源機能を容易に拡張し、かつ拡張した音源機能を本体の音源機能と同様に利用できるようにすることができる。
【発明を実施するための最良の形態】
【0014】
以下、この発明を実施するための最良の形態を図面に基づいて具体的に説明する。
まず、図1に、この発明の波形生成装置の実施形態であるシンセサイザ及び、そのシンセサイザに音源機能を提供可能なPCのハードウェア構成を示す。
図1に示すように、シンセサイザ10は、CPU11,フラッシュメモリ12,RAM13,MIDI(Musical Instruments Digital Interface:登録商標)I/O(入出力部)14,演奏操作子15,パネル操作子16a,パネル表示器16b,音源部17,ミキサ18,通信I/F19を備え、これらがバスライン22により接続されている。また、この他に、DAC(デジタル/アナログコンバータ)20及びサウンドシステム21も備えている。
【0015】
そして、CPU11は、シンセサイザ10を統括制御する制御手段であり、フラッシュメモリ12に記憶された所要の制御プログラムを実行することにより、演奏操作子15及びパネル操作子16aの操作内容検出、パネル表示器16bの表示制御、MIDI_I/O14を介したMIDIデータの送受信制御、通信I/F19を介したMIDIデータ,波形データ,制御データ等の送受信の制御、音源部17による波形データ生成の制御、ミキサ18によるミキシングの制御等の種々の制御動作を行う。
【0016】
フラッシュメモリ12は、CPU11が実行する制御プログラムや、変更する必要のないデータ等を記憶する記憶手段である。
RAM13は、CPU11のワークメモリとして使用したり、一時的に使用するパラメータの値等を記憶したりする記憶手段である。
【0017】
MIDI_I/O14は、外部装置との間でMIDIデータを送受信するためのインタフェースである。
演奏操作子15は、鍵盤やペダル等、ユーザによる演奏操作を受け付けるための操作子である。
【0018】
パネル操作子16aは、キー、つまみ、スライダ、ピッチベンド等、ユーザからの、シンセサイザ10の動作に関する設定の操作を受け付けるための操作子である。
パネル表示器16bは、液晶ディスプレイ(LCD)や発光ダイオード(LED)ランプ等によって構成され、シンセサイザ10の動作状態や設定内容あるいはユーザへのメッセージ、ユーザからの指示を受け付けるためのグラフィカル・ユーザ・インタフェース(GUI)等を表示するための表示手段である。
なお、LCDにタッチパネルを積層して、パネル表示器16bとパネル操作子16aとを一体に構成することもできる。
【0019】
音源部17は、各発音チャンネルになされている設定に基づいて複数の、例えば128の発音チャンネル(ch)でデジタル波形データを生成する第1の音源手段である。
そして、この音源部17による波形データの生成動作は、音源制御手段として機能するCPU11が、発音を行わせる発音chと対応したchレジスタに、発音させる音の音色、音高、強度、エンベロープ等に応じた適当なパラメータの値を設定すると共に、発音開始や停止、急速減衰等の指示をすることにより、制御する。
【0020】
ミキサ18は、音源部17の各発音chで生成された波形データを、ステレオのLとRの各系統毎に重み付けして累算すると共に、通信I/F19を介してPC30等の外部装置から受信した波形データと合成(ミキシング)したサンプリング周期毎のステレオ波形データを出力する波形出力手段である。通信I/F19から波形データを受信していない場合には、音源部17が生成した波形データについてのみ累算を行えばよい。
【0021】
通信I/F19は、適当な通信経路(ネットワーク)50を介してPC30等の外部装置との間で通信するためのインタフェースである。この通信経路50は、有線でも無線でもよいし、中継機器の有無も問わないが、シンセサイザ10側から見て少なくともMIDIデータの送信及びデジタル波形データの受信についてリアルタイム伝送(伝送遅延時間が数ミリ秒以下)が可能であり、さらにコマンドや音色データ等の制御データの伝送も可能な通信経路を採用する。例えば、IEEE1394を利用したmLANを採用することが考えられる。また、USB(Universal Serial Bus)も利用可能である。もちろん、1対1の通信路に限られることはない。
【0022】
DAC20は、ミキサ18から出力されるデジタルの波形データを、アナログの楽音信号に変換し、サウンドシステム21に供給する機能を有する。
サウンドシステム21は、スピーカ等により構成され、DAC20から供給される楽音信号に従った音声を出力する音声出力手段である。
以上のようなシンセサイザ10は、ユーザの演奏操作に従い、ユーザが指定した音色の楽音を発生させて出力することができる。自動演奏の楽音についても、同様に出力することができる。
【0023】
一方、PC30は、CPU31,ROM32,RAM33,HDD34,その他I/O35,ディスプレイ36,キーボード37,マウス38等のポインティングデバイス,通信I/F39を備え、これらが必要に応じて不図示のインタフェースを介してバスライン40により接続された構成であり、ハードウェアとしては公知のものを適宜利用すればよい。
ただし、通信I/F39としては、シンセサイザ10において採用されている通信経路50を介して、シンセサイザ10との間の通信が可能な規格のものを用いる。
【0024】
また、CPU31を始めとする各ハードウェアとしては、適当なプログラムを実行することにより、後述する音源サーバの機能を実現する能力を有するものを用いる。プログラム自体は、予めROM32やHDD34に格納していても、必要に応じて外部からダウンロードしてもよい。
なお、このPC30は、常にシンセサイザ10と接続されている必要はなく、シンセサイザ10の音源機能を拡張したい場合に、任意のタイミングでシンセサイザ10に接続すればよい。そして、この接続を行うことにより、シンセサイザ10とPC30とに楽音(波形)生成システムを構成させることができる。
【0025】
次に、図2に、図1に示したシンセサイザ10及びPC30の機能構成を示す。
この図において、MIDIデータの伝達経路は太い実線の矢印で、波形データの伝送経路は太い破線の矢印で示している。
図2に示す通り、シンセサイザ10は、図1に示したMIDI_I/O14〜サウンドシステム21の各構成要素により実現される機能(この図では、パネル操作子16aとパネル表示器16bは、まとめて操作パネル16として示している)に加え、MIDIデータ生成部101,音源制御部102,カレント音色データメモリ103,カレント音色データ送信部104,接続処理部105,音色ライブラリ106,主制御部107の機能を有する。これらのMIDIデータ生成部101〜主制御部107の機能は、CPU11が所要のプログラムを実行し、シンセサイザ10が備える各種ハードウェアを制御することにより実現されるものである。
また、PC30は、主制御部301及び、音源サーバ310の機能を有する。
【0026】
以下、各部の機能について説明する。
まず、シンセサイザ10のMIDIデータ生成部101は、演奏操作子15に対してなされた演奏操作の内容を検出し、その操作内容を示すMIDIデータ(ノートオン、ノートオフ等)を生成する機能を有する。そして、MIDIデータ生成部101は、これらの生成したMIDIデータを音源制御部102に供給し、そのMIDIデータに従った音源部17の制御を行わせる。
【0027】
また、シンセサイザ10は、後述のように複数パートの波形データの生成が可能である。そこで、MIDIデータ生成部101は、演奏操作子15のうちどの範囲の操作子がどのパートの演奏に用いられるものであるかを示す対応関係を把握し、演奏操作子15の操作に応じてMIDIデータを生成する場合には、その対応関係に従った適切なパート番号(MIDIチャンネル)を、生成するMIDIデータに付す。なお、演奏操作子15とパートとの対応関係は、操作パネル16の操作により変更可能である。
【0028】
音源制御部102は、MIDIデータ生成部101が生成したり、MIDI_I/O14を介してMIDIシーケンサ等の外部装置から受信したり、主制御部107が操作パネル16の操作や自動演奏用の楽曲データに基づいて生成したりした、楽曲の演奏内容を規定する演奏データであるMIDIデータに基づいて、音源部17における波形データの生成動作を制御する機能を有する。
【0029】
この制御には、MIDIデータに従った各発音に、使用する発音chを割り当てる処理を含む。そして、この割り当てを行う際、シンセサイザ10がPC30と接続され、音源サーバ310が有する音源部312も発音に利用可能な状態であれば、音源制御部102は、シンセサイザ10側の音源部17が有する発音chと、音源サーバ310側の音源部312が有する発音chとを、区別せずにこの割り当てを行う。
【0030】
そして、音源サーバ310側の音源部312の発音chを割り当てた場合には、音源制御部102は、受け取ったMIDIデータに、発音に使用させる発音chの番号(識別情報)を付してPC30の音源サーバ310に送信し、音源制御部311にその内容に従って音源部312を制御させ、波形データの生成を行わせる。どの番号の発音chがどの音源部のものであるかを示す対応関係は、音源制御部102が管理し、主制御部107もこれを把握している。
【0031】
また、このMIDIデータは、通信I/F19が備えるMIDI_I/O19aから送信し、PC30側の通信I/F39が備えるMIDI_I/O39aが受信する。
なお、図2では、通信I/F19,39が、それぞれMIDI_I/O19a,39a、波形I/O19b,39b、その他I/O19c,39cの3つのI/Oを備えるように示しているが、これらのI/Oが物理的に独立したものである必要はなく、通信経路50を介したデータ転送の帯域を、これら3種のデータ入出力の用途に適宜配分して用いればよい。
また、音源制御部102は、カレント音色データメモリへのカレント音色データの登録及び編集に関連する機能も有するが、この点についてはカレント音色データメモリ103及びカレント音色データ送信部104の説明において述べる。
【0032】
カレント音色データメモリ103は、音源部17に生成させる波形データの音色を規定するカレント音色データを記憶する記憶手段である。このカレント音色データは、音源制御部102がプログラムチェンジイベントを示すMIDIデータを検出した場合に、主制御部107を介して音色ライブラリ106から読み出し、カレント音色データメモリ103に設定する。
そして、音源部17は、サンプリング周期毎に、このカレント音色データメモリ103の、chレジスタに設定されたパラメータの値に従って決定される読み出しアドレスから波形データを読み出し、これに補間やエンベロープ処理を行って、波形データを生成する。
【0033】
ここで、図3に、カレント音色データメモリ103に記憶させるデータの構成を示す。
この図に示すように、カレント音色データは演奏パート毎に記憶可能であり、ここではカレント音色データメモリ103には16パート分の音色データを記憶させることができる。従って、音源部17にも、演奏パート毎に異なる音色の波形データを生成させることができる。また、カレント音色データメモリ103には、各パートについて、カレント音色データの音色番号も記憶させておく。
【0034】
さらに、カレント音色データメモリ103には、各発音chの状態を示すデータも記憶させる。このデータとしては、例えば発音に使用中か使用中でないかの区別(オンオフ)や、ノートオンに応じて発音を開始させ、使用中となった発音chについて、そのノートオンに対応するノートオフが発生したか否か(ノートオフが発生すると減衰(リリース)状態となる)の区別、発音中の音(波形データ)のレベル等の情報が考えられる。
【0035】
またここには、シンセサイザ10側の音源部17の発音chとの情報と、音源サーバ310側の音源部312の発音chの情報とをどちらも記憶させる。音源部17の情報については、主制御部107が音源部17から取得して書き込めばよい。
音源部312の情報については、主制御部107が定期的に音源サーバ310に問い合せて必要な情報を取得するか、音源サーバ310に必要な情報を定期的に主制御部107に送信する機能を設けるかして、主制御部107がその情報をカレント音色データメモリ103に登録すればよい。シンセサイザ10においては、前者の構成を採用している。
【0036】
図2の説明に戻る。
カレント音色データ送信部104は、シンセサイザ10と音源サーバ310との間にデータ転送のための論理接続が確立されている状態で、カレント音色データメモリ103の内容が変更された場合に、音源制御部102からの変更内容の通知に基づき、音源サーバ310にその変更内容を送信し、音源サーバ310に設けたカレント音色データメモリ314の内容にも、カレント音色データメモリ103側と同じ変更を行わせる機能を有する。この変更には、プログラムチェンジイベントに応じた新たな音色の選択によるものと、操作パネル16の操作に応じた音色パラメータの編集によるものとがある。
また、カレント音色データ送信部104は、シンセサイザ10と音源サーバ310との間に論理接続が新たに確立された場合、接続処理部105からの通知に基づき、カレント音色データメモリ103の内容をその音源サーバ310に送信し、カレント音色データメモリ314に記憶させる機能も有する。
【0037】
そして、これらの機能により、図3に示したように、シンセサイザ10側のカレント音色データメモリ103が記憶する音色データと、音源サーバ310側のカレント音色データメモリ314が記憶する音色データとを、同一の内容に保つことができる。音色データやその変更内容は、その他I/O19cから送信し、PC30側ではその他_I/O39cが受信する。
なお、発音chの状態の情報については、カレント音色データメモリ314に記憶させる必要はない。
【0038】
接続処理部105は、シンセサイザ10とPC30とが新たに接続された場合に、PC30に音源サーバ310を起動させ、シンセサイザ10と音源サーバ310との間の論理接続を確立する機能を有する。
【0039】
音色ライブラリ106は、シンセサイザ10が使用可能な複数の音色データを記憶する記憶手段である。そして、操作パネル16における操作や、楽曲データにおける指定により、演奏に使用するデータとして選択された音色データが、この音色ライブラリ106から読み出されてカレント音色データメモリ103に記憶され、音源部17における波形データの生成に用いられる。
【0040】
なお、操作パネル16における操作により、音色ライブラリ106が記憶する音色データを編集したり、音色ライブラリ106に新たな音色データを登録したりすることも可能である。
主制御部107は、シンセサイザ10の各部を制御し、以上説明してきた機能を適切に発揮させる機能を有する。また、操作パネル16における操作の検出や表示も行う。
【0041】
一方、PC30の主制御部301は、PC30において提供可能な音源サーバ310の機能を管理する機能を有する。そして、シンセサイザ10側からの要求に応じて、提供可能な音源サーバ310の機能の情報を提供したり、音源サーバ310を起動させたりする機能を有する。
【0042】
また、音源サーバ310は、必要に応じて起動され、外部装置からの要求に応じて、各発音チャンネルになされている設定に基づいて複数の発音チャンネルでステレオのデジタル波形データを生成し、外部に出力する第2の音源手段の機能を提供する。この音源サーバ310の機能は、常時有効にしておく必要はなく、シンセサイザ10から音源サーバ機能の起動要求があった場合に、CPU31に所要のプログラムの実行を開始させて、機能を有効にすればよい。
音源サーバ310の機能を実現するためのプログラムをPC30に複数インストールしておき、これらを選択的に起動/停止して、機能の異なる複数の音源サーバ310を任意に使い分けることができるようにしてもよい。
【0043】
そして、この音源サーバ310は、音源制御部311,音源部312,ミキサ313,カレント音色データメモリ314を有する。これらの各部は、概略では、シンセサイザ10側の音源制御部102,音源部17,ミキサ18,カレント音色データメモリ103と同様な機能を有する。
【0044】
ただし、音源制御部311は、発音に対する発音chの割り当ては行わず、音源制御部102から受信したMIDIデータに付された発音ch番号が示す発音chに、そのMIDIデータに従った波形データの生成を行わせる。
また、ミキサ313は、音源部312の各発音chで生成された同じサンプリング周期の波形データを、ステレオのLとRの各系統毎に音量制御して累算し、生成されたステレオの波形データを、シンセサイザ10に対して送信し、サンプリング周期毎に、ミキサ18における波形データ合成処理に供する。この波形データは、通信I/F39が備える波形_I/O39bから送信し、シンセサイザ10側の通信I/F19が備える波形_I/O19bが受信する。
【0045】
そして、シンセサイザ10側のミキサ18がシンセサイザ10側の音源部17の各発音chで生成された波形データを、ステレオのLとRの各系統毎に音量制御して累算すると共に、ミキサ313から供給されるステレオの波形データと合成することにより、あたかも、音源部17と音源部312が1つの音源部として機能して音源制御部102が各発音chに割り当てた発音を実行しているかのような波形データを得ることができる。
【0046】
次に、上述したシンセサイザ10及びPC30のCPUが実行する処理について説明する。
まず、図4に、シンセサイザ10のCPU11が定期的に実行する接続確認処理のフローチャートを示す。また、図5に、PC30のCPU31が実行する音源デーモン処理のフローチャートを、図6に、その処理中で実行する受信コマンドに応じた処理の具体例を示す。
【0047】
図4に示す処理は、図2に示した接続処理部105の機能と対応するものである。そして、シンセサイザ10のCPU11は、定期的なタイミングで図4に示す処理を開始し、まず、同一のネットワークに接続されている機器を検索する(S11)。この検索は、通信I/F19を介してMIDIデータや波形データをリアルタイムで伝送可能な範囲にどのような機器が接続されているかを検索するものであり、通信規格に応じた適当なプロトコルにより行うことができる。また、過去に検索した結果に基づき、ネットワークにどのような機器が接続されているかを示す情報は保持しておく。
【0048】
そして、ステップS11の検索により未確認の機器が発見されたか否か判断し(S12)、もしあれば、発見した機器に、提供可能な音源機能の内容を問い合せる(S13)。。ここで、未確認の機器とは、前回の検索では検索されなかった装置や、音源サーバ機能の情報を取得できていない装置である。
【0049】
一方、PC30のCPU31は、PC30の電源投入時に自動的に、あるいはユーザの起動指示に応じて、図5に示す音源デーモンの処理を開始する。この処理は、図2に示した主制御部301の機能と対応するものであり、CPU31は、バックグラウンドサービスあるいはシステムプロセスとしてこの処理を実行する。
【0050】
そしてこの処理は、シンセサイザ10等の外部装置からの要求を受け付けて、その要求に応じた処理を行うためのものである。すなわち、CPU31は、所要の初期設定を行った後(S111)、音源サーバに関するコマンドの受信があるまで待機し(S112)、コマンドを受信した場合、受信したコマンドに応じた処理を実行する(S113)。この処理は例えば、図6に示すような問い合わせに対する応答やプロセスの起動である。そして、処理後完了後、あるいは処理の実行を他のプロセスに指示した後、再度ステップS112に戻って次のコマンドを待つ。
【0051】
図4のステップS13でCPU11が行う問い合わせは、この音源デーモンが受け付け可能な音源機能問い合わせコマンドによって行い、PC30は、音源デーモンが起動された状態でこのコマンドを受信すると、図6に示すように、提供可能な音源機能、すなわちPC30において起動可能な音源サーバ310の対応機種及び発音ch数を返答してくる。
【0052】
なお、音源サーバ310の機能を実現するプログラムは、音源デーモンに対するプラグインとしてHDD34にインストールされている。そして音源デーモンは、起動時に、HDD34の所定のプラグインフォルダに置かれた、音源サーバ310の機能を実現するプログラムをサーチし、発見された各プログラムのファイルから、メーカー名、対応機種、発音ch数、バージョン情報などを読み込んで、これらの情報を、提供可能な音源サーバ310の情報として登録した音源テーブルを作成しておく。そして、音源デーモンは、この音源テーブルの情報に基づき、音源機能問い合わせコマンドに対する返答を行う。
【0053】
シンセサイザ10のCPU11は、ステップS13での問い合わせに返答があると、対応機種の情報に基づき、問い合わせ先の機器(ここではPC30)が、自機が利用可能な音源機能を提供可能か否か判断する(S14)。なお、問い合わせ先の機器において音源デーモンが起動していない場合には、問い合わせに対する返答はないが、この場合にはステップS14の判断はNOとする。
【0054】
そして、ステップS14でNOの場合にはそのまま処理を終了するが、YESの場合には、返答してきた機器に対し、自機が利用可能な音源機能を提供する音源サーバを指定してその起動を指示する(S15)。複数該当する場合には、どの音源サーバを起動させるかをユーザに選択させてもよい。また、この起動指示は、音源デーモンが受け付け可能な音源サーバ起動コマンドによって行う。
【0055】
これに対し、PC30のCPU31は、図6に示すように、指定された音源サーバの機能を実現するプログラムを、HDD34からRAM33に読み込んで、そのプログラムの実行を開始し、結果を返答する。そして、このことにより、音源制御プロセスと、音源+ミキサプロセスとが起動される。音源制御プロセスは、図2に示した音源制御部311の機能と対応する処理、音源+ミキサプロセスは、音源部312及びミキサ313の機能と対応する処理である。
【0056】
ここで、図7に、CPU31が実行する音源制御プロセスの処理のフローチャートを、図8に、その処理中で実行する受信データに応じた処理の具体例を示す。
CPU31は、音源デーモンが音源制御プロセスの起動を指示すると、バックグラウンドサービスあるいはシステムプロセスとしてこの処理の実行を開始する。
【0057】
そしてこの処理は、外部装置あるいは他プロセスからデータを受信して、そのデータに応じた処理を行うためのものである。すなわち、CPU31は、所要の初期設定を行った後(S121)、データの受信があるまで待機し(S122)、データを受信した場合、受信したデータに応じた処理を実行する(S123)。この処理は例えば、図8に示すような、パラメータ値の保存や設定、論理接続、発音指示等である。そして、処理後完了後、再度ステップS122に戻って次のコマンドを待つ。
【0058】
図4の説明に戻る。
CPU11は、PC30からの返答により音源サーバ機能が起動されたと判断すると(S16)、起動された音源サーバ(ここでは音源サーバ310)に対し、カレント音色データメモリ103に記憶している全パートの音色番号及びカレント音色データを、パート番号の指定と共に送信する(S17)。
【0059】
これに対し、PC30のCPU31は、図8に示すように、シンセサイザ10から受信した各パートの音色番号及びカレント音色データを、指定されたパートの音色番号及びカレント音色データとしてカレント音色データメモリ314に記憶させる。このことにより、シンセサイザ10側と音源サーバ310側とでカレント音色データメモリ中に同じ音色番号及びカレント音色データが記憶されることになる。
【0060】
また、CPU11は、起動された音源サーバと自機との間でMIDIデータ及び波形データを伝送する経路の論理接続を構築する(S18)。
具体的には、まず、CPU11とCPU31とが協同して、ネットワーク50に、シンセサイザ10からPC30へのMIDIデータのリアルタイムの伝送路(MIDI伝送路)と、PC30からシンセサイザ10への波形データのリアルタイムの伝送路(波形伝送路)を設定すると共に、音源制御部102からのMIDIデータがMIDI伝送路に供給されるよう接続し、波形伝送路からの波形データがミキサ18に供給されるよう接続する。そして、CPU31に対し、起動した音源サーバ310のこれらMIDI伝送路および波形伝送路への論理接続を要求する。
【0061】
これに対し、CPU31は、図8に示すように、音源制御プロセスがMIDII/O39aを介して接続要求元(ここではシンセサイザ10)からMIDIデータを受信し、
音源+ミキサプロセスが生成した波形データを波形I/O39bから接続要求元に出力するデータ伝送経路の論理接続を行う。
【0062】
具体的には、MIDI伝送路を介して受信されたMIDIデータが音源制御部311のプロセスに供給されるよう接続し、かつ、ミキサ313のプロセスから出力される波形データが波形伝送路に供給されるよう接続を行う。このように、シンセサイザ10の音源制御部102とPC30の音源制御部311とがMIDI伝送路を介して接続され、かつ、PC30のミキサ313とシンセサイザ10のミキサ18とが波形伝送路を介して接続され、PC30による音源機能の拡張が可能になった状態を、「論理接続が確立された状態」と呼ぶことにする。
【0063】
この状態では、シンセサイザ10側の音源制御部102から音源サーバ310側の音源制御部311にMIDIデータを送信し、音源サーバ310側の音源部312で生成され、ミキサ313で合成された波形データを、シンセサイザ10側のミキサ18で受信して、音源部17が生成した波形データと合成できる。
【0064】
CPU11は、これらが完了すると、ミキサ18において波形I/O39bから受信した信号をフェードインさせる(S19)。その後、割り当て可能な発音ch数Ncに、起動した音源サーバの発音ch数Npcを加え、以後、音源制御部102において音源部17と音源部312のいずれの発音chも発音に対する割り当てに使用できるようにして(S20)、処理を終了する。
【0065】
以上の処理の終了後、シンセサイザ10のユーザは、音源サーバ310の音源部312を、自機の音源部17と全く同様に波形データの生成に利用できるようになる。この場合において、ユーザはPC30に対して何ら設定操作を行う必要はなく、単にPC30をシンセサイザ10が属するネットワークに接続すればよい(音源デーモンが自動起動でない場合には、これを起動する必要がある)。
なお、ステップS15の後所定時間以内に起動OKの返答がない場合には、ステップS16で起動失敗と判断し、そのまま処理を終了する。
【0066】
次に、シンセサイザ10側と音源サーバ310側で、波形データ生成のために実行する処理について説明する。
まず、図9に、シンセサイザ10のCPU11がノートオンイベントの検出時に実行する処理のフローチャートを示す。
この処理は、音源制御部102の機能に関する処理であり、音源制御部102にノートオンイベントを示すMIDIデータが供給された場合に開始される。なお、ノートオンイベントを示すMIDIデータには、発音させる音のパート番号p,ノートナンバnn,ベロシティvelが記載されている。
【0067】
そして、この処理においてCPU11はまず、ノートオンイベントに応じた発音に、制御可能なNc個の発音chの中から使用中でない任意の発音chを割り当て、その発音chの番号をaとする(S51)。
なお、全ての発音chが使用中であった場合には、出力レベルの低い発音chや、既にノートオフしてある発音chを適宜選択して出力を急速減衰させ(トランケート処理)、その発音chを割り当てる。この割り当ては、カレント音色データメモリ103が記憶する発音ch状態のデータに基づいて行うことができる。また、ステップS51でNc個の発音chから具体的にどの発音chを割り当てるかを決定する手法は、適当な公知の手法を、Nc個の発音ch全てがシンセサイザ10側の音源部17のものであると仮定して適用すればよい。
【0068】
次に、割り当てたa番目の発音chが音源サーバ310側のchであるか否かを判断する(S52)。どの番号の発音chをどの音源部が有しているかの情報は、音源制御部102が把握しているとする。
そして、ステップS52でNOであれば、ノートオンイベントに応じた発音を自機の音源部17に行わせるべく、音源部17のa番目の発音chのchレジスタに、カレント音色データメモリ103に記憶している第pパートのカレント音色データとノートナンバnnとベロシティvelとに基づくパラメータの値を設定し(S53)、そのa番目の発音chの発音開始を指示して(S54)、処理を終了する。
【0069】
一方、音源部17は、所定のサンプリング周期毎に、各発音chについてchレジスタの内容を参照し、発音開始が指示されていた場合に、chレジスタに登録されているパラメータの値に従い波形データを生成する。従って、ステップS53,S54の処理により、音源部17にa番目の発音chでノートオンイベントの内容に従った波形データを生成させることができる。
【0070】
なお、ステップS53で設定するパラメータは、音色データに含まれる波形データの読み出し開始アドレス、読み出す波形データとノートナンバnnが示す音高とに応じた波形データ読み出しアドレスの進行速度、ベロシティvelが示す音量に応じた波形エンベロープの形状等である。また、使用する音色データが、ノートナンバやベロシティの範囲に応じて異なる波形データを用いるものであれば、読み出し開始アドレスや進行速度も、ノートナンバnnやベロシティvelに応じて異なる値となる。
【0071】
また、ステップS52でYESの場合には、割り当てた発音chの番号aを、音源サーバ310が使用するch番号a′に変換する(S55)。例えば、シンセサイザ10側では音源部17が有する発音chを1〜128番目、音源部312が有する発音chを129〜256番目として発音chの割り当てを行う一方、音源サーバ310側では、音源部312が有する発音chに番号を振る際に、シンセサイザ10側の発音chを考慮せずに1〜128番目していることが考えられる。そしてこの場合、a′=a−128となる。シンセサイザ10側と、音源サーバ310側とで、発音chの番号として共通の番号を用いるようネゴシエーションする機能を設けるのであれば、この処理は不要である。
【0072】
ステップS55の後、CPU11は、この処理の開始トリガとなったノートオンイベントに発音ch番号a′を付して、a番目の発音chを受け持つ音源サーバ310の音源制御プロセスに送信し(S56)、処理を終了する。
これに対し、PC30側では、音源制御プロセスを実行するCPU31が、シンセサイザ10からステップS56の処理で送信されてくるch番号a′の付されたノートオンイベントを受信すると、図8に示すように、音源+ミキサプロセスが参照するa′番目の発音chのchレジスタに対し、パラメータの設定と発音開始指示を行う。
この処理は、使用するカレント音色データがカレント音色データメモリ314に記憶されているものである点を除けば、シンセサイザ10側の音源部17に波形データの生成を行わせる場合のステップS53の処理と同じものである。
【0073】
以上の処理により、シンセサイザ10は、音源サーバ310の音源部312が有する発音chを、自機の音源部17が有する発音chと全く同様に、ノートオンイベントに応じた発音に割り当て、その内容に従った波形データの生成を行わせることができる。
なお、シンセサイザ10と音源サーバ310との間に論理接続が確立されていない場合には、発音には必ず音源部17の発音chが割り当てられることになるから、ステップS52の判断は常にNOとなり、ステップS55,S56の処理は実行されない。
【0074】
また、CPU11は、ノートオフイベント等、発音chを特定して音源部に対する制御を行う必要のある他のイベントを検出した場合にも、図9のステップS52以下と同様な対応を行う。すなわち、音源サーバ310側の発音chに対する指示が必要な場合には、検出したイベントを示すMIDIデータに指示すべき発音chの番号を付して、その発音chを受け持つ音源サーバ310の音源制御プロセスに送信する。そして、これに対し、PC30側では、音源制御プロセスを実行するCPU31が、図8に示すように、受信したMIDIデータに付されたch番号のchレジスタの値を、そのMIDIデータの内容に従って設定する。
【0075】
従って、シンセサイザ10は、ノートオンイベント以外のイベントについても、音源サーバ310の音源部312が有する発音chを、自機の音源部17が有する発音chと全く同様に制御することができる。また、ステップS51で特定の発音chを急速減衰させる場合にも、同様な対応が可能である。
【0076】
また、図10に、PC30のCPU31が実行する音源+ミキサプロセスのフローチャートを示す。
CPU31は、音源デーモンが起動を指示すると、バックグラウンドサービスあるいはシステムプロセスとしてこの処理の実行を開始する。
そして、所要の初期処理を行った後(S131)、所定時間毎に、各発音chにつき、chレジスタに設定されているパラメータの値に従い、その所定時間に対応した複数サンプリング周期分の波形データを生成する(S132)と共に、各発音chで生成した各サンプリング周期の波形データを重み付け合成して、合成されたステレオの波形データを、論理接続されている出力先(ここではシンセサイザ10)に、サンプリング周期毎に1サンプルずつ出力する(S133)。
【0077】
そして、これらの処理を、出力先との切断検出や、PC30の動作停止等の終了トリガを検出するまで繰り返す(S134)。終了トリガを検出すると、音源制御プロセスを停止する(S135)と共に、論理接続の解除等、プロセスの終了に必要な処理を行って(S136)、処理を終了する。
【0078】
なお、音源+ミキサプロセスにおいては、ステップS133における波形データ出力時のタイミング管理を容易にするため、ステップS132において予め後のサンプリング周期の分まで波形データを生成してキャッシュレジスタに記憶させておくが、各サンプル毎の波形データの生成手法は、音源部17が行うものと同様である。
従って、波形データの生成を音源部17に行わせた場合でも、音源部312に行わせた場合でも、同等な波形データを得ることができる。
【0079】
次に、図11に、シンセサイザ10のCPU11がプログラムチェンジイベントの検出時に実行する処理のフローチャートを示す。
この処理は、主制御部107及びカレント音色データ送信部104の機能に関する処理であり、主制御部107がMIDI_I/O14から音源制御部102を介してプログラムチェンジを示すMIDIデータを受け取った場合、ないし、操作パネル16で第pパートについて音色番号pnの音色データの選択操作が行われた場合に開始される。なお、プログラムチェンジを示すMIDIデータには、音色を設定するパートのパート番号p及び、設定する音色の音色データ番号を示すプログラムナンバpnが記載されており、プログラムチェンジのMIDIイベントと音色データの選択操作とは等価である。
【0080】
そして、この処理においてCPU11はまず、プログラムナンバpnの値を、第pパートの音色番号TCN(p)としてカレント音色データメモリ103に設定する(S31)。その後、音色ライブラリ106から音色番号pnの音色データを読み出し、第pパートのカレント音色データTCD(p)としてカレント音色データメモリ103に記憶させる(S32)。
【0081】
そして、音源サーバとの論理接続が確立された状態でなければそのまま処理を終了するが(S33)、確立されていれば、ステップS31及びステップS32で設定した音色番号TCN(p)とカレント音色データTCD(p)を、パート番号pと共に音源サーバ310の音源制御プロセスに送信する(S34)。
【0082】
これに対し、PC30のCPU31は、図8に示すように、シンセサイザ10から受信した各パートの音色番号及びカレント音色データを、指定されたパートの音色番号及びカレント音色データとしてカレント音色データメモリ314に記憶させる。この場合、指定されたパートのデータとして以前に記憶していたデータは破棄し、受信したデータを、新たなカレント音色データ等として記憶させる。
【0083】
また、図12に、シンセサイザ10のCPU11がパラメータ変更イベントの検出時に実行する処理のフローチャートを示す。
この処理も、図11の処理と同様、主制御部107及びカレント音色データ送信部104の機能に関する処理であり、主制御部10がMIDI_I/O14から音源制御部102を介してカレント音色データのパラメータの値を変更する要求(システム・エクスクルーシブのパラメータ・チェンジ)を示すMIDIデータを受け取った場合、ないし、操作パネルで第pパートのカレント音色データのep番目のパラメータの値をevに変更する操作が行われた場合に開始される。
なお、上記のパラメータ・チェンジには、どのパートのカレント音色データのパラメータの値を変更するかを示すパート番号p、どのパラメータの値を変更するかを示すパラメータ番号ep及び、変更後のパラメータの値を示す変更値evが記載されている。
【0084】
そして、この処理においてCPU11はまず、音源サーバとの論理接続が確立された状態であるか否か判断し(S41)、確立されていれば、音源サーバ310の音源制御プロセスに、第pパートのカレント音色データのep番目のパラメータの値をevに変更する指示を送信する(S42)。
【0085】
これに対し、PC30のCPU31は、図8に示すように、シンセサイザ10からの変更指示に従い、カレント音色データメモリ314に記憶しているカレント音色データ中のパラメータの値を変更する。
また、シンセサイザ10側でも、CPU11が、カレント音色データメモリ103に記憶している第pパートのカレント音色データのep番目のパラメータの値をevに変更し(S43)、処理を終了する。
【0086】
シンセサイザ10は、以上の図11及び図12に示した処理により、シンセサイザ10側で波形データの生成に使用する音色が変更されたり、そのパラメータが編集されたりした場合に、音源サーバ310側にも速やかにその変更を反映させることができる。従って、カレント音色データが変更されたとしても、音源部17と音源部312とに同等な波形データ生成動作を行わせることができる状態を維持することができる。
【0087】
次に、図13に、シンセサイザ10のCPU11が音源サーバとの接続切断を検出した場合に実行する処理のフローチャートを示す。
シンセサイザ10のCPU11は、論理接続が確立されていた音源サーバから波形データの受信がなくなった場合に、音源サーバとの接続が切断されたと判断する。そして、図13に示す処理を実行し、発音ch数Ncから、接続が切断された音源サーバの発音ch数Npcを減じる(S61)。この場合、接続が切断された音源サーバの発音chにおいて発音が実行中であったとしても、この発音に対する発音chの再割り当てを行う必要はない。
【0088】
そして、この処理以降は、接続が切断された音源サーバの発音chは発音への割り当てには用いず、音源部17が有する発音chのみを、発音への割り当てに用いる。なお、切断が検出された場合、ミキサ18は、ハードウェアにより自動的に波形I/O19bからの入力をミュートする。
以上の処理により、PC30との物理的な接続切断や、PC30の動作停止等により、音源サーバとの論理接続が切断された場合でも、シンセサイザ10が有する能力の範囲内での波形データ生成を、切断前と同様に継続することができる。また、再度PC30との接続が回復された場合には、図4に示した処理により再度接続を確立することができる。
【0089】
以上説明してきたシンセサイザ10によれば、音源機能を提供可能なPC30を接続することにより、本体の音源機能を拡張し、かつ拡張した音源機能を本体の音源機能と同様に利用することができる。このとき、ユーザが何ら新たな設定を行わなくても、自動的に、あたかも本体音源部の発音ch数を増加させたかのように機能拡張を行うことができるため、拡張機能を、極めて容易に利用することができる。
【0090】
以上で実施形態の説明を終了するが、装置のハードウェア構成、機能構成、データの構成、具体的な処理内容等が、上述の実施形態で説明したものに限られないことはもちろんである。
例えば、上述した実施形態では、PC30側で動作させる音源デーモンや、音源サーバ310の機能を実現するプロセスを、バックグラウンドサービスあるいはシステムプロセスとして実行させる例について説明したが、アプリケーションであるDAWアプリをこのような用途で利用できるようにしてもよい。
【0091】
また、音色データとして、複数のエレメント音により1つの音色を規定する音色データを用いることもできる。この場合、1つのノートオンイベントと対応する発音に複数の発音chを割り当て、各発音chで別々のエレメント音に係る波形データを生成させることになるが、発音chの割り当て自体は、図9のステップS51の場合と同様に、必要な数だけの割り当てを行えばよい。そして、音源サーバ側の発音chが割り当てられた場合には、割り当てられた発音chの番号に加えて発音させるエレメント音の指定も、ノートオンイベントに付して音源制御プロセスに送信すればよい。
【0092】
そして、音源制御プロセスが、指定された発音chで、パートに従って定められるカレント音色データのうち、指定されたエレメント音に関する発音を行わせるようにすれば、音源サーバ310側の音源部312でも、シンセサイザ10側の音源部17の場合と同様に、適切なエレメント音に係る波形データを生成することができる。
【0093】
また、上述した実施形態では、シンセサイザ10と論理接続する音源サーバを1つしか示していないが、シンセサイザ10が複数の音源サーバと同時に論理接続を行うことも可能である。この場合には、各音源サーバと別々に論理接続を行い、シンセサイザ10が有する発音chが、各音源サーバが提供可能な発音ch数の合計だけ増加したとして発音chの割り当てを行えばよい。
【0094】
またこの場合、ミキサ18は、各音源サーバから、その音源サーバの音源部が生成した波形データを、時分割や帯域分割等により別々に受け取り、最終的に、シンセサイザ10の音源部が生成した波形データと、論理接続されている全音源サーバの音源部が生成した波形データとを、全て合成して出力するようにすればよい。そして、いずれかの音源サーバとの論理接続が切断された場合には、その音源サーバから受信していた波形データのみをミュートして合成処理を続ければよい。
これらの場合において、1台の装置が複数の音源サーバの機能を提供しても、複数の装置が各々音源サーバの機能を提供してもよい。
【0095】
また、シンセサイザ10において、音源サーバとの論理接続により発音に使用可能な発音ch数が増加した場合に、パネル表示器16bに図14に示すような表示を行い、増加した発音ch数と、利用可能な発音ch数とを通知するようにしてもよい。また、単に機能拡張がなされた状態になったことを示すマーク表示をする等してもよい。このようにすれば、音源機能の拡張が適切に行われたことをユーザが容易に認識でき、さらに利便性を向上させることができる。
【0096】
また、上述した実施形態では、各種コマンドを送受信するための伝送路とは別に、MIDIデータをリアルタイム伝送するためのMIDI伝送路を設定するようにしていたが、コマンドのデータ形式をMIDIデータとは区別できる形式にして、コマンドを伝送するのと同じ伝送路を用いてMIDIデータを伝送するようにしてもよい。その場合、図4のステップS18の論理接続時に、通信経路50に新たなMIDI伝送路を設定する必要は無くなる。
【0097】
また、この発明が、シンセサイザ以外にも、電子楽器等、音源手段を有する任意の波形生成装置に適用可能なことは、もちろんである。この場合において、演奏操作子が、鍵盤ではなく、弦楽器、管楽器、打楽器等の任意の形状のものであっても構わない。演奏操作子やサウンドシステム自体も、必須の構成要素ではなく、外部から入力する演奏データに従って波形データを生成し、外部のレコーダ等に出力する装置であってもよい。
【0098】
また、音源サーバ機能を提供する装置がPC等の汎用コンピュータでなく、専用の音源装置であったとしても、ユーザが何ら新たな設定を行わなくても自動的にあたかも本体音源部の発音ch数を増加させたかのように機能拡張を行うことができるという点では、同等な効果を得ることができる。
また、以上述べてきた変形例は、矛盾しない範囲で任意に組み合わせて適用することができる。
【産業上の利用可能性】
【0099】
以上の説明から明らかなように、この発明の波形生成装置によれば、波形生成装置の音源機能を容易に拡張し、かつ拡張した音源機能を本体の音源機能と同様に利用できるようにすることができる。
従って、利便性の高い波形生成装置を提供することができる。
【図面の簡単な説明】
【0100】
【図1】この発明の波形生成装置の実施形態であるシンセサイザ及び、そのシンセサイザに音源機能を提供可能なPCのハードウェア構成を示す図である。
【図2】図1に示したシンセサイザ及びPCの機能構成を示す図である。
【図3】図2に示したカレント音色データメモリに記憶させるデータの構成を示す図である。
【図4】シンセサイザのCPUが定期的に実行する接続確認処理のフローチャートである。
【図5】PCのCPUが実行する音源デーモンの処理のフローチャートである。
【0101】
【図6】図5のステップS113で実行する処理の例を示す図である。
【図7】PCのCPUが実行する音源制御プロセスの処理のフローチャートである。
【図8】図7のステップS123で実行する処理の例を示す図である。
【図9】シンセサイザのCPUがノートオンイベントの検出時に実行する処理のフローチャートである。
【図10】PCのCPUが実行する音源+ミキサプロセスの処理のフローチャートである。
【0102】
【図11】シンセサイザのCPUがプログラムチェンジイベントの検出時に実行する処理のフローチャートである。
【図12】シンセサイザのCPUがパラメータ変更イベントの検出時に実行する処理のフローチャートである。
【図13】シンセサイザのCPUが音源サーバとの接続切断を検出した場合に実行する処理のフローチャートである。
【図14】シンセサイザが機能拡張状態を通知する表示の例を示す図である。
【符号の説明】
【0103】
10…シンセサイザ、11…CPU、12…フラッシュメモリ、13…RAM、14…MIDI_I/O、15…演奏操作子、16…操作パネル、16a…パネル操作子、16b…パネル表示器、17,312…音源部、18,313…ミキサ、19…通信I/F、20…DAC、21…サウンドシステム、22…バスライン、30…PC、101…MIDIデータ生成部、102,311…音源制御部、103,314…カレント音色データメモリ、104…カレント音色データ送信部、105…接続処理部、106…音色ライブラリ、107,301…主制御部、310…音源サーバ
【特許請求の範囲】
【請求項1】
各発音チャンネルになされている設定に基づいて複数の発音チャンネルで波形データを生成する第1の音源手段と、
前記第1の音源手段に生成させる波形データの音色を規定するカレント音色データを記憶するカレント音色記憶手段と、
演奏内容を規定する演奏データを取得し、該演奏データに従って音源手段を制御して波形データの生成を行わせる音源制御手段と、
各発音チャンネルになされている設定に基づいて複数の発音チャンネルで波形データを生成し、外部に出力する第2の音源手段を有する情報処理装置と通信するための通信手段と、
前記第1の音源手段が生成した波形データと、前記通信手段が前記情報処理装置から受信した波形データとを合成して出力する波形出力手段とを有する波形生成装置であって、
前記カレント音色記憶手段に記憶しているカレント音色データを、前記通信手段に接続された情報処理装置に送信し、前記第2の音源手段で生成する波形データの音色を規定するカレント音色データとして記憶させる音色データ送信手段と、
前記接続された情報処理装置に、前記第2の音源手段が生成した波形データの送信先を当該波形生成装置と設定させる接続要求手段とを備え、
前記音源制御手段が、
前記通信手段に前記情報処理装置が接続されていない場合、
前記演奏データに従った発音に、前記第1の音源手段が有する発音チャンネルのうち必要な数の発音チャンネルを割り当て、その割り当てた発音チャンネルに対して、演奏データ及び前記音色記憶手段が記憶しているカレント音色データの内容に従ったパラメータの値を設定すると共に発音指示を行うことにより、前記第1の音源手段に波形データを生成させ、
前記通信手段に前記情報処理装置が接続されている場合、
(a)前記演奏データに従った発音に、前記第1の音源手段が有する発音チャンネル及び接続された前記情報処理装置において動作している第2の音源手段が有する発音チャンネルのうち必要な数の発音チャンネルを割り当て、
(b)前記第1の音源手段が有する発音チャンネルを割り当てた場合には、その割り当てた発音チャンネルに対して、前記演奏データ及び前記音色記憶手段が記憶しているカレント音色データの内容に従ったパラメータの値を設定すると共に発音指示を行うことにより、前記第1の音源手段に波形データを生成させ、
(c)前記第2の音源手段が有する発音チャンネルを割り当てた場合には、前記演奏データにその割り当てた発音チャンネルの識別情報を付して前記接続された情報処理装置に送信することにより、該情報処理装置に、該識別情報が示す発音チャンネルにおいて、送信した演奏データと、前記音色データ送信手段により送信して記憶させたカレント音色データとに従った波形データの生成を行わせることを特徴とする波形生成装置。
【請求項2】
請求項1記載の波形生成装置であって、
前記カレント音色データの編集操作を受け付けるための操作子と、
該操作子の操作に応じてカレント音色データの内容を編集する音色編集手段とを備え、
該音色編集手段が、
前記通信手段に前記情報処理装置が接続されていない場合、
前記操作子の操作に応じて前記カレント音色記憶手段が記憶するカレント音色データの内容を編集し、
前記通信手段に前記情報処理装置が接続されている場合、
前記操作子の操作に応じて前記カレント音色記憶手段が記憶するカレント音色データの内容を編集すると共に、該編集内容を前記接続されている情報処理装置に送信し、該情報処理装置に記憶させたカレント音色データの内容に対し、前記カレント音色記憶手段が記憶するカレント音色データになされた編集と同じ編集を行わせることを特徴とする波形生成装置。
【請求項3】
請求項1又は2記載の波形生成装置であって、
前記通信手段を介して前記情報処理装置と通信可能となったことを検出した場合に、
(d)前記情報処理装置に前記第2の音源手段の機能を起動させ、
(e)前記第2の音源手段との間で、種々の動作を指示するための制御データの送受信と、該第2の音源手段における波形データの生成に使用させる演奏データの送信と、該第2の音源手段が生成した波形データの受信とを行うための論理接続を行うと共に、
(f)前記音色記憶手段に記憶しているカレント音色データを、前記通信可能となった情報処理装置に送信し、前記論理接続を行った第2の音源手段で生成する波形データの音色を規定するカレント音色データとして記憶させる
手段を設けたことを特徴とする波形生成装置。
【請求項4】
請求項1乃至3のいずれか一項記載の波形生成装置であって、
複数の音色データを記憶する音色ライブラリと、
該音色ライブラリに記憶されている音色データのうち、前記第1の音源手段に波形データを生成させる際に用いる音色データの選択を受け付ける選択受付手段と、
該選択受付手段が受け付けた選択に従って前記カレント音色データを設定するカレント音色設定手段とを設け、
該カレント音色設定手段が、
前記通信手段に前記情報処理装置が接続されていない場合、
前記選択された音色データを新たなカレント音色データとして前記カレント音色記憶手段に記憶させ、
前記通信手段に前記情報処理装置が接続されている場合、
前記選択された音色データを新たなカレント音色データとして前記カレント音色記憶手段に記憶させると共に、前記接続されている情報処理装置に送信し、該情報処理装置に、新たなカレント音色データとして記憶させることを特徴とする波形生成装置。
【請求項5】
請求項3記載の波形生成装置であって、
当該波形生成装置と前記第2の音源手段との間で前記論理接続がなされた場合に、音源手段の機能が拡張され、波形データの生成に使用可能な発音chの数が増加したことを示す表示を行う手段を設けたことを特徴とする波形生成装置。
【請求項1】
各発音チャンネルになされている設定に基づいて複数の発音チャンネルで波形データを生成する第1の音源手段と、
前記第1の音源手段に生成させる波形データの音色を規定するカレント音色データを記憶するカレント音色記憶手段と、
演奏内容を規定する演奏データを取得し、該演奏データに従って音源手段を制御して波形データの生成を行わせる音源制御手段と、
各発音チャンネルになされている設定に基づいて複数の発音チャンネルで波形データを生成し、外部に出力する第2の音源手段を有する情報処理装置と通信するための通信手段と、
前記第1の音源手段が生成した波形データと、前記通信手段が前記情報処理装置から受信した波形データとを合成して出力する波形出力手段とを有する波形生成装置であって、
前記カレント音色記憶手段に記憶しているカレント音色データを、前記通信手段に接続された情報処理装置に送信し、前記第2の音源手段で生成する波形データの音色を規定するカレント音色データとして記憶させる音色データ送信手段と、
前記接続された情報処理装置に、前記第2の音源手段が生成した波形データの送信先を当該波形生成装置と設定させる接続要求手段とを備え、
前記音源制御手段が、
前記通信手段に前記情報処理装置が接続されていない場合、
前記演奏データに従った発音に、前記第1の音源手段が有する発音チャンネルのうち必要な数の発音チャンネルを割り当て、その割り当てた発音チャンネルに対して、演奏データ及び前記音色記憶手段が記憶しているカレント音色データの内容に従ったパラメータの値を設定すると共に発音指示を行うことにより、前記第1の音源手段に波形データを生成させ、
前記通信手段に前記情報処理装置が接続されている場合、
(a)前記演奏データに従った発音に、前記第1の音源手段が有する発音チャンネル及び接続された前記情報処理装置において動作している第2の音源手段が有する発音チャンネルのうち必要な数の発音チャンネルを割り当て、
(b)前記第1の音源手段が有する発音チャンネルを割り当てた場合には、その割り当てた発音チャンネルに対して、前記演奏データ及び前記音色記憶手段が記憶しているカレント音色データの内容に従ったパラメータの値を設定すると共に発音指示を行うことにより、前記第1の音源手段に波形データを生成させ、
(c)前記第2の音源手段が有する発音チャンネルを割り当てた場合には、前記演奏データにその割り当てた発音チャンネルの識別情報を付して前記接続された情報処理装置に送信することにより、該情報処理装置に、該識別情報が示す発音チャンネルにおいて、送信した演奏データと、前記音色データ送信手段により送信して記憶させたカレント音色データとに従った波形データの生成を行わせることを特徴とする波形生成装置。
【請求項2】
請求項1記載の波形生成装置であって、
前記カレント音色データの編集操作を受け付けるための操作子と、
該操作子の操作に応じてカレント音色データの内容を編集する音色編集手段とを備え、
該音色編集手段が、
前記通信手段に前記情報処理装置が接続されていない場合、
前記操作子の操作に応じて前記カレント音色記憶手段が記憶するカレント音色データの内容を編集し、
前記通信手段に前記情報処理装置が接続されている場合、
前記操作子の操作に応じて前記カレント音色記憶手段が記憶するカレント音色データの内容を編集すると共に、該編集内容を前記接続されている情報処理装置に送信し、該情報処理装置に記憶させたカレント音色データの内容に対し、前記カレント音色記憶手段が記憶するカレント音色データになされた編集と同じ編集を行わせることを特徴とする波形生成装置。
【請求項3】
請求項1又は2記載の波形生成装置であって、
前記通信手段を介して前記情報処理装置と通信可能となったことを検出した場合に、
(d)前記情報処理装置に前記第2の音源手段の機能を起動させ、
(e)前記第2の音源手段との間で、種々の動作を指示するための制御データの送受信と、該第2の音源手段における波形データの生成に使用させる演奏データの送信と、該第2の音源手段が生成した波形データの受信とを行うための論理接続を行うと共に、
(f)前記音色記憶手段に記憶しているカレント音色データを、前記通信可能となった情報処理装置に送信し、前記論理接続を行った第2の音源手段で生成する波形データの音色を規定するカレント音色データとして記憶させる
手段を設けたことを特徴とする波形生成装置。
【請求項4】
請求項1乃至3のいずれか一項記載の波形生成装置であって、
複数の音色データを記憶する音色ライブラリと、
該音色ライブラリに記憶されている音色データのうち、前記第1の音源手段に波形データを生成させる際に用いる音色データの選択を受け付ける選択受付手段と、
該選択受付手段が受け付けた選択に従って前記カレント音色データを設定するカレント音色設定手段とを設け、
該カレント音色設定手段が、
前記通信手段に前記情報処理装置が接続されていない場合、
前記選択された音色データを新たなカレント音色データとして前記カレント音色記憶手段に記憶させ、
前記通信手段に前記情報処理装置が接続されている場合、
前記選択された音色データを新たなカレント音色データとして前記カレント音色記憶手段に記憶させると共に、前記接続されている情報処理装置に送信し、該情報処理装置に、新たなカレント音色データとして記憶させることを特徴とする波形生成装置。
【請求項5】
請求項3記載の波形生成装置であって、
当該波形生成装置と前記第2の音源手段との間で前記論理接続がなされた場合に、音源手段の機能が拡張され、波形データの生成に使用可能な発音chの数が増加したことを示す表示を行う手段を設けたことを特徴とする波形生成装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2009−25498(P2009−25498A)
【公開日】平成21年2月5日(2009.2.5)
【国際特許分類】
【出願番号】特願2007−187691(P2007−187691)
【出願日】平成19年7月18日(2007.7.18)
【出願人】(000004075)ヤマハ株式会社 (5,930)
【Fターム(参考)】
【公開日】平成21年2月5日(2009.2.5)
【国際特許分類】
【出願日】平成19年7月18日(2007.7.18)
【出願人】(000004075)ヤマハ株式会社 (5,930)
【Fターム(参考)】
[ Back to top ]