説明

GUI開発装置、その制御方法を実現するためのプログラム、および電子音楽装置

【課題】実機の応答を反映させたGUI開発を行うことが可能なGUI装置を提供する。
【解決手段】ウィンドウ上にウィジェットを配置し、選択したウィジェットとモデル群200b中のモデルが備えているパラメータと対応付ける。GUI編集アプリケーション200dからモデル群200b中のパラメータの値を変更する操作を行うと、モデル群200bはその変更操作を示すデータを電子音楽装置100側のモデル群100bに送信する。これに応じて、モデル群100bはパラメータの値を変更して更新し、更新後のパラメータ値をモデル群200bに通知する。モデル群200bはそのパラメータの値をGUI編集アプリケーション200dに通知する。通知されたパラメータの値がこのパラメータに対応付けられたウィジェットの表示を変更するものであれば、GUI編集アプリケーション200dは、通知されたパラメータの値をウィジェットの表示に反映させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子音楽装置の表示器に表示するGUI(graphical user interface)を開発するGUI開発装置、その制御方法を実現するためのプログラム、およびGUI開発装置によって開発されたGUIをインポートする電子音楽装置に関する。
【背景技術】
【0002】
組み込み機器の表示器に表示するGUIを開発するGUI開発装置は、従来から知られている。
【0003】
このようなGUI開発装置として、組み込み機器のGUIをPC(パーソナルコンピュータ)上で開発し、その開発結果をXML(extensible markup language)などのマークアップ言語で出力することで、開発効率を向上させるようにしたものがある(たとえば、非特許文献1参照)。
【非特許文献1】「組み込みソフトをXMLが変える 開発効率向上の切り札に」日経エレクトロニクス第904号、2005年7月18日発行、日経BP社刊行(第51頁〜第58頁)
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかし、上記従来のGUI開発装置では、GUIの開発中に、そのGUIを表示する実機と連動させていないために、開発途中のGUIに実機の応答を反映させることができなかった。特に実機が、音のようにリアルタイムに変化する現象を取り扱う電子音楽装置であり、たとえば、GUI上に、音量レベルを示すレベルメータを見易く配置させたい場合に、開発途中のレベルメータに実機の音量を逐次反映させながら、そのレベルメータの位置を決定できれば、GUI開発装置上でのレベルメータの見え方と、そのレベルメータをインポートした実機上でのレベルメータの見え方とが同じになるので、GUIの開発効率が向上する。したがって、GUIの開発者にとって、実機の応答を反映させたGUI開発が望まれていた。
【0005】
本発明は、この点に着目してなされたものであり、実機の応答を反映させたGUI開発を行うことが可能となるGUI開発装置、その制御方法を実現するためのプログラム、およびGUI開発装置によって開発されたGUIをインポートする電子音楽装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するため、請求項1に記載のGUI開発装置は、電子音楽装置のGUIを開発するGUI開発装置であって、前記電子音楽装置に接続し、該電子音楽装置とデータの送受信を行う通信手段と、複数のウィンドウを表示可能な表示手段と、前記電子音楽装置がGUIとして表示可能なウィジェットの集合であるウィジェットライブラリを記憶する記憶手段と、該記憶手段に記憶されたウィジェットライブラリからユーザが選択したウィジェットを、前記複数のウィンドウのうち、ユーザによって指定されたウィンドウ上に配置させることで、当該ウィンドウを構成するウィンドウ構成手段と、該ウィンドウ構成手段によってウィンドウ上に配置されたウィジェットと、前記電子音楽装置が備えている複数のパラメータのうち、ユーザによって指定されたパラメータとを関連付けるウィジェット・パラメータ関連付け手段と、該ウィジェット・パラメータ関連付け手段によって関連付けられたパラメータの値を、前記通信手段を介して前記電子音楽装置から取得する取得手段と、該取得手段によって取得されたパラメータの値を、対応するウィジェットの表示に反映させる反映手段と、前記ウィンドウ構成手段によって構成されたウィンドウ構成を示すウィンドウ構成情報と、前記関連付け手段によって関連付けられたウィジェットとパラメータを示すウィジェット・パラメータ関連付け情報を出力する出力手段とを有することを特徴とする。
【0007】
請求項2に記載のGUI開発装置は、請求項1のGUI開発装置において、前記通信手段を介して前記電子音楽装置の動作状態が所定の動作状態に遷移したことを検知する状態遷移検知手段と、該状態遷移検知手段によって前記所定の動作状態が検知されたときに、現在アクティブになっているウィンドウ構成を他のウィンドウ構成に切り替える切り替え手段とをさらに有し、前記出力手段は、前記所定の動作状態と切り替えるべきウィンドウ構成とを関連付ける動作状態・ウィンドウ構成関連付け情報も出力することを特徴とする。
【0008】
請求項3に記載のGUI開発装置は、請求項1または2のGUI開発装置において、当該GUI開発装置に対する所定のユーザ操作を検知するユーザ操作検知手段と、前記所定のユーザ操作と、前記電子音楽装置が備えている複数のパラメータのうち、ユーザによって指定されたパラメータとを関連付けるユーザ操作・パラメータ関連付け手段と、前記ユーザ操作検知手段によって前記所定のユーザ操作が検出されたときに、該検出された所定のユーザ操作に関連付けられたパラメータの値を変更するように、前記通信手段を介して前記電子音楽装置に指示する指示手段とをさらに有することを特徴とする。
【0009】
請求項4に記載のGUI開発装置は、請求項1または2のGUI開発装置において、所定のユーザ操作に応じて発生されたイベントまたは前記電子音楽装置が備えた所定のパラメータの状態変化に応じて発生されたイベントを検知するイベント検知手段と、該イベント検知手段によってイベントが検出されたときに起動されるスクリプトであって、現在アクティブになっているウィンドウ構成を他のウィンドウ構成に切り替える処理および/または前記電子音楽装置が備えているパラメータの値を変更する処理を実行するものを、当該イベントに関連付けるスクリプト・イベント関連付け手段とをさらに有し、前記出力手段は、前記スクリプト・イベント関連付け手段によって関連付けられたスクリプト・イベント関連付け情報も出力することを特徴とする。
【0010】
上記目的を達成するため、請求項5に記載の電子音楽装置は、請求項1のGUI開発装置に接続し、該GUI開発装置とデータの送受信を行う通信手段と、前記GUI開発装置の記憶手段に記憶されているウィジェットライブラリと同様のウィジェットライブラリを記憶する記憶手段と、前記GUI開発装置の出力手段によって出力されたウィンドウ構成情報およびウィジェット・パラメータ関連付け情報をインポートするインポート手段と、該インポート手段によってインポートされたウィンドウ構成情報に基づいて、複数の画面を切り替えて表示可能な表示手段と、前記通信手段を介して前記GUI開発装置から問い合わせられたパラメータ値を、前記通信手段を介して応答する応答手段と、該応答手段によってパラメータ値を応答したパラメータが、前記表示手段上に現在表示されている画面に配置されたウィジェットに関連付けられたものであるときには、前記パラメータ値を当該ウィジェットの表示に反映させる反映手段とを有することを特徴とする。
【0011】
上記目的を達成するため、請求項6に記載のプログラムは、請求項1と同様の技術的思想によって実現できる。
【発明の効果】
【0012】
請求項1または6に記載の発明によれば、ウィンドウ上に配置されたウィジェットと、電子音楽装置が備えている複数のパラメータのうち、ユーザによって指定されたパラメータとが関連付けられ、該関連付けられたパラメータの値が、通信手段を介して前記電子音楽装置から取得され、該取得されたパラメータの値が、対応するウィジェットの表示に反映されるので、実機の応答を反映させたGUI開発を行うことが可能となる。また、このようにGUI開発が分かり易いものとなり、その結果が、たとえばXML形式の情報として入出力できるので、開発者以外(たとえば、店員やユーザ自身)がGUIを編集し、その結果を配布したり、交換したりすることが可能となる。
【発明を実施するための最良の形態】
【0013】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【0014】
図1は、本発明の一実施の形態に係る電子音楽装置100の概略構成を示すブロック図である。
【0015】
同図に示すように、電子音楽装置100は、演奏情報を入力するための鍵盤を含む演奏操作子1と、各種情報を入力するための複数のスイッチを含むパネル操作子2と、演奏操作子1の操作状態を検出する検出回路3と、パネル操作子2の操作状態を検出する検出回路4と、装置全体の制御を司るCPU5と、該CPU5が実行する制御プログラムや、各種テーブルデータ等を記憶するROM6と、演奏情報、各種入力情報および演算結果等を一時的に記憶するRAM7と、タイマ割込み処理における割込み時間や各種時間を計時するタイマ8と、各種情報等を表示する、たとえば小型の液晶ディスプレイ(LCD)および発光ダイオード(LED)等を備えた表示器9と、前記制御プログラムを含む各種アプリケーションプログラムや各種楽曲データ、各種データ等を記憶する外部記憶装置10と、外部からのMIDI(Musical Instrument Digital Interface)メッセージを入力したり、MIDIメッセージを外部に出力したりするMIDIインターフェース(I/F)11と、通信ネットワーク401を介して、GUI開発装置200やサーバコンピュータ(以下、「サーバ」と略して言う)300とデータの送受信を行う通信インターフェース(I/F)12と、演奏操作子1から入力された演奏情報や、前記外部記憶装置10に記憶されたいずれかの楽曲データを再生して得られた演奏情報等を楽音信号に変換する音源回路13と、該音源回路13からの楽音信号に各種効果を付与するための効果回路14と、該効果回路14からの楽音信号を音響に変換する、たとえば、DAC(Digital-to-Analog Converter)やアンプ、スピーカ等のサウンドシステム15とにより構成されている。
【0016】
上記構成要素3〜14は、バス16を介して相互に接続され、CPU5にはタイマ8が接続され、MIDII/F11には他のMIDI機器400が接続され、通信I/F12には通信ネットワーク401が接続され、音源回路13には効果回路14が接続され、効果回路14にはサウンドシステム15が接続されている。ここで、通信I/F12および通信ネットワーク401は、有線方式のものに限らず、無線方式のものであってもよい。また、両方式のものを備えていてもよい。
【0017】
外部記憶装置10としては、たとえば、フレキシブルディスクドライブ(FDD)、ハードディスクドライブ(HDD)、CD−ROMドライブおよび光磁気ディスク(MO)ドライブ等を挙げることができる。そして、外部記憶装置10には、前述のように、CPU5が実行する制御プログラムも記憶でき、ROM6に制御プログラムが記憶されていない場合には、この外部記憶装置10に制御プログラムを記憶させておき、それをRAM7に読み込むことにより、ROM6に制御プログラムを記憶している場合と同様の動作をCPU5にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。
【0018】
MIDII/F11は、専用のものに限らず、RS−232CやUSB(ユニバーサル・シリアル・バス)、IEEE1394(アイトリプルイー1394)等の汎用のインターフェースより構成してもよい。この場合、MIDIメッセージ以外のデータも同時に送受信してもよい。
【0019】
通信I/F12は、上述のように、たとえばLAN(Local Area Network)やインターネット、電話回線等の通信ネットワーク401に接続されており、該通信ネットワーク401を介して、サーバ300に接続される。外部記憶装置10に上記各プログラムや各種パラメータが記憶されていない場合には、通信I/F12は、サーバ300からプログラムやパラメータをダウンロードするために用いられる。クライアントとなる電子音楽装置100は、通信I/F12および通信ネットワーク401を介してサーバ300へとプログラムやパラメータのダウンロードを要求するコマンドを送信する。サーバ300は、このコマンドを受け、要求されたプログラムやパラメータを、通信ネットワーク401を介して電子音楽装置100へと配信し、電子音楽装置100が通信I/F12を介して、これらプログラムやパラメータを受信して外部記憶装置10に蓄積することにより、ダウンロードが完了する。
【0020】
なお、本実施の形態では、電子音楽装置100を電子鍵盤楽器上に構築するようにしたが、これに限らず、鍵盤を外部接続した汎用的なPC上に構築してもよい。また、ミキサなどの音響機器上に構築するようにしてもよい。その場合には、楽音信号をミキシングするための信号処理回路やAD/DA変換回路などは必須の構成要素であるが、音源回路は必須の構成要素ではない。
【0021】
GUI開発装置200は、電子音楽装置100の上記構成から、演奏操作子1、パネル操作子2、検出回路3,4、表示器9、MIDII/F11、音源回路13、効果回路14およびサウンドシステム15を除き、その代わりに、キーボード、マウスおよび大型ディスプレイを加えた、通常のPC上に構築される。
【0022】
図2は、電子音楽装置100およびGUI開発装置200の制御構成を示すブロック図である。
【0023】
同図に示すように、電子音楽装置100は、主として、ウィジェット(widget)ライブラリ100a、モデル群100b、通信制御ドライバ100c、GUI制御部100dおよびXMLパーザ(parser)100eを備えている。なお、同図には、説明の都合上、前記パネル操作子2および表示器9も図示されている。
【0024】
ウィジェットライブラリ100aとは、多数のウィジェットを集めたものであり、ウィジェットとは、GUIを構成する部品要素のことである。ウィジェットライブラリ100aは、たとえば前記外部記憶装置10に予め記憶されている。
【0025】
モデル群100bは、主として、前記CPU5、該CPU5によって実行されるソフトウェアおよび前記RAM7によって実現され、電子音楽装置100が備える機能(本実施の形態では、「シーケンサ」、「ミキサ」および「音源」の3種類)のそれぞれをモデル化して集めたものである。ただし、モデル群100bを構成する各モデルは、電子音楽装置100の各機能を単にモデル化したもの、つまり電子音楽装置100の各機能をシミュレートしたものではなく、各機能の制御を担当するドライバのようなものである。たとえば、前記音源回路13の所定のパラメータを変更する場合には、ユーザは、パネル操作子2中の所定のスイッチを操作することで、GUI制御部100dを介して音源モデルの所定のパラメータを変更する。これにより、音源モデルは、ユーザによって変更されたパラメータと同じパラメータが格納されている、音源回路13内のレジスタの値を、変更されたパラメータ値に変更する。このように、ユーザは、モデル群100bに対して各種設定操作を行うことができるだけであって、それより下位の層(つまり、各機能を構成する各ハードウェア)に対して各種設定操作を行うことができないので、ユーザにとって、モデル群100bを構成する各モデルと当該機能とは同一視される。
【0026】
通信制御ドライバ100cは、所定の通信プロトコル(本実施の形態では、TCP/IP(transmission control protocol/internet protocol))でGUI開発装置200とデータの送受信を行うために、前記通信I/F12を制御するソフトウェアである。
【0027】
GUI制御部100dは、XMLパーザ100eからの出力に応じてGUIを表示器9に表示し、そのGUIに対して、ユーザが、たとえばパネル操作子2を用いて行った操作に応じて、モデル群100bのパラメータを変更したり、他のGUIに切り替えたりする。
【0028】
XMLパーザ100eは、XML形式のGUI構成情報を解析し、その解析結果を前記GUI制御部100dに出力する。XML形式のGUI構成情報は、開発者がテキストエディタ等を用いて作成したものや、後述するように、GUI開発装置200から出力(エクスポート)されたものを格納(インポート)したものである。
【0029】
GUI開発装置200は、主として、ウィジェットライブラリ200a、モデル群200b、OS(operating system)200c、GUI編集アプリケーション200dを備えている。なお、説明の都合上、キーボード201、マウス202および大型ディスプレイ203も図示されている。
【0030】
ウィジェットライブラリ200aは、前記ウィジェットライブラリ100aと同一構成のものである。
【0031】
モデル群200bは、前記モデル群100bと同一構成のものである。ただし、モデル群100bとモデル群200bとは、入力情報の入力元と出力情報の出力先が異なっている。つまり、モデル群100bは、前述のように、GUI制御部100dからの要求により内部のパラメータを変更するとともに、その変更を当該ハードウェア(図示せず)と前記通信制御ドライバ100c(さらに通信制御ドライバ200c2を介して、GUI開発装置200のモデル群200b)に反映させるのに対して、モデル群200bは、GUI編集アプリケーション200dからの要求により内部のパラメータを変更するとともに、その変更を通信制御ドライバ200c2(さらに通信制御ドライバ100cを介して、電子音楽装置100のモデル群100b)に反映させる。
【0032】
GUI開発装置200は、前述のように、PC上に構築されているので、GUI開発装置200は、OS200cによって制御されている。OS200cには、入出力デバイスドライバ200c1と通信制御ドライバ200c2がインストールされている。入出力デバイスドライバ200c1は、キーボード201およびマウス202を用いた、GUI開発装置200に対するユーザ操作を入力するとともに、表示画面データを大型ディスプレイ203に出力する。大型ディスプレイ203としては、たとえば19インチのLCDやCRT(Cathode Ray Tube)ディスプレイを挙げることができる。通信制御ドライバ200c2は、前記通信制御ドライバ100cと同様に、所定の通信プロトコル(本実施の形態では、TCP/IP)で電子音楽装置100とデータの送受信を行うために、通信I/F(図示せず)を制御するソフトウェアである。
【0033】
GUI編集アプリケーション200dは、大型ディスプレイ203の表示画面上に複数のウィンドウを表示し、該各ウィンドウ内の指定された位置に、ユーザ操作に応じて、ウィジェットライブラリ200aから選択したウィジェットを配置することで、電子音楽装置100の前記表示器9に表示するGUIを編集するものである。
【0034】
以上のように構成された電子音楽装置100およびGUI開発装置200が実行する制御処理を、まず図2を参照してその概要を説明し、次に図3および図4を参照して詳細に説明する。
【0035】
GUI開発装置200のOS200cに対して、ユーザがGUI編集アプリケーション200dの起動を指示すると、図2に示すように、GUI編集アプリケーション200dが起動される。GUI編集アプリケーション200dは、表示画面上に複数のウィンドウを表示できるように構成されている。ウィンドウのそれぞれは、電子音楽装置100の表示器9、特に小型LCDの1つの表示画面(つまり、GUIの一画面)に相当する。
【0036】
複数のウィンドウが表示されている場合、ユーザは、いずれか1つのウィンドウを指定し、その指定したウィンドウ上に、ウィジェットライブラリ200aから選択したウィジェットを配置する。選択方法としては、たとえば、マウス202を使って、図示しないカーソルをウィンドウ上の好みの位置(ウィジェットを配置したい位置)に移動させ、その位置でマウス202の右ボタン(図示せず)を押すと、ポップアップメニューが表示され、そのメニュー内にある「ウィジェットの一覧表示」を選択すると、ウィジェットライブラリ200aに登録されているウィジェットの一覧が表示されるので、この中から好みのウィジェットを選択すると、選択したウィジェットがカーソル位置に配置されるという方法が考えられる。もちろん、ウィジェットライブラリ200aから好みのウィジェットが選択されて好みの位置に配置される方法であれば、これに限られないことは言うまでもない。
【0037】
次に、ユーザは、選択したウィジェットと、モデル群200b中のいずれかのモデルが備えている複数のパラメータのうちのいずれかとを対応付ける。この対応付け方法としては、たとえば、対応付けの対象とするウィジェットに前記カーソルを移動させ、その位置でマウス202の右ボタンを押すと、ポップアップメニューが表示され、そのメニュー内にある「パラメータの一覧表示」を選択すると、モデル群200bに含まれる各モデル毎に選択可能なパラメータの一覧が表示されるので、この中から好みのパラメータを選択すると、選択したパラメータがカーソル位置のウィジェットに対応付けられるという方法が考えられる。もちろん、モデル群200b中の複数のパラメータから好みのパラメータが選択されて目的のウィジェットに対応付けられる方法であれば、これに限られないことは言うまでもない。なお、ウィジェットとパラメータの対応付けは、GUI編集アプリケーション200dによって記憶されて管理される。
【0038】
そして、ユーザが、キーボード201およびマウス202を用いて、GUI編集アプリケーション200dからモデル群200b中のいずれかのパラメータの値を変更する操作を行うと、モデル群200bは、その変更操作を示すデータ(TCP/IP形式のデータ)を、通信制御ドライバ200c2、GUI開発装置200側の通信I/F(図示せず)、前記通信ネットワーク401、前記通信I/F12および通信制御ドライバ100cを介して、電子音楽装置100側のモデル群100bに送信する。これに応じて、モデル群100bは、変更対象となっているパラメータの値を、変更操作に応じた量に変更して更新し、更新後のパラメータ値を、変更操作が通知された方向と逆の方向で、モデル群200bに通知する。モデル群200bは、そのパラメータの値をGUI編集アプリケーション200dに通知する。通知されたパラメータの値が、このパラメータに対応付けられたウィジェットの表示を変更するものであれば、GUI編集アプリケーション200dは、通知されたパラメータの値をウィジェットの表示に反映させる。
【0039】
このように、本実施の形態では、GUIを開発中に、そのGUIの構成要素であるウィジェットと電子音楽装置100が備えているパラメータとを対応付け、GUI開発装置200側でそのパラメータに対して行った変更操作を電子音楽装置100側に通知し、これに応じて電子音楽装置100側で実際に変更されたパラメータの値が、電子音楽装置100側からGUI開発装置200側に通知され、通知されたパラメータの値に応じて、対応するウィジェットの表示を変更するようにしたので、GUIの開発中でも、そのGUIを電子音楽装置100に実装したときの動作状態を完全に再現することができる。したがって、GUIの開発効率が向上する。
【0040】
なお、開発されたGUI、つまり、各ウィンドウ上に配置されたウィジェットは、GUI開発装置200上で、XML形式のGUI構成情報200eに変換されて、出力される。
【0041】
次に、この制御処理を詳細に説明する。
【0042】
図3は、GUI開発装置200が実行する制御処理の手順を示すフローチャートであり、図4は、電子音楽装置100が実行する制御処理の手順を示すフローチャートである。
【0043】
GUI開発装置200が実行する制御処理は、主として、
(1)GUI構成情報のインポート処理(ステップS201)
(2)ウィジェットの編集処理(ステップS202,S203)
(3)ウィジェットとパラメータの対応付け処理(ステップS204)
(4)スクリプトとイベントの対応付け処理(ステップS205)
(5)パラメータ値変更処理(ステップS206)
(6)ウィジェットの表示更新処理(ステップS207)
(7)スクリプトの実行処理(ステップS208)
(8)ウィンドウ切り替え処理(ステップS209)
(9)GUI構成情報のエクスポート処理(ステップS210)
によって構成されている。
【0044】
電子音楽装置100が実行する制御処理は、主として、
(11)GUI構成情報のエクスポート処理(ステップS101)
(12)パラメータ変更/状態遷移処理(ステップS102)
(13)スクリプトの実行処理(ステップS103)
(14)画面表示更新処理(ステップS104)
(15)GUI構成情報のインポート処理(ステップS105)
によって構成されている。
【0045】
図3の制御処理に処理が進んだときには、前記GUI編集アプリケーション200dは既に起動されているものとするが、これに限らず、図3の制御処理の先頭で、GUI編集アプリケーション200dを起動するようにしてもよい。
【0046】
前記(1)のGUI構成情報のインポート処理では、電子音楽装置100にGUI構成情報が記憶されており、ユーザが、そのGUI構成情報を電子音楽装置100から読み出して、GUI開発装置200にインポートする指示を、GUI編集アプリケーション200d上で行うと、まずGUI開発装置200は、その指示を電子音楽装置100側に送信する。ここで、指示は、モデル群200bによってTCP/IP形式のデータに変換された後、通信制御ドライバ200c2、GUI開発装置200側の前記通信I/F、前記通信ネットワーク401、通信I/F12および通信制御ドライバ100cを介して、電子音楽装置100側のモデル群100bに送信される。これに応じて、モデル群100bは、記憶されているGUI構成情報を読み出してモデル群200bに送信する。モデル群200bは、受信したGUI構成情報をGUI編集アプリケーション200dに渡し、GUI編集アプリケーション200dは、このGUI構成情報を反映させる。これにより、GUI編集アプリケーション200dの表示画面には、複数のウィンドウが表示され、その各ウィンドウ上には、GUI構成情報に応じたウィジェットが表示されるので、ユーザは、電子音楽装置100の現在のGUIを自由に編集することができる。
【0047】
GUI編集アプリケーション200dの表示画面上に複数のウィンドウが表示されているときに、ユーザが、前記カーソルをいずれかのウィンドウに移動させ、マウス202の左ボタン(図示せず)をクリック操作すると、カーソルが位置しているウィンドウの編集を開始できる状態になる(ステップS202)。つまり、処理は、前記(2)のウィジェットの編集処理に進む。ユーザは、主としてマウス202を操作することで、ウィンドウ上のウィジェットを編集する。ここで、ウィジェットの編集には、具体的には、新たなウィジェットを追加したり、既存のウィジェットを削除したり、ウィジェットの現在位置を移動させたり、ウィジェットに色付けをしたり、ウィジェットのサイズを拡大/縮小させたりする処理が含まれる。ユーザのウィジェットに対する編集操作に従って、ウィンドウ上のウィジェットの表示態様が変化する(ステップS203)。
【0048】
次にユーザが、カーソルを1つのウィジェットに合わせ、マウス202の右ボタンを押して、ポップアップメニューを表示させ、その中から「パラメータの一覧表示」を選択すると、処理は、前記(3)のウィジェットとパラメータの対応付け処理に進む。この(3)ウィジェットとパラメータの対応付け処理では、ユーザが一覧表示されたパラメータからいずれかのパラメータを選択すると、GUI編集アプリケーション200dは、カーソル位置のウィジェットと選択されたパラメータを対応付ける(ステップS204)。対応付けの方法としては、たとえば、選択されたパラメータ(モデル群200b中のパラメータ)に、対応付けられたウィジェットを一意的に特定する情報(たとえば、名称)を付随させる方法が考えられる。なお、この(3)ウィジェットとパラメータの対応付け処理は、ウィジェットに既にパラメータが対応付けられている場合には、そのパラメータを他のパラメータに変更したり、パラメータとの対応付けをキャンセルしたりすることもできるように構成されている。
【0049】
GUI編集アプリケーション200dは、ウィジェットを配置してGUIを開発するためのウィジェット用ウィンドウの他に、スクリプトを記載するためのスクリプト用ウィンドウも表示できるようになっている。ユーザが、GUI編集アプリケーション200dに対して、スクリプト用ウィンドウをオープンさせる指示を行うと、処理は、前記(4)のスクリプトとイベントの対応付け処理に進む。ユーザが、スクリプト用ウィンドウ上に好みのスクリプトを選択して記載した後、そのスクリプト用ウィンドウ上の任意の位置に前記カーソルを合わせ、マウス202の右ボタンをクリック操作すると、ポップアップメニューが表示される。そしてユーザが、そのメニュー内にある「イベントの一覧表示」を選択すると、GUI編集アプリケーション200dは、そのスクリプトに対応付け可能なイベントの一覧を表示する。ここで、イベントの例としては、ユーザが電子音楽装置100の前記パネル操作子2のいずれかを操作したときに発生する操作イベントや、電子音楽装置100が所定の動作状態に遷移したときに発生する動作イベントを挙げることができるが、もちろん、これに限られる訳ではない。また、スクリプトによって制御できる処理の例としては、現在アクティブになっているウィンドウを他のウィンドウに切り替える処理(電子音楽装置100では、前記表示器9の小型LCD上の現在の表示画面を他の表示画面に切り替える処理に相当する)や、モデル群200b中の所定のパラメータの値を変更する処理(電子音楽装置100では、対応するパラメータの値を変更する処理に相当する)を挙げることができるが、もちろん、これに限られる訳ではない。ユーザが一覧表示されたイベントからいずれかのイベントを選択すると、GUI編集アプリケーション200dは、スクリプト用ウィンドウに記載されたスクリプトと選択されたイベントを対応付ける(ステップS205)。
【0050】
次にユーザが、GUI編集アプリケーション200dからモデル群200bに対して、モデル群200b中のあるパラメータの値を変更する操作を行うと、処理は、前記(5)のパラメータ値変更処理に進む。この(5)パラメータ値変更処理では、まずGUI編集アプリケーション200dは、変更操作を指示するイベントを前記モデル群200b経由で電子音楽装置100側のモデル群100bに送信する。以下、パラメータとして「音源回路13のボリューム」を採り、その変更操作として「ボリューム値の増大操作」を採った場合を例に挙げて説明する。
【0051】
音源回路13のボリューム値の増大を指示するイベントがモデル群100bに送信されると、モデル群100bは、処理を前記(12)のパラメータ変更/状態遷移処理に進める。この(12)パラメータ変更/状態遷移処理では、モデル群100bは、モデル群100b内の音源モデルのボリュームパラメータの値を、指示された値に増大させる(図4のステップS102)。なお、音源モデルのボリュームパラメータの値はそのまま、音源回路13のレジスタに設定されるので、音源モデルのボリュームパラメータの値を変更することは、音源回路13のボリュームパラメータの値を変更することと同値である。
【0052】
モデル群100bの音源モデルのボリュームパラメータの値が変更されると、モデル群100bは、そのパラメータの変更値をモデル群200bに送信する。これに応じて、モデル群200bは、自身の音源モデルのボリュームパラメータの値を、送信されてきた変更値に更新する(ステップS206)。
【0053】
GUI編集アプリケーション200dは、スクリプトに対応付けられたイベントを検知すると、検知したイベントに対応付けられたスクリプトを実行する(ステップS208)。ここで、GUI編集アプリケーション200dが検知するイベントは、ユーザが、たとえばキーボード201やマウス202を用いて、GUI開発装置200から入力したイベント(この場合は、擬似的なイベントである)と、ユーザが、たとえばパネル操作子2を用いて、電子音楽装置100から入力したイベントの両方が考えられる。後者のイベントは、GUI制御部100dからモデル群100bに渡り、通信制御ドライバ100c,200c2等を経由して、モデル群200bに渡った後、GUI編集アプリケーション200dに渡って検知される。そして、検知したイベントに対応付けられたスクリプトが、前述のように、現在アクティブになっているウィンドウを他のウィンドウに切り替える処理を実行するものである場合には、GUI編集アプリケーション200dは、現在アクティブになっているウィンドウを他のウィンドウに切り替える。さらにGUI編集アプリケーション200dは、当該スクリプトの実行要求を、モデル群100bを経由してモデル群200bに送信する。これに応じて、モデル群200bは、受信したスクリプトの実行要求をGUI制御部100dに送信する。これにより、GUI制御部100dは、表示器9の小型LCD上の現在の表示画面を他の表示画面に切り替える(図4のステップS103)。
【0054】
ユーザが、大型ディスプレイ203上の前記カーソルを、現在アクティブになっていないウィンドウに移動させ、マウス202の左ボタンをクリック操作すると、カーソルが位置しているウィンドウの編集を開始できる状態になる。つまり、処理は、前記(8)のウィンドウ切り替え処理に進む。この(8)ウィンドウ切り替え処理は、ユーザが切り替え指示したウィンドウがウィジェット用ウィンドウの場合には、前記(2)ウィジェットの編集処理あるいは前記(3)ウィジェットとパラメータの対応付け処理のいずれかと同様の処理となり、ユーザが切り替え指示したウィンドウがスクリプト用ウィンドウの場合には、前記(4)スクリプトとイベントの対応付け処理と同様の処理となるので、この(8)ウィンドウ切り替え処理についての詳細な説明は省略する。
【0055】
ユーザが、前記(2)〜(8)の処理によってGUIを開発した後、GUI編集アプリケーション200dに対して、そのGUI構成情報をエクスポートする指示を行うと、処理は、前記(9)のGUI構成情報のエクスポート処理に進む。この(9)GUI構成情報のエクスポート処理では、GUI編集アプリケーション200dは、開発したGUIを電子音楽装置100の表示器9に表示させるためのGUI構成情報をXMLファイルの形式でエクスポートする(ステップS210)。このようにしてエクスポートされたGUI構成情報200eは、電子音楽装置100のユーザに配布される。配布方法としては、リムーバブルな記憶媒体に格納して手渡しする方法や、サーバ300からダウンロードする方法、通信制御ドライバ100c,200c2等を介して、モデル群100bからモデル群200bに渡す方法などを挙げることができる。
【0056】
以上説明した(1)〜(9)の処理は、この順序で繰り返し実行される。
【0057】
次に、図4の電子音楽装置100が実行する制御処理について説明する。
【0058】
ユーザが、電子音楽装置100のGUI制御部100dに対して、電子音楽装置100に格納されているGUI構成情報をエクスポートする指示を行うと、処理は、前記(11)のGUI構成情報のエクスポート処理に進む。この(11)GUI構成情報のエクスポート処理では、モデル群100bは、記憶されているGUI構成情報を読み出してモデル群200bに送信する(ステップS101)。この後の処理は、前記(1)GUI構成情報のインポート処理中で説明した処理と同様であるので、その説明は省略する。
【0059】
前記(12)のパラメータ変更/状態遷移処理では、GUI制御部100dは、ユーザ操作、GUI開発装置200からの指示、あるいは前記タイマ8の計時時間に応じて、パラメータ変更および/または状態遷移を行う(ステップS102)。たとえば、ユーザ操作として、前記演奏操作子1に含まれる鍵盤の各鍵に対する押鍵操作を採った場合には、鍵毎に変更すべきパラメータの種類を割り当て、押鍵ベロシティの強さに応じて、割り当てられているパラメータの値を変更するという制御方法が考えられる。また、タイマ8の計時時間としては、所定の動作状態に入った時点でタイマ8の計時を開始し、そのタイマ8の計時時間の大小に従って、異なる動作状態に遷移させるという制御方法が考えられる。たとえば、電子音楽装置100が備えているシーケンサ機能は、ユーザ操作に応じて楽曲データを自動演奏するが、このとき、タイマ8の計時時間が経過するに従って、演奏の時間的位置を更新しながら、演奏のためのパラメータを更新したり、演奏曲の終端で演奏を終了したりするといった状態遷移を行う。
【0060】
このように、(12)パラメータ変更/状態遷移処理によってパラメータが変更され、および/または動作状態が遷移されると、その変更および/または遷移は、モデル群100bからモデル群200bに通知されるので、GUI編集アプリケーション200dは、電子音楽装置100のパラメータ状態および/または動作状態を検知することができる。したがって、電子音楽装置100の所定の動作状態とGUI編集アプリケーション200dの表示画面上の複数のウィンドウのいずれかとを対応付けておけば、GUI編集アプリケーション200dは、電子音楽装置100の所定の動作状態を検知したときに、現在アクティブになっているウィンドウを他のウィンドウに自動的に切り替えるようなGUIを簡単に開発することができる。また、この処理を応用することで、GUI開発装置200に対するユーザ操作、つまり、前記キーボード201やマウス202を用いたユーザ操作と、電子音楽装置100内のいずれかのパラメータとを関連付け、ユーザ操作に応じて、それに関連付けられたパラメータの値を変更するようなGUIを簡単に開発することができる。
【0061】
前記(13)のスクリプトの実行処理では、GUI制御部100dは、ユーザ操作、GUI開発装置200からの指示、あるいは前記タイマ8の計時時間に応じて、所定のスクリプトを実行する(ステップS103)。
【0062】
前記(14)の画面表示更新処理では、GUI制御部100dは、所定のパラメータ変更および/または状態遷移があったときには、現在のGUI構成情報に従って、表示器9の表示を更新する(ステップS104)。
【0063】
前記(15)のGUI構成情報のインポート処理では、GUI制御部100dは、GUI開発装置200からGUI構成情報をインポートし、反映させる(ステップS105)。
【0064】
なお、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0065】
この場合、記憶媒体から読出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードおよび該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0066】
プログラムコードを供給するための記憶媒体としては、たとえば、フレキシブルディスク、ハードディスク、光磁気ディスク、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。また、通信ネットワークを介してサーバコンピュータからプログラムコードが供給されるようにしてもよい。
【0067】
また、コンピュータが読出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOSなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【0068】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【0069】
【図1】本発明の一実施の形態に係る電子音楽装置の概略構成を示すブロック図である。
【図2】図1の電子音楽装置およびGUI開発装置の制御構成を示すブロック図である。
【図3】図2のGUI開発装置が実行する制御処理の手順を示すフローチャートである。
【図4】図2の電子音楽装置が実行する制御処理の手順を示すフローチャートである。
【符号の説明】
【0070】
9…表示器(表示手段),10…外部記憶装置(記憶手段),12…通信I/F(通信手段),100…電子音楽装置,100b…モデル群(インポート手段、応答手段),100c…通信制御ドライバ(通信手段),100d…GUI制御部(インポート手段、応答手段、反映手段),200…GUI開発装置,200a…ウィジェットライブラリ(記憶手段),200b…モデル群(取得手段、出力手段、状態遷移検知手段、指示手段),200c2…通信制御ドライバ(通信手段),200d…GUI編集アプリケーション(ウィンドウ構成手段、ウィジェット・パラメータ関連付け手段、反映手段、出力手段、状態遷移検知手段、切り替え手段、ユーザ操作検知手段、ユーザ操作・パラメータ関連付け手段、指示手段、イベント検知手段、スクリプト・イベント関連付け手段),203…大型ディスプレイ(表示手段)

