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