説明

タイミング合わせ方法、該タイミング合わせ方法を実現するためのプログラムおよび電子音楽装置

【課題】所定の基準信号のタイミングを高精度で合わせることが可能となるタイミング合わせ方法と電子音楽装置を提供する。
【解決手段】電子音楽装置Aから電子音楽装置Bへ現在時刻要求コマンドが送信され、送信時刻が時刻Ta1とされる。電子音楽装置Bからは、現在時刻Tbが電子音楽装置Aに返信される。電子音楽装置Aでは、時刻Tbが受信され、その時刻が時刻Ta2とされる。時刻Ta2から進んだ時刻Ta3、そして時刻Ta3から時間Tdだけ経過した時刻で、発音タイミングを揃えることが決定され、電子音楽装置Aでも、その時刻で発音タイミング揃えがなされる。そして電子音楽装置Aから電子音楽装置Bへ、Tb+Td+(Ta3−Ta1)−(Ta2−Ta1)/2あるいはTb+Td+(Ta3−Ta2)+(Ta2−Ta1)/2の時刻に指示するコマンドが送信され発音タイミング揃えがなされる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信ネットワークを介して接続された、少なくとも2台の電子音楽装置間で、所定の基準信号のタイミング合わせを行うタイミング合わせ方法、該タイミング合わせ方法を実現するためのプログラムおよび電子音楽装置に関する。
【背景技術】
【0002】
通信ネットワークを介して接続された、少なくとも2台の電子音楽装置間でデータのやり取りをするシステムは、従来から知られている。
【0003】
このようなシステムとして、演奏操作子と表示装置を備え、演奏操作子で操作した内容に応じた楽音を発音させるとともに、操作された演奏操作子がどれであるかを表示装置上に表示するように構成された電子音楽装置と、該電子音楽装置と同様に構成された他の電子音楽装置とをMIDI(musical instrument digital interface)ケーブルで接続し、両装置間で同期演奏できるようにしたものがある(たとえば、非特許文献1参照)。MIDIケーブルで接続された2台の電子音楽装置のうち、一方をマスタとし、他方をスレーブとすれば、マスタからスレーブへ、スタートコマンドおよびMIDIクロックを送信することで、完全に同期した演奏が可能となる。
【0004】
しかし、この従来のシステムでは、両電子音楽装置間はMIDIケーブルで接続されるので、両電子音楽装置間が、MIDIケーブルで接続できない程離れている場合には、同期演奏できなかった。
【0005】
一方、インターネットなどの通信ネットワークを介して複数の電子音楽装置間で同期演奏させるようにしたシステムもあり、このようなシステムでは、各電子音楽装置で、演奏開始タイミングなどを同期させる必要がある。
【0006】
演奏開始タイミングを同期させる方法としては、まず、マスタ装置からスレーブ装置へ、遅延時間確認信号として「ping」コマンドを送信し、これに応じてスレーブ装置が返信した信号をマスタ装置で受信する。そして、往復時間の半分を通信遅延時間t1とする。次に、基準となる演奏開始時刻(たとえば、現在時刻から5秒後)を設定し、スレーブ装置に対し、(5−t1×2)秒後に演奏開始信号を送信する方法が開示されている(たとえば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特許第4314964号公報
【非特許文献】
【0008】
【非特許文献1】TENORI−ON(登録商標)取扱説明書,2007年,ヤマハ株式会社(第7頁〜第8頁)
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかし、上記従来の同期方法では、通信遅延時間t1を得るために「ping」コマンドを送受信した時点と、演奏開始信号を送信する時点では、通信遅延時間が変化している場合がほとんどで、この場合には、実際の演奏開始時刻と設定した演奏開始時刻との間にずれが生ずることになる。
【0010】
本発明は、この点に着目してなされたものであり、所定の基準信号のタイミングを高精度で合わせることが可能となるタイミング合わせ方法、該タイミング合わせ方法を実現するためのプログラムおよび電子音楽装置を提供することを目的とする。
【課題を解決するための手段】
【0011】
上記目的を達成するため、請求項1に記載のタイミング合わせ方法は、通信ネットワークを介して接続された、少なくとも2台の第1および第2電子音楽装置間で、所定の基準信号のタイミング合わせを行うタイミング合わせ方法であって、前記第1電子音楽装置から前記第2電子音楽装置へ現在時刻要求を送信させる第1ステップと、前記第1ステップによって現在時刻要求を送信した時刻を前記第1電子音楽装置に計時させて、時刻Ta1として記憶させる第2ステップと、前記第1電子音楽装置から送信されて来た現在時刻要求を前記第2電子音楽装置に受信させる第3ステップと、前記第3ステップによって現在時刻要求が前記第2電子音楽装置に受信されたことに応じて、現在時刻Tbを前記第2電子音楽装置から前記第1電子音楽装置へ送信させる第4ステップと、前記第3ステップによって現在時刻要求が受信された時刻または前記第4ステップによって現在時刻Tbが送信される時刻を第2電子音楽装置に計時させて、現在時刻Tbとする第5ステップと、
前記第2電子音楽装置から送信されて来た現在時刻Tbが受信された時刻を前記第1電子音楽装置に計時させて、時刻Ta2として記憶させる第6ステップと、前記時刻Ta2から進んだ時刻Ta3を設定する第7ステップと、前記時刻Ta3から時間Tdだけ経過した時点でタイミングを合わせると決定した場合に、次式(1)または(2)のいずれか一方で表される時刻でタイミングを合わせるように前記第2電子音楽装置に指示する第8ステップと
Tb+Td+(Ta3−Ta1)−(Ta2−Ta1)/2 …(1)
Tb+Td+(Ta3−Ta2)+(Ta2−Ta1)/2 …(2)
を有することを特徴とする。
【0012】
上記目的を達成するため、請求項2に記載のプログラムは、通信ネットワークを介して接続された他の電子音楽装置との間で、所定の基準信号のタイミング合わせを行うタイミング合わせ方法をコンピュータに実行させるプログラムであって、前記タイミング合わせ方法は、前記他の電子音楽装置へ現在時刻要求を送信する送信ステップと、前記送信ステップによって現在時刻要求を送信した時刻を計時し、時刻Ta1として記憶させる第1の計時ステップと、前記送信ステップによって送信された現在時刻要求が前記他の電子音楽装置によって受信されたことに応じて、前記他の電子音楽装置が送信した現在時刻Tbを受信する受信ステップと、前記受信ステップによって現在時刻Tbが受信された時刻を計時し、時刻Ta2として記憶させる第2の計時ステップと、前記時刻Ta2から進んだ時刻Ta3を設定する設定ステップと、前記時刻Ta3から時間Tdだけ経過した時点でタイミングを合わせると決定した場合に、次式(1)または(2)のいずれか一方で表される時刻でタイミングを合わせるように前記他の電子音楽装置に指示する指示ステップと
Tb+Td+(Ta3−Ta1)−(Ta2−Ta1)/2 …(1)
Tb+Td+(Ta3−Ta2)+(Ta2−Ta1)/2 …(2)
を有することを特徴とする。
上記目的を達成するため、請求項3に記載の電子音楽装置は、請求項2と同様の技術的思想によって実現できる。
【発明の効果】
【0013】
請求項1に記載の発明によれば、発音タイミングを揃える時刻を決定する因子であって、通信遅延に関するものは、片道遅延時間((Ta2−Ta1)/2)を計測した時点の通信遅延のみに限るようにし、さらに、発音タイミングを揃える時刻を決定するための基準時刻(始点)を第1電子音楽装置側(時刻Ta1+(Ta2−Ta1)/2)と第2電子音楽装置側(時刻Tb)とで一致させたので、発音タイミング揃えを行う時点の通信遅延が、片道遅延時間を計測した時点の通信遅延と異なっていたとしても、第1および第2電子音楽装置の各発音タイミングは正確に一致することになる。
【0014】
請求項2または3に記載の発明によれば、発音タイミングを揃える時刻を決定する因子であって、通信遅延に関するものは、片道遅延時間((Ta2−Ta1)/2)を計測した時点の通信遅延のみに限るようにし、さらに、発音タイミングを揃える時刻を決定するための基準時刻(始点)を電子音楽装置側(時刻Ta1+(Ta2−Ta1)/2)と他の電子音楽装置側(時刻Tb)とで一致させたので、発音タイミング揃えを行う時点の通信遅延が、片道遅延時間を計測した時点の通信遅延と異なっていたとしても、電子音楽装置と他の電子音楽装置の各発音タイミングは正確に一致することになる。
【図面の簡単な説明】
【0015】
【図1】本発明の一実施の形態に係る電子音楽装置の概略構成を示すブロック図である。
【図2】図1のタッチパネル上に表示された演奏操作子画面の一例を示す図((a))およびレイヤーおよびブロックの概念を説明するための図((b))である。
【図3】図1の電子音楽装置と他の電子音楽装置との間で行う、通信ネットワークを介した音楽セッションの概念図である。
【図4】図1の電子音楽装置、他の電子音楽装置およびセッション相手選択サーバがそれぞれ実行する制御処理の手順を示すフローチャートである。
【図5】図4の制御処理中の各ネットセッション処理の詳細な手順を示すフローチャートである。
【図6】図5のネットセッション処理中のレイヤー毎の制御処理の詳細な手順を示すフローチャートである。
【図7】発音タイミング揃えの具体的な方法を説明するための図である。
【図8】発音ポイント同期処理を説明するための図である。
【発明を実施するための形態】
【0016】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【0017】
図1は、本発明の一実施の形態に係る電子音楽装置100の概略構成を示すブロック図である。
【0018】
同図に示すように、電子音楽装置100は、各種情報を入力するための複数のスイッチからなる設定操作子1と、複数の演奏操作子、各種楽音パラメータや各種動作モードを選択設定するための複数の操作子および各種情報を表示するとともに、ユーザが表示された各操作子や各情報をタッチ操作することで、対応する演奏状態、楽音パラメータおよび動作モードなどを選択設定するタッチパネルディスプレイ(以下、「タッチパネル」と略して言う)2と、設定操作子1の操作状態を検出する検出回路3と、ユーザによるタッチパネル2上のタッチ操作を検出する検出回路4と、演奏状態、各種楽音パラメータおよび各種動作モードを含む、音楽に関する各種状態および情報を選択設定するためのGUI(graphical user interface)をタッチパネル2上に表示する表示回路5と、装置全体の制御を司るCPU6と、該CPU6が実行する制御プログラムや各種テーブルデータ等を記憶するROM7と、演奏情報、各種入力情報および演算結果等を一時的に記憶するRAM8と、前記制御プログラムを含む各種アプリケーションプログラムや各種楽曲データ、各種データ等を記憶する記憶装置9と、通信ネットワーク300を介して他の電子音楽装置100b〜dおよびセッション相手選択サーバ200とデータの送受信を行う通信インターフェース(I/F)10と、演奏操作子を用いて入力された演奏情報や、前記記憶装置9に記憶されたいずれかの楽曲データを再生して得られた演奏情報等を楽音信号に変換するとともに、その楽音信号に各種効果を付与するための音源・効果回路11と、該音源・効果回路11からの楽音信号を音響に変換する、たとえば、DAC(digital-to-analog converter)やアンプ、スピーカ等のサウンドシステム12とにより構成されている。
【0019】
上記構成要素3〜11は、バス13を介して相互に接続され、通信I/F10には通信ネットワーク300が接続され、音源・効果回路11にはサウンドシステム12が接続されている。
【0020】
記憶装置9は、たとえば、フレキシブルディスク(FD)、ハードディスク(HD)、CD−ROM、DVD(digital versatile disc)、光磁気ディスク(MO)および半導体メモリなどの記憶媒体とその駆動装置である。記憶媒体は、駆動装置から着脱可能であってもよいし、記憶装置9自体が、電子音楽装置100から着脱可能であってもよい。あるいは、記憶媒体も記憶装置9も着脱不可能であってもよい。なお、記憶装置9(の記憶媒体)には、前述のように、CPU6が実行する制御プログラムも記憶でき、ROM7に制御プログラムが記憶されていない場合には、この記憶装置9に制御プログラムを記憶させておき、それをRAM8に読み込むことにより、ROM7に制御プログラムを記憶している場合と同様の動作をCPU6にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。
【0021】
通信I/F10としては、たとえば、MIDI信号などの音楽信号を専用に送受信する音楽専用有線I/F、USB(universal serial bus)やIEEE1394などの汎用近距離有線I/F、Ethernet(登録商標)などの汎用ネットワークI/F、無線LAN(local area network)やBluetooth(登録商標)などの汎用近距離無線I/F、デジタル電話回線網用の通信I/Fを挙げることができる。本実施の形態では、通信I/F10として汎用ネットワークI/Fを採用し、通信ネットワーク300としてインターネットを採用し、離れた位置にある他の電子音楽装置100b〜dおよびセッション相手選択サーバ200と通信することを想定している。
【0022】
また本実施の形態では、電子音楽装置100の形態として、上述のようにタッチパネル2を備えた汎用のスレートPC(slate PC)やスマートフォン(smartphone)を想定しているが、タッチパネル形式でない通常のLCD(liquid crystal display)やLED(light emitting diode)と物理的な操作子を備えた音楽専用のハードウェア構成としてもよい。
【0023】
他の電子音楽装置100b〜dは、本実施の形態では、電子音楽装置100の動作と同様の動作を行うので、他の電子音楽装置100b〜dのハードウェアは、電子音楽装置100のそれ、つまり図1のハードウェアと同様に構成されている。なお、他の電子音楽装置100b〜dの台数は、本実施の形態では、3台としたが、これより多くても少なくてもよい。ただし、本発明の特徴は他の電子音楽装置と音楽セッションを行うことにあるので、他の電子音楽装置としては、少なくとも1台が接続されている必要がある。
【0024】
セッション相手選択サーバ200は、一般的なサーバ用コンピュータ、具体的には、電子音楽装置100の上記図1のハードウェア構成から、設定操作子1、タッチパネル2、検出回路3,4および表示回路5を除き、その代わりに、キーボード、マウスおよび大型ディスプレイを加えたものによって構成される。ただし、セッション相手選択サーバ200のCPU,ROM,RAMおよび記憶装置は、電子音楽装置100のCPU6,ROM7,RAM8および記憶装置9と比較して、その能力や容量が格段に異なっている。
【0025】
なおセッション相手選択サーバ200は、本実施の形態では単体の装置として構成したが、これに限らず、適宜分散構成あるいはクラウド構成としてもよい。
【0026】
図2(a)は、タッチパネル2上に表示された演奏操作子画面2aの一例を示す図であり、同図(a)に示すように、演奏操作子画面2aには、複数の表示器兼演奏操作子を表示する第1の表示領域2a1と、複数の設定・制御操作子および現在の設定・制御状態を表示する第2の表示領域2a2が設けられている。
【0027】
第1の表示領域2a1には、表示器兼演奏操作子として、縦16個×横16個=合計256個の円形状のボタンがマトリックス状に配置されて表示される。縦方向(Y)には、音高の高低(番号が大きくなるに従って音高が高くなる)が割り当てられ、横方向(X)には、時間(番号が大きくなるに従って時間が進んで行く)が割り当てられている。なお、縦方向および横方向にそれぞれ付けられている“01”〜“16”の番号は、説明の都合上付けたものであって、実際には付いていない。また、円形状のボタンは、物理的な操作子である、LEDボタンを似せたもの(したがって、この物理的なLEDボタンで各表示器兼演奏操作子を構成してもよい)であるので、以下、表示された円形状のボタンも「LEDボタン」と言う。
【0028】
各LEDボタンは、たとえば、色や輝度を様々に異ならせて、複数の表示形態で表示することができる。図示例では、網掛けパターンの違いによって表示形態(たとえば、色)の違いを表現している。
【0029】
電子音楽装置100は、各LEDボタンの操作方法および発音/発光の仕方が異なる6種類の演奏モード、具体的には、スコア(Score)モード、ランダム(Random)モード、ドロー(Draw)モード、バウンス(Bounce)モード、プッシュ(Push)モードおよびソロ(Solo)モードを備えている。
【0030】
スコアモードは、6種類の演奏モードのうちの最も基本的なモードであり、楽譜の1小節に音符を書き込むように、LEDボタン上に発音ポイントを設定した後、後述のループインジケータを左から右へループさせながら移動させて繰り返し発音させるモードである。
【0031】
ランダムモードは、LEDボタン上に複数の発音ポイントを設定すると、発音ポイントの設定されたLEDボタン間で発音/発光を繰り返すモードである。
【0032】
ドローモードは、LEDボタンをなぞった動作を一定時間記憶し、記憶した通りに発音/発光を繰り返し再生するモードである。
【0033】
バウンスモードは、オン操作したLEDボタンの位置から光が落下し、ボールがバウンドするように、光が底辺にぶつかる度に発音するモードである。
【0034】
プッシュモードは、LEDボタンを押したままにすると、押されたLEDボタンを中心に段々光の輪が広がり、それとともに音も変化するモードである。
【0035】
ソロモードは、LEDボタンを押している間、繰り返し発音し、離すとその発音が停止するモードである。
【0036】
これら6種類の演奏モードの中から、最も基本的なスコアモードを例に挙げて、発音ポイントの設定方法、発音方法および発光方法などについて説明する。
【0037】
任意のLEDボタンを短い時間押して離す(以下、「短押し」と言う)と、そのLEDボタンに割り当てられた音高の音が発音する。それと同時に、そのLEDボタンの表示態様が第1表示態様(たとえば、第1の色で光る)となり、さらに、その周囲のLEDボタンへ、波紋が広がるように第1表示態様が伝搬する。このとき、表示態様の伝搬したLEDボタンは発音されない。そして、第1表示態様は直ぐに、元の状態(消灯状態)に戻る。
【0038】
任意のLEDボタンを長い時間押して離す(以下、「長押し」と言う)と、そのLEDボタンに発音ポイントが設定され、表示態様が第1表示態様となる。発音ポイントとして設定されたLEDボタンを再度長押しすると、発音ポイントの設定が解除され、表示態様も元に戻る。発音ポイントの設定は、演奏の開始前に行ってもよいが、演奏中に、リアルタイムで設定/解除を行うことができる。
【0039】
ループインジケータは、第2表示態様(たとえば、第2の色で光る)で表示された複数のLEDボタンからなり、図2(a)の演奏操作子画面2aでは、(01,01),(01,06),(01,11),(01,16)(ただし、カッコは(横方向の番号,縦方向の番号)を意味する)に位置する4つのLEDボタンからなる。自動演奏が開始すると、ループインジケータは、初期位置、つまり(01,*)(ただし、“*”は“01”〜“16”の任意の整数値を意味するので、(01,*)とは、先頭(一番左端)の列のことである)を始点として、所定のテンポに従って右方向に移動して行く。ループインジケータを含む列が、発音ポイントの設定されたLEDボタンと重なると、当該LEDボタンに割り当てられた音高の音が発音する。このとき、当該LEDボタンの第1表示態様を他の表示態様(たとえば、一瞬明るく光らせる)に一時的に変更してもよい。ループインジケータが、移動可能な範囲の末尾(一番右端)に到達すると、前記初期位置に戻り、その位置から再度右方向への移動を繰り返す。このように、予め、あるいは自動演奏中に設定された発音ポイントをループインジケータが通過することで、自動演奏して行き、自動演奏に合わせてリアルタイムに好みのLEDボタンを短押しすることで、リアルタイム演奏を行うのが、スコアモードにおける典型的な演奏形態である。
【0040】
なお、演奏モードとしては、例示した6種類に限らず、6種類より多くても、少なくてもよい。
【0041】
第2の表示領域2a2には前述のように、複数の設定・制御操作子および現在の設定・制御状態が表示される。設定・制御操作子としては、たとえば、自動演奏開始/停止ボタン、モード切替ボタン、レイヤー切替ボタン、ブロック切替ボタン、その他、テンポ、音色、オクターブ、音量およびゲートタイムなどの各種設定を行うための操作子(ボタン形状のものに限らず、スライダ形状またはダイヤル形状のものもある)などがある。これらの操作子は、一度にすべて表示される訳ではなく、動作モードの選択に応じて必要なものが選択されて表示される。
【0042】
図2(b)は、レイヤーおよびブロックの概念を説明するための図である。
【0043】
レイヤーとは、1つの演奏系列のことであり、具体的なイメージとしては、複数のリアルタイムの演奏パートからなる楽曲における1つの「演奏パート」あるいは複数パートの演奏データを記録再生可能なマルチトラックレコーダにおける1つの「録音トラック」を挙げることができる。前記演奏操作子画面2aの第1の表示領域2a1に表示された16×16のLEDボタンの表示状態は、ある1つのレイヤーに基づいて表示したものである。そして、電子音楽装置100は、複数(本実施の形態では、16層)のレイヤーを重ねて同時に自動演奏することができるが、その際、レイヤー毎に音色、音量および演奏モードを変えて自動演奏することができる。これにより、多彩な演奏を表現することができる。
【0044】
ブロックとは、同時に演奏可能なレイヤーの集合のことであり、レイヤーは、本実施の形態では上述のように、最大16層を重ねて演奏できるので、1ブロックは、最大16層のレイヤーによって構成される。そして、電子音楽装置100は、複数(本実施の形態では、16個)のブロックを前記RAM8上に登録でき、その各ブロックを次々に切り替えながら演奏することで、複雑な進行の演奏をすることができる。
【0045】
以上のように構成された電子音楽装置100が実行する制御処理を、まず図3を参照してその概要を説明し、次に図4〜図8を参照して詳細に説明する。
【0046】
図3は、電子音楽装置100と他の電子音楽装置との間で行う、通信ネットワーク300を介した音楽セッション(以下、「ネットセッション」と言う)の概念図である。
【0047】
今、電子音楽装置100は、通信ネットワーク300を介して他の3台の電子音楽装置と接続され、ネットセッションを行うものとする。このネットセッションに参加している4台の電子音楽装置を、以下、電子音楽装置A100a〜電子音楽装置D100dと表現し、電子音楽装置100が電子音楽装置A100aに相当するものとする。ネットセッションに参加している電子音楽装置A100a〜D100dのうち、いずれか1台が招待装置(“Inviter”)となり、残りの3台が被招待装置(“Invitee”)となる。たとえば、ネットセッションしたい旨を最初に申し出た電子音楽装置を招待装置とすればよい。本実施の形態では図3に示すように、電子音楽装置A100a(電子音楽装置100)が招待装置となっている。ユーザ(以下、単に「ユーザ」と記載した場合には、電子音楽装置A100aのユーザとする)が招待装置の電子音楽装置A100aに対してネットセッション開始を指示すると、他の電子音楽装置B100b〜D100dとのネットセッションが開始する。
【0048】
各電子音楽装置A100a〜D100dは、任意のレイヤーを選択して演奏することができる(ただしブロックは、各電子音楽装置A100a〜D100dで共通の1つのブロックしか選択できない)。図3では、電子音楽装置A100aがレイヤー01を、電子音楽装置B100bがレイヤー05を、電子音楽装置C100cがレイヤー02を、電子音楽装置D100dがレイヤー06をそれぞれ選択した例が描かれている。ある電子音楽装置(電子音楽装置A100a〜D100dのうちのいずれの1台でもよいが、説明の便宜上、電子音楽装置A100aとする)においてあるLEDボタンに対する短押しがなされると、その操作情報は、他の電子音楽装置B100b〜D100dにリアルタイム(もちろん、若干の通信遅延は生ずる)で伝達されて、電子音楽装置A100aで発音された音と同じ音が他の電子音楽装置B100b〜D100dでも発音される。電子音楽装置A100aと他の電子音楽装置B100b〜D100dとで、同じレイヤーが選択されていれば、両装置における表示状態も同じものとなる。また、各電子音楽装置A100a〜D100dでは、音量や音色、演奏中のブロック、テンポなどを変更することができるが、これらの変更情報も、ある電子音楽装置から他の電子音楽装置に伝達され、変更後の同じ動作状態が、すべての電子音楽装置A100a〜D100dに亘って維持される。
【0049】
本発明は、各電子音楽装置A100a〜D100dがこのようなネットセッションを問題なく行うことができるように、
(1)発音タイミングを一致させる処理(以下、「発音タイミング揃え」と言う)
(2)発音ポイントのオン/オフ状態の不整合解消処理(以下、「発音ポイント同期処理」と言う)
を実行することを特徴とする。
【0050】
上述のように、ユーザが招待装置の電子音楽装置A100aに対してネットセッション開始を指示すると、開始コマンドが、電子音楽装置A100aから他の電子音楽装置B100b〜D100dに送信されて、電子音楽装置A100aと他の電子音楽装置B100b〜D100dとの間で、ネットセッションが開始される。このとき、開始コマンドを単純に他の電子音楽装置B100b〜D100dに送信するだけでは、開始コマンドが電子音楽装置A100aから他の電子音楽装置B100b〜D100dに到達するまでに生ずる通信遅延のために、電子音楽装置A100aと他の電子音楽装置B100b〜D100dとの間で、ネットセッションの開始時刻にずれが生じることになる。この問題に対処するために、上記(1)発音タイミング揃えを行うようにしている。
【0051】
電子音楽装置A100aと他の電子音楽装置B100b〜D100d(のいずれか)との間で、同じレイヤーを選択し、このレイヤーに基づいてLEDボタンを表示しているときに、各電子音楽装置のユーザが、同じLEDボタンに対して発音ポイントのオン/オフ状態を変更する操作を略同時に行うと、当該各電子音楽装置間で、発音ポイントのオン/オフ状態が異なることがある(この具体例については、制御処理の詳細で後述する)。この問題に対処するために、上記(2)発音ポイント同期処理を行うようにしている。
【0052】
次に、この制御処理を詳細に説明する。
【0053】
図4は、電子音楽装置A100a、他の電子音楽装置B100b〜D100dおよびセッション相手選択サーバ200がそれぞれ実行する制御処理の手順を示すフローチャートである。なお、各制御処理を構成する各ステップの処理は、実際には、電子音楽装置A100a、他の電子音楽装置B100b〜D100dおよびセッション相手選択サーバ200の各CPUによって実行されるが、以下の説明では、実行主体は各装置A100a〜D100dおよび200であるとし、CPUであることを明示しないことにする。また図4中、電子音楽装置A100aは、招待装置(“Inviter”)兼ホストとなっているが、「ホスト」とは、前記(2)発音ポイント同期処理を主導するものであることを意味する。「ホスト」として主導する処理の詳細は、(2)発音ポイント同期処理を説明する中で説明する。また、他の電子音楽装置B100b〜D100dが実行する制御処理は、1つのみ記載されているが、これは、他の電子音楽装置B100b〜D100dがそれぞれ同じ制御処理を実行するからである。
【0054】
まずユーザが、電子音楽装置A100aのタッチパネル2上にログイン画面(図示せず)を表示させ、ログイン画面内の、たとえば「ログイン」ボタンをタッチ操作すると、電子音楽装置A100aは、前記ROM7(または記憶装置9)に記憶されているサーバ200のサーバ名(あるいはIPアドレス)を読み出し、読み出したサーバ名に基づいてサーバ200にアクセスし、サーバ200へログイン情報を送信する(ステップS101)。ログイン情報には、たとえば、ログインID(identification)およびログインパスワードなどが含まれる。サーバ200は、このログイン情報を受理し、受理したログイン情報に基づいて認証手続を行う(ステップS201)。この結果、認証手続が完了すると、電子音楽装置A100aはサーバ200へログイン状態となり、タッチパネル2上にログイン中画面(図示せず)を表示する。
【0055】
次にユーザが、ログイン中画面内の、たとえば「ネットセッション申出」ボタンをタッチ操作すると、電子音楽装置A100aは、サーバ200へネットセッション申出(を示す情報)を送信する(ステップS102)。サーバ200は、このネットセッション申出を受理し(ステップS202)、電子音楽装置A100aからの次の指示を待つ。
【0056】
次にユーザが、ログイン中画面内の、たとえば「ネットセッション相手選択」ボタンをタッチ操作すると、電子音楽装置A100aは、サーバ200へネットセッション相手選択を依頼する(ステップS103)。このときユーザは、ネットセッション相手を指名して、あるいは指名せずに、その選択を依頼することができるようになっている。ネットセッション相手を指名して選択依頼する際に、ユーザが指名相手を分かっていれば、その相手を指名して(特定して)選択依頼すればよいが、指名相手を分かっていなければ、指名可能な相手(の一覧)をサーバ200から取得し、その中からいずれかを指名して選択依頼すればよい。一方、ネットセッション相手を指名せずに、その選択をサーバ200に委ねる場合でも、相手の人数や国籍、居住地などを指定できるようにしてもよいし、これらのいずれの条件も指定しないで、相手の選択を完全にサーバ200に委ねるようにしてもよい。
【0057】
サーバ200は、電子音楽装置A100aからの選択依頼に応じて、ネットセッション相手を自動選択し、あるいは指名された相手を選択し、選択した相手の電子音楽装置(本実施の形態では、電子音楽装置B100b〜D100d)に招待通知を送信する(ステップS203)。ここで、「自動選択」は、サーバ200にログインされている(ステップS301)他の電子音楽装置から選択するのは言うまでもないが、上述のように、相手の人数や国籍、居住地などが指定されている場合には、指定された条件に合致した相手を選択する。
【0058】
電子音楽装置B100b〜D100dは、サーバ200からの招待通知を受信し、ユーザ(この場合は、電子音楽装置B100b〜D100dの各ユーザ)にネットセッションへの参加の有無を問い合わせる(ステップS302)。そのユーザが、電子音楽装置B100b〜D100dに対して「参加」を指示すると、電子音楽装置B100b〜D100dは、サーバ200へ参加する旨を回答する(ステップS303)。
【0059】
サーバ200は、電子音楽装置B100b〜D100dから参加する旨の回答を受信すると、各電子音楽装置に、各電子音楽装置のIPアドレスと通信ポートを通知する(ステップS204)。具体的には、電子音楽装置A100aに電子音楽装置B100b〜D100dの各IPアドレスと各通信ポートを通知し、電子音楽装置B100b〜D100dに電子音楽装置A100aのIPアドレスと通信ポートを通知する。
【0060】
電子音楽装置A100aは、サーバ200から電子音楽装置B100b〜D100dの各IPアドレスと各通信ポートを受信して、前記RAM8の所定領域に保存した後、ネットセッション待機状態とする(ステップS104)。ここで、ネットセッション待機状態には、受信した各IPアドレスと各通信ポートを通信I/F10に設定して、いつでも電子音楽装置B100b〜D100dとネットセッション可能な状態にしておくことが含まれる。各電子音楽装置B100b〜D100dも、電子音楽装置A100aの上記処理と同様の処理を行う(ステップS304)。
【0061】
次に電子音楽装置A100aは、タッチパネル2上に演奏操作子画面を表示させる(ステップS105)。このとき表示される演奏操作子画面は、現在選択されているブロックとレイヤーに基づいたものであり、その一例が、前記図2(a)の演奏操作子画面2aである。なお、ステップS105(後述するステップS306も同様)の処理の枠を破線で描いたのは、この処理を省略可能な場合があるからである。つまり前述のように、演奏操作子は、画像ではなく、物理的な操作子によって構成することもでき、この場合には、ステップS105の処理は必要ないからである。
【0062】
次にユーザが、上記演奏操作子画面内の、たとえば「ネットセッション開始」ボタンをタッチ操作すると、電子音楽装置A100aは、初期化処理および発音タイミング揃えを行う(ステップS106)。初期化処理には、すべての発音ポイントのクリア処理、ループインジケータ位置のリセット処理、タイマ(たとえば、前記CPU6に内蔵されている)のリセット・スタート処理および前記RAM8のクリア処理などが含まれる。発音タイミング揃えは、前記(1)発音タイミング揃えである。
【0063】
一般的に、各電子音楽装置A100a〜D100d間の通信遅延の大きさ(遅延時間)は、装置間毎に異なっている。また、同じ装置間、たとえば電子音楽装置A100aと電子音楽装置B100bとの間でも、様々な要因によって通信遅延の大きさに揺れがあり、常に変化している。さらに、各電子音楽装置A100a〜D100dが管理している時刻にも、各タイマをリセット・スタートさせたタイミングの違いや、同じタイミングでリセット・スタートさせたとしても、各タイマの精度の違いにより、ずれが生じる。しかし、1回の往復通信では、往路と復路とで遅延時間は略同一(ずれは無視できる程度)である。そこで、この往路と復路の各遅延時間が同一と仮定することで、発音タイミングを合わせることができる。
【0064】
図7は、発音タイミング揃えの具体的な方法を説明するための図であり、以下、同図を参照して、発音タイミング揃えを説明する。なお、発音タイミング揃えは、電子音楽装置A100aから電子音楽装置B100b〜D100dのすべてに対してなされるが、その処理内容は、電子音楽装置B100b〜D100dのいずれに対しても同様であるので、電子音楽装置B100b〜D100dの代表として電子音楽装置B100bを選択し、電子音楽装置A100aと電子音楽装置B100bの間でなされる「発音タイミング揃え」についてのみ説明する。
【0065】
まず電子音楽装置A100aは、電子音楽装置B100bに現在時刻要求コマンドを送信する。この送信時刻を時刻Ta1として、RAM8の所定位置に確保された時刻格納領域(図示せず)に記憶する。現在時刻要求コマンドを受信した電子音楽装置B100bは、自装置内の時計機能で計時した現在時刻(時刻Tbとする)を電子音楽装置A100aに返信する。なお時刻Tbは、現在時刻要求コマンドを受信した時点の時刻でも、現在時刻を電子音楽装置A100aに返信した時点の時刻でもよい。電子音楽装置B100bのCPUの処理速度が十分速ければ、両時刻は実質同一と見なせる。電子音楽装置A100aは、電子音楽装置B100bが返信した時刻Tbを受信すると、その時刻を自装置内の時計機能で計時する。その時刻を時刻Ta2として、前記時刻格納領域に記憶する。さらに、時刻Tbも時刻格納領域に記憶する。これらの時刻Ta1およびTa2から、
片道遅延時間 = (Ta2−Ta1)/2
と算出される。
【0066】
時刻Ta2から進んだ時刻Ta3において、電子音楽装置A100aは、時刻Ta3から時間Tdだけ経過した時刻で、発音タイミングを揃えることを決定し、実際にその時刻で発音タイミング揃え(自動演奏の基準時刻設定)を行う。この時間Tdは、上記片道遅延時間より大きい値である。そして電子音楽装置A100aは、電子音楽装置B100bに対して、
Tb+Td+(Ta3−Ta1)−(Ta2−Ta1)/2
あるいは
Tb+Td+(Ta3−Ta2)+(Ta2−Ta1)/2
の時刻に発音タイミングを揃えることを指示する発音タイミング揃え指示コマンドを送信する。発音タイミング揃え指示コマンドを受信した電子音楽装置B100bは、指示された時刻になると、発音タイミング揃え(自動演奏の基準時刻設定)を行う。
【0067】
このように、発音タイミングを揃える時刻を決定する因子であって、通信遅延に関するものは、片道遅延時間を計測した時点の通信遅延のみに限るようにし、さらに、発音タイミングを揃える時刻を決定するための基準時刻(始点)を電子音楽装置A100a側(時刻Ta1+(Ta2−Ta1)/2)と電子音楽装置B100b側(時刻Tb)とで一致させたので、発音タイミング揃えを行う時点の通信遅延が、片道遅延時間を計測した時点の通信遅延と異なっていたとしても、電子音楽装置A100aと電子音楽装置B100bの各発音タイミングは正確に一致することになる。
【0068】
図4に戻り、次に電子音楽装置A100aは、ネットセッション処理を実行する(ステップS107)。ネットセッション処理は、ユーザが電子音楽装置A100aに対して行った各種操作に関する情報を他の電子音楽装置B100b〜D100dに送信して、反映させることで、電子音楽装置A100aと他の電子音楽装置B100b〜D100dとの間で、ネットセッションを実現するものである。これとは逆に、他の電子音楽装置B100b〜D100dに対してなされた各種操作に関する情報も、他の電子音楽装置B100b〜D100dから電子音楽装置A100aに送信され、反映される。つまり、各種操作に関する情報は、電子音楽装置A100aと他の電子音楽装置B100b〜D100dとの間で、双方向に送受信される。したがって、他の電子音楽装置B100b〜D100d側にも、ネットセッション処理が設けられて、実行される(ステップS307)。
【0069】
ネットセッション処理は、ユーザがネットセッションの終了を指示するまで、繰り返し実行される(ステップS107→S108→S107)。そして、ユーザがネットセッションの終了を指示すると、電子音楽装置A100aは、終了処理を実行した(ステップS109)後、本制御処理を終了する。終了処理には、サーバ200からのログオフ処理が含まれる。このログオフ処理の詳細については、省略する。他の電子音楽装置B100b〜D100d側にも、電子音楽装置A100a側の上記ステップS108およびS109の各処理と同様の処理が設けられて、実行される(ステップS308,S309)。
【0070】
図5は、前記ステップS107およびS307の各ネットセッション処理の詳細な手順を示すフローチャートである。
【0071】
まず電子音楽装置A100aは、LEDボタンのオン/オフデータを他の電子音楽装置B100b〜D100dから受信し、RAM8の所定位置に確保されたオン/オフデータ格納領域(図示せず)に記憶する(ステップS111)。LEDボタンのオン/オフデータは、(Layer,X,Y,ON/OFF)というフォーマットによって構成されている。“Layer”は、当該LEDボタンを表示する際に基礎としたレイヤーの番号(“01”〜“16”のいずれか)を示し、“X”は、当該LEDボタンの横方向の番号(“01”〜“16”のいずれか)を示し、“Y”は、当該LEDボタンの縦方向の番号(“01”〜“16”のいずれか)を示し、“ON/OFF”は、当該LEDボタンがオン状態であるかオフ状態であるかを示している。なお、受信したオン/オフデータをオン/オフデータ格納領域に記憶させるときには、オン/オフデータに付随させて、その受信時刻も記憶させるものとする。記憶された受信時刻は、後述するように、当該LEDボタンが短押しされたか、長押しされたかを判別するときに使用する。また、ステップS111に処理が進んだときに、LEDボタンのオン/オフデータが他の電子音楽装置B100b〜D100dから送信されて来ない場合も当然あり得、その場合には、ステップS111の処理はスキップされて、処理は次のステップS112に進む(この事情は、以下のステップS112〜S120の各処理(ただし、ステップS113の処理は除く)についても同様である)。
【0072】
次に電子音楽装置A100aは、タッチパネル2から各LEDボタンのオン/オフ操作を検出し、検出したオン/オフ操作に基づいてオン/オフ操作情報を生成し、そのオン/オフ操作情報をRAM8の所定位置に確保されたオン/オフ操作情報格納領域(図示せず)に記憶する(ステップS112)。ここで、オン/オフ操作情報は、上記オン/オフデータから“Layer”を除き、オン/オフ操作がなされた時刻(オン/オフ操作時刻)を加えたフォーマット(X,Y,ON/OFF,T)(ただし、“T”は、オン/オフ操作時刻である)によって構成されている。なお、“Layer”を除かずに、オン/オフ操作時刻を単純に追加したフォーマットを採るようにしてもよい。
【0073】
次に電子音楽装置A100aは、レイヤー毎の制御処理を実行する(ステップS113)。
【0074】
図6は、レイヤー毎の制御処理の詳細な手順を示すフローチャートである。
【0075】
本レイヤー毎の制御処理は、
(11)整数値を採る変数Nを初期値“1”に設定(ステップS131);
(12)他の電子音楽装置B100b〜D100dのいずれかの演奏操作子画面がレイヤーNに基づいて表示されたものであり、その演奏操作子画面内のいずれかのLEDボタンがオン/オフ操作されたかどうかを判別し(ステップS132);
(12a)その判別結果が“YES”の場合:そのオン/オフ操作を電子音楽装置A100aの発音および発音ポイント設定に反映させる第1の反映処理を実行(ステップS133);
(12b)その判別結果が“NO”の場合:上記第1の反映処理をスキップ;
(13)電子音楽装置A100aでレイヤーNが選択されているかどうか、つまり、タッチパネル2上に表示された演奏操作子画面がレイヤーNに基づいたものであるかどうかを判別し(ステップS134);
(13a)その判別結果が“YES”の場合:(14)の判別に進む;
(13b)その判別結果が“NO”の場合:(16)の判別に進む;
(14)タッチパネル2上に表示された演奏操作子画面内のいずれかのLEDボタンがオン/オフ操作されたかどうかを判別し(ステップS135);
(14a)その判別結果が“YES”の場合:そのオン/オフ操作を自身の電子音楽装置A100aの発音および発音ポイント設定に反映させる第2の反映処理を実行(ステップS136);
(14b)その判別結果が“NO”の場合:上記第2の反映処理をスキップ;
(15)前記(12a)におけるオン/オフ操作(他の電子音楽装置B100b〜D100dのいずれかに対するオン/オフ操作)および前記(14a)におけるオン/オフ操作(自身の電子音楽装置A100aに対するオン/オフ操作)をタッチパネル2上に表示された演奏操作子画面(レイヤーNに基づいたもの)内の対応するLEDボタンの表示態様に反映させる第3の反映処理を実行(ステップS137);
(16)変数Nが、選択中のブロックに登録されているレイヤー数の最大値かどうかを判別し(ステップS138);
(16a)その判別結果が“YES”の場合:本レイヤー毎の制御処理を終了;
(16b)その判別結果が“NO”の場合:変数Nを“1”だけインクリメントして、注目レイヤーを次のレイヤーに進めた(ステップS139)後、前記(12)の判別に戻って、(12)〜(16)の処理を繰り返す;
という処理によって構成されている。
【0076】
前記(12)の判別では、実際には、まず前記オン/オフデータ格納領域にLEDボタンのオン/オフデータが1つ以上記憶されているかどうかを判別し、その結果、オン/オフデータが1つ以上記憶されていれば、次にそのオン/オフデータがレイヤーNについてのものであるかどうかを判別する。LEDボタンのオン/オフデータがオン/オフデータ格納領域に記憶される場合は、他の電子音楽装置B100b〜D100dのいずれかのユーザが、そのとき(つまり、当該オン/オフデータが生成されたとき)選択されているレイヤーに基づいて表示された演奏操作子画面内のいずれかのLEDボタンをオン/オフ操作した場合である。そして、そのとき選択されているレイヤーの番号は、当該オン/オフデータに含まれているレイヤー番号をチェックすることで知ることができる。
【0077】
前記(12a)における第1の反映処理では、電子音楽装置A100aは、レイヤーNについて設定されている演奏モードに応じて、受信したLEDボタンのオン/オフデータに基づく発音処理および発音ポイント設定処理を実行する(ステップS133)。この発音処理および発音ポイント設定処理は、電子音楽装置A100aのタッチパネル2上に表示された演奏操作子画面内のいずれかのLEDボタンをユーザが短押しまたは長押ししたときに、前記(14a)における第2の反映処理でなされる発音処理および発音ポイント設定処理と同様の処理を、他の電子音楽装置B100b〜D100dのいずれか1台以上から送信されて来たLEDボタンのオン/オフデータ(オン/オフ操作)に基づいて行うものである。したがって、第1の反映処理の前で、あるいはその処理中に、当該オン/オフデータが、「短押し」に相当するものであるか、「長押し」に相当するものであるかを判別する必要がある。当該オン/オフデータが、たとえば(N,X1,Y1,ON/OFF)で示されるものとする。いずれのオン/オフデータにも、前述のように、その受信時刻が付随しているので、次のようにして、その受信時刻に基づいて当該オン/オフデータが「短押し」または「長押し」のいずれに相当するものかを判別することができる。つまり、(N,X1,Y1,ON)の受信時刻t1と(N,X1,Y1,OFF)の受信時刻t2との時間間隔I(=t2−t1)を算出し、時間間隔I<所定の閾値であれば、「短押し」と判別し、時間間隔I≧所定の閾値であれば、「長押し」と判別する。「短押し」であるか「長押し」であるかが判別されれば、その判別結果とレイヤーNの演奏モードに応じて、発音処理および発音ポイント設定処理の各処理内容は一意的に決まるので、その処理内容が実行される。
【0078】
たとえば、レイヤーNの演奏モードとして「スコアモード」が設定されている状態で、当該オン/オフデータが「短押し」に相当するものであると判別された場合には、発音処理によって、位置(X1,Y1)のLEDボタンに割り当てられた音高の音が、レイヤーNに設定されている音色で発音される。そして「短押し」では、発音ポイントは設定されないので、この場合には、発音ポイント設定処理はなされない。一方、「スコアモード」が設定されている状態で、当該オン/オフデータが「長押し」に相当するものであると判別された場合には、当該LEDボタンに割り当てられた音高の音は発音されないので、発音処理はなされない。しかし、発音ポイント設定処理によって、レイヤーNの当該LEDボタンの位置(X1,Y1)に発音ポイントが設定される。
【0079】
前記(14)の判別では、実際には、前記オン/オフ操作情報格納領域にLEDボタンのオン/オフ操作情報が1つ以上記憶されているかどうかを判別する。LEDボタンのオン/オフ操作情報がオン/オフ操作情報格納領域に記憶される場合は、タッチパネル2上に表示されている演奏操作子画面(現在選択されているレイヤーに基づいて表示されたもの)のいずれかのLEDボタンがオン/オフ操作された場合に限られるからである。そして、現在選択されているレイヤーがレイヤーNの場合に、(14)の判別がなされるので、この判別の際に、オン/オフ操作情報格納領域に1つ以上のオン/オフ操作情報が記憶されていれば、そのオン/オフ操作情報は、ユーザがタッチパネル2上のいずれかのLEDボタンをオン/オフ操作したことによって生成され記憶されたものに他ならない。
【0080】
前記(14a)における第2の反映処理では、電子音楽装置A100aは、レイヤーNについて設定されている演奏モードに応じて、検出した(オン/オフ操作情報格納領域に記憶された)LEDボタンのオン/オフ操作情報に基づく発音処理および発音ポイント設定処理を実行する(ステップS136)。第2の反映処理で用いるオン/オフ操作情報は、前記第1の反映処理で用いるオン/オフデータに対して、レイヤー番号が含まれていないことと、オン/オフ操作時刻が含まれていることが異なるのみであり、第2の反映処理は、第1の反映処理を類推適用すれば簡単に実現可能であるので、その詳細な説明は省略する。
【0081】
前記(15)の第3の反映処理は、前述のように、受信および/または検出したLEDボタンのオン/オフ操作を、タッチパネル2上に表示された演奏操作子画面内の当該LEDボタンの表示態様に反映させるものであるが、この第3の反映処理を第1の反映処理に含ませずに、独立して行うようにしたのは、レイヤーNが、他の電子音楽装置B100b〜D100dのいずれか(たとえば、電子音楽装置B100b)では選択されているのに対して、電子音楽装置A100aでは選択されていない場合に、電子音楽装置B100bのいずれかのLEDボタンが「短押し」されると、レイヤーNにおいて当該LEDボタンに割り当てられた音高の音は発音されるものの、タッチパネル2上に表示されている演奏操作子画面は、レイヤーNとは異なったレイヤーに基づいたものであるので、その演奏操作子画面内の対応するLEDボタンの表示態様は変更されないからである。
【0082】
図5に戻り、電子音楽装置A100aは、検出したLEDボタンのオン/オフデータを他の電子音楽装置B100b〜D100dへ送信する(ステップS114)。LEDボタンのオン/オフ操作が検出されると、前述のようにオン/オフ操作情報格納領域には、(X,Y,ON/OFF,T)のフォーマットのオン/オフ操作情報が記憶されるので、ステップS114では、電子音楽装置A100aは、このフォーマットをオン/オフデータのフォーマット(Layer,X,Y,ON/OFF)に変換して、他の電子音楽装置B100b〜D100dへ送信する。ただし“Layer”には、電子音楽装置A100aに現在選択されているレイヤーの番号が入力される。なお、オン/オフ操作情報として“Layer”が含まれるフォーマットを採った場合には、(Layer,X,Y,ON/OFF,T)から“T”が除外されるだけである。
【0083】
次に電子音楽装置A100aは、前記(2)の発音ポイント同期処理(ステップS115,S116)を実行する。
【0084】
図8は、この発音ポイント同期処理を説明するための図である。同図には、電子音楽装置A100aと電子音楽装置B100b(他の電子音楽装置B100b〜D100dの代表として挙げたものであり、電子音楽装置B100bに限らず、電子音楽装置C100cでも電子音楽装置D100dでもよい)との間で、同じレイヤーが選択されて、このレイヤーに基づいて同じ演奏操作子画面が表示されているときに、各電子音楽装置のユーザが、同じLEDボタンに対して発音ポイントのオン/オフ状態を変更する操作を略同時に行うと、当該電子音楽装置間で、発音ポイントのオン/オフ状態が異なる場合が図示されている。
【0085】
電子音楽装置A100aで、ある1つのLEDボタンがオン操作される(状態C1)と、その状態C1が、通信遅延時間(通常、数十ms程度)経過後に、電子音楽装置B100bに到達する(状態C1′)。実際には、状態C1ではなく、当該LEDボタンのオン/オフデータが電子音楽装置A100aから電子音楽装置B100bに到達するのであるが、説明を簡単化するために、以下、状態Ck(kは、整数値)が両電子音楽装置間で送受信されるものとする。状態C1の後、前記所定の閾値(長押し判定時間)以上に当該LEDボタンが押されたので、発音ポイントが設定された(状態C5;図中、“◎”は発音ポイントが設定された状態であることを示している)。
【0086】
電子音楽装置B100bでは、状態C1′となった時刻から、それが「短押し」か「長押し」かの判別処理に入るが、この判別処理の途中で、当該LEDボタンが長押し判定時間未満でオンおよびオフ操作される(状態C2,C3)と、その状態C2,C3が、通信遅延時間経過後に、電子音楽装置A100aに到達する(状態C2′,C3′)。このとき、状態C1′から状態C2に至る時間が上記長押し判定時間に満たない場合には、発音ポイントは設定されない。
【0087】
電子音楽装置A100aでは、状態C2′(オン操作)となる前に、当該LEDボタンがオフ操作される(状態C4)と、その状態C4が、通信遅延時間経過後に、電子音楽装置B100bに到達する(状態C4′)。
【0088】
このように、同じLEDボタンについてのオン操作とオフ操作が、異なる電子音楽装置で略同時に発生すると、発音ポイントの設定状態が異なってしまう事態が起こり得る(図示例では、当該LEDボタンについての発音ポイントは、電子音楽装置A100aでは設定状態であるのに対して、電子音楽装置B100bでは非設定状態である)。
【0089】
この問題に対処するために、本発明では、ネットセッションを行っている複数の電子音楽装置(本実施の形態では、電子音楽装置A100a〜D100d)の中の1台(本実施の形態では、電子音楽装置A100a)をホストとし、ホストで表示されている演奏操作子画面内のいずれかのLEDボタンに対して、ホストを含むすべての電子音楽装置のうちのいずれかのユーザからオン/オフ操作がなされた場合に、当該LEDボタンに対するオン/オフ操作のログ(そのフォーマットは、たとえば(Layer,X,Y,現在時刻))を取って、RAM8の所定位置に確保されたログ格納領域(図示せず)に保存し(ステップS115)、保存されてから所定時間(たとえば、1秒)経過したログがあれば、その位置(Layer,X,Y)のLEDボタンの現在のオン/オフ状態を調べて、ホスト以外の電子音楽装置(本実施の形態では、電子音楽装置B100b〜D100d)に送信した後、当該ログを消去する(ステップS116)ようにしている。
【0090】
具体的には、図8において、状態C1のログは、保存されてから所定時間Tα経過すると、当該LEDボタンの現在のオン/オフ状態が調べられる。このとき、当該LEDボタンには前述のように、発音ポイントが設定されているので、発音ポイントが設定されていることを示す情報が電子音楽装置B100bに送信される(状態C1″)。電子音楽装置B100bは、この状態C1″を自身の当該LEDボタンに反映させる(ステップS315)。これにより、両電子音楽装置間で、当該LEDボタンのオン/オフ状態は一致する。同様に、状態C4,C2′およびC3′のログも、保存されてから所定時間Tα経過すると、当該LEDボタンの現在のオン/オフ状態が調べられて、そのオン/オフ状態が電子音楽装置B100bに送信される。ただしこの場合には、オン/オフ状態は同じ状態(発音ポイントが設定された状態)が続いているので、敢えてそのオン/オフ状態を電子音楽装置B100bに知らせる必要はなく、この場合には、状態C1″だけ送信し、状態C4″,C2′″およびC3′″は送信しないようにしてもよい。
【0091】
このように本実施の形態では、ホストのLEDボタンについてオン/オフ操作がなされたときに、そのログを取るようにし、その後、ログに応じたLEDボタンのオン/オフ状態をホスト以外の電子音楽装置に送信し、これに応じて各電子音楽装置は、受信したオン/オフ状態を自身のLEDボタンに反映させるようにしたので、タイムラグはあるものの、ホストを含むすべての電子音楽装置間で、各LEDボタンのオン/オフ状態を同じ状態に設定することができる。
【0092】
なお本実施の形態では、ホストと招待装置(“Inviter”)を同じ電子音楽装置(電子音楽装置A100a)が担当するようにしたが、これに限らず、ホストと招待装置を別々の電子音楽装置が担当するようにしてもよい。
【0093】
図5に戻り、ユーザが電子音楽装置A100a上で各種パラメータを設定すると、その設定状態が、電子音楽装置A100aから他の電子音楽装置B100b〜D100dに送信される。逆に、他の電子音楽装置B100b〜D100dのいずれかで、各種パラメータの設定がなされると、その設定状態が、当該他の電子音楽装置から電子音楽装置A100aに送信されるので、電子音楽装置A100aは、これを受信して自装置の各種パラメータ設定に反映させる(ステップS117)。ブロックが現在選択されているものから他のものに変更されたときにも、同様に、変更後のブロックの番号が、電子音楽装置A100aから他の電子音楽装置B100b〜D100dに送信される。逆に、他の電子音楽装置B100b〜D100dのいずれかで、ブロックが変更されると、変更後のブロックの番号が、当該他の電子音楽装置から電子音楽装置A100aに送信されるので、電子音楽装置A100aは、これを受信して自装置のブロック変更に反映させる(ステップS119)。これにより、ネットセッション中のすべての電子音楽装置で、同じブロックの演奏が行われる。しかし、レイヤーは、他のレイヤーが選択されたとしても、その変更は電子音楽装置A100a内でのみ反映され、他の電子音楽装置B100b〜D100dには送信されない(ステップS118)。各電子音楽装置で、別々のレイヤーを演奏できるようにするためである。これと同様に、その他設定などがなされたとしても、その設定状態は、他の電子音楽装置B100b〜D100dに送信されない(ステップS120)。
【0094】
以上が、電子音楽装置A100a側のネットセッション処理についての説明であるが、電子音楽装置A100a側のネットセッション処理に含まれる前記ステップS111〜S114およびS117〜S120の各処理とそれぞれ対応するステップS311〜S314およびS317〜S320の各処理が、他の電子音楽装置B100b〜D100d側のネットセッション処理に含まれている。これらステップS311〜S314およびS317〜S320の各処理は、対応するステップS111〜S114およびS117〜S120の各処理を類推適用すれば、簡単に実現できるので、各処理についての説明は省略する。
【0095】
なお本実施の形態では、前記(1)発音タイミング揃えは、ネットセッションを開始する前に1度だけ行うようにしたが、これに加えて、ネットセッション中の任意のタイミングで行うようにしてもよい。
【0096】
また本実施の形態では、各電子音楽装置A100a〜D100dとして、ネットセッションができるものを前提とし、これに加えて単独演奏ができるかどうかについて言及していないが、もちろん、単独演奏できるようなものでもよい。
【0097】
さらに本実施の形態では、ネットセッションを開始する際の初期化処理(前記図4のステップS106,S306参照)により、選択されているレイヤーにおける発音ポイントはすべてクリアされ、まっさらな状態から演奏するようにしたが、これに限らず、予め作成されたソングデータ(複数のブロックからなり、各ブロックは複数のレイヤーからなるもの)を各電子音楽装置A100a〜D100dに配布し、各電子音楽装置A100a〜D100dで、このソングデータを再生しながら、ネットセッションを行うようにしてもよい。また、ネットセッションで作成された演奏データをソングデータとして保存できるようにしてもよい。
【0098】
前記(1)発音タイミング揃えや前記(2)発音ポイント同期処理は、各電子音楽装置A100a〜D100dのような、マトリックス状に配置された複数のLEDボタンのそれぞれを操作することで、発生する音や光(表示)を楽しむ、いわゆる「マトリックスシーケンサ」に限らず、複数の電子音楽装置で同期演奏をするものであれば、どのような演奏形態のものにでも、適用することができる。
【0099】
またマトリックスシーケンサにおいては、複数のレイヤーを同時に重ねて再生できるとともに、複数のレイヤーからなるブロック複数を任意に切り替えながら再生できるものに限らず、レイヤーの概念がなく、単一レイヤーしか再生できないものでも、レイヤーの概念を持ち、複数のレイヤーを同時に重ねて再生できるものの、ブロックの概念がなく、単一ブロックしか再生できないものでもよい。
【0100】
各電子音楽装置A100a〜D100dは、本実施の形態では、LEDボタンを含む演奏操作子に対する操作や、設定した発音ポイントにループインジケータが重なることに応じて音源・効果回路11の、特に音源回路を駆動し、対応する音を発音するようにしたが、これに限らず、予め用意されたオーディオ波形データを読み出し、これに基づいて対応する音を発音するようにしてもよい。また音源回路は、本実施の形態では、ハードウェアによって構成されることを想定しているが、これに限らず、CPU6を使って楽音波形を生成するソフトウェア音源によって構成してもよい。さらに、音源・効果回路11を省略し、外部の音源装置に発音/消音コマンドを供給するようにして、外部音源から対応する音を発音するようにしてもよい。
【0101】
前記(2)発音ポイント同期処理では、複数の電子音楽装置のうちの1台がログ管理と他装置への同期指示(不整合解消指示)とを行うようにしたが、これに限らず、演奏に関与しない装置が、各電子音楽装置から操作データを受信してそのログを取るとともに、各電子音楽装置に不整合解消指示を行うようにしてもよい。
【0102】
操作のログは、本実施の形態では前述のように、(Layer,X,Y,現在時刻)のフォーマットを採るようにして、レイヤー、LEDボタンの位置および時刻を記録しておき、記録後所定時間経過すると、当該レイヤーおよび位置のLEDボタンの最新のオン/オフ状態を他装置に送信するようにしたが、これに限らず、ログとして操作内容(オン/オフ)も記録しておき、他装置には、上記最新のオン/オフ状態に代えて、記録した操作内容を送信するようにしてもよい。
【0103】
他の装置から受信したLEDボタンのオン/オフデータに基づくLEDボタンの表示については、本実施の形態では、当該オン/オフデータに含まれるレイヤーの番号が現在選択されているレイヤーの番号と一致した場合にのみ、その表示態様を変更するようにしたが、これに限らず、両レイヤー番号が一致していなくても、その表示態様を変更するようにしてもよい。ただし、複数のレイヤーに対して、発音ポイントに設定されたLEDボタンの表示態様を同様に変更すると、表示が乱雑になってしまい、どれが現在選択されているレイヤーについての表示なのかが分からなくなってしまう。そこで、現在選択されているレイヤーについての表示と、現在選択されていないレイヤーについての表示とで、その表示態様を異ならせるようにするのが望ましい。たとえば、現在選択されていないレイヤーについての表示は、輝度を落としたり、リアルタイム演奏に応じた発音に関するLEDボタンのみの表示態様を変更し、発音ポイント設定に関するLEDボタンの表示態様は変更しない、などが考えられる。
【0104】
また、自機の操作に基づくLEDボタンの表示態様と、他の装置から受信したLEDボタンのオン/オフデータに基づくLEDボタンの表示態様とを異ならせるようにしてもよい。たとえば、どの装置から送信されて来たLEDボタンのオン/オフデータかが識別できるように、オン/オフデータに機器IDのようなものを含ませておき、受信した装置においては、機器IDに応じて異なる表示態様(たとえば、色を異ならせるなど)で表示するようにしてもよい。そして、機器ID毎にどの表示態様にするかは、LEDボタンのオン/オフデータを送信する装置側で設定できるようにしてもよいし、受信する装置側で設定できるようにしてもよい。送信する装置側で設定する場合には、他の装置に対して表示態様設定情報を送信するようにする。
【0105】
本実施の形態では、複数の電子音楽装置のうち、ネットセッションしたい旨を最初に申し出た装置1台が招待装置(“Inviter”)となり、それ以外のすべての装置が被招待装置(“Invitee”)となった、つまり、各装置は常に、招待装置または被招待装置のいずれか一方に確定されるが、これに限らず、ある装置からネットセッション相手を指名した場合についてのみ、各装置は招待装置または被招待装置のいずれか一方に確定され、サーバ200が自動的にネットセッション相手を選択したときには、招待装置と被招待装置との区別はされず、すべての装置が招待装置として動作するようにしてもよい。
【0106】
また本実施の形態では、LEDボタンのオン/オフデータとして(Layer,X,Y,ON/OFF)というフォーマットのものを採り、オン/オフデータが「短押し」に相当するものであるか「長押し」に相当するものであるかの判別は、オン/オフデータの受信側の装置で行うようにしたが、これに限らず、その判別を、オン/オフデータの送信側の装置で行い、その判別結果、つまり「短押し」または「長押し」のいずれであるかを示す「押下状態情報」をオン/オフデータ内に含めるようにして、受信側の装置では、受信したオン/オフデータ内の「押下状態情報」を調べることで、当該オン/オフデータが「短押し」または「長押し」のいずれに相当するものかを判別するようにしてもよい。
【0107】
なお、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0108】
この場合、記憶媒体から読出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードおよび該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0109】
プログラムコードを供給するための記憶媒体としては、たとえば、フレキシブルディスク、ハードディスク、光磁気ディスク、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。また、通信ネットワークを介してサーバコンピュータからプログラムコードが供給されるようにしてもよい。
【0110】
また、コンピュータが読出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOSなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【0111】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【符号の説明】
【0112】
6…CPU(送信手段、第1の計時手段、第2の計時手段、受信手段、設定手段、指示手段),8…RAM(第1の計時手段、第2の計時手段),10…通信I/F(接続手段、送信手段、受信手段)

【特許請求の範囲】
【請求項1】
通信ネットワークを介して接続された、少なくとも2台の第1および第2電子音楽装置間で、所定の基準信号のタイミング合わせを行うタイミング合わせ方法であって、
前記第1電子音楽装置から前記第2電子音楽装置へ現在時刻要求を送信させる第1ステップと、
前記第1ステップによって現在時刻要求を送信した時刻を前記第1電子音楽装置に計時させて、時刻Ta1として記憶させる第2ステップと、
前記第1電子音楽装置から送信されて来た現在時刻要求を前記第2電子音楽装置に受信させる第3ステップと、
前記第3ステップによって現在時刻要求が前記第2電子音楽装置に受信されたことに応じて、現在時刻Tbを前記第2電子音楽装置から前記第1電子音楽装置へ送信させる第4ステップと、
前記第3ステップによって現在時刻要求が受信された時刻または前記第4ステップによって現在時刻Tbが送信される時刻を第2電子音楽装置に計時させて、現在時刻Tbとする第5ステップと、
前記第2電子音楽装置から送信されて来た現在時刻Tbが受信された時刻を前記第1電子音楽装置に計時させて、時刻Ta2として記憶させる第6ステップと、
前記時刻Ta2から進んだ時刻Ta3を設定する第7ステップと、
前記時刻Ta3から時間Tdだけ経過した時点でタイミングを合わせると決定した場合に、次式(1)または(2)のいずれか一方で表される時刻でタイミングを合わせるように前記第2電子音楽装置に指示する第8ステップと
Tb+Td+(Ta3−Ta1)−(Ta2−Ta1)/2 …(1)
Tb+Td+(Ta3−Ta2)+(Ta2−Ta1)/2 …(2)
を有することを特徴とするタイミング合わせ方法。
【請求項2】
通信ネットワークを介して接続された他の電子音楽装置との間で、所定の基準信号のタイミング合わせを行うタイミング合わせ方法をコンピュータに実行させるプログラムであって、
前記タイミング合わせ方法は、
前記他の電子音楽装置へ現在時刻要求を送信する送信ステップと、
前記送信ステップによって現在時刻要求を送信した時刻を計時し、時刻Ta1として記憶させる第1の計時ステップと、
前記送信ステップによって送信された現在時刻要求が前記他の電子音楽装置によって受信されたことに応じて、前記他の電子音楽装置が送信した現在時刻Tbを受信する受信ステップと、
前記受信ステップによって現在時刻Tbが受信された時刻を計時し、時刻Ta2として記憶させる第2の計時ステップと、
前記時刻Ta2から進んだ時刻Ta3を設定する設定ステップと、
前記時刻Ta3から時間Tdだけ経過した時点でタイミングを合わせると決定した場合に、次式(1)または(2)のいずれか一方で表される時刻でタイミングを合わせるように前記他の電子音楽装置に指示する指示ステップと
Tb+Td+(Ta3−Ta1)−(Ta2−Ta1)/2 …(1)
Tb+Td+(Ta3−Ta2)+(Ta2−Ta1)/2 …(2)
を有する
ことを特徴とするプログラム。
【請求項3】
通信ネットワークを介して他の電子音楽装置と接続する接続手段と、
前記接続手段によって接続された他の電子音楽装置へ現在時刻要求を送信する送信手段と、
前記送信手段によって現在時刻要求を送信した時刻を計時し、時刻Ta1として記憶する第1の計時手段と、
前記送信手段によって送信された現在時刻要求が前記他の電子音楽装置によって受信されたことに応じて、前記他の電子音楽装置が送信した現在時刻Tbを受信する受信手段と、
前記受信手段によって現在時刻Tbが受信された時刻を計時し、時刻Ta2として記憶する第2の計時手段と、
前記時刻Ta2から進んだ時刻Ta3を設定する設定手段と、
前記時刻Ta3から時間Tdだけ経過した時点でタイミングを合わせると決定した場合に、次式(1)または(2)のいずれか一方で表される時刻でタイミングを合わせるように前記他の電子音楽装置に指示する指示手段と
Tb+Td+(Ta3−Ta1)−(Ta2−Ta1)/2 …(1)
Tb+Td+(Ta3−Ta2)+(Ta2−Ta1)/2 …(2)
を有することを特徴とする電子音楽装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−141417(P2012−141417A)
【公開日】平成24年7月26日(2012.7.26)
【国際特許分類】
【出願番号】特願2010−293529(P2010−293529)
【出願日】平成22年12月28日(2010.12.28)
【出願人】(000004075)ヤマハ株式会社 (5,930)
【Fターム(参考)】