【特許請求の範囲】
【請求項1】
電子音楽装置のGUIを開発するGUI開発装置であって、
前記電子音楽装置に接続し、該電子音楽装置とデータの送受信を行う通信手段と、
複数のウィンドウを表示可能な表示手段と、
前記電子音楽装置がGUIとして表示可能なウィジェットの集合であるウィジェットライブラリを記憶する記憶手段と、
該記憶手段に記憶されたウィジェットライブラリからユーザが選択したウィジェットを、前記複数のウィンドウのうち、ユーザによって指定されたウィンドウ上に配置させることで、当該ウィンドウを構成するウィンドウ構成手段と、
該ウィンドウ構成手段によってウィンドウ上に配置されたウィジェットと、前記電子音楽装置が備えている複数のパラメータのうち、ユーザによって指定されたパラメータとを関連付けるウィジェット・パラメータ関連付け手段と、
該ウィジェット・パラメータ関連付け手段によって関連付けられたパラメータの値を、前記通信手段を介して前記電子音楽装置から取得する取得手段と、
該取得手段によって取得されたパラメータの値を、対応するウィジェットの表示に反映させる反映手段と、
前記ウィンドウ構成手段によって構成されたウィンドウ構成を示すウィンドウ構成情報と、前記関連付け手段によって関連付けられたウィジェットとパラメータを示すウィジェット・パラメータ関連付け情報を出力する出力手段と
を有することを特徴とするGUI開発装置。
【請求項2】
前記通信手段を介して前記電子音楽装置の動作状態が所定の動作状態に遷移したことを検知する状態遷移検知手段と、
該状態遷移検知手段によって前記所定の動作状態が検知されたときに、現在アクティブになっているウィンドウ構成を他のウィンドウ構成に切り替える切り替え手段と
をさらに有し、
前記出力手段は、前記所定の動作状態と切り替えるべきウィンドウ構成とを関連付ける動作状態・ウィンドウ構成関連付け情報も出力することを特徴とする請求項1に記載のGUI開発装置。
【請求項3】
当該GUI開発装置に対する所定のユーザ操作を検知するユーザ操作検知手段と、
前記所定のユーザ操作と、前記電子音楽装置が備えている複数のパラメータのうち、ユーザによって指定されたパラメータとを関連付けるユーザ操作・パラメータ関連付け手段と、
前記ユーザ操作検知手段によって前記所定のユーザ操作が検出されたときに、該検出された所定のユーザ操作に関連付けられたパラメータの値を変更するように、前記通信手段を介して前記電子音楽装置に指示する指示手段と
をさらに有することを特徴とする請求項1または2に記載のGUI開発装置。
【請求項4】
所定のユーザ操作に応じて発生されたイベントまたは前記電子音楽装置が備えた所定のパラメータの状態変化に応じて発生されたイベントを検知するイベント検知手段と、
該イベント検知手段によってイベントが検出されたときに起動されるスクリプトであって、現在アクティブになっているウィンドウ構成を他のウィンドウ構成に切り替える処理および/または前記電子音楽装置が備えているパラメータの値を変更する処理を実行するものを、当該イベントに関連付けるスクリプト・イベント関連付け手段と
をさらに有し、
前記出力手段は、前記スクリプト・イベント関連付け手段によって関連付けられたスクリプト・イベント関連付け情報も出力することを特徴とする請求項1または2に記載のGUI開発装置。
【請求項5】
請求項1のGUI開発装置に接続し、該GUI開発装置とデータの送受信を行う通信手段と、
前記GUI開発装置の記憶手段に記憶されているウィジェットライブラリと同様のウィジェットライブラリを記憶する記憶手段と、
前記GUI開発装置の出力手段によって出力されたウィンドウ構成情報およびウィジェット・パラメータ関連付け情報をインポートするインポート手段と、
該インポート手段によってインポートされたウィンドウ構成情報に基づいて、複数の画面を切り替えて表示可能な表示手段と、
前記通信手段を介して前記GUI開発装置から問い合わせられたパラメータ値を、前記通信手段を介して応答する応答手段と、
該応答手段によってパラメータ値を応答したパラメータが、前記表示手段上に現在表示されている画面に配置されたウィジェットに関連付けられたものであるときには、前記パラメータ値を当該ウィジェットの表示に反映させる反映手段と
を有することを特徴とする電子音楽装置。
【請求項6】
電子音楽装置のGUIを開発するGUI開発装置を制御する制御方法をコンピュータに実行させるためのプログラムであって、
前記制御方法は、
前記電子音楽装置がGUIとして表示可能なウィジェットの集合であるウィジェットライブラリを記憶する記憶手段に記憶されたウィジェットライブラリからユーザが選択したウィジェットを、表示手段に表示可能な複数のウィンドウのうち、ユーザによって指定されたウィンドウ上に配置させることで、当該ウィンドウを構成するウィンドウ構成ステップと、
該ウィンドウ構成ステップによってウィンドウ上に配置されたウィジェットと、前記電子音楽装置が備えている複数のパラメータのうち、ユーザによって指定されたパラメータとを関連付けるウィジェット・パラメータ関連付けステップと、
該ウィジェット・パラメータ関連付けステップによって関連付けられたパラメータの値を、前記電子音楽装置に接続し、該電子音楽装置とデータの送受信を行う通信手段を介して前記電子音楽装置から取得する取得ステップと、
該取得手段によって取得されたパラメータの値を、対応するウィジェットの表示に反映させる反映ステップと、
前記ウィンドウ構成ステップによって構成されたウィンドウ構成を示すウィンドウ構成情報と、前記関連付けステップによって関連付けられたウィジェットとパラメータを示すウィジェット・パラメータ関連付け情報を出力する出力ステップと
を有することを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2009−25988(P2009−25988A)
【公開日】平成21年2月5日(2009.2.5)
【国際特許分類】
【出願番号】特願2007−187237(P2007−187237)
【出願日】平成19年7月18日(2007.7.18)
【出願人】(000004075)ヤマハ株式会社 (5,930)
【Fターム(参考)】