図1〜図14を参照して、本発明の実施形態に係る合奏システムについて説明する。
図1は、本実施形態にかかる合奏システムの構成を示すブロック図である。この合奏システムは、コントローラ1と、コントローラ1にMIDIインタフェースボックス3を介して接続される複数(同図においては6台)の演奏端末2(2A〜2F)と、を備えている。演奏端末2は、例えば電子ピアノ等の電子鍵盤楽器が用いられる。この実施形態では、MIDIインタフェースボックス3を介することで、コントローラ1に各演奏端末2が別々のMIDI系統で接続されている。なお、MIDIインタフェースボックス3はコントローラ1とUSBで接続されている。
本実施形態にかかる合奏システムでは、コントローラ1が各演奏端末2A〜2Fで異なった演奏パートを演奏するように各演奏端末2の演奏を制御する。演奏パートとは、上述したように同一の合奏曲を構成する各旋律等である。演奏パートは、例えば、1または複数のメロディパート、リズムパート、異なった楽器による複数の伴奏パート等がある。
また、コントローラ1は、半自動演奏を行うように各演奏端末2の演奏を制御する。この半自動演奏では、各演奏端末2に完全に自動演奏を行わせるのではなく、各演奏端末2に対する演奏者の演奏操作(例えば鍵盤における何れか1の鍵を押下する操作)によっても演奏が制御される。具体的には、演奏操作のタイミングによって演奏テンポ及び演奏タイミングが調整される。ここで、演奏テンポとは曲全体の進行の速さであり、演奏タイミングとは音符の発音タイミングである。
以下に、該半自動演奏の処理を概略的に説明する。
演奏端末2は、鍵盤楽器であるため、複数の鍵(操作子)を有する鍵盤を備え、この鍵が押下されることで演奏操作を受け付ける。演奏端末2は、コントローラ1との通信機能を備え、この演奏操作の操作情報(例えばMIDIデータにおけるノートオンメッセージ)を示す操作信号をコントローラ1に送信する。この操作情報には、音高を示す情報が含まれているが、本実施形態のコントローラ1は、音高を示す情報は無視する(フィルタをかける)ことで、操作情報を演奏操作のタイミングを示すものとして用いる。
このため、何れの鍵が押鍵されても同じタイミング及びテンポで押下された場合には同一の操作信号がコントローラ1に送信される。これによって、演奏者は何れか1の鍵を好適な操作タイミングで押下するだけで、好適な演奏を行うことができ、鍵盤楽器の演奏に不慣れな演奏者であっても演奏を行うことが可能になっている。
コントローラ1は、例えばパーソナルコンピュータにより構成され、このパーソナルコンピュータに搭載されたソフトウェアによって各演奏端末2の演奏動作の制御を行う。具体的には、コントローラ1は複数の演奏パートからなる演奏曲データを記憶している。コントローラ1は、合奏スタート前に、各演奏パート(または複数の演奏パート)を予め各演奏端末2A〜2Fに割り当てる。コントローラ1は各演奏端末2との通信機能を備え、演奏端末2から入力される操作情報に基づいて、その演奏端末2に割り当てられている演奏パートのテンポ・タイミングを決定する。そして、コントローラ1は、決定したテンポ及びタイミングでこのパートの演奏データ(MIDIデータ)を読み出して、この演奏端末2に出力する。
各演奏端末2では、コントローラ1から入力された演奏データを内蔵音源に入力して楽音を発生する。これによって、各演奏者が演奏操作によって指示したテンポ及びタイミングで、かつコントローラ1によって割り当てられた演奏パートで各演奏端末2が楽音を発生する。
ここで、本実施形態では、好適に合奏を行うための演奏操作のタイミングが各演奏パートで共通である。この演奏タイミングは、例えばガイド役であるファシリテータ(例えば演奏端末2Aの演奏者)の演奏操作、或いは手足等を用いた身体動作による指揮によって各演奏者に示される。この指示に従って演奏操作が行われた場合には、好適な合奏を行うことができるようになっている。
なお、演奏端末2は電子ピアノ等の鍵盤楽器に限らず、電子ギター等他の形態の電子楽器であってもよい。無論、外観上は自然楽器に限らず単にボタン等の操作子を備えた端末であってもよい。
コントローラ1は、上述したように、各演奏パートの各演奏端末2への割り当てを設定する。本実施形態では、このパート割当設定を簡易な操作で変更することができる。パート割当設定の変更は、コントローラ1の操作者(ファシリテータ等)によって、通常は後述の操作部15(図8を参照)を用いて各パート、各演奏端末2毎にマニュアルで行われる。更に特定の1の操作子(図5を用いて後述する演奏パート変更操作子B5)を押下するだけで、所定の変更パターンで演奏パート割当設定を変更することができる。
複数回、同じ合奏曲で演奏を行う場合等に、各演奏端末2に割り当てる割当パ−トを変更するが、この場合必ずしも特定のパートを特定の演奏端末2に割り当てるという意思的な変更を行う必要がない場合が多く、各演奏端末2に割り当てる演奏パートを異なるパートに変更することに合奏上の意義がある。従って、このためだけに、毎回マニュアル操作で各演奏端末2への演奏パートの割り当てをそれぞれ変更してゆくのは操作性が悪い。本実施形態では、上述したように特定の操作子が押下されるだけで所定の変更パターンで設定されている割り当てを変更することができるため、操作性良く各演奏端末2に割り当てる演奏パートを変更することができる。
以下、この変更パターンについて説明する。
図2は、パート割当設定の変更パターン(正順乃至は逆順シフト)の一例を説明するための図である。同図(a)は、変更前のパート割当設定、同図(b)は変更後のパート割当設定を説明するための図である。
各演奏端末2には、それぞれ端末ID(識別子)が付与されており、ここでは、演奏端末2Aに端末ID0、演奏端末2Bに端末ID1、演奏端末2Cに端末ID2、演奏端末2Dに端末ID3、演奏端末2Eに端末ID4、演奏端末2Fに端末ID5が付与されている。
また、各演奏端末2には、演奏パートが割り当てられており、同図(a)においては演奏端末2Aに「ファシリテータF」、演奏端末2Bに「伴奏1パート」、演奏端末2Cに「伴奏2パート」、演奏端末2Dに「リズムパート」、演奏端末2Eに「伴奏3パート」、演奏端末2Fに「メロディパート」が割り当てられている。なお、ファシリテータが用いる演奏端末2Aには、通常は演奏パートが割り当てられない。
この演奏パートの割り当て設定は、例えば図13で示すようなテーブル形式の情報(本願発明のパート割当情報)で管理される。すなわち、各演奏端末2にはそれぞれ端末ID(識別子)が付与されており、この端末IDと割り当てられた演奏パートとが対応付けてテーブルに登録される。端末IDは、固有の識別子であるとともに、上述のように端末ID「0〜5」間の順番を示す。
ここで演奏端末2の端末IDの順番で演奏パートをシフトする正順シフトを指示する正順シフトボタンB51(図5を参照)が押下(マウスでクリック)されると、コントローラ1は、端末ID「0〜5」の示す順に(一点鎖線aの示す順に)所定個数だけ(ここでは1個だけ)演奏パートの割り当てをずらす(同図(b)を参照)。なお、端末ID0はファシリテータを割り当てた演奏端末であり、上記演奏端末パートのシフトは行われない。
また、演奏端末2の端末IDの逆順で演奏パートをシフトする逆順シフトでのパート割当設定の変更を指示する逆順シフトボタンB52(図5を参照)が押下(マウスでクリック)されると、コントローラ1は、端末ID「0〜5」の示す逆順に(二点鎖線bの示す順に)所定個数だけ(ここでは1個だけ)演奏パートの割り当てをずらす。
上述したように、正順乃至は逆順シフトでは、正順シフトボタンB51乃至は逆順シフトボタンB52が押下される毎に演奏端末2の識別子の順番乃至は逆順に演奏パートの割り当てがずらされる。このため、最初の演奏パートが一巡して再度割り当てられるまで、異なった演奏パートを各演奏端末2に割り当てることが可能になる。
図3は、各演奏端末2への各演奏パートの割り当ての変更パターン(ランダム変更パターン)の一例を説明するための図である。同図(a)は、変更前の割り当て、同図(b)は変更後の割り当てを説明するための図である。
ランダム変更ボタンB53(図5を参照)が押下されるとランダム変更パターンで演奏パートの割り当てが変更される。ランダム変更パターンでは、同図(a)における矢印で示すように、各演奏端末2への演奏パートの割り当てがランダムに変更される(同図(b)を参照)。これにより、各演奏者は次に割り当てられる演奏パートの予測をすることができないため、次に何が割り当てられるかの予想を楽しむことができる。
図4は、各演奏端末2への各演奏パートの割り当ての変更パターン(均等変更パターン)の一例を説明するための図である。同図(a)は、変更前の割り当て、同図(b)は変更後の割り当てを説明するための図である。
本均等変更パターンは、上述した正順・逆順シフトやランダム変更パターンとは異なり、各演奏端末2に割り当てる各演奏パートを単に入れ替えることを目的とするのではない。上記の例では、各演奏端末2につき1つの演奏パートを割り当てる場合であったが、各演奏端末2に複数の演奏パートを割り当てる場合に、各演奏端末2毎に割り当てられた各演奏パートの合計発音数が著しく不均衡である場合がある。均等変更パターンは、この不均等を是正するために各演奏端末2への演奏パートの割り当てを調整することを目的としている。
図4では、「端末ID4」と「端末ID5」の演奏者が欠席である場合の演奏パートの割り当て例を示す。同図(a)で示すように、「端末ID1」には、発音数(演奏パートの発音データの数)が10音である「伴奏1パート」、発音数が1000音である「リズムパート」、発音数が2000音である「メロディパート」が割り当てられている。このため、「端末ID1」に割り当てられた演奏パートの合計発音数は、10+1000+2000で3010音である。
「端末ID2」には、発音数が20音である「伴奏2パート」のみが割り当てられており、「端末ID2」に割り当てられている発音数は20音である。また、「端末ID3」には、発音数が100音である「伴奏3パート」及び発音数が200音である「伴奏4パート」が割り当てられている。このため、「端末ID3」に割り当てられている発音数は、100+200で300音である。
上述から、「端末ID1」、「端末ID2」、「端末ID3」に割り当てられている演奏パートの合計発音数は、3010音、20音、300音と不均衡である。
ここで、均等変更操作ボタンB54が押下されると、均等変更パターンで演奏パートの割り当てが変更される。均等変更パターンでは、演奏パートの数が演奏端末2の2倍より少ない場合には、発音数が多い演奏パートから順番に各演奏端末「端末ID1」、「端末ID2」、「端末ID3」に演奏パートが割り当てられる。
上記の処理の後に割り当てていない演奏パートがある場合には、その残部のうち発音数が最多の演奏パートを最も合計発音数が少ない演奏端末2に割り当てる処理(少数演奏パート割当処理)が実行される。この少数演奏パート割当処理は、全ての演奏パートが演奏端末2に割り当てられるまで実行される。
一方、演奏パートの数が割り当て対象となる演奏端末2の台数の2倍以上である場合には、最多音数の演奏パート−n(添字nは正の整数乃至は0で、最も音数の多い順に付与)及び最小音数の演奏パート−n(添字nは正の整数乃至は0で、最も音数の少ない順に付与)の一対の組が各演奏端末2に順次割り当てられる。具体的には、最も音数の多い演奏パート(本例では、発音数2000音のメロディパート)と最も音数の少ない演奏パート(本例では、発音数10音)の演奏パートが何れか1の演奏端末2(本例では「端末ID1」)に割り当てられる。
また、次に音数の多い演奏パート(本例では発音数が1000音であるリズムパート)と次に音数の少ない演奏パート(本例では発音数が20音である伴奏2パート)が別の演奏端末2(本例では「端末ID2」)に割り当てられる。また、その次に音数の多い演奏パート(本例では発音数が200音である伴奏4パート)とその次に音数の少ない演奏パート(本例では発音数が100音である伴奏3パート)が別の演奏端末2(本例では「端末ID3」)に割り当てられる。
このようにして、音数が最多の演奏パート及び音数が最少の演奏パートの組が各演奏端末2に順次割り当てられる。なお、この演奏パートの組の各演奏端末2への割り当てが終了した後であっても、割り当てるべき演奏パートが残っている場合がある。残りの演奏パートの数が演奏端末2の2倍より残っている場合には、該演奏パートの数が2倍以下になるまで上記と同様の処理を繰り返す。一方、残りの演奏パートの数が演奏端末2の2倍より少ない場合には、残りの演奏パートがなくなるまで上述した少数演奏パート割当処理が実行される。
上述した均等変更パターンでは、各演奏端末2に割り当てられる演奏パートの合計発音数の不均衡が是正される。これによって、各演奏端末2の間における合計発音数の不均衡による、各演奏者の不公平感が緩和される。
上述した、各種変更パターンでの演奏パートの変更指示の入力をガイドしたり、合奏曲の選択をガイドするためのメイン操作ウィンドウWがコントローラ1に表示される。以下に、このようなメイン操作ウィンドウWを説明する。
図5は、コントローラ1に表示されるメイン操作ウィンドウWの一例を示す図である。メイン操作ウィンドウWの左端には、合奏曲名を示す選曲ボタンB11が複数の合奏曲分表示されている。これらの選曲ボタンB11を合わせて選曲ボタン群B1と記載する。選択したい合奏曲の曲名上の選曲ボタンをファシリテータ等がマウス操作でクリックすることで、合奏曲が選曲される。
また、メイン操作ウィンドウWの右上には、PLAYボタンB2、STOPボタンB3及びAUDITIONボタンB4がこの順番に左から並んで表示される。PLAYボタンB2がファシリテータ等によってマウス操作でクリックされることで、選択された合奏曲の演奏処理が開始される。STOPボタンB3がファシリテータ等によってマウス操作でクリックされることで、合奏曲の演奏処理や後述の試聴処理が終了される。AUDITIONボタンB4がファシリテータ等によってマウス操作でクリックされることで、選択された合奏曲を各演奏者に試聴させるための試聴処理が開始される。
AUDITIONボタンB4の右には、上下方向に並んで、複数のパート変更操作子B5が表示される。複数のパート変更操作子B5には、正順シフトボタンB51、逆順シフトボタンB52、ランダム変更ボタンB53及び均等変更操作ボタンB54があり、これらの操作ボタンB51〜B54はこの順番で表示される。
正順シフトボタンB51がファシリテータ等によってマウス操作でクリック(押下)されることで、上述した正順シフトでの各演奏端末2への演奏パートの割り当て変更処理(正順割当変更処理)が実行される。逆順シフトボタンB52がファシリテータ等によってマウス操作でクリック(押下)されることで、上述した逆順シフトでの各演奏端末2への演奏パートの割り当て変更処理(逆順割当変更処理)が実行される。
ランダム変更ボタンB53がファシリテータ等によってマウス操作でクリック(押下)されることで、上述したランダム変更パターンでの各演奏端末2への演奏パートの割り当て変更処理(ランダム割当変更処理)が実行される。均等変更操作ボタンB54がファシリテータ等によってマウス操作でクリック(押下)されることで、上述した均等変更パターンでの各演奏端末2への演奏パートの割り当て変更処理(均等割当変更処理)が実行される。
メイン操作ウィンドウWの右下には、「ファシリテータF(端末ID0)」、「P1〜5(端末ID1〜5)」へのパート割当設定が表示される(本例では「Strings1」「Strings2」「Piano」「Harp」「Trumpet」「Horn」「Tuba」「Percussion」の割当設定)とともに、「ファシリテータF」、「P1〜5」の各演奏者の欠席設定が表示される。
メイン操作ウィンドウWの最上端には、ファイル(F)、設定(S)、ヘルプ(H)が右からこの順番で表示されている。設定(S)がクリックされると、「MIDIキーボードの選択」、「演奏パートのマニュアル割り当て」及び「拍打数の設定」の項目等が表示される。「MIDIキーボードの選択」がクリックされることで、後述のMIDIキーボードの選択ウィンドウW1が表示される。また、「演奏パートのマニュアル割り当て」がクリックされることで、後述の演奏パートのマニュアル割り当てウィンドウW2が表示される。
また、拍打数の設定が選択されると、1小節内の拍打数(上述した特定の操作タイミング)を設定するためのウィンドウが表示される。このウィンドウ上で、ファシリテータ等によって入力されることで1小節内の拍打数が設定される。例えば、1小節が4拍子/4分の曲データについて演奏をする場合に、拍打数を4に設定すると1拍毎に打鍵するように設定されることになる。また、この演奏曲において拍打数2のラジオボタンを選択すると、1拍おきに打鍵することとなり、1拍目、3拍目が打鍵タイミングとなる。この場合、コントローラ1は、演奏端末2からノートオンメッセージ、ノートオフメッセージが送信されると、2拍分の発音指示データを返信する。つまり、1回の打鍵で2拍分の演奏がされることになる。
また、メイン操作ウィンドウWの最上端の右端には、「×」アイコンが表示されており、「×」アイコンがクリックされると、メイン操作ウィンドウWの表示が終了され、本実施形態の合奏システムでの合奏を実行させるためのアプリケーションが終了される。
また、図6はコントローラ1と演奏端末2の接続異常(例えばコントローラ1のパーソナルコンピュータのスリープ等によるドライバ異常等)をファシリテータに表示する画面の例である。この図においては、各演奏端末2毎に接続異常を示しているが、1つでも接続異常が有れば、ウィンドウ全体に接続異常を表示するようにしてもよい。この表示がされた場合には、システムの電源を手動、又は自動で投入し、再起動できるようにすればよい。あるいは、合奏中であれば接続異常の演奏端末2の動作(発音)を停止し、このパートを自動演奏又はファシリテータが代わりに手動演奏するようにし、全体の合奏を中断させないようにしてもよい。
図7は、マニュアル割り当てウィンドウW2の一例を示す図である。
マニュアル割り当てウィンドウW2には、出欠を選択するプルダウンメニューと、演奏パートを割り当てるラジオボタンが「Facilitator(上記ファシリテータFと同様)」、「Piano1〜5(上記P1〜5と同様)」毎に表示されている。「Facilitator」、「Piano1〜5」は、MIDIインタフェースボックス3のMIDIポートにそれぞれ対応付けられている。各MIDIポートに演奏端末2が接続されることで、演奏端末2が「Facilitator」、「Piano1〜5」に対応付けられる。
なお、図8に示すように、MIDIキーボードの選択ウィンドウW3上で、ファシリテータがマニュアルで「Facilitator」、「Piano1〜5」と対応付けるMIDIポートを選択することも可能である。
マニュアルで演奏パートやMIDIポートを選択する場合には、以下の例がある。すなわち、演奏端末2の演奏者達の特性(嗜好、癖、演奏の正確さ、等)やファシリテータが意図する合奏目的(メロディを中心に合奏する、リズム合奏が苦手な演奏者にあえてリズムの演奏パートを付与する、等)に応じて設定される。
図7において、出欠のプルダウンメニューは生徒の出欠に応じてファシリテータがマウス操作によって選択入力する。ラジオボタンは、選択された合奏曲の演奏パートの数×出席設定になっている演奏端末2の数だけ表示される。なお、プルダウンメニューが「欠席」とされた演奏端末にはラジオボタンが表示されず、演奏パートが割り当てられないようになっている。
この図における例では、選択した合奏曲の演奏曲データは演奏パート1〜10を含む。そして、この合奏曲を選択すると、初期設定に従って演奏パート1〜10が自動的に出席している演奏端末2に割り当てられる。ここで、コントローラ1を操作するユーザ(ファシリテータ)がラジオボタンを選択することで各演奏パートを好みの演奏端末にマニュアル選択することも可能である。
なお、デフォルトでは、通常「ファシリテータ」には演奏パートが割り当てられてないが、他の演奏端末2の演奏者達に操作タイミングを指示するために、演奏パートが割り当てられてもよい。また、Facilitator Onlyのチェックボックスを選択すると全ての演奏パートがFacilitatorに割り当てられる。
以下、コントローラ1と演奏端末2の構成について詳細に説明する。
図9は、コントローラ1の構成を示すブロック図である。同図に示すように、コントローラ1は、通信部11、制御部12、HDD13、RAM14、操作部15、および表示部16を備えている。制御部12には通信部11、HDD13、RAM14、操作部15、および表示部16が接続されている。
通信部11は、演奏端末2と通信を行う回路部であり、USBインタフェースを有している。このUSBインタフェースには、MIDIインタフェースボックス3が接続され、通信部11はこのMIDIインタフェースボックス3及びMIDIケーブルを介して6台の演奏端末2と通信する。
HDD13は、コントローラ1の動作用プログラムや、複数の演奏パートからなる演奏曲データを複数の合奏曲分記憶している。演奏曲データはMIDI規格に基づいて予め作成されたデータ(スタンダードMIDIファイル)であり、コントローラ1のHDD13に記憶されている。この楽曲データの一例を図10に示す。同図に示すように、演奏曲データは、複数の演奏パートからなり、各演奏パートを識別する識別情報(パートID)と、各演奏パートの演奏情報を含んでいる。
演奏曲データは、出荷段階から記憶されていてもよいし、通信部11を用いてネットワークを通じて外部装置(図略)からダウンロードする等して出荷後に記憶されてもよい。また、必ずしも複数の合奏曲分が記憶されている必要はなく、1曲分のみが記憶されていてもよい。
制御部12は、HDD13に記憶されている動作用プログラムを読み出してワークメモリであるRAM14に展開し、演奏パート割当部50、シーケンス部51、および発音指示部52等の機能部を備える。
演奏パート割当部50は、本願発明の演奏パート割当部及び演奏パート変更部として機能し、パート割当設定を初期設定でシーケンス部51に設定する処理や、シーケンス部51のパート割当設定を変更する処理を実行する(演奏パート割当処理)。この演奏パート割り当て処理については詳しくは図11〜図13を用いて後述する。
シーケンス部51は、各演奏端末2への演奏パートの割り当てを表すパート割当情報を記憶し、このパート設定情報に基づいて、操作信号の送信元の演奏端末2に対応する演奏パートを読み出して、操作信号の示すテンポ、タイミングの指示に応じて読み出した演奏パートをシーケンス(各音の音高、音長等の決定)する。具体的なシーケンスの内容については、詳しくは後述する。発音指示部52は、シーケンス部51で決定した各音の音高、音長等を発音指示データとして演奏端末2に送信する。
操作部15は、ユーザ(主にファシリテータ)がこの演奏システムの動作指示を行うためのものである。ファシリテータは、操作部15を操作し、例えば演奏する合奏曲を指定したり、各演奏端末2の演奏パートを割り当てたりする。表示部16は、所謂ディスプレイ(モニタ)等から構成され、例えば上述したようなメイン操作ウィンドウW等が表示される。ファシリテータや各ユーザはこの表示部16の表示にガイドされながら、合奏曲の選択やパート割当設定の入力及び変更、特定の操作タイミングの入力を行う。表示部16の表示は制御部12によって制御される。
図11は、演奏端末2の構成を示すブロック図である。同図に示すように、演奏端末2は、通信部21、制御部22、演奏操作子である鍵盤23、音源24、およびスピーカ25を備えている。制御部22には通信部21、鍵盤23、および音源24が接続されている。また、音源24にはスピーカ25が接続されている。
通信部21は、MIDIインタフェースであり、MIDIケーブルを介してコントローラ1と通信する。制御部22は、演奏端末2を統括的に制御する。鍵盤23は、例えば61鍵や88鍵の鍵数を有し、5〜7オクターブの音域の演奏が可能であるが、この合奏システムでは鍵を区別せずにノートオン/ノートオフメッセージ、打鍵強さ(Velocity)のデータを用いる。すなわち各鍵は、オン/オフを検出するセンサと打鍵の強さを検出するセンサが内蔵されており、鍵盤23は各鍵の操作態様(どの鍵がどのような強さで打鍵されたか等)に応じて操作信号を制御部22に出力する。また、合奏の目的として鍵を区別する必要がある場合(例えば特定の指の打鍵により合奏を行う場合など)は、鍵の識別データ(ノートナンバ)も用いればよい。鍵を区別しない場合はノートナンバは無視(フィルタをかける)すればよい。
制御部22は、入力された操作信号に基づき、通信部21を介してコントローラ1にノートオンメッセージやノートオフメッセージを送信する。音源24は、制御部22の制御に応じて楽音波形を生成し、音声信号としてスピーカ25に出力するものである。スピーカ25は、音源24から入力された音声信号を再生し、楽音を発音する。なお、音源とスピーカは演奏端末2に内蔵していなくともよい。音源とスピーカをコントローラ1に接続し、演奏端末2と異なる場所から楽音が発音されるようにしてもよい。各演奏端末2と同じ数の音源をコントローラ1に接続してもよいが、単一の音源を用いてもよい。演奏端末2と同じ数の音源を接続する場合、コントローラ1はそれぞれの音源と演奏端末2を対応付けて演奏曲データの各パートを割り当てるようにすればよい。
上記の動作では、鍵盤23を打鍵したとき、制御部22はノートオン/ノートオフメッセージをコントローラ1に送信し、鍵盤23によるノートメッセージではなく、コントローラ1からの指示に応じて楽音を発音(ローカルオフ)するが、上記の様な動作とは別に、一般的な電子楽器として使用することも無論可能である。すなわち、鍵盤23を打鍵したとき、制御部22はノートメッセージをコントローラ1に送信せずに、当該ノートメッセージに基づいて音源24に楽音を発音(ローカルオン)するように指示することも可能である。
ローカルオンモード、ローカルオフモードの切替えはユーザがコントローラ1の操作部15を用いて切替えてもよいし、演奏端末2の端末操作部(図示せず)で切替えてもよい。また、一部の鍵盤のみローカルオフし、他の鍵盤はローカルオンとなるように設定することも可能である。
次に、図5、図9及び図11を参照して、上記のような合奏システムが合奏を行うための動作について説明する。
コントローラ1は、操作部15でユーザ(特にファシリテータ)の指示を受け付けると、制御部12は合奏のためのアプリケーションの起動を行う。この後、制御部12は、図5で示したようなメイン操作ウィンドウW1を表示部16に表示する。操作部15でユーザ(特にファシリテータ)から複数合奏曲の中から1の合奏曲(演奏曲データ)の選択が受け付けられると、パート割当部50には選択された演奏曲データが通知される。
コントローラ1は、HDD13に記憶されている複数の演奏データのうち選択された合奏曲の演奏データのヘッダ部分を参照して、どの様な演奏パートを含むかを取得し、取得した各演奏パートについて演奏パート割当部50を用いて後述する演奏パート割当処理を実行する。なお、選択操作が受け付けられない場合には、デフォルトの演奏データについて演奏パートが取得され、演奏パート割当処理が実行される。この演奏パート割当処理については、図12〜図14を用いて後述する。
コントローラ1は、PLAYボタンB2が押下されると、HDD13からRAM14へ演奏曲データを読み出して演奏動作を行うための準備状態となる。この状態になると、各演奏端末2の演奏者は演奏が可能となる。この合奏システムにおいては、ファシリテータ(合奏リーダ)の手足等で行う身体動作による指揮や演奏操作によって操作タイミングを指示し、複数の演奏者が指示された操作タイミングに合わせて演奏操作を行う。つまり、単にお手本演奏(機械デモ演奏)に合わせて演奏するのではなく、ファシリテータの指示に合わせて各ユーザが演奏を行うので、実際に合奏をしているという実感を得ることができる。
合奏中における合奏システムの動作について説明する。各ユーザが演奏端末2の操作子(鍵盤)23を指で押すと、制御部22は鍵盤を押した強さに応じてノートオンメッセージをコントローラ1に送信する。ノートオンメッセージには打鍵の強さ(Velocity)等の情報が含まれる。また、鍵盤23を元に戻す(指を離す)と、制御部22は、ノートオフメッセージをコントローラ1に送信する。
コントローラ1では、シーケンス部51が、演奏端末2から受信したノートオンメッセージ、ノートオフメッセージに基づいて、その演奏端末2に割り当てた演奏パートのうち、所定長さ分(例えば1拍分であり、1小節に2回の拍数が設定されている場合には1小節の半分の長さ分)の演奏曲データをシーケンスする。
具体的には、シーケンス部51は、ノートオンメッセージが入力されたときに、演奏曲データのうち該当する演奏パートの上記所定長さ分の演奏情報を読み出して発音すべきタイミング、音色、効果、音高変化等を決定する。
すなわち、シーケンス部51は、ノートオンメッセージのVelocity情報から発音強度を決定するが、読み出した演奏曲データの演奏情報には音量を示す情報が含まれており、この音量にVelocity情報を乗算して発音強度を決定する。つまり、演奏曲データには、その曲中のボリューム表現(音の強弱)を考慮した音量情報が予め含まれているが、各ユーザが鍵盤を押した強さに応じた強弱表現が追加され、発音強度が決定されることとなる。
また、シーケンス部51は、ノートオンメッセージを受信してからノートオフメッセージを受信するまでの時間に基づいてテンポや各音の音長を決定する。すなわち、シーケンス部51はノートオンメッセージが入力されてからノートオフメッセージが入力されるまでの時間を測定する。シーケンス部51は、読み出した所定長さの演奏曲データにおいて最初に発音させる楽音については、ノートオンメッセージが入力されてからノートオフメッセージが入力されるまでの音長に決定する。シーケンス部51は、次に発音させる楽音については測定した時間に基づいてその拍分のテンポ、各音の音長を決定する。
なお、シーケンス部51はノートオンからノートオフまでの時間(GateTimeとする)をテンポ及び音長として決定してもよいが、以下のようにしてテンポを決定してもよい。すなわち、複数回(直近から数回前)の打鍵について、GateTimeの移動平均を算出し、これに時間による重み付けを行う。直近の打鍵について最も重み付けを大きくし、過去の打鍵になるほど重み付けを小さくする。このようにしてテンポを決定することで、ある打鍵の時のみGateTimeが大きく変化したとしても突然にテンポが変化せず、曲の流れに応じて違和感無くテンポ変化を行うことができる。
発音指示部52は、シーケンス部51によるシーケンスに基づいて、発音指示データを生成する。発音指示データは、発音すべきタイミング、音長、強度、音色、効果、音高変化(ピッチベンド)や、テンポ等を指示するデータである。通信部11は生成された発音指示データを演奏端末2に送信する。
演奏端末2では、制御部22は、通信部21を介して上記発音指示データを受信し、音源24に楽音波形の生成を指示する。音源24は、楽音波形を生成し、スピーカ25から楽音を再生する。各ユーザが鍵盤を押す毎に上記の処理が繰り返され、例えば1拍毎に鍵盤を押すことで曲の演奏を行うことができる。
なお、上記のように、ノートオフメッセージが入力されるまでは、小節内で最初に発音した楽音がそのまま発生するよう指示されるため、音源24はユーザが鍵盤から指を戻すまでは同一楽音を鳴らし続けることとなり、この合奏システムにおいては、音を延ばす演奏表現(フェルマータ)を実現することができる。
また、上記のようにしてGateTimeの移動平均によりテンポを決定することで、音源24で以下のような演奏表現を実現することもできる。例えば、シーケンス部51は、ある打鍵の時のみ短くポンと押された場合、その拍分の各音の音長を短く決定し、一方でゆったりと押された場合その拍分の各音の音長を長く決定する。これにより、音源24によって、テンポは大きく変化しないが各音の歯切れをよくする演奏表現(スタッカート)を実現したり、テンポを大きく変化させずに音の長さを保つ演奏表現(テヌート)を実現したりすることができる。
なお、この実施形態においてはいずれの鍵が打鍵されたとしても同じノートオンメッセージ、ノートオフメッセージがコントローラ1に送信されるが、上記のようにスタッカートやテヌートが効く鍵と効かない鍵とが鍵盤23において分けられてもよい。コントローラ1は、特定の鍵(例えばE3)からのノートオンメッセージ、ノートオフメッセージが入力された場合のみ、テンポを保ちながら音長を変化させるようにすればよい。
以下、図12〜図14を用いて演奏パート割当処理を説明する。図12は、演奏パート割当処理を示すフローチャートである。まず、演奏パート割当部50は、取得した各演奏パートを初期設定で各演奏端末2に割り当て、この割り当てをシーケンス部51に設定する(S1)。例えば、図13で示すようなテーブルTがHDD13に記憶されている。このテーブルTは出荷段階からHDD13に記憶されていても、出荷後に外部装置からダウンロードする等して記憶させてもよい。
テーブルには、各演奏パートの識別情報(パートID)と、各演奏パートに割り当てる演奏端末2の端末IDとが対応付けられて初期設定として登録されている。端末IDは、各演奏パートを割り当てる演奏端末に付与されており、各演奏端末が接続されるMIDIポートの識別ID(端末ID)である。MIDIポート番号はMIDIインタフェースボックス3のポート番号を示しており、各演奏端末2はその接続されているMIDIポート番号で識別されている。
端末IDは、上述したように、各MIDIポートすなわち、各演奏端末(「ファシリテータ0」、「P1〜5」)に固有であるとともに、順番を示す。
同図の例では、演奏パート1には、MIDIポート1(端末ID1)が対応しており、例えば図1においては演奏端末2Bに演奏パート1が割り当てられる。以下同様に演奏パート2にはMIDIポート2(端末ID2)が対応し、例えば図1においては演奏端末2Cに演奏パート2が割り当てられる。このように、各演奏端末2にそれぞれ自動的に演奏パートが割り当てられる。このテーブルの登録内容は、事前に操作部15を用いてファシリテータがコントローラ1に登録したものである。なお、USBポートに接続されている場合は、各演奏端末2をUSBポート番号で識別するようにすればよい。
演奏パート割当部50は、HDD13から上記テーブル(パート割当情報)を読み出してシーケンス部51に記憶させることで、シーケンス部51にパート割当を設定する。
演奏パート割当部50は、正順シフトボタンB51乃至は逆順シフトボタンB52が押下されたかどうかを判断する(S2)。正順シフトボタンB51乃至は逆順シフトボタンB52が押下されたと判断した場合には(S2でYES)、演奏パート割当部50は、正順シフトボタンB51が押下された場合に上述の正順割当変更処理を実行する。逆順シフトボタンB52が押下された場合に演奏パート割当部50は逆順割当変更処理を実行して、シーケンス部51の演奏パートの割り当て設定を変更する(S3)。
ここで、正順及び逆順は上記端末IDの示す番号の正順及び逆順を示す。例えば、図13で示すテーブルがシーケンス部51に設定されている場合について説明する。正順割当変更処理では、パートID1の演奏パートがピアノ2に、パートID2の演奏パートがピアノ3に割り当てられるように、シーケンス部51のテーブルの登録内容が変更される。また、逆順割当変更処理では、パートID1の演奏パートがピアノ5に、パートID2の演奏パートがピアノ1に割り当てられるように、シーケンス部51のテーブルの登録内容が変更される。この後、演奏パート割当部50は本処理をステップS2に戻す。
正順シフトボタンB51乃至は逆順シフトボタンB52が押下されなかったと判断した場合には(S2でNO)、演奏パート割当部50はランダム変更ボタンB53が押下されたかを判断する(S4)。ランダム変更ボタンB53が押下されたと判断した場合には(S4でYES)、演奏パート割当部50は、ランダム割当変更処理を実行して、シーケンス部51のテーブルの登録内容が変更され、これによって演奏パートの割り当て設定を変更する(S5)。この後、演奏パート割当部50は本処理をステップS2に戻す。
ランダム変更ボタンB53が押下されなかったと判断した場合には(S4でNO)、演奏パート割当部50は、図6で示すマニュアル割り当てウィンドウW2を用いて、マニュアルで各演奏パートの割り当てを個別に変更する操作を受け付けたかどうかを判断する(S6)。マニュアルで各演奏パートの割り当てを個別に変更する操作を受け付けたと判断した場合には(S6でYES)、演奏パート割当部50は、この操作に従ってシーケンス部51のテーブルの登録内容を変更し、これによって演奏パートの割り当て設定を変更する(S7)。この後、演奏パート割当部50は本処理をステップS2に戻す。
一方、マニュアルで各演奏パートの割り当てを個別に変更する操作を受け付けなかったと判断した場合には(S6でNO)、均等変更操作ボタンB54が押下されたかどうかを判断する(S8)。均等変更操作ボタンB54が押下されなかったと判断した場合には(S8でNO)、演奏パート割当部50は本処理をステップS2に戻し、均等変更操作ボタンB54が押下されたと判断した場合には(S8でYES)、均等割当変更処理を実行した後、本処理をステップS2に戻す。
図14は、均等割当変更処理の一例を示すフローチャートである。まず、演奏パート割当部50は、各演奏パートの全ノートオンデータ(発音データ)の数(発音数)をカウントする(S11)。なお、ノートオンデータをカウントする構成に代えて、演奏曲データに各演奏パートの全ノートオンデータ数を示すデータを含め、このデータを参照することで各演奏パートの全ノートオンデータの数を取得してもよい。
次に、演奏パート割当部50は、演奏パートの割り当て対象となる演奏端末(割当対象演奏端末)2の数×2<演奏パート数であるかを判断する(S12)。演奏パートの割り当て対象となる演奏端末2の数×2<演奏パート数ではないと判断した場合には(S12でNO)、演奏パート割当部50は、発音数の多い演奏パートから順番に各割当対象演奏端末2に割り当てる(S13)。
演奏パート割当部50は、割り当てていない演奏パートがあるかどうかを判断する(S14)。割り当てていない演奏パートがあると判断した場合には(S14でYES)、演奏パート割当部50は該演奏パートのうち最も音数の多い演奏パートを、割り当てられた演奏パートの合計発音数が最も少ない割当対象演奏端末2に割り当てる処理(上記少数演奏パート割当処理)を実行し(S15)、割り当てていない演奏パートがなくなるまで本処理を繰り返す。一方、割り当てていない演奏パートがないと判断した場合には(S14でNO)本処理を終了させる。
また、演奏パートの割り当て対象となる演奏端末2の数×2<演奏パート数ではないと判断した場合には(S12でNO)、演奏パート割当部50は、最多発音数の演奏パート及び最少発音数の演奏パートの組から順番に、最多発音数−nの演奏パート及び最少発音数―nの演奏パートの組を各割当対象演奏端末2に割り当てる(S16)。つまり、最多音数の演奏パートから順に音数の多い演奏パートを、それぞれ最少音数の演奏パートから順に音数の少ない演奏パートに組み合わせて前記各演奏端末に割り当てる。この割り当ての順番は、例えば端末IDの順番に行われる。
演奏パート割当部50は、割り当てていない演奏パートがあるかどうかを判断する(S17)。割り当てていない演奏パートがあると判断した場合には(S17でYES)、演奏パートの割り当て対象となる演奏端末2の数×2<割り当てていない演奏パート数であるかを判断する(S18)。演奏パートの割り当て対象となる演奏端末2の数×2<割り当てていない演奏パート数であると判断した場合には(S18でYES)、演奏パート割当部50は本処理をステップS16に戻す。すなわち、割り当てていない演奏パートにおいて、ステップS16が実行される。
演奏パートの割り当て対象となる演奏端末2の数×2<割り当てていない演奏パート数でないと判断した場合には(S18でNO)、演奏パート割当部50は上述したステップS15を実行する。
一方、割り当てていない演奏パートがないと判断した場合には(S17でNO)、演奏パート割当部50は本処理を終了させる。
上記演奏パート割当処理は、PLAYボタンB2が押下されたとき、乃至はアプリケーションの終了が指示されたときに終了される。演奏パート割当部50は本処理をステップS2に戻す。
上述したように、本実施形態では、コントローラ1に演奏データの各演奏パートの各演奏端末2への割り当てが設定され、この割り当てに合致した演奏パートで各演奏端末2が演奏を行うようにコントローラ1によって各演奏端末2の演奏が制御される。
複数回同じ曲で合奏を行う場合に、各演奏端末2に割り当てる演奏パートを変更しないと各演奏者が演奏に飽きてしまう。このため、ファシリテータ等が各演奏端末2への演奏パートの割り当てを変更する場合がある。この場合には、各演奏端末2に割り当てる演奏パートを変えることに意義がある。これにより、演奏者は合奏に飽きることがなく参加できるようになり、合奏の楽しみを享受できる。
本実施形態ではこの場合の演奏者やファシリテータのニーズに操作性良く対応できるように、正順シフトボタンB51、逆順シフトボタンB52及びランダム変更ボタンB53のうちの何れか1が押下されるだけの簡易な操作によって、所定の変更パターンで演奏パートの割り当ての設定を変更することができる。
なお、本発明は、複数の演奏端末を利用するものであるが、1台の演奏端末の鍵盤を分割して複数の演奏端末の機能を実現してもよい。すなわち、鍵盤の音域によって演奏パートを分け、1台の演奏端末で連弾のように演奏をすればよい。また、コントローラの機能をいずれか1台の演奏端末に内蔵させ、この演奏端末がコントローラとして機能するようにしてもよい。
1−コントローラ 2(2A〜2F)−演奏端末 11−通信部(本願発明のコントローラ側通信部) 13−HDD(本願発明の曲データ記憶部) 15−操作部 21−通信部(本願発明の端末側通信部)23−鍵盤(本願発明の演奏操作部) 24−音源 50−演奏パート割当部(本願発明の演奏パート割当部及び演奏パート変更部) 51−シーケンス部(演奏制御部) 52−発音指示部(演奏制御部) B51−正順シフトボタン(パート変更操作子) B52−逆順シフトボタン(パート変更操作子) B53−ランダム変更操作ボタン(パート変更操作子) B54−均等変更操作ボタン(パート変更操作子)