(57)【特許請求の範囲】
【請求項１】
電子音楽装置のＧＵＩを開発するＧＵＩ開発装置であって、
前記電子音楽装置に接続し、該電子音楽装置とデータの送受信を行う通信手段と、
複数のウィンドウを表示可能な表示手段と、
前記電子音楽装置がＧＵＩとして表示可能なウィジェットの集合であるウィジェットライブラリを記憶する記憶手段と、
該記憶手段に記憶されたウィジェットライブラリからユーザが選択したウィジェットを、前記複数のウィンドウのうち、ユーザによって指定されたウィンドウ上に配置させることで、当該ウィンドウを構成するウィンドウ構成手段と、
該ウィンドウ構成手段によってウィンドウ上に配置されたウィジェットと、前記電子音楽装置が備えている複数のパラメータのうち、ユーザによって指定されたパラメータとを関連付けるウィジェット・パラメータ関連付け手段と、
該ウィジェット・パラメータ関連付け手段によって関連付けられたパラメータの値を、前記通信手段を介して前記電子音楽装置から取得する取得手段と、
該取得手段によって取得されたパラメータの値を、対応するウィジェットの表示に反映させる反映手段と、
前記ウィンドウ構成手段によって構成されたウィンドウ構成を示すウィンドウ構成情報と、前記関連付け手段によって関連付けられたウィジェットとパラメータを示すウィジェット・パラメータ関連付け情報を出力する出力手段と
を有することを特徴とするＧＵＩ開発装置。
【請求項２】
前記通信手段を介して前記電子音楽装置の動作状態が所定の動作状態に遷移したことを検知する状態遷移検知手段と、
該状態遷移検知手段によって前記所定の動作状態が検知されたときに、現在アクティブになっているウィンドウ構成を他のウィンドウ構成に切り替える切り替え手段と
をさらに有し、
前記出力手段は、前記所定の動作状態と切り替えるべきウィンドウ構成とを関連付ける動作状態・ウィンドウ構成関連付け情報も出力することを特徴とする請求項１に記載のＧＵＩ開発装置。
【請求項３】
当該ＧＵＩ開発装置に対する所定のユーザ操作を検知するユーザ操作検知手段と、
前記所定のユーザ操作と、前記電子音楽装置が備えている複数のパラメータのうち、ユーザによって指定されたパラメータとを関連付けるユーザ操作・パラメータ関連付け手段と、
前記ユーザ操作検知手段によって前記所定のユーザ操作が検出されたときに、該検出された所定のユーザ操作に関連付けられたパラメータの値を変更するように、前記通信手段を介して前記電子音楽装置に指示する指示手段と
をさらに有することを特徴とする請求項１または２に記載のＧＵＩ開発装置。
【請求項４】
所定のユーザ操作に応じて発生されたイベントまたは前記電子音楽装置が備えた所定のパラメータの状態変化に応じて発生されたイベントを検知するイベント検知手段と、
該イベント検知手段によってイベントが検出されたときに起動されるスクリプトであって、現在アクティブになっているウィンドウ構成を他のウィンドウ構成に切り替える処理および／または前記電子音楽装置が備えているパラメータの値を変更する処理を実行するものを、当該イベントに関連付けるスクリプト・イベント関連付け手段と
をさらに有し、
前記出力手段は、前記スクリプト・イベント関連付け手段によって関連付けられたスクリプト・イベント関連付け情報も出力することを特徴とする請求項１または２に記載のＧＵＩ開発装置。
【請求項５】
請求項１のＧＵＩ開発装置に接続し、該ＧＵＩ開発装置とデータの送受信を行う通信手段と、
前記ＧＵＩ開発装置の記憶手段に記憶されているウィジェットライブラリと同様のウィジェットライブラリを記憶する記憶手段と、
前記ＧＵＩ開発装置の出力手段によって出力されたウィンドウ構成情報およびウィジェット・パラメータ関連付け情報をインポートするインポート手段と、
該インポート手段によってインポートされたウィンドウ構成情報に基づいて、複数の画面を切り替えて表示可能な表示手段と、
前記通信手段を介して前記ＧＵＩ開発装置から問い合わせられたパラメータ値を、前記通信手段を介して応答する応答手段と、
該応答手段によってパラメータ値を応答したパラメータが、前記表示手段上に現在表示されている画面に配置されたウィジェットに関連付けられたものであるときには、前記パラメータ値を当該ウィジェットの表示に反映させる反映手段と
を有することを特徴とする電子音楽装置。
【請求項６】
電子音楽装置のＧＵＩを開発するＧＵＩ開発装置を制御する制御方法をコンピュータに実行させるためのプログラムであって、
前記制御方法は、
前記電子音楽装置がＧＵＩとして表示可能なウィジェットの集合であるウィジェットライブラリを記憶する記憶手段に記憶されたウィジェットライブラリからユーザが選択したウィジェットを、表示手段に表示可能な複数のウィンドウのうち、ユーザによって指定されたウィンドウ上に配置させることで、当該ウィンドウを構成するウィンドウ構成ステップと、
該ウィンドウ構成ステップによってウィンドウ上に配置されたウィジェットと、前記電子音楽装置が備えている複数のパラメータのうち、ユーザによって指定されたパラメータとを関連付けるウィジェット・パラメータ関連付けステップと、
該ウィジェット・パラメータ関連付けステップによって関連付けられたパラメータの値を、前記電子音楽装置に接続し、該電子音楽装置とデータの送受信を行う通信手段を介して前記電子音楽装置から取得する取得ステップと、
該取得手段によって取得されたパラメータの値を、対応するウィジェットの表示に反映させる反映ステップと、
前記ウィンドウ構成ステップによって構成されたウィンドウ構成を示すウィンドウ構成情報と、前記関連付けステップによって関連付けられたウィジェットとパラメータを示すウィジェット・パラメータ関連付け情報を出力する出力ステップと
を有することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子音楽装置の表示器に表示するＧＵＩ（graphical user interface）を開発するＧＵＩ開発装置、その制御方法を実現するためのプログラム、およびＧＵＩ開発装置によって開発されたＧＵＩをインポートする電子音楽装置に関する。
【背景技術】
【０００２】
組み込み機器の表示器に表示するＧＵＩを開発するＧＵＩ開発装置は、従来から知られている。
【０００３】
このようなＧＵＩ開発装置として、組み込み機器のＧＵＩをＰＣ（パーソナルコンピュータ）上で開発し、その開発結果をＸＭＬ（extensible markup language）などのマークアップ言語で出力することで、開発効率を向上させるようにしたものがある（たとえば、非特許文献１参照）。
【非特許文献１】「組み込みソフトをＸＭＬが変える  開発効率向上の切り札に」日経エレクトロニクス第９０４号、２００５年７月１８日発行、日経ＢＰ社刊行（第５１頁〜第５８頁）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、上記従来のＧＵＩ開発装置では、ＧＵＩの開発中に、そのＧＵＩを表示する実機と連動させていないために、開発途中のＧＵＩに実機の応答を反映させることができなかった。特に実機が、音のようにリアルタイムに変化する現象を取り扱う電子音楽装置であり、たとえば、ＧＵＩ上に、音量レベルを示すレベルメータを見易く配置させたい場合に、開発途中のレベルメータに実機の音量を逐次反映させながら、そのレベルメータの位置を決定できれば、ＧＵＩ開発装置上でのレベルメータの見え方と、そのレベルメータをインポートした実機上でのレベルメータの見え方とが同じになるので、ＧＵＩの開発効率が向上する。したがって、ＧＵＩの開発者にとって、実機の応答を反映させたＧＵＩ開発が望まれていた。
【０００５】
本発明は、この点に着目してなされたものであり、実機の応答を反映させたＧＵＩ開発を行うことが可能となるＧＵＩ開発装置、その制御方法を実現するためのプログラム、およびＧＵＩ開発装置によって開発されたＧＵＩをインポートする電子音楽装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、請求項１に記載のＧＵＩ開発装置は、電子音楽装置のＧＵＩを開発するＧＵＩ開発装置であって、前記電子音楽装置に接続し、該電子音楽装置とデータの送受信を行う通信手段と、複数のウィンドウを表示可能な表示手段と、前記電子音楽装置がＧＵＩとして表示可能なウィジェットの集合であるウィジェットライブラリを記憶する記憶手段と、該記憶手段に記憶されたウィジェットライブラリからユーザが選択したウィジェットを、前記複数のウィンドウのうち、ユーザによって指定されたウィンドウ上に配置させることで、当該ウィンドウを構成するウィンドウ構成手段と、該ウィンドウ構成手段によってウィンドウ上に配置されたウィジェットと、前記電子音楽装置が備えている複数のパラメータのうち、ユーザによって指定されたパラメータとを関連付けるウィジェット・パラメータ関連付け手段と、該ウィジェット・パラメータ関連付け手段によって関連付けられたパラメータの値を、前記通信手段を介して前記電子音楽装置から取得する取得手段と、該取得手段によって取得されたパラメータの値を、対応するウィジェットの表示に反映させる反映手段と、前記ウィンドウ構成手段によって構成されたウィンドウ構成を示すウィンドウ構成情報と、前記関連付け手段によって関連付けられたウィジェットとパラメータを示すウィジェット・パラメータ関連付け情報を出力する出力手段とを有することを特徴とする。
【０００７】
請求項２に記載のＧＵＩ開発装置は、請求項１のＧＵＩ開発装置において、前記通信手段を介して前記電子音楽装置の動作状態が所定の動作状態に遷移したことを検知する状態遷移検知手段と、該状態遷移検知手段によって前記所定の動作状態が検知されたときに、現在アクティブになっているウィンドウ構成を他のウィンドウ構成に切り替える切り替え手段とをさらに有し、前記出力手段は、前記所定の動作状態と切り替えるべきウィンドウ構成とを関連付ける動作状態・ウィンドウ構成関連付け情報も出力することを特徴とする。
【０００８】
請求項３に記載のＧＵＩ開発装置は、請求項１または２のＧＵＩ開発装置において、当該ＧＵＩ開発装置に対する所定のユーザ操作を検知するユーザ操作検知手段と、前記所定のユーザ操作と、前記電子音楽装置が備えている複数のパラメータのうち、ユーザによって指定されたパラメータとを関連付けるユーザ操作・パラメータ関連付け手段と、前記ユーザ操作検知手段によって前記所定のユーザ操作が検出されたときに、該検出された所定のユーザ操作に関連付けられたパラメータの値を変更するように、前記通信手段を介して前記電子音楽装置に指示する指示手段とをさらに有することを特徴とする。
【０００９】
請求項４に記載のＧＵＩ開発装置は、請求項１または２のＧＵＩ開発装置において、所定のユーザ操作に応じて発生されたイベントまたは前記電子音楽装置が備えた所定のパラメータの状態変化に応じて発生されたイベントを検知するイベント検知手段と、該イベント検知手段によってイベントが検出されたときに起動されるスクリプトであって、現在アクティブになっているウィンドウ構成を他のウィンドウ構成に切り替える処理および／または前記電子音楽装置が備えているパラメータの値を変更する処理を実行するものを、当該イベントに関連付けるスクリプト・イベント関連付け手段とをさらに有し、前記出力手段は、前記スクリプト・イベント関連付け手段によって関連付けられたスクリプト・イベント関連付け情報も出力することを特徴とする。
【００１０】
上記目的を達成するため、請求項５に記載の電子音楽装置は、請求項１のＧＵＩ開発装置に接続し、該ＧＵＩ開発装置とデータの送受信を行う通信手段と、前記ＧＵＩ開発装置の記憶手段に記憶されているウィジェットライブラリと同様のウィジェットライブラリを記憶する記憶手段と、前記ＧＵＩ開発装置の出力手段によって出力されたウィンドウ構成情報およびウィジェット・パラメータ関連付け情報をインポートするインポート手段と、該インポート手段によってインポートされたウィンドウ構成情報に基づいて、複数の画面を切り替えて表示可能な表示手段と、前記通信手段を介して前記ＧＵＩ開発装置から問い合わせられたパラメータ値を、前記通信手段を介して応答する応答手段と、該応答手段によってパラメータ値を応答したパラメータが、前記表示手段上に現在表示されている画面に配置されたウィジェットに関連付けられたものであるときには、前記パラメータ値を当該ウィジェットの表示に反映させる反映手段とを有することを特徴とする。
【００１１】
上記目的を達成するため、請求項６に記載のプログラムは、請求項１と同様の技術的思想によって実現できる。
【発明の効果】
【００１２】
請求項１または６に記載の発明によれば、ウィンドウ上に配置されたウィジェットと、電子音楽装置が備えている複数のパラメータのうち、ユーザによって指定されたパラメータとが関連付けられ、該関連付けられたパラメータの値が、通信手段を介して前記電子音楽装置から取得され、該取得されたパラメータの値が、対応するウィジェットの表示に反映されるので、実機の応答を反映させたＧＵＩ開発を行うことが可能となる。また、このようにＧＵＩ開発が分かり易いものとなり、その結果が、たとえばＸＭＬ形式の情報として入出力できるので、開発者以外（たとえば、店員やユーザ自身）がＧＵＩを編集し、その結果を配布したり、交換したりすることが可能となる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００１４】
図１は、本発明の一実施の形態に係る電子音楽装置１００の概略構成を示すブロック図である。
【００１５】
同図に示すように、電子音楽装置１００は、演奏情報を入力するための鍵盤を含む演奏操作子１と、各種情報を入力するための複数のスイッチを含むパネル操作子２と、演奏操作子１の操作状態を検出する検出回路３と、パネル操作子２の操作状態を検出する検出回路４と、装置全体の制御を司るＣＰＵ５と、該ＣＰＵ５が実行する制御プログラムや、各種テーブルデータ等を記憶するＲＯＭ６と、演奏情報、各種入力情報および演算結果等を一時的に記憶するＲＡＭ７と、タイマ割込み処理における割込み時間や各種時間を計時するタイマ８と、各種情報等を表示する、たとえば小型の液晶ディスプレイ（ＬＣＤ）および発光ダイオード（ＬＥＤ）等を備えた表示器９と、前記制御プログラムを含む各種アプリケーションプログラムや各種楽曲データ、各種データ等を記憶する外部記憶装置１０と、外部からのＭＩＤＩ（Musical Instrument Digital Interface）メッセージを入力したり、ＭＩＤＩメッセージを外部に出力したりするＭＩＤＩインターフェース（Ｉ／Ｆ）１１と、通信ネットワーク４０１を介して、ＧＵＩ開発装置２００やサーバコンピュータ（以下、「サーバ」と略して言う）３００とデータの送受信を行う通信インターフェース（Ｉ／Ｆ）１２と、演奏操作子１から入力された演奏情報や、前記外部記憶装置１０に記憶されたいずれかの楽曲データを再生して得られた演奏情報等を楽音信号に変換する音源回路１３と、該音源回路１３からの楽音信号に各種効果を付与するための効果回路１４と、該効果回路１４からの楽音信号を音響に変換する、たとえば、ＤＡＣ（Digital-to-Analog Converter）やアンプ、スピーカ等のサウンドシステム１５とにより構成されている。
【００１６】
上記構成要素３〜１４は、バス１６を介して相互に接続され、ＣＰＵ５にはタイマ８が接続され、ＭＩＤＩＩ／Ｆ１１には他のＭＩＤＩ機器４００が接続され、通信Ｉ／Ｆ１２には通信ネットワーク４０１が接続され、音源回路１３には効果回路１４が接続され、効果回路１４にはサウンドシステム１５が接続されている。ここで、通信Ｉ／Ｆ１２および通信ネットワーク４０１は、有線方式のものに限らず、無線方式のものであってもよい。また、両方式のものを備えていてもよい。
【００１７】
外部記憶装置１０としては、たとえば、フレキシブルディスクドライブ（ＦＤＤ）、ハードディスクドライブ（ＨＤＤ）、ＣＤ−ＲＯＭドライブおよび光磁気ディスク（ＭＯ）ドライブ等を挙げることができる。そして、外部記憶装置１０には、前述のように、ＣＰＵ５が実行する制御プログラムも記憶でき、ＲＯＭ６に制御プログラムが記憶されていない場合には、この外部記憶装置１０に制御プログラムを記憶させておき、それをＲＡＭ７に読み込むことにより、ＲＯＭ６に制御プログラムを記憶している場合と同様の動作をＣＰＵ５にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。
【００１８】
ＭＩＤＩＩ／Ｆ１１は、専用のものに限らず、ＲＳ−２３２ＣやＵＳＢ（ユニバーサル・シリアル・バス）、ＩＥＥＥ１３９４（アイトリプルイー１３９４）等の汎用のインターフェースより構成してもよい。この場合、ＭＩＤＩメッセージ以外のデータも同時に送受信してもよい。
【００１９】
通信Ｉ／Ｆ１２は、上述のように、たとえばＬＡＮ（Local Area Network）やインターネット、電話回線等の通信ネットワーク４０１に接続されており、該通信ネットワーク４０１を介して、サーバ３００に接続される。外部記憶装置１０に上記各プログラムや各種パラメータが記憶されていない場合には、通信Ｉ／Ｆ１２は、サーバ３００からプログラムやパラメータをダウンロードするために用いられる。クライアントとなる電子音楽装置１００は、通信Ｉ／Ｆ１２および通信ネットワーク４０１を介してサーバ３００へとプログラムやパラメータのダウンロードを要求するコマンドを送信する。サーバ３００は、このコマンドを受け、要求されたプログラムやパラメータを、通信ネットワーク４０１を介して電子音楽装置１００へと配信し、電子音楽装置１００が通信Ｉ／Ｆ１２を介して、これらプログラムやパラメータを受信して外部記憶装置１０に蓄積することにより、ダウンロードが完了する。
【００２０】
なお、本実施の形態では、電子音楽装置１００を電子鍵盤楽器上に構築するようにしたが、これに限らず、鍵盤を外部接続した汎用的なＰＣ上に構築してもよい。また、ミキサなどの音響機器上に構築するようにしてもよい。その場合には、楽音信号をミキシングするための信号処理回路やＡＤ／ＤＡ変換回路などは必須の構成要素であるが、音源回路は必須の構成要素ではない。
【００２１】
ＧＵＩ開発装置２００は、電子音楽装置１００の上記構成から、演奏操作子１、パネル操作子２、検出回路３，４、表示器９、ＭＩＤＩＩ／Ｆ１１、音源回路１３、効果回路１４およびサウンドシステム１５を除き、その代わりに、キーボード、マウスおよび大型ディスプレイを加えた、通常のＰＣ上に構築される。
【００２２】
図２は、電子音楽装置１００およびＧＵＩ開発装置２００の制御構成を示すブロック図である。
【００２３】
同図に示すように、電子音楽装置１００は、主として、ウィジェット（widget）ライブラリ１００ａ、モデル群１００ｂ、通信制御ドライバ１００ｃ、ＧＵＩ制御部１００ｄおよびＸＭＬパーザ（parser）１００ｅを備えている。なお、同図には、説明の都合上、前記パネル操作子２および表示器９も図示されている。
【００２４】
ウィジェットライブラリ１００ａとは、多数のウィジェットを集めたものであり、ウィジェットとは、ＧＵＩを構成する部品要素のことである。ウィジェットライブラリ１００ａは、たとえば前記外部記憶装置１０に予め記憶されている。
【００２５】
モデル群１００ｂは、主として、前記ＣＰＵ５、該ＣＰＵ５によって実行されるソフトウェアおよび前記ＲＡＭ７によって実現され、電子音楽装置１００が備える機能（本実施の形態では、「シーケンサ」、「ミキサ」および「音源」の３種類）のそれぞれをモデル化して集めたものである。ただし、モデル群１００ｂを構成する各モデルは、電子音楽装置１００の各機能を単にモデル化したもの、つまり電子音楽装置１００の各機能をシミュレートしたものではなく、各機能の制御を担当するドライバのようなものである。たとえば、前記音源回路１３の所定のパラメータを変更する場合には、ユーザは、パネル操作子２中の所定のスイッチを操作することで、ＧＵＩ制御部１００ｄを介して音源モデルの所定のパラメータを変更する。これにより、音源モデルは、ユーザによって変更されたパラメータと同じパラメータが格納されている、音源回路１３内のレジスタの値を、変更されたパラメータ値に変更する。このように、ユーザは、モデル群１００ｂに対して各種設定操作を行うことができるだけであって、それより下位の層（つまり、各機能を構成する各ハードウェア）に対して各種設定操作を行うことができないので、ユーザにとって、モデル群１００ｂを構成する各モデルと当該機能とは同一視される。
【００２６】
通信制御ドライバ１００ｃは、所定の通信プロトコル（本実施の形態では、ＴＣＰ／ＩＰ（transmission control protocol/internet protocol））でＧＵＩ開発装置２００とデータの送受信を行うために、前記通信Ｉ／Ｆ１２を制御するソフトウェアである。
【００２７】
ＧＵＩ制御部１００ｄは、ＸＭＬパーザ１００ｅからの出力に応じてＧＵＩを表示器９に表示し、そのＧＵＩに対して、ユーザが、たとえばパネル操作子２を用いて行った操作に応じて、モデル群１００ｂのパラメータを変更したり、他のＧＵＩに切り替えたりする。
【００２８】
ＸＭＬパーザ１００ｅは、ＸＭＬ形式のＧＵＩ構成情報を解析し、その解析結果を前記ＧＵＩ制御部１００ｄに出力する。ＸＭＬ形式のＧＵＩ構成情報は、開発者がテキストエディタ等を用いて作成したものや、後述するように、ＧＵＩ開発装置２００から出力（エクスポート）されたものを格納（インポート）したものである。
【００２９】
ＧＵＩ開発装置２００は、主として、ウィジェットライブラリ２００ａ、モデル群２００ｂ、ＯＳ（operating system）２００ｃ、ＧＵＩ編集アプリケーション２００ｄを備えている。なお、説明の都合上、キーボード２０１、マウス２０２および大型ディスプレイ２０３も図示されている。
【００３０】
ウィジェットライブラリ２００ａは、前記ウィジェットライブラリ１００ａと同一構成のものである。
【００３１】
モデル群２００ｂは、前記モデル群１００ｂと同一構成のものである。ただし、モデル群１００ｂとモデル群２００ｂとは、入力情報の入力元と出力情報の出力先が異なっている。つまり、モデル群１００ｂは、前述のように、ＧＵＩ制御部１００ｄからの要求により内部のパラメータを変更するとともに、その変更を当該ハードウェア（図示せず）と前記通信制御ドライバ１００ｃ（さらに通信制御ドライバ２００ｃ２を介して、ＧＵＩ開発装置２００のモデル群２００ｂ）に反映させるのに対して、モデル群２００ｂは、ＧＵＩ編集アプリケーション２００ｄからの要求により内部のパラメータを変更するとともに、その変更を通信制御ドライバ２００ｃ２（さらに通信制御ドライバ１００ｃを介して、電子音楽装置１００のモデル群１００ｂ）に反映させる。
【００３２】
ＧＵＩ開発装置２００は、前述のように、ＰＣ上に構築されているので、ＧＵＩ開発装置２００は、ＯＳ２００ｃによって制御されている。ＯＳ２００ｃには、入出力デバイスドライバ２００ｃ１と通信制御ドライバ２００ｃ２がインストールされている。入出力デバイスドライバ２００ｃ１は、キーボード２０１およびマウス２０２を用いた、ＧＵＩ開発装置２００に対するユーザ操作を入力するとともに、表示画面データを大型ディスプレイ２０３に出力する。大型ディスプレイ２０３としては、たとえば１９インチのＬＣＤやＣＲＴ（Cathode Ray Tube）ディスプレイを挙げることができる。通信制御ドライバ２００ｃ２は、前記通信制御ドライバ１００ｃと同様に、所定の通信プロトコル（本実施の形態では、ＴＣＰ／ＩＰ）で電子音楽装置１００とデータの送受信を行うために、通信Ｉ／Ｆ（図示せず）を制御するソフトウェアである。
【００３３】
ＧＵＩ編集アプリケーション２００ｄは、大型ディスプレイ２０３の表示画面上に複数のウィンドウを表示し、該各ウィンドウ内の指定された位置に、ユーザ操作に応じて、ウィジェットライブラリ２００ａから選択したウィジェットを配置することで、電子音楽装置１００の前記表示器９に表示するＧＵＩを編集するものである。
【００３４】
以上のように構成された電子音楽装置１００およびＧＵＩ開発装置２００が実行する制御処理を、まず図２を参照してその概要を説明し、次に図３および図４を参照して詳細に説明する。
【００３５】
ＧＵＩ開発装置２００のＯＳ２００ｃに対して、ユーザがＧＵＩ編集アプリケーション２００ｄの起動を指示すると、図２に示すように、ＧＵＩ編集アプリケーション２００ｄが起動される。ＧＵＩ編集アプリケーション２００ｄは、表示画面上に複数のウィンドウを表示できるように構成されている。ウィンドウのそれぞれは、電子音楽装置１００の表示器９、特に小型ＬＣＤの１つの表示画面（つまり、ＧＵＩの一画面）に相当する。
【００３６】
複数のウィンドウが表示されている場合、ユーザは、いずれか１つのウィンドウを指定し、その指定したウィンドウ上に、ウィジェットライブラリ２００ａから選択したウィジェットを配置する。選択方法としては、たとえば、マウス２０２を使って、図示しないカーソルをウィンドウ上の好みの位置（ウィジェットを配置したい位置）に移動させ、その位置でマウス２０２の右ボタン（図示せず）を押すと、ポップアップメニューが表示され、そのメニュー内にある「ウィジェットの一覧表示」を選択すると、ウィジェットライブラリ２００ａに登録されているウィジェットの一覧が表示されるので、この中から好みのウィジェットを選択すると、選択したウィジェットがカーソル位置に配置されるという方法が考えられる。もちろん、ウィジェットライブラリ２００ａから好みのウィジェットが選択されて好みの位置に配置される方法であれば、これに限られないことは言うまでもない。
【００３７】
次に、ユーザは、選択したウィジェットと、モデル群２００ｂ中のいずれかのモデルが備えている複数のパラメータのうちのいずれかとを対応付ける。この対応付け方法としては、たとえば、対応付けの対象とするウィジェットに前記カーソルを移動させ、その位置でマウス２０２の右ボタンを押すと、ポップアップメニューが表示され、そのメニュー内にある「パラメータの一覧表示」を選択すると、モデル群２００ｂに含まれる各モデル毎に選択可能なパラメータの一覧が表示されるので、この中から好みのパラメータを選択すると、選択したパラメータがカーソル位置のウィジェットに対応付けられるという方法が考えられる。もちろん、モデル群２００ｂ中の複数のパラメータから好みのパラメータが選択されて目的のウィジェットに対応付けられる方法であれば、これに限られないことは言うまでもない。なお、ウィジェットとパラメータの対応付けは、ＧＵＩ編集アプリケーション２００ｄによって記憶されて管理される。
【００３８】
そして、ユーザが、キーボード２０１およびマウス２０２を用いて、ＧＵＩ編集アプリケーション２００ｄからモデル群２００ｂ中のいずれかのパラメータの値を変更する操作を行うと、モデル群２００ｂは、その変更操作を示すデータ（ＴＣＰ／ＩＰ形式のデータ）を、通信制御ドライバ２００ｃ２、ＧＵＩ開発装置２００側の通信Ｉ／Ｆ（図示せず）、前記通信ネットワーク４０１、前記通信Ｉ／Ｆ１２および通信制御ドライバ１００ｃを介して、電子音楽装置１００側のモデル群１００ｂに送信する。これに応じて、モデル群１００ｂは、変更対象となっているパラメータの値を、変更操作に応じた量に変更して更新し、更新後のパラメータ値を、変更操作が通知された方向と逆の方向で、モデル群２００ｂに通知する。モデル群２００ｂは、そのパラメータの値をＧＵＩ編集アプリケーション２００ｄに通知する。通知されたパラメータの値が、このパラメータに対応付けられたウィジェットの表示を変更するものであれば、ＧＵＩ編集アプリケーション２００ｄは、通知されたパラメータの値をウィジェットの表示に反映させる。
【００３９】
このように、本実施の形態では、ＧＵＩを開発中に、そのＧＵＩの構成要素であるウィジェットと電子音楽装置１００が備えているパラメータとを対応付け、ＧＵＩ開発装置２００側でそのパラメータに対して行った変更操作を電子音楽装置１００側に通知し、これに応じて電子音楽装置１００側で実際に変更されたパラメータの値が、電子音楽装置１００側からＧＵＩ開発装置２００側に通知され、通知されたパラメータの値に応じて、対応するウィジェットの表示を変更するようにしたので、ＧＵＩの開発中でも、そのＧＵＩを電子音楽装置１００に実装したときの動作状態を完全に再現することができる。したがって、ＧＵＩの開発効率が向上する。
【００４０】
なお、開発されたＧＵＩ、つまり、各ウィンドウ上に配置されたウィジェットは、ＧＵＩ開発装置２００上で、ＸＭＬ形式のＧＵＩ構成情報２００ｅに変換されて、出力される。
【００４１】
次に、この制御処理を詳細に説明する。
【００４２】
図３は、ＧＵＩ開発装置２００が実行する制御処理の手順を示すフローチャートであり、図４は、電子音楽装置１００が実行する制御処理の手順を示すフローチャートである。
【００４３】
ＧＵＩ開発装置２００が実行する制御処理は、主として、
（１）ＧＵＩ構成情報のインポート処理（ステップＳ２０１）
（２）ウィジェットの編集処理（ステップＳ２０２，Ｓ２０３）
（３）ウィジェットとパラメータの対応付け処理（ステップＳ２０４）
（４）スクリプトとイベントの対応付け処理（ステップＳ２０５）
（５）パラメータ値変更処理（ステップＳ２０６）
（６）ウィジェットの表示更新処理（ステップＳ２０７）
（７）スクリプトの実行処理（ステップＳ２０８）
（８）ウィンドウ切り替え処理（ステップＳ２０９）
（９）ＧＵＩ構成情報のエクスポート処理（ステップＳ２１０）
によって構成されている。
【００４４】
電子音楽装置１００が実行する制御処理は、主として、
（１１）ＧＵＩ構成情報のエクスポート処理（ステップＳ１０１）
（１２）パラメータ変更／状態遷移処理（ステップＳ１０２）
（１３）スクリプトの実行処理（ステップＳ１０３）
（１４）画面表示更新処理（ステップＳ１０４）
（１５）ＧＵＩ構成情報のインポート処理（ステップＳ１０５）
によって構成されている。
【００４５】
図３の制御処理に処理が進んだときには、前記ＧＵＩ編集アプリケーション２００ｄは既に起動されているものとするが、これに限らず、図３の制御処理の先頭で、ＧＵＩ編集アプリケーション２００ｄを起動するようにしてもよい。
【００４６】
前記（１）のＧＵＩ構成情報のインポート処理では、電子音楽装置１００にＧＵＩ構成情報が記憶されており、ユーザが、そのＧＵＩ構成情報を電子音楽装置１００から読み出して、ＧＵＩ開発装置２００にインポートする指示を、ＧＵＩ編集アプリケーション２００ｄ上で行うと、まずＧＵＩ開発装置２００は、その指示を電子音楽装置１００側に送信する。ここで、指示は、モデル群２００ｂによってＴＣＰ／ＩＰ形式のデータに変換された後、通信制御ドライバ２００ｃ２、ＧＵＩ開発装置２００側の前記通信Ｉ／Ｆ、前記通信ネットワーク４０１、通信Ｉ／Ｆ１２および通信制御ドライバ１００ｃを介して、電子音楽装置１００側のモデル群１００ｂに送信される。これに応じて、モデル群１００ｂは、記憶されているＧＵＩ構成情報を読み出してモデル群２００ｂに送信する。モデル群２００ｂは、受信したＧＵＩ構成情報をＧＵＩ編集アプリケーション２００ｄに渡し、ＧＵＩ編集アプリケーション２００ｄは、このＧＵＩ構成情報を反映させる。これにより、ＧＵＩ編集アプリケーション２００ｄの表示画面には、複数のウィンドウが表示され、その各ウィンドウ上には、ＧＵＩ構成情報に応じたウィジェットが表示されるので、ユーザは、電子音楽装置１００の現在のＧＵＩを自由に編集することができる。
【００４７】
ＧＵＩ編集アプリケーション２００ｄの表示画面上に複数のウィンドウが表示されているときに、ユーザが、前記カーソルをいずれかのウィンドウに移動させ、マウス２０２の左ボタン（図示せず）をクリック操作すると、カーソルが位置しているウィンドウの編集を開始できる状態になる（ステップＳ２０２）。つまり、処理は、前記（２）のウィジェットの編集処理に進む。ユーザは、主としてマウス２０２を操作することで、ウィンドウ上のウィジェットを編集する。ここで、ウィジェットの編集には、具体的には、新たなウィジェットを追加したり、既存のウィジェットを削除したり、ウィジェットの現在位置を移動させたり、ウィジェットに色付けをしたり、ウィジェットのサイズを拡大／縮小させたりする処理が含まれる。ユーザのウィジェットに対する編集操作に従って、ウィンドウ上のウィジェットの表示態様が変化する（ステップＳ２０３）。
【００４８】
次にユーザが、カーソルを１つのウィジェットに合わせ、マウス２０２の右ボタンを押して、ポップアップメニューを表示させ、その中から「パラメータの一覧表示」を選択すると、処理は、前記（３）のウィジェットとパラメータの対応付け処理に進む。この（３）ウィジェットとパラメータの対応付け処理では、ユーザが一覧表示されたパラメータからいずれかのパラメータを選択すると、ＧＵＩ編集アプリケーション２００ｄは、カーソル位置のウィジェットと選択されたパラメータを対応付ける（ステップＳ２０４）。対応付けの方法としては、たとえば、選択されたパラメータ（モデル群２００ｂ中のパラメータ）に、対応付けられたウィジェットを一意的に特定する情報（たとえば、名称）を付随させる方法が考えられる。なお、この（３）ウィジェットとパラメータの対応付け処理は、ウィジェットに既にパラメータが対応付けられている場合には、そのパラメータを他のパラメータに変更したり、パラメータとの対応付けをキャンセルしたりすることもできるように構成されている。
【００４９】
ＧＵＩ編集アプリケーション２００ｄは、ウィジェットを配置してＧＵＩを開発するためのウィジェット用ウィンドウの他に、スクリプトを記載するためのスクリプト用ウィンドウも表示できるようになっている。ユーザが、ＧＵＩ編集アプリケーション２００ｄに対して、スクリプト用ウィンドウをオープンさせる指示を行うと、処理は、前記（４）のスクリプトとイベントの対応付け処理に進む。ユーザが、スクリプト用ウィンドウ上に好みのスクリプトを選択して記載した後、そのスクリプト用ウィンドウ上の任意の位置に前記カーソルを合わせ、マウス２０２の右ボタンをクリック操作すると、ポップアップメニューが表示される。そしてユーザが、そのメニュー内にある「イベントの一覧表示」を選択すると、ＧＵＩ編集アプリケーション２００ｄは、そのスクリプトに対応付け可能なイベントの一覧を表示する。ここで、イベントの例としては、ユーザが電子音楽装置１００の前記パネル操作子２のいずれかを操作したときに発生する操作イベントや、電子音楽装置１００が所定の動作状態に遷移したときに発生する動作イベントを挙げることができるが、もちろん、これに限られる訳ではない。また、スクリプトによって制御できる処理の例としては、現在アクティブになっているウィンドウを他のウィンドウに切り替える処理（電子音楽装置１００では、前記表示器９の小型ＬＣＤ上の現在の表示画面を他の表示画面に切り替える処理に相当する）や、モデル群２００ｂ中の所定のパラメータの値を変更する処理（電子音楽装置１００では、対応するパラメータの値を変更する処理に相当する）を挙げることができるが、もちろん、これに限られる訳ではない。ユーザが一覧表示されたイベントからいずれかのイベントを選択すると、ＧＵＩ編集アプリケーション２００ｄは、スクリプト用ウィンドウに記載されたスクリプトと選択されたイベントを対応付ける（ステップＳ２０５）。
【００５０】
次にユーザが、ＧＵＩ編集アプリケーション２００ｄからモデル群２００ｂに対して、モデル群２００ｂ中のあるパラメータの値を変更する操作を行うと、処理は、前記（５）のパラメータ値変更処理に進む。この（５）パラメータ値変更処理では、まずＧＵＩ編集アプリケーション２００ｄは、変更操作を指示するイベントを前記モデル群２００ｂ経由で電子音楽装置１００側のモデル群１００ｂに送信する。以下、パラメータとして「音源回路１３のボリューム」を採り、その変更操作として「ボリューム値の増大操作」を採った場合を例に挙げて説明する。
【００５１】
音源回路１３のボリューム値の増大を指示するイベントがモデル群１００ｂに送信されると、モデル群１００ｂは、処理を前記（１２）のパラメータ変更／状態遷移処理に進める。この（１２）パラメータ変更／状態遷移処理では、モデル群１００ｂは、モデル群１００ｂ内の音源モデルのボリュームパラメータの値を、指示された値に増大させる（図４のステップＳ１０２）。なお、音源モデルのボリュームパラメータの値はそのまま、音源回路１３のレジスタに設定されるので、音源モデルのボリュームパラメータの値を変更することは、音源回路１３のボリュームパラメータの値を変更することと同値である。
【００５２】
モデル群１００ｂの音源モデルのボリュームパラメータの値が変更されると、モデル群１００ｂは、そのパラメータの変更値をモデル群２００ｂに送信する。これに応じて、モデル群２００ｂは、自身の音源モデルのボリュームパラメータの値を、送信されてきた変更値に更新する（ステップＳ２０６）。
【００５３】
ＧＵＩ編集アプリケーション２００ｄは、スクリプトに対応付けられたイベントを検知すると、検知したイベントに対応付けられたスクリプトを実行する（ステップＳ２０８）。ここで、ＧＵＩ編集アプリケーション２００ｄが検知するイベントは、ユーザが、たとえばキーボード２０１やマウス２０２を用いて、ＧＵＩ開発装置２００から入力したイベント（この場合は、擬似的なイベントである）と、ユーザが、たとえばパネル操作子２を用いて、電子音楽装置１００から入力したイベントの両方が考えられる。後者のイベントは、ＧＵＩ制御部１００ｄからモデル群１００ｂに渡り、通信制御ドライバ１００ｃ，２００ｃ２等を経由して、モデル群２００ｂに渡った後、ＧＵＩ編集アプリケーション２００ｄに渡って検知される。そして、検知したイベントに対応付けられたスクリプトが、前述のように、現在アクティブになっているウィンドウを他のウィンドウに切り替える処理を実行するものである場合には、ＧＵＩ編集アプリケーション２００ｄは、現在アクティブになっているウィンドウを他のウィンドウに切り替える。さらにＧＵＩ編集アプリケーション２００ｄは、当該スクリプトの実行要求を、モデル群１００ｂを経由してモデル群２００ｂに送信する。これに応じて、モデル群２００ｂは、受信したスクリプトの実行要求をＧＵＩ制御部１００ｄに送信する。これにより、ＧＵＩ制御部１００ｄは、表示器９の小型ＬＣＤ上の現在の表示画面を他の表示画面に切り替える（図４のステップＳ１０３）。
【００５４】
ユーザが、大型ディスプレイ２０３上の前記カーソルを、現在アクティブになっていないウィンドウに移動させ、マウス２０２の左ボタンをクリック操作すると、カーソルが位置しているウィンドウの編集を開始できる状態になる。つまり、処理は、前記（８）のウィンドウ切り替え処理に進む。この（８）ウィンドウ切り替え処理は、ユーザが切り替え指示したウィンドウがウィジェット用ウィンドウの場合には、前記（２）ウィジェットの編集処理あるいは前記（３）ウィジェットとパラメータの対応付け処理のいずれかと同様の処理となり、ユーザが切り替え指示したウィンドウがスクリプト用ウィンドウの場合には、前記（４）スクリプトとイベントの対応付け処理と同様の処理となるので、この（８）ウィンドウ切り替え処理についての詳細な説明は省略する。
【００５５】
ユーザが、前記（２）〜（８）の処理によってＧＵＩを開発した後、ＧＵＩ編集アプリケーション２００ｄに対して、そのＧＵＩ構成情報をエクスポートする指示を行うと、処理は、前記（９）のＧＵＩ構成情報のエクスポート処理に進む。この（９）ＧＵＩ構成情報のエクスポート処理では、ＧＵＩ編集アプリケーション２００ｄは、開発したＧＵＩを電子音楽装置１００の表示器９に表示させるためのＧＵＩ構成情報をＸＭＬファイルの形式でエクスポートする（ステップＳ２１０）。このようにしてエクスポートされたＧＵＩ構成情報２００ｅは、電子音楽装置１００のユーザに配布される。配布方法としては、リムーバブルな記憶媒体に格納して手渡しする方法や、サーバ３００からダウンロードする方法、通信制御ドライバ１００ｃ，２００ｃ２等を介して、モデル群１００ｂからモデル群２００ｂに渡す方法などを挙げることができる。
【００５６】
以上説明した（１）〜（９）の処理は、この順序で繰り返し実行される。
【００５７】
次に、図４の電子音楽装置１００が実行する制御処理について説明する。
【００５８】
ユーザが、電子音楽装置１００のＧＵＩ制御部１００ｄに対して、電子音楽装置１００に格納されているＧＵＩ構成情報をエクスポートする指示を行うと、処理は、前記（１１）のＧＵＩ構成情報のエクスポート処理に進む。この（１１）ＧＵＩ構成情報のエクスポート処理では、モデル群１００ｂは、記憶されているＧＵＩ構成情報を読み出してモデル群２００ｂに送信する（ステップＳ１０１）。この後の処理は、前記（１）ＧＵＩ構成情報のインポート処理中で説明した処理と同様であるので、その説明は省略する。
【００５９】
前記（１２）のパラメータ変更／状態遷移処理では、ＧＵＩ制御部１００ｄは、ユーザ操作、ＧＵＩ開発装置２００からの指示、あるいは前記タイマ８の計時時間に応じて、パラメータ変更および／または状態遷移を行う（ステップＳ１０２）。たとえば、ユーザ操作として、前記演奏操作子１に含まれる鍵盤の各鍵に対する押鍵操作を採った場合には、鍵毎に変更すべきパラメータの種類を割り当て、押鍵ベロシティの強さに応じて、割り当てられているパラメータの値を変更するという制御方法が考えられる。また、タイマ８の計時時間としては、所定の動作状態に入った時点でタイマ８の計時を開始し、そのタイマ８の計時時間の大小に従って、異なる動作状態に遷移させるという制御方法が考えられる。たとえば、電子音楽装置１００が備えているシーケンサ機能は、ユーザ操作に応じて楽曲データを自動演奏するが、このとき、タイマ８の計時時間が経過するに従って、演奏の時間的位置を更新しながら、演奏のためのパラメータを更新したり、演奏曲の終端で演奏を終了したりするといった状態遷移を行う。
【００６０】
このように、（１２）パラメータ変更／状態遷移処理によってパラメータが変更され、および／または動作状態が遷移されると、その変更および／または遷移は、モデル群１００ｂからモデル群２００ｂに通知されるので、ＧＵＩ編集アプリケーション２００ｄは、電子音楽装置１００のパラメータ状態および／または動作状態を検知することができる。したがって、電子音楽装置１００の所定の動作状態とＧＵＩ編集アプリケーション２００ｄの表示画面上の複数のウィンドウのいずれかとを対応付けておけば、ＧＵＩ編集アプリケーション２００ｄは、電子音楽装置１００の所定の動作状態を検知したときに、現在アクティブになっているウィンドウを他のウィンドウに自動的に切り替えるようなＧＵＩを簡単に開発することができる。また、この処理を応用することで、ＧＵＩ開発装置２００に対するユーザ操作、つまり、前記キーボード２０１やマウス２０２を用いたユーザ操作と、電子音楽装置１００内のいずれかのパラメータとを関連付け、ユーザ操作に応じて、それに関連付けられたパラメータの値を変更するようなＧＵＩを簡単に開発することができる。
【００６１】
前記（１３）のスクリプトの実行処理では、ＧＵＩ制御部１００ｄは、ユーザ操作、ＧＵＩ開発装置２００からの指示、あるいは前記タイマ８の計時時間に応じて、所定のスクリプトを実行する（ステップＳ１０３）。
【００６２】
前記（１４）の画面表示更新処理では、ＧＵＩ制御部１００ｄは、所定のパラメータ変更および／または状態遷移があったときには、現在のＧＵＩ構成情報に従って、表示器９の表示を更新する（ステップＳ１０４）。
【００６３】
前記（１５）のＧＵＩ構成情報のインポート処理では、ＧＵＩ制御部１００ｄは、ＧＵＩ開発装置２００からＧＵＩ構成情報をインポートし、反映させる（ステップＳ１０５）。
【００６４】
なお、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【００６５】
この場合、記憶媒体から読出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードおよび該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００６６】
プログラムコードを供給するための記憶媒体としては、たとえば、フレキシブルディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。また、通信ネットワークを介してサーバコンピュータからプログラムコードが供給されるようにしてもよい。
【００６７】
また、コンピュータが読出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【００６８】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００６９】
【図１】本発明の一実施の形態に係る電子音楽装置の概略構成を示すブロック図である。
【図２】図１の電子音楽装置およびＧＵＩ開発装置の制御構成を示すブロック図である。
【図３】図２のＧＵＩ開発装置が実行する制御処理の手順を示すフローチャートである。
【図４】図２の電子音楽装置が実行する制御処理の手順を示すフローチャートである。
【符号の説明】
【００７０】
９…表示器（表示手段），１０…外部記憶装置（記憶手段），１２…通信Ｉ／Ｆ（通信手段），１００…電子音楽装置，１００ｂ…モデル群（インポート手段、応答手段），１００ｃ…通信制御ドライバ（通信手段），１００ｄ…ＧＵＩ制御部（インポート手段、応答手段、反映手段），２００…ＧＵＩ開発装置，２００ａ…ウィジェットライブラリ（記憶手段），２００ｂ…モデル群（取得手段、出力手段、状態遷移検知手段、指示手段），２００ｃ２…通信制御ドライバ（通信手段），２００ｄ…ＧＵＩ編集アプリケーション（ウィンドウ構成手段、ウィジェット・パラメータ関連付け手段、反映手段、出力手段、状態遷移検知手段、切り替え手段、ユーザ操作検知手段、ユーザ操作・パラメータ関連付け手段、指示手段、イベント検知手段、スクリプト・イベント関連付け手段），２０３…大型ディスプレイ（表示手段）
【図１】
0004905708.tif 000002
【図２】
0004905708.tif 000003
【図３】
0004905708.tif 000004
【図４】
0004905708.tif 000005