(57)【要約】【課題】複数の相互に関連するプログラムが同時に使用される状況において、ユーザの使用目的に応じて必要な機能のみで構成されるプログラム使用環境を容易に選択させるプログラムを提供する。【解決手段】環境データには、ユーザインタフェースの情報が登録されている。ユーザインタフェースには、複数の拡張プログラムの処理のいずれかがリンクされている。ＣＰＵは基本プログラムに従い、環境データにより示されるユーザインタフェースの画像を表示部に表示する。ユーザが表示部に表示されたユーザインタフェースに対して操作を行うと、ＣＰＵはそのユーザインタフェースにリンクされている拡張プログラムを実行し、操作に応じた処理を行う。ユーザは環境データを切り替えることで、ＣＰＵに異なるユーザインタフェースで構成された画面を表示させる。【選択図】      図１１
2004220208.tif 000002
【特許請求の範囲】
【請求項１】
１または複数の拡張プログラムと、ユーザから指示を受け取るための１または複数のユーザインタフェースを定義するユーザインタフェースデータと、前記１または複数のユーザインタフェースの各々を前記１または複数の拡張プログラムの実行制御に関連付けるリンクデータとを含んだ複数の環境データを記憶したメモリを有するコンピュータに、
前記複数の環境データのうち１の環境データを選択する環境データ選択処理と、
選択した環境データに従って１または複数のユーザインタフェースを提供するユーザインタフェース提供処理と、
提供した１または複数のユーザインタフェースのいずれかに対するユーザの操作が行われた場合、選択した環境データに含まれるリンクデータによって当該ユーザインタフェースに関連付けられた拡張プログラムの実行制御を行う拡張プログラム制御処理と
を実行させる基本プログラム。
【請求項２】
前記複数の環境データの各々は、前記１または複数の拡張プログラムに従って実行される各処理が必要とする入力データが、前記１または複数の拡張プログラムに従って行われるいずれの処理の出力データであるかを示す入出力関係データを含み、
前記基本プログラムは、前記コンピュータが前記１または複数の拡張プログラムに従って、ある処理を実行し、その処理において出力データが得られた場合、前記環境データ選択処理において選択された環境データに含まれる入出力関係データに従って、当該出力データを入力データとする処理を前記コンピュータに実行させる
請求項１に記載の基本プログラム。
【請求項３】
前記基本プログラムは、
前記メモリに、ある拡張プログラムが新たに記憶された場合、前記コンピュータに、前記複数の環境データの各々に対し、新たに記憶された拡張プログラムに関連するデータを追加させ、
前記メモリに記憶されている前記１または複数の拡張プログラムのいずれかが前記メモリから削除された場合、前記コンピュータに、前記複数の環境データの各々から、削除された拡張プログラムに関連するデータを削除させる
請求項１または請求項２に記載の基本プログラム。
【請求項４】
前記コンピュータは、１または複数の外部機器から前記１または複数の外部機器の各々を識別するデバイスＩＤを受信可能であり、
前記メモリには、前記デバイスＩＤと前記環境データとの対応関係を示すデバイス環境関係データが記憶されており、
前記基本プログラムは、前記コンピュータが前記１または複数の外部機器のいずれかからデバイスＩＤを受信した場合、前記環境データ選択処理において、前記コンピュータに、前記デバイス環境関係データによって受信したデバイスＩＤに対応付けられた環境データを選択させる
請求項１乃至請求項３のいずれかに記載の基本プログラム。
【請求項５】
前記コンピュータは、外部機器から音声情報を取得可能であり、
前記メモリには、１または複数の音声情報の特徴を示す情報である音声特徴データと前記環境データとの対応関係を示す音声環境関係データが記憶されており、
前記基本プログラムは、
前記コンピュータが前記外部機器から音声情報を受信した場合、前記コンピュータに、受信した音声情報から該音声情報の特徴を示す音声特徴データを生成させる音声特徴データ生成処理を実行させ、
前記環境データ選択処理において、前記コンピュータに、前記音声環境関係データによって、前記音声特徴データ生成処理において生成した音声特徴データに対応付けられた環境データを選択させる
請求項１乃至請求項３のいずれかに記載の基本プログラム。
【請求項６】
前記１または複数の拡張プログラムの少なくとも１つは、前記コンピュータに、音声データを電子的に生成する音声データ生成処理を実行させる
請求項１乃至請求項５のいずれかに記載の基本プログラム。
【請求項７】
請求項１乃至請求項６のいずれかに記載の基本プログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のプログラムから一部のプログラムが選択され利用されるプログラム利用環境において、プログラムの選択作業を容易化し、かつ選択されたプログラムに応じてユーザインタフェースの変更処理を行うプログラムに関する。
【０００２】
【従来の技術】
近年、特定機能を実現するための電子機器（以下、「特定電子機器」と呼ぶ）の多くが、パーソナルコンピュータやゲーム機、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｃｅ）等（以下、単に「汎用コンピュータ」と呼ぶ）に必要なアプリケーションプログラム（以下、単に「アプリケーション」と呼ぶ）をインストールすることにより実現可能となっている。特に、汎用コンピュータの音声データおよび画像データの処理能力が向上しているため、音響映像機器の機能の多くが汎用コンピュータにより実現可能となっている。
【０００３】
特定電子機器はＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）や液晶ディスプレイ等、同種の部品を多く有している。それに対し、汎用コンピュータに異なるアプリケーションをインストールすることにより、１台の汎用コンピュータに複数の特定電子機器の機能を実現させる場合、ＤＳＰや液晶ディスプレイ等の部品を汎用コンピュータが１つ有すれば足り、コストの低減がはかられる。
【０００４】
上記のように、汎用コンピュータを用いて特定電子機器の機能を実現させる従来技術の例として、例えばネットワークに接続された複数のコンピュータ資源を用いて電子楽器を実現する技術が、特許文献１に開示されている。
【０００５】
【特許文献１】
特開平７−２６１７５６号公報
【０００６】
【発明が解決しようとする課題】
ところで、汎用コンピュータにより互いに関連する複数の特定電子機器の機能が実現可能な場合、それらの機能を連携させることができればユーザの利便性が向上する。
【０００７】
汎用コンピュータにおいて複数機能の連携を実現するために、まずそれらの複数機能を１つのアプリケーションに統合することが考えられる。例えば、汎用コンピュータにミュージックシンセサイザの機能を実現するアプリケーション（以下、「シンセソフト」と呼ぶ）と、汎用コンピュータに音声データに対する音響効果を付加するエフェクタの機能を実現させるアプリケーション（以下、「エフェクタソフト」と呼ぶ）の両方の機能を有するアプリケーション（以下、「エフェクタ機能付シンセソフト」と呼ぶ）を開発すれば、ユーザはミュージックシンセサイザによって再生される音声に対し、容易にエフェクタによる音響効果を付加することができる。
【０００８】
しかしながら、上記のように異なる機能を有する複数のアプリケーションを単純に統合すると、一方のアプリケーションの機能のみを必要とするユーザには不便である。例えば、エフェクタ機能を必要としないユーザも、エフェクタ機能付シンセソフトを購入しなければならず、そのために不要な費用を払わなければならない。その不便さを解消するために、もしシンセソフト、エフェクタソフトおよびエフェクタ機能付シンセソフトを個別に販売するならば、今度はアプリケーションの開発者の開発コストが増大する。
【０００９】
上記の問題に対し、複数のプログラムの制御等を行う基本的なプログラム（以下、「基本プログラム」と呼ぶ）と、この基本的プログラムと共に動作し、特定の機能を実現するためのプログラム（以下、「拡張プログラム」と呼ぶ）とを組み合わせることにより、複数の機能を有するアプリケーションを構築する方法が考えられる。例えば、汎用コンピュータにミュージックシーケンサの機能を実現させるアプリケーション（以下、「シーケンサソフト」と呼ぶ）を基本プログラムとして開発し、シンセソフトおよびエフェクタソフトはシーケンサソフトの拡張プログラムとして開発する。この場合、ユーザはシーケンサソフトを購入した後、必要な拡張プログラムのみを購入すればよい。また、アプリケーションの開発者は、各拡張プログラムを個別に開発できるため、開発コストも最小限ですむ。
【００１０】
上記の基本プログラムと拡張プログラムを用いる方法の効果は、各拡張プログラムの機能が細分化される程、大きい。しかしながら、各拡張プログラムの機能が細分化されると、ユーザがそれら多くの拡張プログラムを管理するための負担が増大する。例えば、エフェクタソフトの機能を実現する拡張プログラムが、リバーブおよびディストーションの機能を実現させる拡張プログラム（以下、それぞれ「リバーブソフト」および「ディストーションソフト」と呼ぶ）に細分化されたとする。リバーブソフトとディストーションソフトの両方を購入したユーザが、例えばリバーブソフトのみを利用したい場合、不要なディストーションソフトに関するコマンドボタン等が汎用コンピュータの画面に表示されると邪魔である。
【００１１】
ユーザは画面に表示される邪魔なコマンドボタン等を非表示にすることができる。しかしユーザがアプリケーションの使用目的に応じていちいち不要なコマンドボタン等の非表示化の操作をするのは面倒である。また、複数の拡張プログラムの各種の機能の間には、関連性が高いものと関連性が低いものが存在する。従って、ユーザはある画面においていずれのコマンドボタン等が不要であるかを判断することも容易ではない。
【００１２】
しかしながら、もしプログラムの開発者がアプリケーションにおける望ましい画面表示の構成を決定してユーザに提供し、ユーザはプログラム開発者により決定された画面表示の構成しか利用できないとすれば、そのアプリケーションは様々なユーザの使用目的を満たすアプリケーションの使用環境を提供することができない。
【００１３】
上記のような事情に鑑み、本発明は、複数の関連するプログラムを含み、それらを同時に利用可能なプログラムにおいて、開発者およびユーザがそれら複数のプログラムを利用する際の画面構成を使用目的に応じて柔軟に変更でき、かつそのように変更された複数の画面構成の中からユーザが望ましいものを容易に選択できるプログラムを提供することを目的としている。
【００１４】
【課題を解決するための手段】
以上説明した課題を解決するため、本発明は、１または複数の拡張プログラムと、ユーザから指示を受け取るための１または複数のユーザインタフェースを定義するユーザインタフェースデータと、前記１または複数のユーザインタフェースの各々を前記１または複数の拡張プログラムの実行制御に関連付けるリンクデータとを含んだ複数の環境データを記憶したメモリを有するコンピュータに、前記複数の環境データのうち１の環境データを選択する環境データ選択処理と、選択した環境データに従って１または複数のユーザインタフェースを提供するユーザインタフェース提供処理と、提供した１または複数のユーザインタフェースのいずれかに対するユーザの操作が行われた場合、選択した環境データに含まれるリンクデータによって当該ユーザインタフェースに関連付けられた拡張プログラムの実行制御を行う拡張プログラム制御処理とを実行させる基本プログラムを提供する。
【００１５】
かかる構成による基本プログラムを用いると、使用目的に応じた環境データが選択されることにより、使用目的に必要な処理に対応付けられたユーザインタフェースのみが画面に表示される。その結果、ユーザが複数の処理を有する複数の拡張プログラムを同時に利用し、使用目的に応じてそれらを使い分ける必要がある場合であっても、ユーザは環境データを切り替えることにより、容易に使用目的に応じた画面をコンピュータに表示させることができる。
【００１６】
また、前記複数の環境データの各々は、前記１または複数の拡張プログラムに従って実行される各処理が必要とする入力データが、前記１または複数の拡張プログラムに従って行われるいずれの処理の出力データであるかを示す入出力関係データを含み、前記基本プログラムは、前記コンピュータが前記１または複数の拡張プログラムに従って、ある処理を実行し、その処理において出力データが得られた場合、前記環境データ選択処理において選択された環境データに含まれる入出力関係データに従って、当該出力データを入力データとする処理を前記コンピュータに実行させてもよい。
【００１７】
かかる構成による基本プログラムを用いると、複数の拡張プログラム間におけるデータの入力および出力の関係が、環境データの選択により自動的に決定される。
【００１８】
また、前記基本プログラムは、前記メモリに、ある拡張プログラムが新たに記憶された場合、前記コンピュータに、前記複数の環境データの各々に対し、新たに記憶された拡張プログラムに関連するデータを追加させ、前記メモリに記憶されている前記１または複数の拡張プログラムのいずれかが前記メモリから削除された場合、前記コンピュータに、前記複数の環境データの各々から、削除された拡張プログラムに関連するデータを削除させてもよい。
【００１９】
かかる構成による基本プログラムを用いると、コンピュータにおいて利用可能な拡張プログラムの構成に変更があった場合に、環境データにおけるデータインタフェースデータおよびリンクデータがその変更に応じて自動的に更新される。
【００２０】
また、前記コンピュータは、１または複数の外部機器から前記１または複数の外部機器の各々を識別するデバイスＩＤを受信可能であり、前記メモリには、前記デバイスＩＤと前記環境データとの対応関係を示すデバイス環境関係データが記憶されており、前記基本プログラムは、前記コンピュータが前記１または複数の外部機器のいずれかからデバイスＩＤを受信した場合、前記環境データ選択処理において、前記コンピュータに、前記デバイス環境関係データによって受信したデバイスＩＤに対応付けられた環境データを選択させてもよい。
【００２１】
かかる構成による基本プログラムを用いると、外部機器からコンピュータに送信されるデバイスＩＤに応じて環境データが自動的に選択されるため、ユーザは外部機器をコンピュータに接続するだけで、使用目的に応じた画面をコンピュータに表示させることができる。
【００２２】
また、前記コンピュータは、外部機器から音声情報を取得可能であり、前記メモリには、１または複数の音声情報の特徴を示す情報である音声特徴データと前記環境データとの対応関係を示す音声環境関係データが記憶されており、前記基本プログラムは、前記コンピュータが前記外部機器から音声情報を受信した場合、前記コンピュータに、受信した音声情報から該音声情報の特徴を示す音声特徴データを生成させる音声特徴データ生成処理を実行させ、前記環境データ選択処理において、前記コンピュータに、前記音声環境関係データによって、前記音声特徴データ生成処理において生成した音声特徴データに対応付けられた環境データを選択させてもよい。
【００２３】
かかる構成による基本プログラムを用いると、外部機器からコンピュータに入力される音声情報に応じて環境データが自動的に選択されるため、ユーザは外部機器から音声情報をコンピュータに対し送信させるだけで、使用目的に応じた画面をコンピュータに表示させることができる。
【００２４】
前記１または複数の拡張プログラムの少なくとも１つは、前記コンピュータに、音声データを電子的に生成する音声データ生成処理を実行させてもよい。
【００２５】
かかる構成による基本プログラムを用いると、コンピュータは複数のデジタル音響機器の機能を実現可能となり、ユーザは環境データを切り替えることにより、それらデジタル音響機器の機能を容易に使い分けることができる。
【００２６】
【発明の実施の形態】
［１：第１実施形態］
以下、本発明の好適な実施形態として、あるアプリケーションの構成および動作を説明する。このアプリケーションは、コンピュータに電子ピアノ音源およびギターアンプの機能を実現させ、さらにそれらの機能をユーザが手動で容易に切り替えることを可能とするものである。なお、以下の説明において、「アプリケーション」は、複数の関連するプログラムの集合体を意味する言葉として用いる。
【００２７】
［１．１：コンピュータおよび外部機器の構成および動作］
まず、第１実施形態に係るアプリケーション（以下、「音楽アプリケーション１」と呼ぶ）の実行環境であるコンピュータ１およびこれに接続される外部機器の構成および動作を、図１を用いて説明する。
【００２８】
コンピュータ１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）１０２、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０４、ＨＤ（Ｈａｒｄ  Ｄｉｓｋ）１０５、表示部１０６、操作部１０７、ＮＷ（Ｎｅｔｗｏｒｋ）入出力部１０８、ＭＩＤＩ（Ｍｕｓｉｃａｌ  Ｉｎｓｔｒｕｍｅｎｔ  Ｄｉｇｉｔａｌ  Ｉｎｔｅｒｆａｃｅ）入出力部１０９、アナログ音声入力部１１０、Ａ／Ｄ（Ａｎａｌｏｇｔｏ  Ｄｉｇｉｔａｌ）コンバータ１１１、Ｄ／Ａ（Ｄｉｇｉｔａｌ  ｔｏ  Ａｎａｌｏｇ）コンバータ１１２、アンプ１１３およびスピーカ１１４を有している。コンピュータ１において、アナログ音声入力部１１０、アンプ１１３およびスピーカ１１４以外の各構成部は、バス１１５を介して互いに接続されている。
【００２９】
ＣＰＵ１０１は汎用的なデータ処理を行うマイクロプロセッサであり、ＲＯＭ１０３に記憶された制御用プログラムに従いコンピュータ１の他の構成部の制御等の処理を行う。また、ＣＰＵ１０１は、ＨＤ１０５に記録された音楽アプリケーション１をＲＡＭ１０４に読み込み、音楽アプリケーション１に従った各種処理を行う。
【００３０】
ＤＳＰ１０２はデジタル音声データやデジタル画像データを高速に処理可能なマイクロプロセッサであり、ＲＡＭ１０４からデータを読み込んで加工処理を行い、その結果生成されるデータをＲＡＭ１０４に記録する。
【００３１】
ＲＯＭ１０３は各種の制御用プログラムを格納する不揮発性メモリである。ＲＡＭ１０４はＣＰＵ１０１や他の構成部が利用するデータを一時的に記憶するための揮発性メモリである。ＨＤ１０５は大容量の記憶領域を有する不揮発性のメモリであり、ＨＤ１０５に格納されるデータは書き換え可能である。ＨＤ１０５には、音楽アプリケーション１および音楽アプリケーション１と共に利用される各種データが格納される。ＨＤ１０５に格納されるアプリケーションおよびデータは、必要に応じてＲＡＭ１０４に読み出された後、ＣＰＵ１０１等に読み込まれて利用される。
【００３２】
表示部１０６は液晶ディスプレイ、駆動回路等を有し、文字、図形等の情報を表示する。操作部１０７はキーパッドやマウス等を有し、ユーザの操作に応じて所定のデータをＣＰＵ１０１に送信する。
【００３３】
ＮＷ入出力部１０８はＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）に接続された他の通信機器とコンピュータ１との間で送受信されるデータの中継を行う。ＮＷ入出力部１０８はＬＡＮを介してインターネット１２０に接続されている。
【００３４】
ＭＩＤＩ入出力部１０９は外部機器からＭＩＤＩ規格に従ったデータ（以下、「ＭＩＤＩデータ」と呼ぶ）を受信し、受信したＭＩＤＩデータをＣＰＵ１０１に転送したり、ＣＰＵ１０１により生成されたＭＩＤＩデータを外部機器に送信したりする。第１実施形態においては、ＭＩＤＩ入出力部１０９にはＭＩＤＩキーボード１２１が接続されている。ＭＩＤＩキーボード１２１は、鍵盤、スライダー等の各種操作子を有し、ユーザの操作に応じてＭＩＤＩデータをＭＩＤＩ入出力部１０９に送信する。
【００３５】
アナログ音声入力部１１０はコンピュータ１の内部においてＡ／Ｄコンバータ１１１およびアンプ１１３と接続され、外部機器から入力されるアナログ音声信号をＡ／Ｄコンバータ１１１およびアンプ１１３に出力する。第１実施形態においては、アナログ音声入力部１１０にはエレクトリックギター１２２が接続されている。エレクトリックギター１２２は、本体に張られたスチールの弦と、弦の振動をピックアップするセンサ等を有し、ユーザの演奏による弦の振動をアナログ音声信号に変換し、アナログ音声入力部１１０に出力する。Ａ／Ｄコンバータ１１１はアナログ音声入力部１１０を介して入力されるアナログ音声信号をデジタル音声データに変換しＲＡＭ１０４に記録する。
【００３６】
Ｄ／Ａコンバータ１１２は、ＣＰＵ１０１またはＤＳＰ１０２によってＲＡＭ１０４から読み出されるデジタル音声データをアナログ音声信号に変換し、アンプ１１３に出力する。アンプ１１３はアナログ音声入力部１１０およびＤ／Ａコンバータ１１２から入力されるアナログ音声信号を増幅し、スピーカ１１４に出力する。スピーカ１１４はアンプ１１３から入力されるアナログ音声信号を空気振動に変換することにより、発音する。
【００３７】
［１．２：音楽アプリケーションの構成および動作］
続いて、音楽アプリケーション１の構成および動作を説明する。音楽アプリケーション１は、図２に示す基本パッケージと複数の拡張パッケージの複合体である。これらの各パッケージは、ユーザからの指示に従い、インターネット１２０を介してコンピュータ１にダウンロードされ、ＨＤ１０５にインストールされる。
【００３８】
基本パッケージには、基本プログラムおよび関連データが含まれている。また、各拡張パッケージには、拡張プログラムおよび関連データが含まれている。ＣＰＵ１０１は、基本プログラムに従い、拡張プログラムの実行管理を行う。従って、拡張プログラムのインストールに先立ち、基本プログラムは必ずコンピュータ１にインストールされなければならない。拡張プログラムは基本プログラムのインストールの後にコンピュータ１にインストールされるが、ユーザは複数の拡張パッケージから利用を希望するものを選び、選んだ拡張パッケージに含まれる拡張プログラムのみをコンピュータ１にインストールすることができる。
【００３９】
図３は基本プログラムと拡張プログラムの関係を模式的に示した図である。まず、ユーザによってコンピュータ１もしくはコンピュータ１に接続された外部機器に対する操作が行われた場合、基本プログラムは、この操作を表すデータを、コンピュータ１のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を介して受信し、受信したデータを拡張プログラムに受け渡す（データフローＦ３０１）。また、基本プログラムは、拡張プログラムによりデータが生成された場合、ＯＳを介して、その生成されたデータに応じた処理、例えば拡張プログラムにより生成された音声データの再生等をコンピュータ１に実行させる（データフローＦ３０５、データフローＦ３０６）。また、基本プログラムは、ある拡張プログラムに従ってコンピュータ１が生成したデータを、他の拡張プログラムに従って実行されるコンピュータ１の処理において利用させる（データフローＦ３０７、データフローＦ３０８およびデータフローＦ３０９）。すなわち、基本プログラムはプログラム間のデータの受け渡しを行う手段として働く。
【００４０】
ユーザがコンピュータ１に何らかのプログラムを実行させたり、あるいは実行中のプログラムとユーザとの間で情報の授受を行わせるに当たり、いずれのプログラムをその対象とするかについてユーザに指示を求める必要が生じることがある。このユーザからの指示を得るために、本実施形態における基本プログラムは、コンピュータ１の表示部１０６に、複数のユーザインタフェースを配置した画面を表示する。ここで、ユーザインタフェースとは、コンピュータ１の表示部１０６に表示される画面の構成要素、すなわちコマンドボタン、テキストボックス、リストボックス等を表す。
【００４１】
これらのユーザインタフェースは、コンピュータ１が実行可能な何らかの拡張プログラムの処理に関連付けられている。ユーザがあるユーザインタフェースに対し、クリック等の操作を行うと、基本プログラムは、そのユーザインタフェースに関連付けられている処理をコンピュータ１に実行させる（データフローＦ３０２）。また、コンピュータ１がある拡張プログラムに従い特定の処理を実行し、データを生成すると、基本プログラムは、コンピュータ１に、その処理が関連付けられているユーザインタフェースにそのデータの内容を表示させる（データフローＦ３０３、データフローＦ３０４）。このように、基本プログラムはユーザインタフェースを介してユーザとプログラムとの間の指示またはデータの受け渡しを行う手段としても働く。
【００４２】
上記のように、基本プログラムは、各プログラムとその環境を構成する他のプログラムとの間のデータの受け渡し手段としての機能を持つ。この機能を実行するために、本実施形態における基本プログラムは、予め用意された入出力関係表を参照する。この入出力関係表は、コンピュータ１が実行可能な基本プログラムおよび拡張プログラムの各々について、各プログラムに従って実行される処理において得られる出力データが、他のプログラムに従って実行されるいずれの処理の入力データとなるかを定義した表である。
【００４３】
また、本実施形態における基本プログラムは、ユーザインタフェースとプログラムとの間のデータの受け渡し手段としての機能を果たすために、予め用意された構成要素表を参照する。この構成要素表は、表示部１０６にユーザインタフェースを表示させるためのユーザインタフェースデータおよび各ユーザインタフェースに何らかの処理を関連づけるリンク先処理ＩＤ（リンクデータ）により構成されている。基本プログラムは、構成要素表に従い、ユーザインタフェースを表示部１０６に表示させると同時に、ユーザインタフェースをプログラムに従って実行される何らかの処理に関連付け、ユーザとプログラムとの間のデータの受け渡しを行う。
【００４４】
上述した入出力関係表および構成要素表は、基本パッケージに基本プログラムの関連データとして含まれる環境雛形データ、および拡張パッケージに拡張プログラムの関連データとして含まれる環境雛形データとして、音楽アプリケーション１のプロバイダから提供される。基本パッケージに含まれる環境雛形データには、基本プログラムとＯＳとの間のデータの受け渡しに関する入出力関係表と、基本プログラムの起動時に表示されるユーザインタフェースに関する構成要素表が含まれている。
【００４５】
また、拡張パッケージに含まれる環境雛形データは、仮に音楽アプリケーション１のプロバイダによって提供される全ての拡張プログラムがコンピュータ１にインストールされた、いわばフル装備状態を想定して作成されている。さらに詳述すると、拡張パッケージに含まれる環境雛形データには、その拡張パッケージに含まれる拡張プログラムと、基本プログラムおよび他のあらゆる拡張プログラムとの間のデータの受け渡しに関する入出力関係表が含まれている。また、拡張パッケージに含まれる環境雛形データには、その拡張パッケージに含まれる拡張プログラムと関係を持つあらゆる処理について、その処理の実行制御のための情報の授受をユーザと行うためのユーザインタフェースを関連付けた構成要素表が含まれている。
【００４６】
このように、環境雛形データは、コンピュータのＯＳがあらゆる種類の機能を提供可能であり、またコンピュータに全ての拡張プログラムがインストールされている場合を想定してデザインされている。しかし、実際にユーザが利用するコンピュータ１を考えると、環境雛形データに含まれるデータの中には、コンピュータ１のＯＳが提供できない機能や、コンピュータ１にインストールされていない拡張プログラムに関連するデータもあり、そのようなデータは不要である。そこで、本実施形態においては、基本プログラムおよび拡張プログラムがコンピュータ１にインストールされる際に、環境雛形データから、コンピュータ１において利用可能なＯＳの機能および拡張プログラムに関するデータのみを抽出した環境データが生成され、この環境データが実際に基本プログラムにより利用される。
【００４７】
図４は、図３に示した例と比較し、ＯＳが提供する機能およびコンピュータにインストールされている拡張プログラムが少ない場合のデータフローを示している。すなわち、図４におけるコンピュータにおいては、ＯＳはＭＩＤＩデータの入力処理を行うことができないためＭＩＤＩキーボード１２１が接続されておらず、また拡張プログラム「コーラス」がインストールされていない。環境雛形データは、図３に示される全てのデータフロー、すなわちデータフローＦ３０１からデータフローＦ３０９に関するデータを含んでいる。しかしながら、図４に示されるコンピュータにおいて実際に利用される環境データには、利用できないデータフローＦ３０１、データフローＦ３０４等に関するデータは含まれない。その結果、表示部１０６には、利用できないデータフローＦ３０４が関連付けられているユーザインタフェースが表示されることはない。
【００４８】
続いて、ユーザがコンピュータ１に、基本プログラム、拡張プログラムの順でそれらのプログラムをインストールし、音楽アプリケーション１を利用する場合のコンピュータ１の動作の詳細を説明する。ユーザはインターネットを介し、音楽アプリケーション１のプロバイダのＨＰ（Ｈｏｍｅ  Ｐａｇｅ）から音楽アプリケーション１の基本パッケージをコンピュータ１にダウンロードすることができる。基本パッケージには、基本プログラムに加え、複数の環境雛形データおよび複数の部品データが含まれている。
【００４９】
ユーザは、ダウンロードした基本パッケージに含まれる基本プログラムをコンピュータ１にインストールすることができる。この基本プログラムのインストールの際、ＣＰＵ１０１はコンピュータ１の環境等を調査し、プログラムデータベース、入出力データベース、処理データベース、部品データデータベース、複数の環境データ、および環境データデータベースを作成する。ＣＰＵ１０１はこれらの各データベース等を、ＨＤ１０５に格納する。以下、上記の各データベース等の構成および内容を説明する。
【００５０】
図５は、基本プログラムのみがインストールされた段階におけるプログラムデータベースの内容を示す図である。プログラムデータベースは、ＨＤ１０５に格納されているプログラムの情報が登録されたデータベースである。この段階において、プログラムデータベースには、インストールされた基本プログラムのプログラムＩＤ、プログラム名、バージョン情報およびプログラムファイル名が登録されている。図５に示す例では、基本プログラムのバージョンは１．０であり、ＨＤ１０５における格納先はｃ：￥ｍｕｓｉｃｓｙｓｔｅｍ￥ｐｒｏｇｒａｍ￥ｐ０００１．ｅｘｅである。
【００５１】
図６には基本プログラムのみがインストールされた段階における入出力データベースの内容が例示されている。入出力データベースは、ＨＤ１０５に格納されている各プログラムについて、如何なるデータの入出力が行われるかを定義するデータベースである。この図に示すように、入出力データベースには、基本プログラムおよびこれに関連する各プログラムのプログラムＩＤおよびプログラム名が登録されている。これらの各プログラムは入出力可能な１または複数種類のデータを有している。そこで、入出力データベースには、各プログラムが入出力可能な各データについて各々のデータタイプおよび入出力ＩＤが登録されている。１つの入出力ＩＤのフィールドは入力および出力のサブフィールドに分かれている。
【００５２】
図６のデータ例においては、「マイクロフォン」、「スピーカ」、「ディスプレイ」および「ＭＩＤＩインタフェース」はＯＳに属するプログラムである。例えばプログラム「マイクロフォン」は外部機器から入力されるアナログ音声信号を、アナログ音声入力部１１０およびＡ／Ｄコンバータ１１１によりデジタル音声データに変換した後、他のプログラムに出力する。このようにプログラム「マイクロフォン」は他のプログラムに音声データを出力するが、他のプログラムがプログラム「マイクロフォン」に音声データを入力することはない。そこで、プログラム「マイクロフォン」には出力用の入出力ＩＤしか割り当てられていない。入出力ＩＤは各プログラムごとに独立して割り当てられる。
【００５３】
図７は基本プログラムのみがインストールされた段階における処理データベースの内容を示す図である。プログラムデータベースに登録されているプログラムは、ＣＰＵ１０１に１または複数の処理を行わせる。処理データベースには、このプログラムデータベースに登録されたプログラムに従って実行される各処理のうち、ユーザからパラメータの指定等を受けたり、結果をユーザに対し表示したりするものについて、各処理を実行するプログラムのプログラムＩＤおよびプログラム名と、各処理の処理ＩＤ、処理名および設定範囲が登録されている。設定範囲とは、処理に対しユーザが与えることが可能なパラメータの範囲を示す情報であり、具体的には数値の範囲やＯＮまたはＯＦＦ等が登録される。
【００５４】
図７のデータ例によれば、基本プログラムが行う各処理のうち、音楽アプリケーション１の終了、音楽アプリケーション１の環境設定の起動およびブラウザの起動が登録されている。このデータベースにおいて、処理ＩＤは各プログラムごとに独立して割り当てられる。
【００５５】
図８は基本プログラムのみがインストールされた段階における部品データデータベースの内容を示す図である。部品データデータベースには音楽アプリケーション１において利用可能な部品データの部品データＩＤ、部品スタイル名、部品タイプおよび部品データファイル名が登録されている。部品データは、プログラムと共にコンピュータ１にダウンロードされるデータであり、コマンドボタンやテキストボックス等、画面の構成要素、すなわちユーザインタフェースとなり得る部品を表すデータである。この部品データは、その部品をユーザインタフェースとして画面に表示させるための画像データと、その表示されたユーザインタフェースに対して、マウスによるクリックなど、ユーザの操作が行われた場合にその操作に応じて実行されるプログラムモジュール等から構成される。
【００５６】
図９は基本プログラムのみがインストールされた段階における環境データデータベースの内容を示す図である。環境データデータベースには音楽アプリケーション１において利用可能な環境データに関し、環境データＩＤ、環境データ名および環境データファイル名が登録されている。図９に示す環境データデータベースに登録されている環境データは全て、基本パッケージに含まれる環境雛形データに基づき、基本プログラムのインストール時に生成された環境データである。以下、基本パッケージに含まれる環境雛形データから環境データが生成される処理を説明する。
【００５７】
図１０は環境雛形データ「メインメニュー用ツールバー」の内容を示す図である。この図に示すように、環境雛形データは、プログラム間のデータの入出力関係を示す入出力関係表と、画面の構成要素、すなわちユーザインタフェースと、それらのユーザインタフェースに関連付けられる処理を示す構成要素表から構成されている。
【００５８】
入出力関係表には、複数の入出力関係データの集合体である。個々の入出力関係データは、出力と入力のフィールドを有しており、出力フィールドによって指定された、あるプログラムのある出力データが、入力フィールドによって指定された、あるプログラムのある入力データとなることを示す。出力フィールドは、出力データの発生元であるプログラムのプログラムＩＤおよびプログラム名と、出力データのデータタイプおよび入出力ＩＤとからなる。一方、入力フィールドは、出力フィールドによって示された出力データの供給先であるプログラムのプログラムＩＤおよびプログラム名を有する。さらに入力フィールドは、出力フィールドによって指定された出力データがその供給先のプログラムにおいて如何なる入力データとして取り扱われるかを表す情報、具体的にはその入力データのデータタイプおよび入出力ＩＤを有している。例えば、図１０の入出力関係表の第５行の入出力関係データは、基本プログラムから出力される音声がスピーカに音声として入力されることを示している。
【００５９】
一方、構成要素表には、画面に配置される個々のユーザインタフェースを表す複数の構成要素データによって構成されている。そして、１つの構成要素データは、構成要素ＩＤ、部品データＩＤ、部品タイプ、表示位置情報およびリンク先処理ＩＤによって構成されている。構成要素データにおける部品データＩＤ、部品タイプおよび表示位置情報はユーザインタフェースの表示に関するデータであり、これらを総称してユーザインタフェースデータと呼ぶ。一方、リンク先処理ＩＤはユーザインタフェースに関連付けられる処理に関するデータであり、リンクデータと呼ぶ。これらのデータの具体的な役割は、以下の環境データの説明において併せて説明する。
【００６０】
図１１は環境データ「メインメニュー用ツールバー」の内容を示す図である。環境データは既述のように、環境雛形データに含まれるデータから、コンピュータ１において現在、利用可能なものが抽出されて生成されたものである。また、環境雛形データから環境データが生成される際、必要であれば環境雛形データにおける表示位置情報に修正が加えられ、修正後の表示位置情報が環境データに登録される。ここで、環境データは、元となる環境雛形データと同じ名称を持つ。従って、環境雛形データ「メインメニュー用ツールバー」から生成された環境データの名称は「メインメニュー用ツールバー」となる。
【００６１】
続いて、環境雛形データ「メインメニュー用ツールバー」および環境データ「メインメニュー用ツールバー」を例に、環境データの生成処理の具体例を示す。まず、基本パッケージから基本プログラムがインストールされると、ＣＰＵ１０１は、この基本プログラムに従い、基本パッケージから環境雛形データ「メインメニュー用ツールバー」を読み込む。続いて、ＣＰＵ１０１は、環境雛形データの入出力関係表を構成する各入出力関係データについて、各々を環境データに組み込むか否かを判定する。さらに詳述すると、ＣＰＵ１０１は、判定対象である入出力関係データの出力フィールドのプログラムＩＤと入出力ＩＤの組と、入力フィールドのプログラムＩＤと入出力ＩＤの組の両方が、入出力データベースに登録されているか否かを判定する。この判定結果が肯定的である場合に、ＣＰＵ１０１は、その入出力関係データを環境データに組み込む対象とし、そうでない場合には環境データに組み込まない。
【００６２】
例えば、図１０の入出力関係表の第４行に示される入出力関係データは、基本プログラムからＭＩＤＩインタフェースへのデータの流れを示すものであり、出力フィールドに基本プログラムのプログラムＩＤ「Ｐ０００１」とＭＩＤＩの入出力ＩＤ「ＭＯ０１」を有し、かつ、入力フィ−ルドにＭＩＤＩインタフェースのプログラムＩＤ「Ｓ００８５」とＭＩＤＩの入出力ＩＤ「ＭＩ０１」を有している。しかし、この入出力関係データにおいて入力フィールドにあるプログラムＩＤ「Ｓ００８５」および入出力ＩＤ「ＭＩ０１」の組は、入出力データベース（図６）に登録されていない。これは、コンピュータ１がＭＩＤＩ出力用のインタフェースを有しておらず、ＭＩＤＩインタフェースに対して他のプログラムがＭＩＤＩデータの入力を行うことができないためである。従って、ＣＰＵ１０１はこの第４行を入出力関係データを環境データに組み込む対象から除外する。ＣＰＵ１０１は、上記のような処理を入出力関係表における全ての入出力関係データについて実施し、環境データを作成する。
【００６３】
続いて、ＣＰＵ１０１は、環境雛形データに含まれる各構成要素データのリンク先処理ＩＤが、処理データベース（図７）に登録されているか否かを判定する。ＣＰＵ１０１は、この判定結果が肯定的である場合には判定対象である構成要素データを環境データに組み込み、否定的である場合にはその構成要素データを環境データに組み込まない。
【００６４】
例えば、図１０の構成要素表の第２行にはＰ０００１−ＣＢ１０１がリンク先処理ＩＤとして登録されているが、この処理ＩＤは処理データベースに登録されているため、環境データに組み込まれる。ＣＰＵ１０１は同様の処理を構成要素表の全ての構成要素データについて行う。以上のような処理により、環境雛形データから環境データが生成される。
【００６５】
続いて、上記のように生成された環境データの役割を説明する。まず、環境データの入出力関係表は、環境雛形データにおいて既に説明したように、プログラム間のデータの入出力関係を示している。ＣＰＵ１０１は、あるプログラムに従い出力データを生成した場合、入出力関係表を参照し、その生成したデータを入出力関係表により指定されるプログラムに入力データとして引き渡す。
【００６６】
環境データの構成要素表は、複数の構成要素データによって構成されている。各構成要素データは、環境雛形データにおいて既に説明したように、画面に表示される個々の構成要素、すなわちユーザインタフェースに関連するデータであり、構成要素ＩＤ、部品データＩＤ、部品タイプ、表示位置情報およびリンク先処理ＩＤにより構成されている。環境雛形データにおける場合と同様に、これらのうち、ユーザインタフェースの表示に関する部品データＩＤ、部品タイプおよび表示位置情報はユーザインタフェースデータと呼ばれ、ユーザインタフェースに関連づけられる処理に関するリンク先処理ＩＤはリンクデータと呼ばれる。
【００６７】
構成要素ＩＤは、各ユーザインタフェースを一意に識別するためのＩＤである。各ユーザインタフェースの画像を画面に表示するためには、部品データデータベース内のいずれかの部品データを参照する必要がある。構成要素データにおける部品データＩＤと部品タイプは、構成要素ＩＤによって特定されるユーザインタフェースの画像を表示するために部品データデータベース内のどの部品データを参照すべきかを特定するものである。
【００６８】
表示位置情報は、ユーザインタフェースの表示位置と表示サイズを特定する情報であり、４つの数値からなる。表示位置情報における第１および第２の各数値は、構成要素ＩＤによって特定されるユーザインタフェースの表示画像において、最も左上にある代表点の画面内でのＸ座標値およびＹ座標値を各々特定するものである。また、表示位置情報における第３の数値は、ユーザインタフェースの表示画像のＹ軸方向のサイズ、第４の数値はＸ軸方向のサイズを各々特定するものである。
【００６９】
リンク先処理ＩＤは、ユーザインタフェースの表示画像に対してマウスによるクリックなどの操作が行われた場合に実行される処理を示す情報で、処理データベース（図７）に登録されている処理をプログラムＩＤと処理ＩＤの組み合わせにより特定している。なお、すべてのユーザインタフェースがいずれかの処理にリンクされる必要はない。
【００７０】
続いて、構成要素表における各構成要素データの役割および関係を説明する。まず、構成要素表の先頭行の構成要素データは、表示部１０６に表示される画面の背景に対応するデータである。この先頭行の構成要素データは、表示位置情報として、表示部１０６に表示される画面の背景の左上端の位置のＸ、Ｙ座標値を含んでいる。そして、構成要素表の第２行以降の構成要素データは、背景の上に表示されるユーザインタフェースに対応するデータであり、これに含まれるＸ、Ｙ座標値は、背景の左上端を原点としたＸＹ座標系における当該ユーザインタフェースのＸ座標値およびＹ座標値である。
【００７１】
図１１の構成要素表によれば、まず先頭行のデータは、部品データＩＤがＩＭ１０１であるイメージを画面の背景として指定している。部品データ「ＩＭ１０１」は、部品データデータベース（図８）によれば、透明長方形である。続いて、第２行のデータは、コマンドボタンを背景の上に表示し、そのコマンドボタンに処理「Ｐ０００１−ＣＢ１０１」をリンクすることを指定している。処理データベース（図７）によれば、この処理は基本プログラムによる音楽アプリケーション１の終了処理である。同様に、第３行および第４行のデータは、さらに２つのコマンドボタンを背景の上に表示し、それらに音楽アプリケーション１の環境設定の起動処理およびブラウザの起動処理をリンクすることを指定している。
【００７２】
続いて、図１２は環境データ「メインメニュー・クラシック」の内容を示す図である。図１２の入出力関係表は環境データ「メインメニュー用ツールバー」（図１１）の入出力関係表と同じであるが、構成要素表は環境データ「メインメニュー用ツールバー」のものと異なっている。まず、先頭行のデータは、部品データ「ＩＭ０８９」を画面の背景として指定している。部品データ「ＩＭ０８９」は、部品データデータベース（図８）によれば、水色長方形である。続いて、第２行のデータは、部品データ「ＣＷ０３５」を背景の上に表示することを指定している。部品データ「ＣＷ０３５」の部品タイプである子ウィンドウは、各処理がユーザに対し情報を表示するために用いる画面領域である。
【００７３】
続いて、第３行のデータは、部品データ「ＥＶ２０１」を画面を背景の上に表示することを指定している。しかしながら、部品データデータベース（図８）には部品タイプが環境データである部品データは登録されていない。このように、構成要素表において部品タイプが環境データである構成要素を指定するデータがある場合、そのデータはその環境データにより構成される画面を、全体画面の一部として表示することを指定している。
【００７４】
以下の説明において、ある環境データの構成要素表が、他の環境データで構成される画面を構成要素として指定している場合、前者の環境データを親環境データ、後者の環境データを子環境データと呼ぶ。環境データデータベース（図９）によれば、環境データＩＤがＥＶ２０１である環境データは、環境データ「メインメニュー用ツールバー」（図１１）である。この環境データ「メインメニュー用ツールバー」は環境データ「メインメニュー・クラシック」の子環境データである。逆に、環境データ「メインメニュー・クラシック」は環境データ「メインメニュー用ツールバー」の親環境データである。
【００７５】
図１３は、環境データ「メインメニュー・クラシック」の構成要素表に従い、ＣＰＵ１０１が表示部１０６に表示する画面を示している。図１３におけるコマンドボタン群１４１は、図１２の構成要素表の第３行の構成要素データにより参照される、図１１の環境データ「メインメニュー用ツールバー」に対応している。また、図１３における子ウィンドウ１４２は、図１２の構成要素表の第２行の構成要素データに対応している。
【００７６】
なお、基本パッケージには環境データ「メインメニュー・クラシック」および「メインメニュー用ツールバー」以外の環境データも含まれている。例えば、環境データデータベース（図９）には環境データ「メインメニュー・カジュアル」が登録されているが、これは環境データ「メインメニュー・クラシック」とは異なる部品データ等を指定することにより、図１３に示した画面とは異なる外観の画面を構成する環境データである。
【００７７】
続いて、基本プログラムが有する音楽アプリケーション１の環境設定の機能概要を説明する。図１４は音楽アプリケーション１の環境設定の画面である。図１４によれば、環境設定の項目は「環境データ」、「パッケージ」および「その他」に分類されている。
【００７８】
環境設定「環境データ」の画面においては、ユーザは音楽アプリケーション１の起動時に選択される環境データを、環境データデータベース（図９）に登録されているものから指定できる。図１４に示した例によれば、環境データ「メインメニュー・クラシック」が起動時に選択される環境データとして指定されている。また、この画面において、ユーザは環境データの追加、削除および編集をすることができる。
【００７９】
環境設定「パッケージ」の画面（図示略）においては、ユーザは拡張パッケージの追加や削除、基本パッケージおよび拡張パッケージのバージョンアップ等を行うことができる。その際、プログラムデータベース（図５）が更新および参照される。また、環境設定「その他」の画面（図示略）においては、ユーザはデータフォーマットに関する設定、ＭＩＤＩに関する設定、ユーザアカウントの設定、セキュリティに関する設定等を行うことができる。
【００８０】
続いて、図１５を用いて、音楽アプリケーション１が起動される際のＣＰＵ１０１の動作を説明する。まずユーザがコンピュータ１に対し音楽アプリケーション１の起動の指示を与えると（ステップＳ１０１）、ＣＰＵ１０１は基本プログラムをＨＤ１０５からＲＡＭ１０４に読み出し、基本プログラムに従い、起動時の環境データとして指定されている環境データの環境データＩＤを取得する（ステップＳ１０２）。上記の図５から図１４までの各図に示した具体例（以下、単に「具体例」と呼ぶ）によれば、ステップＳ１０２においてＣＰＵ１０１が取得する環境データＩＤは環境データ「メインメニュー・クラシック」のＩＤであるＥＶ３０１である。
【００８１】
続いて、ＣＰＵ１０１は環境データデータベース（図９）を参照し、取得した環境データＩＤから環境データファイル名を取得する（ステップＳ１０３）。具体例によれば、ステップＳ１０３においてＣＰＵ１０１が取得する環境データファイル名はｃ：￥ｍｕｓｉｃｓｙｓｔｅｍ￥ｅｎｖｉｒｏｎｍｅｎｔ￥３０１．ｅｎｖである。
【００８２】
続いて、ＣＰＵ１０１は取得した環境データファイル名で指定される環境データを読み出し、読み出した環境データの構成要素表の先頭の構成要素データに含まれる部品タイプが環境データか否かを判定する（ステップＳ１０４）。
【００８３】
ステップＳ１０４の判定の結果、先頭行の部品タイプが環境データでない場合、ＣＰＵ１０１はその行の部品データＩＤを取得する（ステップＳ１０５）。具体例によれば、ステップＳ１０５においてＣＰＵ１０１は環境データ「メインメニュー・クラシック」（図１２）の先頭行の部品データＩＤとしてＩＭ０８９を取得する。
【００８４】
続いて、ＣＰＵ１０１は部品データデータベース（図８）を参照し、部品データＩＤから部品データファイル名を取得する（ステップＳ１０６）。具体例によれば、ステップＳ１０６においてＣＰＵ１０１が取得する部品データファイル名はｃ：￥ｍｕｓｉｃｓｙｓｔｅｍ￥ｐａｒｔ￥０８９．ｉｍｇである。
【００８５】
続いて、ＣＰＵ１０１は部品データファイル名で指定される部品データを読み込み、読み込んだ部品データの画像データを環境データの表示位置情報で指定される位置に指定されるサイズで表示する（ステップＳ１０７）。なお、最初に表示される背景の構成要素に関しては、表示位置情報により指定される位置をＸＹ座標系の原点とする代わりに、例えば音楽アプリケーション１の前回終了時の画面位置に基づく可変位置を基準位置としてもよい。具体例によれば、ステップＳ１０７においてＣＰＵ１０１は背景として水色長方形を表示部１０６の適当な位置に表示させる。
【００８６】
続いて、ＣＰＵ１０１は構成要素表に処理すべき次の構成要素データがあるか否かを判定し（ステップＳ１０８）、次の構成要素データがある場合にはそのデータに関して、ステップＳ１０４からステップＳ１０８の処理を繰り返す。具体例においては、環境データ「メインメニュー・クラシック」の構成要素表には３行の構成要素データがあるため、先頭行の構成要素データに関する処理に続き、第２行の構成要素データに関してステップＳ１０４からステップＳ１０８の処理が行われ、再度ステップＳ１０４に処理が戻される。このような過程を経ることにより、ＣＰＵ１０１は子ウィンドウを表示部１０６に表示させる。なお、ステップＳ１０４からステップＳ１０７までの一連の処理を、以下、「構成要素表示処理」と呼ぶ。
【００８７】
ステップＳ１０４において、判定対象となった構成要素データが部品タイプとして環境データを指定している場合、その構成要素データにおける部品データＩＤは、現在読み込んでいる環境データを親環境データとする子環境データを指定している。その場合、ＣＰＵ１０１はその部品データＩＤを、子環境データの環境データＩＤとして取得する（ステップＳ１０９）。具体例によれば、環境データ「メインメニュー・クラシック」の構成要素表の第３行における部品タイプが環境データであるため、ＣＰＵ１０１はそのデータ行の部品データＩＤの値、すなわちＥＶ２０１を子環境データの環境データＩＤとして取得する。
【００８８】
続いて、ＣＰＵ１０１は環境データデータベース（図９）を参照し、子環境データの環境データＩＤから、子環境データの環境データファイル名を取得する（ステップＳ１１０）。具体例によれば、ステップＳ１１０においてＣＰＵ１０１が取得する環境データファイル名はｃ：￥ｍｕｓｉｃｓｙｓｔｅｍ￥ｅｎｖｉｒｏｎｍｅｎｔ￥２０１．ｅｎｖである。
【００８９】
続いて、ＣＰＵ１０１は取得した環境データファイル名を用いて、構成要素表示処理、すなわちステップＳ１０４からステップＳ１０７までの一連の処理を行う（ステップＳ１１１）。その結果、子環境データの構成要素表の先頭行のデータが示す背景のイメージが画面に表示される。続いて、ＣＰＵ１０１は子環境データの構成要素表に処理すべき次の構成要素データがあるか否かを判定し（ステップＳ１１２）、次の構成要素データがある場合にはそのデータに関して、構成要素表示処理を繰り返す（ステップＳ１１１）。具体例によれば、ステップＳ１１１が環境データ「メインメニュー用ツールバー」（図１１）の構成要素表の第１行から第４行の構成要素データに関して繰り返され、このような過程を経て、ＣＰＵ１０１は表示部１０６に３つのコマンドボタンを表示する。
【００９０】
ステップＳ１１２における判定において、子環境データの構成要素表に処理すべき次の構成要素データがない場合、ＣＰＵ１０１はさらに親環境データの構成要素表に関し、処理すべき次の構成要素データがあるか否かを判定する（ステップＳ１１３）。親環境データの構成要素表に次の構成要素データがある場合には、ＣＰＵ１０１は処理をステップＳ１０４に戻し、ステップＳ１０８の判定において処理すべき次の構成要素データがないと判定されるまで、ステップＳ１０４からステップＳ１０８の処理を繰り返す。そして、ＣＰＵ１０１は親環境データの構成要素表の最終行の構成要素データを処理した後、上記の一連の処理を終了する。
【００９１】
また、ステップＳ１１３の判定において親環境データの構成要素表に処理すべき次の構成要素データがない場合、ＣＰＵ１０１は上記の一連の処理を終了する。具体例によれば、子環境データ「メインメニュー用ツールバー」の構成要素表の最終行の構成要素データに関する構成要素表示処理が終了した後、親環境データ「メインメニュー・クラシック」の構成要素表には処理すべき構成要素データが残っていないので、ＣＰＵ１０１は一連の処理を終了する。
【００９２】
上記の一連の処理の結果、音楽アプリケーション１の表示画面として、図１３に例示した画面が表示部１０６に表示される。なお、子環境データの構成要素表がさらに別の環境データを指定している場合、ステップＳ１０９からステップＳ１１３の処理が再帰的に実行される。その結果、複数の環境データにより構成される画面が階層的に組み合わされ、より複雑な画面が構成される。
【００９３】
次に、音楽アプリケーション１の表示画面において、ユーザがいずれかの画面の構成要素、すなわちユーザインタフェースに対し操作を行う場合の、音楽アプリケーション１の動作について説明する。音楽アプリケーション１の画面が表示されている間、基本プログラムに従い、ＣＰＵ１０１はきわめて短い時間間隔で定期的に、ユーザによる操作部１０７を用いた操作の検出処理を行っている。ユーザが音楽アプリケーション１の画面において、特定のユーザインタフェースをマウスでクリックしたり、キーボードから文字等を入力したりした場合、ＣＰＵ１０１は現在表示されている画面の構成に用いられた環境データの構成要素表を参照し、操作が行われた際のカーソルの位置情報から操作の対象となったユーザインタフェースを特定する。
【００９４】
続いて、ＣＰＵ１０１は、構成要素表において、特定されたユーザインタフェースにリンクされる処理が示されている場合、そのリンクされる処理を実行する。その際、ユーザにより行われた操作の内容、すなわちクリックやダブルクリック等の操作の種類や、入力されたデータ等をパラメータとして処理に利用する。
【００９５】
例えば、図１４の画面においてコマンドボタン「ブラウザ」がクリックされた場合、ＣＰＵ１０１は親環境データ「メインメニュー・クラシック」（図１２）の構成要素表を参照し、続いて子環境データ「メインメニュー用ツールバー」（図１１）の構成要素表を参照し、クリックされた位置が、ユーザインタフェース「ＣＢ００３」の表示位置であることを特定する。
【００９６】
続いてＣＰＵ１０１は、ユーザインタフェース「ＣＢ００３」の部品タイプがコマンドボタンであることから、コマンドボタンがクリックされた場合の処理、すなわちコマンドボタンの押下状態への表示変更およびクリック音の発音を行う。同時に、ＣＰＵ１０１は構成要素表においてユーザインタフェース「ＣＢ００３」のリンク先処理ＩＤ「Ｐ０００１−ＣＢ１０３」を用いて、処理データベース（図７）を参照して、基本プログラムのブラウザの起動処理を実行する。その結果、表示部１０６には図１３に示した画面が表示される。
【００９７】
上記のように、基本パッケージのみで構成される音楽アプリケーション１はブラウザ機能等の基本機能しか持たない。従って、これのみでは満足することができないユーザは、インターネットを介し、音楽アプリケーション１のプロバイダのＨＰから図２に示した拡張パッケージのうち、利用を希望するものをコンピュータ１にダウンロードすることができる。拡張パッケージには拡張プログラム、複数の環境雛形データ、複数の部品データおよび拡張プログラムが利用する音声データ、静止画データおよび動画データ、ＭＩＤＩデータ、楽譜データ、音源データおよび伴奏パターンデータ等が含まれている。
【００９８】
図２に示したように、拡張パッケージは内容に応じて「一般」、「楽器」、「楽曲」等に分類されている。「一般」に分類される拡張パッケージは、いずれの楽器の演奏者にとっても共通に利用可能な機能をコンピュータ１に実現させる拡張プログラムを含んでいる。例えば「一般」の「エフェクタ」に分類される拡張パッケージ「リバーブ」に含まれる拡張プログラムに従って、コンピュータ１は入力される音声情報に対し、残響音を付加する機能を実現する。
【００９９】
より具体的に説明すると、本実施形態では、ＣＰＵ１０１の制御のもとで、Ａ／Ｄコンバータ１１１はアナログ音声入力部１１０から入力されるアナログ音声信号をデジタル音声データに変換して、ＲＡＭ１０４に記録する。そして、ＣＰＵ１０１は拡張プログラム「リバーブ」の実行が指示されると、この拡張プログラム「リバーブ」に従い、ＤＳＰ１０２に対してリバーブ処理を指示する。ＤＳＰ１０２はＣＰＵ１０１の指示に従い、ＲＡＭ１０４から音声データを読み出し、先行する音声データを加工して残響音に対応する音声データを生成し、後続の音声データに順次加算することにより再生用の音声データを生成する。ＤＳＰ１０２により生成された再生用の音声データはＤ／Ａコンバータ１１２、アンプ１１３およびスピーカ１１４を介して楽音として発音される。なお、このリバーブ処理はＤＳＰ１０２によらず、ＣＰＵ１０１が行っても良い。
【０１００】
「楽器」に分類される拡張パッケージは、コンピュータ１に音源モジュールやギターアンプ等の音響機器の機能を実現させることにより、コンピュータ１を楽器もしくは楽器の一部として機能させる拡張プログラムを含んでいる。例えば拡張プログラム「電子ピアノ」に従って、コンピュータ１は電子ピアノ音源の機能を実現する。
【０１０１】
より具体的に説明すると、まず拡張パッケージにはアコースティックピアノの各音高の音をサンプリングして得られる音声データが波形データとして含まれている。ＣＰＵ１０１は、拡張プログラム「電子ピアノ」の実行を指示されると、この拡張プログラム「電子ピアノ」に従い、ＭＩＤＩキーボード１２１等からＭＩＤＩデータを受信し、このＭＩＤＩデータにより指定される音高に対応する波形データを再生処理するよう、ＤＳＰ１０２に指示する。ＤＳＰ１０２はＣＰＵ１０１の指示に従い、ＲＡＭ１０４から指定された波形データを読み出し、その波形データに対し音高調整等の処理を行い、再生用の音声データを生成する。ＤＳＰ１０２により生成された再生用の音声データはＤ／Ａコンバータ１１２、アンプ１１３およびスピーカ１１４を介して楽音として発音される。なお、このＤＳＰ１０２により行われる処理は、ＣＰＵ１０１により行われても良い。
【０１０２】
なお、コンピュータ１に音源モジュールの機能を実現させる拡張プログラムには、コンピュータ１に電子的な楽音を生成させる際、上記のように実際の楽器音から得られる音声データを用いる方式以外に、減算方式、加算方式、ＦＭ（Ｆｒｅｑｕｅｎｃｙ  Ｍｏｄｕｌａｔｉｏｎ）方式、物理モデリング方式、およびそれらの組み合わせ等の様々な方式を用いるものがある。
【０１０３】
「楽曲」に分類される拡張パッケージには、ユーザに対し楽曲演奏の支援を行う拡張プログラムが含まれている。例えば、「楽曲」の「クラシックピアノ」に分類される拡張パッケージ「エリーゼのために」に含まれる拡張プログラムに従って、コンピュータ１は楽曲「エリーゼのために」の楽譜の表示、伴奏の再生、ユーザの演奏の評価等を行う。
【０１０４】
続いて、ユーザが「一般」に分類される拡張パッケージ「シーケンサ」、「楽器」に分類される拡張パッケージ「電子ピアノ」および「エレクトリックギター」に含まれる拡張プログラムをインストールする場合を例に、拡張プログラムがコンピュータ１にインストールされる際のコンピュータ１の動作を説明する。
【０１０５】
ユーザは、拡張パッケージ「シーケンサ」、「電子ピアノ」および「エレクトリックギター」をプロバイダのＨＰからコンピュータ１にダウンロードした後、これらの拡張パッケージに含まれる拡張プログラムをコンピュータ１にインストールする。
【０１０６】
拡張プログラムのインストールの際、プログラムデータベース（図５）に、インストールされた拡張プログラムに関する情報が登録される。また、入出力データベース（図６）に、インストールされた拡張プログラムが扱うことが可能なデータの入力および出力に関する情報が登録される。また、処理データベース（図７）に、インストールされた拡張プログラムが行うことが可能な処理に関する情報が登録される。また、部品データデータベース（図８）に、インストールされた拡張プログラムと共に拡張パッケージからコンピュータ１にインストールされた部品データに関する情報が登録される。図１６、図１７、図１８および図１９は、それぞれ、３つの拡張プログラムがインストールされた結果、更新されたプログラムデータベース、入出力データベース、処理データベースおよび部品データデータベースを示している。
【０１０７】
続いて、拡張パッケージに含まれる環境雛形データから新たな環境データが生成される。拡張パッケージに含まれる環境雛形データの構成および役割、環境雛形データから環境データが生成される際の処理は基本パッケージに含まれる環境雛形データと同様である。以下、具体例を用いて、環境データの生成処理を補足的に説明する。
【０１０８】
図２０は、拡張パッケージ「電子ピアノ」に含まれる環境雛形データ「ピアノ・クラシック」の内容を示した図である。この環境雛形データがコンピュータ１にダウンロードされた時点では、コンピュータ１のハードウェアの構成および既にインストールされている拡張プログラムの構成が不明である。従って、環境雛形データの入出力関係表には、拡張プログラム「電子ピアノ」の実行時に利用される可能性のあるあらゆるデータの入出力関係に関し、それらを指定する入出力関係データがリストアップされている。
【０１０９】
同様に、環境雛形データの構成要素表には、拡張プログラム「電子ピアノ」と共に利用される可能性のあるあらゆる他のプログラムの処理に関し、それらにリンクされたユーザインタフェースを指定する構成要素データがリストアップされている。
【０１１０】
上記の環境雛形データの各入出力関係データおよび各構成要素データのうち、コンピュータ１において利用できるもののみが抽出されて、環境データが生成される。また、その抽出処理に伴い、必要であれば環境雛形データにおける表示位置情報に修正が加えられ、修正後の表示位置情報が環境データの表示位置情報として用いられる。
【０１１１】
図２１は環境雛形データ「ピアノ・クラシック」（図２０）から生成される環境データ「ピアノ・クラシック」の内容を示す図である。例えば、環境雛形データ「ピアノ・クラシック」に含まれる各データのうち、コンピュータ１にインストールされていない拡張プログラム「リバーブ」等に関連する入出力関係データは、環境データ「ピアノ・クラシック」に含まれていない。また、例えばユーザインタフェース「ＳＫ００１」等の表示位置情報は、環境データ「ピアノ・クラシック」において環境雛形データ「ピアノ・クラシック」におけるものから変更されている。
【０１１２】
上記のように新たに環境データが生成されると、新たな環境データに応じて、環境データデータベース（図９）が更新される。図２２は更新後の環境データデータベースの内容を示す図である。さらに、新たな拡張プログラムがインストールされると、基本プログラムにより、既存の環境データの全てが更新される。なぜなら、既存の拡張プログラムと新たな拡張プログラムとの間で新たに利用可能なデータの入出力関係や処理が生じ、それらの入出力関係や処理に対応するデータを、改めて環境雛形データから抽出して環境データに含める必要があるためである。
【０１１３】
図２３は、基本プログラムがインストールされた後、３つの拡張プログラム「シーケンサ」、「電子ピアノ」および「エレクトリックギター」がインストールされた場合に、これらの拡張プログラムのインストールに伴って更新された環境データ「メインメニュー・クラシック」の内容を示す図である。図２３に示す環境データは、更新前の環境データ「メインメニュー・クラシック」（図１２）と比較し、更新後の環境データ「メインメニュー・クラシック」の構成要素表には、構成要素ＩＤが各々「ＣＢ００１」、「ＣＢ００２」および「ＣＢ００３」である３行の構成要素データが追加されている。これらは、新たにインストールされた３つの拡張プログラム「シーケンサ」、「電子ピアノ」および「エレクトリックギター」に対応している。
【０１１４】
図２３において、例えば、ユーザインタフェース「ＣＢ００２」にはリンク先処理ＩＤに「Ｐ０００１−ＥＶ４５１」が指定されている。「Ｐ０００１−ＥＶ４５１」は環境データ「ＥＶ４５１」を示しており、環境データデータベース（図２２）によれば、環境データＩＤがＥＶ４５１である環境データは環境データ「ピアノ・クラシック」である。すなわち、更新後の環境データ「メインメニュー・クラシック」におけるユーザインタフェース「ＣＢ００２」の構成要素データは、環境データ「メインメニュー・クラシック」により構成される画面から、環境データ「ピアノ・クラシック」により構成される画面を表示させるためのコマンドボタンを示している。
【０１１５】
続いて、拡張プログラムがインストールされた後の音楽アプリケーション１に従ったＣＰＵ１０１の動作を説明する。ユーザにより音楽アプリケーション１の起動が指示されると、ＣＰＵ１０１は、基本プログラムに従い、環境データ「メインメニュー・クラシック」（図２３）を読み込み、その環境データに従い図２４に示す画面を表示部１０６に表示させる。図２４に示す画面には図１３に示した画面に対し、新たにインストールされた拡張プログラムに対応するコマンドボタン群１４３が追加されている。
【０１１６】
ユーザが図２４の画面において、コマンドボタン「シーケンサ」をクリックすると、ＣＰＵ１０１は基本プログラムに従い、環境データ「メインメニュー・クラシック」を参照し、クリックされたコマンドボタンのリンク先処理ＩＤ「Ｐ０００１−ＥＶ４０１」を取得する。ＣＰＵ１０１はこのＩＤの後半の値がＥＶで始まっていることから、このＩＤが環境データを示していることを認識し、環境データデータベース（図２２）を参照して、環境データＩＤがＥＶ４０１である環境データの環境データファイル名として、ｃ：￥ｍｕｓｉｃｓｙｓｔｅｍ￥ｅｎｖｉｒｏｎｍｅｎｔ￥４０１．ｅｎｖを取得する。
【０１１７】
ＣＰＵ１０１は取得した環境データファイル名で示される環境データ「シーケンサ・オリジナル」を読み込み、図１５のフロー図を用いて説明した、ステップＳ１０４以降の処理を行う。その結果、表示部１０６には図２５に示す画面が表示される。
【０１１８】
図２５の画面において、ユーザはＭＩＤＩデータおよび音声データの再生、記録、編集等を行うことができる。すなわち、ユーザは図２５の画面から拡張プログラム「シーケンサ」の各種機能を利用することにより、コンピュータ１をミュージックシーケンサとして利用することができる。なお、拡張プログラム「シーケンサ」が実現できるミュージックシーケンサの機能は一般的なミュージックシーケンサと同様であるので、詳細な説明は省略する。
【０１１９】
同様に、ユーザが図２４の画面において、コマンドボタン「電子ピアノ」をクリックすると、表示部１０６には図２６に示す画面が表示される。その際、利用される環境データは環境データ「ピアノ・クラシック」である。図２６の画面において、ユーザは例えばＭＩＤＩキーボード１２１を用いて演奏を行い、その演奏により生成されるＭＩＤＩデータに従って電子的に生成されるピアノ音をコンピュータ１のスピーカ１１４から発音させることができる。
【０１２０】
すなわち、ユーザは図２６の画面から拡張プログラム「電子ピアノ」の各種機能を利用することにより、コンピュータ１を電子ピアノ音源として利用することができる。なお、拡張プログラム「電子ピアノ」が実現できる電子ピアノ音源の機能は一般的な電子ピアノ音源の機能と同様であるので、詳細な説明は省略する。
【０１２１】
同様に、ユーザが図２４の画面において、コマンドボタン「エレクトリックギター」をクリックすると、表示部１０６には図２７に示す画面が表示される。その際、利用される環境データは環境データ「ギター・ソリッド」である。図２７の画面において、ユーザはコンピュータ１をアンプシミュレータとして利用することができる。
【０１２２】
例えば図２７の画面が表示されている状態において、ユーザはエレクトリックギター１２２を用いて演奏を行う。エレクトリックギター１２２から出力されるアナログ音声信号は、Ａ／Ｄコンバータ１１１においてデジタル音声データに変換される。そのデジタル音声データはＤＳＰ１０２において音響的な歪み処理や周波数成分の増幅等の処理を施され、再生用音声データとして生成される。ＤＳＰ１０２により生成された再生用音声データは、Ｄ／Ａコンバータ１１２、アンプ１１３およびスピーカ１１４を介して発音される。その結果、ユーザはエレクトリックギター１２２の生成する楽音をギターアンプにより発音した場合と類似の楽音を聴くことができる。なお、拡張プログラム「エレクトリックギター」が実現できるギターアンプの機能は、一般的なアンプシミュレータの機能と同様であるので、詳細な説明は省略する。なお、このＤＳＰ１０２が行う処理は、ＣＰＵ１０１により行われても良い。
【０１２３】
上記のように、図２５、図２６および図２７に示した画面は、それぞれ拡張プログラム「シーケンサ」、「電子ピアノ」および「エレクトリックギター」に対応しており、ユーザはこれらの画面を切り替えることにより、異なる複数のアプリケーションを利用する場合と同様に、コンピュータ１を異なる特定電子機器のように用いることができる。以下、音楽アプリケーション１の特徴をさらに詳しく述べる。
【０１２４】
まず、音楽アプリケーション１の各画面において、ユーザは異なる複数の拡張プログラムの機能を利用できる。例えば、図２６のユーザインタフェース群１５１は、ユーザが電子ピアノ音源の生成する音の明るさや、鍵盤の重さの感覚を調整するためのスライダ群であり、拡張プログラム「電子ピアノ」の処理にリンクされている。一方、図２６のユーザインタフェース群１５２は、ユーザが演奏の記録および伴奏等の再生に用いるコマンドボタン等であり、拡張プログラム「シーケンサ」の処理にリンクされている。
【０１２５】
上記のように、音楽アプリケーション１の各画面において、ユーザは異なる複数の拡張プログラムの機能を利用できるが、ユーザは個々の拡張プログラムを意識する必要はない。例えば、図２６のユーザインタフェース群１５２と図２７のユーザインタフェース群１５３とにリンクされている処理は、同じ拡張プログラム「シーケンサ」の処理である。しかしながら、ユーザインタフェース群１５２とユーザインタフェース群１５３は外観が異なり、各画面の使用目的に適するようアレンジされているため、ユーザはこれらの複数の拡張プログラムの機能を、１つのプログラムの機能を利用する感覚で利用できる。
【０１２６】
音楽アプリケーション１はユーザが必要な拡張プログラムをインストールすることにより、その機能を拡大することができるが、ユーザは新たにインストールした拡張プログラムの機能を各画面で利用するために、面倒な設定操作等を行う必要はない。
【０１２７】
図２８および図２９は、ユーザがさらにコンピュータ１に拡張パッケージ「エリーゼのために」、「コーラス」、「リバーブ」、「ディレイ」および「ディストーション」をインストールした際に、環境データ「ピアノ・クラシック」および「ギター・ソリッド」によって表示される画面を示している。
【０１２８】
図２６の画面に対し、図２８の画面にはユーザインタフェース群１５５、ユーザインタフェース群１５６およびユーザインタフェース群１５７が追加されている。同様に、図２７の画面に対し、図２９の画面にはユーザインタフェース群１５８が追加されている。また、図２８および図２９の画面においては、ユーザインタフェースの配置位置およびサイズが調整され、自然な画面構成となっている。これらのユーザインタフェースの追加は、新たな拡張プログラムのインストール時に、環境データが環境雛形データから生成されることにより自動的に実現される。
【０１２９】
ところで、図２８には新たにインストールされた拡張プログラム「ディレイ」および「ディストーション」の処理にリンクされたユーザインタフェースが配置されていない。これは環境データ「ピアノ・クラシック」の生成に用いられた環境雛形データ「ピアノ・クラシック」が、主にクラシックのピアノ楽曲を演奏するユーザにより利用されることを想定してデザインされており、ピアノ楽曲の演奏には通常用いられない拡張プログラム「ディレイ」および「ディストーション」に関するデータ行を有していないためである。同様に、エレキギター楽曲を演奏するユーザにより利用されることが想定されている図２９の画面には、新たにインストールされた拡張プログラム「エリーゼのために」および「リバーブ」の処理にリンクされたユーザインタフェースが配置されず、代わりに拡張プログラム「ディレイ」および「ディストーション」の処理にリンクされたユーザインタフェースが配置されている。
【０１３０】
上記のように、新たな拡張プログラムがインストールされた場合であっても、既存の拡張プログラムの処理と新たな拡張プログラムの処理との関連性に応じて、必要と思われる処理にリンクされたユーザインタフェースのみが各画面に追加される。その結果、拡張プログラムの追加により不要なコマンドボタン等が画面に追加されることがなく、ユーザの使い勝手が損なわれない。これらのユーザインタフェースの選択も、拡張プログラムのインストール時に、環境データが環境雛形データから生成されることにより自動的に実現される。
【０１３１】
既に述べたように、１つの画面には、複数の拡張プログラムの処理をリンクすることができる。それはすなわち、１つの拡張プログラムの処理を複数の画面にリンクすることができることを意味する。例えば、図３０は拡張パッケージ「エレクトリックギター」に含まれる環境雛形データ「ギター・エレアコ」から生成された環境データ「ギター・エレアコ」に従い表示される画面である。
【０１３２】
図３０の画面の基本的な構成や利用可能な処理は図２９の画面のものと同じであるが、図３０の画面はエレクトリックアコースティックギターの演奏者に適するようにアレンジされており、利用可能なエフェクタの種類等が異なっている。従って、ユーザはたとえ同じ拡張プログラムを主として利用する際であっても、使用目的に応じてより使い勝手のよいアプリケーションの環境を選ぶことができる。
【０１３３】
なお、上記の説明において詳細な説明は省略したが、ユーザは音楽アプリケーション１の環境設定「環境データ」の画面において、既存の環境データを自由に編集することができる。また、ユーザは全く新しい環境データを作成することもできる。その場合、ユーザは部品データデータベースに登録されている部品データおよび処理データベースに登録されている処理を選択し、画面に配置してゆくだけで自分の希望する画面構成の構築および各画面において利用できる処理が選択を行うことができる。
【０１３４】
［２：第２実施形態］
以下、本発明の第２の好適な実施形態として、コンピュータに電子ピアノ音源およびギターアンプの機能を実現させ、それらのプログラムをコンピュータに接続される外部機器に応じて自動的に切り替えることを可能とするアプリケーションの構成および動作を説明する。
【０１３５】
［２．１：コンピュータおよび外部機器の構成および動作］
まず、第２実施形態に係るアプリケーション（以下、「音楽アプリケーション２」と呼ぶ）の実行環境であるコンピュータ２、およびコンピュータ２に接続される外部機器の構成および動作を、図３１を用いて説明する。
【０１３６】
コンピュータ２は第１実施形態のコンピュータ１と多くの共通する構成部を有するため、図３１においてはその共通する構成部に関しては図１における符号と同じ符号を付している。以下、コンピュータ２がコンピュータ１と異なる点のみを説明する。なお、図３１には、以下の説明において利用されないＭＩＤＩ入出力部１０９、アナログ音声入力部１１０およびＡ／Ｄコンバータ１１１は示されていない。
【０１３７】
コンピュータ２は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インタフェース２０１を有している。ＵＳＢインタフェース２０１はコンピュータ２と外部機器との間で、ＵＳＢ規格に従って構成されたデータの送受信を中継する。
【０１３８】
ＵＳＢ規格は汎用的なデータ伝送のための規格であり、ＵＳＢ規格に従い、コンピュータ等の情報機器は音声データや画像データを含むあらゆるタイプのデータを送受信することができる。ＵＳＢ規格に従って構成された情報機器（以下、「ＵＳＢ機器」と呼ぶ）どうしでデータの送受信が行われる場合、それらのＵＳＢ機器の片方がマスタの役割を、他方がスレーブの役割を受け持つ。マスタ側のＵＳＢ機器が主としてデータ伝送の管理を行うため、マスタ側のＵＳＢ機器としてはデータ処理能力の高いコンピュータ等が用いられる。
【０１３９】
スレーブ側のＵＳＢ機器がマスタ側のＵＳＢ機器に接続されると、スレーブ側のＵＳＢ機器はマスタ側のＵＳＢ機器に、スレーブ側のＵＳＢ機器の識別子であるデバイスＩＤを送信する。マスタ側のＵＳＢ機器はスレーブ側のＵＳＢ機器から送信されるデバイスＩＤに応じて、スレーブ側のＵＳＢ機器とのデータ伝送に必要なドライバプログラムの読み込み等を行う。ＵＳＢインタフェース２０１は上記のマスタ側のＵＳＢ機器の処理を行うインタフェースであり、ＵＳＢホストコントローラ等から構成される。なお、デバイスＩＤは、ＵＳＢ機器の種類を示すクラスＩＤ、同じ型のＵＳＢ機器の新旧を示すリビジョンＩＤ、ＵＳＢ機器の製造者を示すベンダＩＤなどからなり、マスタ側のＵＳＢ機器は、スレーブ側のＵＳＢ機器に関するそれらのＩＤの１または複数の組み合わせにより、必要なドライバプログラムの組み込みを行っても良い。
【０１４０】
第１実施形態におけるＭＩＤＩキーボード１２１およびエレクトリックギター１２２の代わりに、第２実施形態においてはＵＳＢキーボード２０２およびＵＳＢギター２０３がコンピュータ２に接続される。なお、これらの構成要素はＵＳＢインタフェース２０１に接続される。
【０１４１】
ＵＳＢキーボード２０２は第１実施形態のＭＩＤＩキーボード１２１とほぼ同様の構成および機能を有するが、ＭＩＤＩキーボード１２１と異なり、スレーブ側のＵＳＢ機器の通信処理を行うＵＳＢインタフェース２０２１を有している。ＵＳＢインタフェース２０２１はＵＳＢスレーブコントローラ等から構成される。ＵＳＢキーボード２０２はユーザの鍵盤等の操作に応じてＭＩＤＩデータを生成し、生成したＭＩＤＩデータをＵＳＢ規格に従ったデータフォーマットに変換した後、ＵＳＢインタフェース２０２１を介し送信する。
【０１４２】
ＵＳＢギター２０３は本体に張られたスチールの弦、弦の振動をピックアップしアナログ音声信号に変換するセンサ２０３１、センサ２０３１から出力されるアナログ音声信号をデジタル音声データに変換するＡ／Ｄコンバータ２０３２およびスレーブ側のＵＳＢ機器の通信処理を行うＵＳＢインタフェース２０３３を有している。ＵＳＢインタフェース２０３３はＵＳＢスレーブコントローラ等から構成される。ＵＳＢギター２０３はＡ／Ｄコンバータ２０３２によりデジタル音声データに変換された弦の振動による音声情報を、ＵＳＢ規格に従ったデータフォーマットにさらに変換した後、ＵＳＢインタフェース２０３３を介して送信する。
【０１４３】
［２．２：音楽アプリケーションの構成および動作］
音楽アプリケーション２の構成および動作は多くの点で音楽アプリケーション１と共通している。従って、以下、音楽アプリケーション２が音楽アプリケーション１と異なる点のみを説明する。なお、以下の説明においては、コンピュータ２には、第１実施形態において説明に用いた全ての拡張プログラムがインストールされているものとする。
【０１４４】
第２実施形態の音楽アプリケーション２においては、第１実施形態の音楽アプリケーション１において利用される環境データデータベースの代わりに、図３２に示す環境データデータベースが利用される。図３２の環境データデータベースには、第１実施形態における環境データデータベースに加え、種別のフィールドがある。種別のフィールドには、各環境データが表示される際にコンピュータ２に接続されるＵＳＢ機器の種別を示す情報が登録されている。
【０１４５】
また、音楽アプリケーション２においては、第１実施形態におけるデータベース等に加え、図３３に示すデバイス環境関係データが利用される。デバイス環境関係データには、音楽アプリケーション２を利用するユーザのユーザＩＤ、コンピュータ２に接続されるＵＳＢ機器のデバイスＩＤおよび環境データＩＤが登録される。ただし、図３３に示されるデバイスＩＤは、説明のため簡略化されており、実際にはＵＳＢ規格に従ったデバイスＩＤが用いられる。
【０１４６】
なお、基本プログラムがコンピュータ２にインストールされた段階ではデバイス環境関係データには何も登録されておらず、後述するＵＳＢ機器の登録処理により順次、データが登録される。また、コンピュータ２がユーザＩＤを取得する方法については、後述するＵＳＢ機器の登録処理の説明において併せて説明する。
【０１４７】
また、第２実施形態における基本パッケージは、第１実施形態における基本パッケージに加え、図３４に示すデバイスデータベースを含んでおり、基本プログラムのインストール時に、このデバイスデータベースがＨＤ１０５に格納される。デバイスデータベースにはデバイスＩＤおよび種別のフィールドがある。デバイスデータベースにはコンピュータに接続され、音楽アプリケーション２の実行の際に利用可能なあらゆるＵＳＢ機器のデバイスＩＤが、そのＵＳＢ機器の種別を示す情報と共にリストアップされている。
【０１４８】
続いて、音楽アプリケーション２の動作を説明する。ユーザが音楽アプリケーション２を利用する際、ユーザは以下に説明するＵＳＢ機器の登録処理を行う必要がある。まず、ユーザが音楽アプリケーション２の起動の操作を行うと、基本プログラムに従い、ＣＰＵ１０１は表示部１０６にユーザＩＤの入力を求める画面を表示させる。その画面に対し、ユーザは自分のユーザＩＤを入力する。例として、ユーザがＪＯＥ００５というユーザＩＤを入力したとする。その後、ＣＰＵ１０１は起動時の環境データとして指定されている環境データに従い、図２４に示した画面を表示部１０６に表示させる。
【０１４９】
続いて、ユーザはＵＳＢキーボード２０２をＵＳＢインタフェース２０１に接続する。ＵＳＢキーボード２０２は、コンピュータ２に接続されるとその接続を検出し、ＵＳＢキーボード２０２のデバイスＩＤをコンピュータ２に送信する。例として、ＵＳＢキーボード２０２のデバイスＩＤはＵＳＢＫＢ００３５であるとする。
【０１５０】
ＣＰＵ１０１はＵＳＢキーボード２０２からデバイスＩＤを受信すると、デバイスデータベース（図３４）を参照し、そのデバイスＩＤがデバイスデータベースに登録されているか否かを判定する。受信したデバイスＩＤがデバイスデータベースに登録されていない場合、ＣＰＵ１０１は特に処理を行わない。この場合、ＵＳＢＫＢ００３５はデバイスデータベースに登録されているので、ＣＰＵ１０１はデバイス「ＵＳＢＫＢ００３５」の種別の値、すなわち「キーボード」をＲＡＭ１０４に一時的に記録する。ＣＰＵ１０１は続いてデバイス環境関係データ（図３３）を参照し、ユーザＩＤがＪＯＥ００５、デバイスＩＤがＵＳＢＫＢ００３５であるデータが登録されているか否かを判定する。
【０１５１】
この場合、デバイス環境関係データにはユーザＩＤがＪＯＥ００５、デバイスＩＤがＵＳＢＫＢ００３５であるデータは登録されていない。その場合、ＣＰＵ１０１は図３５に示す画面を表示する。すなわち、図３５の画面は、あるユーザが音楽アプリケーション２の利用中に、音楽アプリケーション２において利用可能なあるＵＳＢ機器を初めてコンピュータ２に接続した場合に表示される。
【０１５２】
図３５の画面を表示する際、ＣＰＵ１０１はＲＡＭ１０４に一時的に記録した種別の値「キーボード」を読み出し、環境データデータベース（図３２）を参照し、環境データデータベースの種別の値が、先にＲＡＭ１０４から読み出した種別の値と一致するデータを抽出する。そして、ＣＰＵ１０１はその抽出結果として得られる環境データの環境データ名をリストボックス２５１に表示する。
【０１５３】
ユーザは図３５の画面において、ＵＳＢキーボード２０２と共に通常利用する画面に対応する環境データを選択し、コマンドボタン「ＯＫ」をクリックする。例として、ユーザは環境データ「ピアノ・クラシック」を選択するものとする。
【０１５４】
図３５のコマンドボタン「ＯＫ」がクリックされると、ＣＰＵ１０１は環境データデータベース（図３２）を参照し、ユーザにより選択された環境データの環境データＩＤ「ＥＶ４５１」を、デバイス環境関係データ（図３３）にユーザＩＤおよびデバイスＩＤと共に登録する。続いて、ＣＰＵ１０１はユーザにより選択された環境データに基づいて、図２８に示した画面を表示部１０６に表示させる。以上の処理により、音楽アプリケーション２にＵＳＢキーボード２０２が登録される。
【０１５５】
続いて、ユーザは音楽アプリケーション２にＵＳＢギター２０３の登録を行う。その場合、ユーザはＵＳＢキーボード２０２とコンピュータ２の接続を取り外し、ＵＳＢギター２０３をコンピュータ２に接続する。その後、上記のＵＳＢキーボード２０２に関する処理と同様の処理がＵＳＢギター２０３に関しても行われ、ＵＳＢギター２０３の登録処理がなされる。
【０１５６】
例として、ＵＳＢギター２０３のデバイスＩＤはＵＳＢＧＴ１２０８であり、ユーザはＵＳＢギター２０３を用いる際に利用する環境データとして「ギター・エレアコ」を選択するものとする。その結果、ＣＰＵ１０１は図３０に示した画面を表示部１０６に表示させる。なお、上記のような処理の結果、デバイス環境関係データ（図３３）は図３６に示すように更新される。
【０１５７】
デバイス環境関係データに上記に示したようにＵＳＢ機器が登録されている場合、音楽アプリケーション２において、ユーザは画面の切り替えをＵＳＢ機器の接続のみによって行うことができる。以下、音楽アプリケーション２による画面の切り替え動作を説明する。
【０１５８】
ユーザは、音楽アプリケーション２を起動し、画面の指示に従ってユーザＩＤ「ＪＯＥ００５」を入力する。続いて、ユーザはＵＳＢキーボード２０２をコンピュータ２に接続する。ＵＳＢキーボード２０２はデバイスＩＤ「ＵＳＢＫＢ００３５」をコンピュータ２に送信する。
【０１５９】
ＣＰＵ１０１はＵＳＢキーボード２０２からデバイスＩＤを受信すると、デバイスデータベース（図３４）を参照し、受信したデバイスＩＤが登録されているか否かを判定する。この場合、受信されるデバイスＩＤはデバイスデータベースに登録されているので、続いてＣＰＵ１０１はデバイス環境関係データ（図３６）を参照し、ユーザＩＤがＪＯＥ００５、デバイスＩＤがＵＳＢＫＢ００３５であるデータが登録されているか否かを判定する。
【０１６０】
この場合、ユーザＩＤがＪＯＥ００５、デバイスＩＤがＵＳＢＫＢ００３５であるデータがデバイス環境関係データに登録されているので、ＣＰＵ１０１はユーザＩＤがＪＯＥ００５、デバイスＩＤがＵＳＢＫＢ００３５であるデータの環境データＩＤ「ＥＶ４５１」を取得する。続いて、ＣＰＵ１０１は環境データデータベース（図３２）を参照し、取得した環境データＩＤ「ＥＶ４５１」で示される環境データ「ピアノ・クラシック」に基づいて、図２８に示した画面を表示部１０６に表示させる。
【０１６１】
その後、ユーザがＵＳＢキーボード２０２を用いての音楽アプリケーション２の利用を終え、ＵＳＢギター２０３を用いて音楽アプリケーション２を利用したいと考えたとする。その場合、ユーザはＵＳＢキーボード２０２の接続をコンピュータ２から外し、ＵＳＢギター２０３をコンピュータ２に接続する。ＵＳＢギター２０３がコンピュータ２に接続されると、上記のＵＳＢキーボード２０２に関する処理と同様の処理がＵＳＢギター２０３に関しても行われ、ＣＰＵ１０１は環境データ「ギター・エレアコ」に基づいて、図３０に示した画面を表示部１０６に表示させる。
【０１６２】
上記のように、ユーザはコンピュータにＵＳＢ機器を接続するだけで、画面の表示、すなわちアプリケーションの環境を切り替えることができる。すなわち、接続されるＵＳＢ機器に応じてアプリケーションの環境が自動的に変化するため、ユーザはコンピュータをあたかも個々のＵＳＢ機器の一部であるかのように利用することができる。
【０１６３】
次に、ユーザＩＤがＫＥＮ１０２である、上記のユーザとは異なるユーザが音楽アプリケーション２を利用する場合の動作を説明する。なお、このユーザは既にＵＳＢキーボード２０２およびＵＳＢギター２０３に関し、上記のＵＳＢ機器の登録処理を行っており、その登録処理により、図３６の第１行および第２行のデータとしてユーザＩＤ、デバイスＩＤおよび環境データＩＤがデバイス環境関係データに登録されているものとする。
【０１６４】
このユーザは、音楽アプリケーション２を起動し、画面の指示に従ってユーザＩＤ「ＫＥＮ１０２」を入力する。その後、ユーザは例えばＵＳＢギター２０３をコンピュータ２に接続する。ＵＳＢギター２０３はその接続を検出し、ＵＳＢギター２０３のデバイスＩＤ「ＵＳＢＧＴ１２０８」をコンピュータ２に送信する。続いて、上記のユーザＩＤがＪＯＥ００５であるユーザがコンピュータ２にＵＳＢギター２０３を接続した場合と同様の処理が行われるが、この場合はユーザＩＤがＫＥＮ１０２であるため、ＣＰＵ１０１はデバイス環境関係データ（図３６）から環境データＩＤ「ＥＶ５０１」を取得する。その結果、ＣＰＵ１０１は環境データＩＤ「ＥＶ５０１」で示される環境データ「ギター・ソリッド」に基づいて、図２９に示した画面を表示部１０６に表示させる。
【０１６５】
上記のように、同じＵＳＢ機器を用いてアプリケーションが利用される場合であっても、アプリケーションを利用するユーザによってアプリケーションの環境が自動的に変化するため、ユーザはコンピュータをあたかも自分専用に構成されたＵＳＢ機器の一部であるかのように利用することができる。
【０１６６】
［２．３：第２実施形態の変形例］
上述した例では、コンピュータとコンピュータに接続される外部機器との間のデータ伝送方式として、ＵＳＢ規格に従ったデータ伝送方式が用いられている。しかしながら、本発明において採用可能なデータ伝送方式はＵＳＢ規格に従ったものに限られない。
【０１６７】
例えば、ＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ）１３９４規格に従ったデータ伝送方式のように、コンピュータと外部機器が接続された場合、コンピュータもしくは外部機器のいずれかがその接続を自動的に検出し、外部機器がコンピュータに自分のデバイスＩＤを送信するしくみを規定しているあらゆるデータ伝送方式が採用可能である。
【０１６８】
さらに、自動的にデバイスＩＤを送信するしくみが規定されていないデータ伝送方式であっても、例えばコンピュータが定期的に外部機器に対しデバイスＩＤの送信要求を行い、外部機器からデバイスＩＤを取得することが可能な環境においては、本発明の実施が可能である。
【０１６９】
例えば、ＭＩＤＩ規格は電子機器が自動的にデバイスＩＤを接続先の電子機器に送信するしくみを規定していない。しかし、ＭＩＤＩ規格においてはデバイスＩＤの要求メッセージであるアイデンティティリクエストおよび送信メッセージであるアイデンティティリプライが利用可能である。従って、ＭＩＤＩデータの入出力を行うＭＩＤＩインタフェースを有するコンピュータは、アプリケーションを実行している間、十分に短い間隔で、アイデンティティリクエストをＭＩＤＩインタフェースから送信する。ＭＩＤＩインタフェースに外部機器が接続されている場合、その外部機器はアイデンティティリクエストに対しアイデンティティリプライを送信する。その結果、コンピュータは外部に接続されている機器の機種等を識別することができる。
【０１７０】
［３：第３実施形態］
以下、本発明の第３の好適な実施形態として、コンピュータにボーカルおよびエレクトリックギターの楽曲演奏の練習室を仮想的に実現させ、それらのアプリケーションの環境をコンピュータに入力される音声情報に応じて自動的に切り替えることを可能とするアプリケーションの構成および動作を説明する。
【０１７１】
［３．１：コンピュータおよび外部機器の構成および動作］
まず、第３実施形態に係るアプリケーション（以下、「音楽アプリケーション３」と呼ぶ）の実行環境としてのコンピュータ３、およびコンピュータ３に接続される外部機器の構成および動作を、図３７を用いて説明する。
【０１７２】
コンピュータ３は第１実施形態のコンピュータ１と多くの共通する構成部を有するため、図３７においてはその共通する構成部に関しては図１における符号と同じ符号を付している。なお、第３実施形態においては、ＭＩＤＩ入出力部１０９は利用されないため、図３７にはＭＩＤＩ入出力部１０９が示されていない。その他の構成部に関しては、コンピュータ１の構成部と同じであるので、その説明を省略する。
【０１７３】
第３実施形態においては、エレクトリックギター１２２に加え、マイクロフォン３０１がアナログ音声入力部１１０に接続される。マイクロフォン３０１はボーカル用のマイクロフォンであり、振動板、ボイスコイル等を有し、音声をアナログ電気信号に変換して出力する。
【０１７４】
［３．２：音楽アプリケーションの構成および動作］
音楽アプリケーション３の構成および動作は多くの点で音楽アプリケーション１と共通している。従って、以下、音楽アプリケーション３が音楽アプリケーション１と異なる点のみを説明する。
【０１７５】
音楽アプリケーション３においては、第１実施形態における各種データベース等に加え、図３８に示す音声環境関係データが利用される。音声環境関係データには、音声の特徴を示す音声特徴データが環境データＩＤと共に登録される。音声特徴データの内容および役割は後述する。なお、基本プログラムがコンピュータ３にインストールされた段階では、音声環境関係データには何も登録されておらず、後述する音声の登録処理により、順次データが登録される。
【０１７６】
以下の説明において、コンピュータ３には、第１実施形態において説明に用いた全ての拡張プログラムに加え、図２で示した、「楽曲」の「ボーカル」に分類される拡張パッケージ「さくらさくら」と、「楽曲」の「エレクトリックギター」に分類される拡張パッケージ「Ｓｏｏｎ」の各拡張プログラムがインストールされているものとする。図３９は、これらの拡張プログラムがコンピュータ３にインストールされた状態における、環境データデータベースを示している。
【０１７７】
以下、「楽曲」に分類される拡張プログラムの動作の概要を、拡張プログラム「さくらさくら」を例に説明する。なお、拡張パッケージ「さくらさくら」は、拡張プログラム、環境雛形データおよび部品データ以外に、楽譜の画像データ、伴奏用のＭＩＤＩデータ、ボーカルの各パートのデジタル音声データ、歌唱演奏の評点に応じたコメントデータ等を含んでいる。
【０１７８】
図４０は、基本プログラムに従い、ＣＰＵ１０１が環境データ「ボーカル・クラシック」に基づいて表示部１０６に表示させる画面である。図４０の画面において、まずユーザはマイクロフォン３０１を音楽アプリケーション３のアナログ音声入力部１１０に接続した後、例えばユーザインタフェース群３５２のチェックボックス「ピアノ」および「メロディー２」をチェックする。続いて、ユーザがユーザインタフェース群３５３のコマンドボタン「再生」をクリックすると、ＣＰＵ１０１は拡張プログラム「シーケンサ」に従って、ピアノ伴奏用のＭＩＤＩデータおよびボーカルの第２パートの音声データを再生する。さらに、ＣＰＵ１０１は拡張プログラム「さくらさくら」に従い、楽譜の画像データの内容をユーザインタフェース群３５１の子ウィンドウに表示させる。
【０１７９】
ユーザはスピーカ１１４から発音されるピアノ伴奏および第２パートの音声を聞き、また表示部１０６に表示される楽譜を読みながら、マイクロフォン３０１を用いて第１パートの歌唱演奏を行う。ユーザの歌唱演奏による音声はマイクロフォン３０１およびＡ／Ｄコンバータ１１１を介してデジタル音声データとしてＲＡＭ１０４に順次記録される。ＣＰＵ１０１は拡張プログラム「さくらさくら」に従い、ボーカルの第１パートのデジタル音声データ（以下、「見本データ」と呼ぶ）と、ユーザの歌唱演奏により生成されたデジタル音声データ（以下、「演奏データ」と呼ぶ）とを比較し、ユーザの歌唱演奏のリズム、音程および強弱を評点する。
【０１８０】
すなわち、ＣＰＵ１０１は、例えば見本データが示す音声の周波数の変化タイミングと、演奏データが示す音声の周波数の変化タイミングを比較し、リズムのずれを数値化する。またＣＰＵ１０１は、例えば周波数の変化タイミングに基づいて対応づけられる見本データの特定部分と演奏データの特定部分の平均周波数のずれおよびボリュームのずれをそれぞれ数値化する。
【０１８１】
ユーザが歌唱演奏を終え、ユーザインタフェース群３５３のコマンドボタン「停止」をクリックすると、ＣＰＵ１０１は上記の評点の結果およびその結果に対応するコメントデータの内容をユーザインタフェース群３５４に表示する。このように、拡張プログラム「さくらさくら」に従い、コンピュータ３はユーザの歌唱演奏の練習支援を実現する。
【０１８２】
図４１は、基本プログラムに従い、ＣＰＵ１０１が環境データ「ギター・ソリッド」に基づいて表示部１０６に表示させる画面の例である。図４１の画面には、第１実施形態における環境データ「ギター・ソリッド」に基づく画面（図２９）に対し、拡張プログラム「Ｓｏｏｎ」の処理にリンクされたユーザインタフェース群３６１、ユーザインタフェース群３６２およびユーザインタフェース群３６３が追加されている。それらのユーザインタフェース群の役割は、それぞれ図４０におけるユーザインタフェース群３５１、ユーザインタフェース群３５２およびユーザインタフェース群３５４の役割と同じである。また、拡張プログラム「Ｓｏｏｎ」の動作は拡張プログラム「さくらさくら」の動作と同じである。
【０１８３】
続いて、音楽アプリケーション３の動作を説明する。ユーザが音楽アプリケーション３を利用する際、ユーザは以下に説明する音声の登録処理を行う必要がある。まず、ユーザが音楽アプリケーション３を起動すると、基本プログラムに従い、ＣＰＵ１０１は起動時の環境データとして指定されている環境データに従い、表示部１０６に図４２に示す画面を表示部１０６に表示させる。音楽アプリケーション３の起動時の画面には、音楽アプリケーション１の起動時の画面（図２４）に対し、コマンドボタン「音声登録」が追加されている。
【０１８４】
ユーザはマイクロフォン３０１をコンピュータ２のアナログ音声入力部１１０に接続する。続いて、ユーザが図４２のコマンドボタン「音声登録」をクリックすると、基本プログラムに従い、ＣＰＵ１０１は図４３に示す画面を表示部１０６に表示させる。ユーザは図４３の画面の指示に従い、コマンドボタン「スタート」をクリックした後、マイクロフォン３０１に対し３秒以上の発声を行う。
【０１８５】
ユーザの音声はマイクロフォン３０１およびＡ／Ｄコンバータ１１１を介してデジタル音声データ（以下、「サンプルデータ」と呼ぶ）としてＲＡＭ１０４に記録される。続いて、ＣＰＵ１０１はサンプルデータが示す音声のフォルマント周波数を求める。
【０１８６】
フォルマント周波数は、音声の特徴を示す指標の一種である。図４４はある音声をサンプリングして得られるデジタル音声データを模式的に示した図である。図４４の横軸は時間、縦軸は音圧のレベルである。このように、デジタル音声データは全体として音声の波形を示している。
【０１８７】
図４５は高速フーリエ変換法を用いて、図４４に示したデジタル音声データの周波数成分を算出した結果を模式的に示した図である。図４５の横軸は周波数、縦軸は音声が含む各周波数成分の振幅を示している。また、図４６はローパスフィルタ等を用いて、図４５に示した周波数成分の振幅を平滑化した結果を模式的に示した図である。図４６の縦軸および横軸は図４５のものと同様である。
【０１８８】
図４６のデータによれば、０．４２ｋＨｚ、１．２１ｋＨｚ、３．３７ｋＨｚおよび３．８３ｋＨｚの各周波数においてピークが確認される。これらのピークに対応する周波数がフォルマント周波数であり、低周波数側からそれぞれ第１フォルマント周波数、第２フォルマント周波数、のように呼ぶ。
【０１８９】
すなわち、ＣＰＵ１０１は、ＤＳＰ１０２に対し、ＲＡＭ１０４に記録されたサンプルデータを用いて高速フーリエ変換処理、ローパスフィルタによるフィルタ処理等を行うよう指示する。ＤＳＰ１０２はＣＰＵ１０１の指示に従い、ＲＡＭ１０４からサンプルデータを読み込み、図４６のデータを生成してＲＡＭ１０４に記録する。ＣＰＵ１０１はＤＳＰ１０２によりＲＡＭ１０４に記録されたデータを読み込み、読み込んだデータに対する微分処理等を行って、上記のフォルマント周波数を第３フォルマント周波数まで算出する。なお、このＤＳＰ１０２により行われる処理は、ＣＰＵ１０１により行われても良い。
【０１９０】
ＣＰＵ１０１はフォルマント周波数の算出を終えると、図４７に示す画面を表示部１０６に表示させる。ユーザは図４７の画面の指示に従い、例えば環境データ「ボーカル・クラシック」を選択し、コマンドボタン「ＯＫ」をクリックする。
【０１９１】
ＣＰＵ１０１は環境データデータベース（図３９）を参照し、ユーザにより選択された環境データの環境データＩＤ「ＥＶ６０１」を音声環境関係データ（図３８）の環境データＩＤのフィールドに登録する。また、ＣＰＵ１０１は音声環境関係データの同じデータ行の音声特徴データのフィールドに、先に算出した第１から第３のフォルマント周波数の値を登録する。続いて、ＣＰＵ１０１はユーザにより選択された環境データ「ボーカル・クラシック」に基づいて、図４０に示した画面を表示部１０６に表示させる。以上の処理により、音楽アプリケーション３にユーザの発声による音声が登録される。
【０１９２】
続いて、ユーザは音楽アプリケーション３にエレクトリックギター１２２の音声の登録を行う。その場合、ユーザはマイクロフォン３０１とコンピュータ３の接続を取り外し、エレクトリックギター１２２をコンピュータ３に接続する。その後、ユーザは図４０の画面のコマンドボタン「メインメニュー」をクリックする。その結果、表示部１０６には図４２に示した画面が表示される。図４２の画面においてユーザはコマンドボタン「音声登録」をクリックする。続いて、表示部１０６には図４３に示した画面が表示される。
【０１９３】
図４３の画面において、ユーザはエレクトリックギター１２２の弦を弾き、エレクトリックギター１２２の生成するアナログ音声信号をコンピュータ３に入力する。その後、上記のマイクロフォン３０１を用いた場合の処理と同様の処理がエレクトリックギター１２２に関しても行われる。その際、例として、ユーザは図４７の画面において環境データ「ギター・ソリッド」を選択するものとする。その結果、ＣＰＵ１０１は環境データ「ギター・ソリッド」に基づいて、図４１に示した画面を表示部１０６に表示させる。
【０１９４】
上記のような処理の結果、音声環境関係データ（図３８）は図４８に示すように更新される。図４８において、音声ＩＤがＷＡＶ２０７であるデータがこのユーザの発声による音声に対応するデータであり、一方、音声ＩＤがＷＡＶ２０８であるデータがエレクトリックギター１２２の生成する音声に対応するデータである。
【０１９５】
音声環境関係データに上記に示したように音声が登録されている場合、音楽アプリケーション３において、ユーザは画面の切り替えを音声の入力のみによって行うことができる。以下、音楽アプリケーション３による画面の切り替え動作を説明する。
【０１９６】
ユーザは、まず音楽アプリケーション３を起動し、マイクロフォン３０１をコンピュータ３に接続した後、マイクロフォン３０１に向かい、上記の図４３における登録時に発声した声と同様の声を発声する。ユーザの発声による音声は、マイクロフォン３０１、アナログ音声入力部１１０およびＡ／Ｄコンバータ１１１を介してデジタル音声データとしてＲＡＭ１０４に順次記録される。一方、ＣＰＵ１０１は基本プログラムに従い、過去一定時間、例えば３秒間にＲＡＭ１０４に記録されたデジタル音声データを用いて、上述したフォルマント周波数を求める処理を常時繰り返している。
【０１９７】
ＣＰＵ１０１はＲＡＭ１０４に記録された３秒間分のデジタル音声データからフォルマント周波数を算出すると、音声環境関係データ（図４８）を参照し、新たに算出したフォルマント周波数（以下、「サンプル周波数」と呼ぶ）と、音声環境関係データに登録されている各フォルマント周波数（以下、「登録周波数」と呼ぶ）を用いて、以下の式（１）に示されるＥｒｒの値を求める。ただし、サンプル周波数を（Ｓ１，Ｓ２，Ｓ３）、登録周波数を（Ｒ１，Ｒ２，Ｒ３）とする。
【数１】
2004220208.tif 000003
【０１９８】
式（１）のＥｒｒは、各登録周波数とサンプル周波数とのずれを示す指標である。Ｅｒｒの値が小さいほど、サンプル周波数と登録周波数が類似しており、従って現在ユーザによりコンピュータ３に入力されている音声と、音声環境関係データに対する登録に用いられた音声が類似している。なお、式（１）以外にもサンプル周波数と登録周波数の類似性を示す指標としては、さまざまなものが考えられる。例えば、式（１）におけるサンプル周波数および登録周波数の各項の差の二乗の代わりに、絶対値を用いてもよい。また、サンプル周波数と登録周波数の第１項を組とし、第２項を組とし、さらに第３項を組として、これらの組に関して相関係数を求めてもよい。
【０１９９】
ＣＰＵ１０１は音声環境関係データの各データに関し、式（１）のＥｒｒの値を求めると、求めたＥｒｒの値が所定の値、例えば０．０１以下であるか否かを判定する。今、例としてユーザの発声により得られたサンプル周波数が（０．４１，１．２２，３．７３）であるとする。この値は、音声環境関係データにおいて音声ＩＤがＷＡＶ２０７のデータ行に登録されている登録周波数と類似している。なぜなら、それらの周波数が同じユーザが同様の発声によって生成した音声から算出されたものであるからである。従って、音声「ＷＡＶ２０７」の登録周波数を用いて算出されたＥｒｒの値が、所定の値である０．０１以下となる。
【０２００】
ＣＰＵ１０１は、Ｅｒｒの値が所定の値以下であると、音声環境関係データを参照し、Ｅｒｒの算出に用いられた登録周波数を音声特徴データとするデータ行の環境データＩＤ「ＥＶ６０１」を取得する。続いて、ＣＰＵ１０１は環境データデータベース（図３９）を参照し、環境データＩＤ「ＥＶ６０１」で示される環境データ「ボーカル・クラシック」に基づいて、図４０に示した画面を表示部１０６に表示させる。
【０２０１】
その後、ユーザがマイクロフォン３０１を用いての音楽アプリケーション３の利用を終え、エレクトリックギター１２２を用いて音楽アプリケーション３を利用したいと考えたとする。その場合、ユーザはマイクロフォン３０１の接続をコンピュータ３から取り外し、エレクトリックギター１２２をコンピュータ３に接続する。ユーザがエレクトリックギター１２２を用いて図４３の画面における登録時のものと同様の音声信号をコンピュータ３に入力すると、ＣＰＵ１０１は上記のマイクロフォン３０１から入力された音声信号に関する処理と同様の処理をエレクトリックギター１２２から入力される音声信号に関して行う。この場合、音声環境関係データにおける音声「ＷＡＶ２０８」の音声特徴データに関し、Ｅｒｒの値が０．０１以下となり、その結果、ＣＰＵ１０１は環境データＩＤ「ＥＶ５０１」が示す環境データ「ギター・ソリッド」に基づいて、図４１に示した画面を表示部１０６に表示させる。
【０２０２】
上記のように、第３実施形態によれば、コンピュータに入力される音声信号に応じてアプリケーションの環境が自動的に切り替わる。従って、異なるユーザが同じアプリケーションを利用する場合、ユーザは自分の声をマイクロフォンでコンピュータに入力するだけで、アプリケーションの環境を切り替えることができる。また、ユーザがコンピュータに対し異なる音響機器を接続してアプリケーションを利用する場合、ユーザは音響機器からコンピュータに対し音声信号を入力するだけで、アプリケーションの環境を切り替えることができる。
【０２０３】
従って、ユーザはコンピュータをあたかも自分専用に構成された電子機器のように利用したり、コンピュータをあたかも音響機器の一部であるかのように利用することができる。
【０２０４】
［３．３：第３実施形態の変形例］
上述した例では、フォルマント周波数を用いて音声の類似性が算出されている。しかしながら、本発明において採用可能な音声の類似性を示す指標はフォルマント周波数に限られず、確率モデルによる音声認識法等のさまざまな音声認識手法の採用が可能である。また、フォルマント周波数の算出方法も、上述した方法に限られない。例えば高速フーリエ変換ではなく、通常のフーリエ変換が用いられてもよい。
【０２０５】
［４：変形例］
上述した第１から第３の実施形態は、それぞれ本発明の実施形態の例示であり、上記実施形態に対しては、本発明の主旨から逸脱しない範囲で様々な変形を加えることができる。以下、変形例を示す。
【０２０６】
［４．１：第１変形例］
第１変形例においては、コンピュータの各構成部は必ずしも同じ筐体の中に配置されておらず、一部の構成部は他の構成部から分離して配置されている。例えば、ＨＤ、表示部、操作部、アンプ、スピーカ等はコンピュータに対する外部機器として接続されていてもよい。また、互いにＬＡＮ等で接続された異なる情報機器、例えば高い処理能力のＤＳＰを有するコンピュータと、それとは異なる高い処理能力のＣＰＵを有するコンピュータが協働して上記の各実施形態で示したコンピュータの処理を行ってもよい。
【０２０７】
第１変形例によれば、ユーザは分散して配置されている各種の情報機器の資源を有効に活用して、本発明に係るアプリケーションの実行をコンピュータに行わせることができる。
【０２０８】
［４．２：第２変形例］
第２変形例においては、コンピュータは無線通信インタフェースを有し、この無線通信インタフェースを介して、無線通信機能を有する外部機器からのデータを受信することができる。そして、コンピュータは、外部機器から無線を介して受信されるデータに応じて、環境データの選択および画面の切り替え等を行う。第２変形例によれば、ユーザはコンピュータと外部機器との間のケーブルの接続および接続の解除に要する手間を省くことができ、利便性が高まる。
【０２０９】
［４．３：第３変形例］
第３変形例においては、コンピュータはさらにＣＤ−ＲＯＭ（ＣｏｍｐａｃｔＤｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ドライブ等の外部記録媒体からデータを読み込む構成部を有し、ＣＤ−ＲＯＭ等に格納されている基本パッケージ、拡張パッケージ等を読み込んで、それらに含まれるプログラムのインストール等を行うことができる。第３変形例によれば、インターネットへの接続が困難なコンピュータの利用時においても、ユーザは本発明に係るアプリケーションの実行をコンピュータに行わせることができる。
【０２１０】
［４．４：第４変形例］
第４変形例においては、基本プログラムおよび拡張プログラムはＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）等のブラウザソフトで実行可能な言語により記述されている。さらに、環境データ等の各種データおよびデータベースの内容は、ＸＭＬ等のデータ構造の定義が可能な言語により記述されている。
【０２１１】
第４変形例によれば、基本プログラムおよび拡張プログラムの複合体であるアプリケーションは、ブラウザソフトにおいて実行可能となるため、プログラム開発者は既存のブラウザソフトの機能を利用することにより各プログラムにおける内容表示や音声データ等の再生などの各種機能をプログラムに実現させることができ、開発における負担を軽減することができる。また、基本プログラムおよび拡張プログラムに関する画面表示を、例えば関連するＨＰの画面の中に埋め込む処理など、ＸＭＬ等の言語により記述された他のデータとの連携処理が容易に実現される。
【０２１２】
【発明の効果】
以上示したように、本発明にかかるプログラムによれば、プログラムの開発および管理が拡張パッケージ単位で行われるため、プログラムの開発者のプログラム開発および管理が容易となる。また、ユーザは利用を希望する拡張プログラムのみを選択して購入できるため、ユーザのプログラム購入の費用負担が削減される。
【０２１３】
同時に、本発明にかかるプログラムによれば、多くの拡張プログラムがインストールされたとしても、それら多くの拡張プログラムの機能に関するコマンドボタン等が表示され、ユーザが必要な機能を探し出すことが困難になる等の不都合が生じることはない。
【０２１４】
さらに、本発明にかかるプログラムによれば、互いに関連する複数の拡張プログラムの処理が同じ画面から利用できるため、ユーザは異なる拡張プログラムを意識する必要がない。
【０２１５】
さらに、本発明にかかるプログラムによれば、使用目的に応じて必要な処理にリンクされたユーザインタフェースのみを集めた画面が表示されるため、ユーザは各画面ごとに異なるアプリケーションを利用する感覚でアプリケーションを利用することができる。その際、ユーザは画面を切り替えるだけで容易にアプリケーションの環境を変更することができる。
【０２１６】
さらに、本発明にかかるプログラムによれば、ユーザは画面の構成を示す環境データを編集することで、容易にアプリケーションの環境を自分の使用目的に適したものに調整することができる。
【０２１７】
また、本発明にかかるプログラムによれば、ユーザはコンピュータに外部機器を接続するだけで、アプリケーションの環境を変更することができる。また、本発明にかかるプログラムによれば、ユーザはコンピュータに音声情報を入力するだけで、アプリケーションの環境を変更することができる。
【図面の簡単な説明】
【図１】第１実施形態にかかる、コンピュータおよびコンピュータに接続される外部機器の構成を示す図である。
【図２】第１実施形態、第２実施形態および第３実施形態にかかる、音楽アプリケーションの構成を示す図である。
【図３】第１実施形態、第２実施形態および第３実施形態にかかる、基本プログラムと拡張プログラムの関係を示す図である。
【図４】第１実施形態、第２実施形態および第３実施形態にかかる、基本プログラムと拡張プログラムの関係を示す図である。
【図５】第１実施形態、第２実施形態および第３実施形態にかかる、プログラムデータベースの内容を示す図である。
【図６】第１実施形態、第２実施形態および第３実施形態にかかる、入出力データベースの内容を示す図である。
【図７】第１実施形態、第２実施形態および第３実施形態にかかる、処理データベースの内容を示す図である。
【図８】第１実施形態、第２実施形態および第３実施形態にかかる、部品データデータベースの内容を示す図である。
【図９】第１実施形態および第３実施形態にかかる、環境データデータベースの内容を示す図である。
【図１０】第１実施形態にかかる、環境雛形データの内容を示す図である。
【図１１】第１実施形態にかかる、環境データの内容を示す図である。
【図１２】第１実施形態にかかる、環境データの内容を示す図である。
【図１３】第１実施形態にかかる、画面表示を示す図である。
【図１４】第１実施形態にかかる、画面表示を示す図である。
【図１５】第１実施形態、第２実施形態および第３実施形態にかかる、画面表示の処理を示すフロー図である。
【図１６】第１実施形態にかかる、プログラムデータベースの内容を示す図である。
【図１７】第１実施形態にかかる、入出力データベースの内容を示す図である。
【図１８】第１実施形態にかかる、処理データベースの内容を示す図である。
【図１９】第１実施形態にかかる、部品データデータベースの内容を示す図である。
【図２０】第１実施形態にかかる、環境雛形データの内容を示す図である。
【図２１】第１実施形態にかかる、環境データの内容を示す図である。
【図２２】第１実施形態にかかる、環境データデータベースの内容を示す図である。
【図２３】第１実施形態にかかる、環境データの内容を示す図である。
【図２４】第１実施形態および第２実施形態にかかる、画面表示を示す図である。
【図２５】第１実施形態にかかる、画面表示を示す図である。
【図２６】第１実施形態にかかる、画面表示を示す図である。
【図２７】第１実施形態にかかる、画面表示を示す図である。
【図２８】第１実施形態および第２実施形態にかかる、画面表示を示す図である。
【図２９】第１実施形態および第２実施形態にかかる、画面表示を示す図である。
【図３０】第１実施形態および第２実施形態にかかる、画面表示を示す図である。
【図３１】第２実施形態にかかる、コンピュータおよびコンピュータに接続される外部機器の構成を示す図である。
【図３２】第２実施形態にかかる、環境データデータベースの内容を示す図である。
【図３３】第２実施形態にかかる、デバイス環境関係データの内容を示す図である。
【図３４】第２実施形態にかかる、デバイスデータベースの内容を示す図である。
【図３５】第２実施形態にかかる、画面表示を示す図である。
【図３６】第２実施形態にかかる、デバイス環境関係データの内容を示す図である。
【図３７】第３実施形態にかかる、コンピュータおよびコンピュータに接続される外部機器の構成を示す図である。
【図３８】第３実施形態にかかる、音声環境関係データの内容を示す図である。
【図３９】第３実施形態にかかる、環境データデータベースの内容を示す図である。
【図４０】第３実施形態にかかる、画面表示を示す図である。
【図４１】第３実施形態にかかる、画面表示を示す図である。
【図４２】第３実施形態にかかる、画面表示を示す図である。
【図４３】第３実施形態にかかる、画面表示を示す図である。
【図４４】フォルマント周波数の説明のための音声データの例を示す図である。
【図４５】フォルマント周波数の説明のための音声データの周波数成分の例を示す図である。
【図４６】フォルマント周波数の説明のための平滑化された音声データの周波数成分の例を示す図である。
【図４７】第３実施形態にかかる、画面表示を示す図である。
【図４８】第３実施形態にかかる、音声環境関係データの内容を示す図である。
【符号の説明】
１、２、３・・・コンピュータ、１０１・・・ＣＰＵ、１０２・・・ＤＳＰ、１０３・・・ＲＯＭ、１０４・・・ＲＡＭ、１０５・・・ＨＤ、１０６・・・表示部、１０７・・・操作部、１０８・・・ＮＷ入出力部、１０９・・・ＭＩＤＩ入出力部、１１０・・・アナログ音声入力部、１１１、２０３２・・・Ａ／Ｄコンバータ、１１２・・・Ｄ／Ａコンバータ、１１３・・・アンプ、１１４・・・スピーカ、１１５・・・バス、１２０・・・インターネット、１２１・・・ＭＩＤＩキーボード、１２２・・・エレクトリックギター、２０１、２０２１、２０３３・・・ＵＳＢインタフェース、２０２・・・ＵＳＢキーボード、２０３・・・ＵＳＢギター、２０３１・・・センサ、３０１・・・マイクロフォン。
【図１】
2004220208.tif 000004
【図２】
2004220208.tif 000005
【図３】
2004220208.tif 000006
【図４】
2004220208.tif 000007
【図５】
2004220208.tif 000008
【図６】
2004220208.tif 000009
【図７】
2004220208.tif 000010
【図８】
2004220208.tif 000011
【図９】
2004220208.tif 000012
【図１０】
2004220208.tif 000013
【図１１】
2004220208.tif 000014
【図１２】
2004220208.tif 000015
【図１３】
2004220208.tif 000016
【図１４】
2004220208.tif 000017
【図１５】
2004220208.tif 000018
【図１６】
2004220208.tif 000019
【図１７】
2004220208.tif 000020
【図１８】
2004220208.tif 000021
【図１９】
2004220208.tif 000022
【図２０】
2004220208.tif 000023
【図２１】
2004220208.tif 000024
【図２２】
2004220208.tif 000025
【図２３】
2004220208.tif 000026
【図２４】
2004220208.tif 000027
【図２５】
2004220208.tif 000028
【図２６】
2004220208.tif 000029
【図２７】
2004220208.tif 000030
【図２８】
2004220208.tif 000031
【図２９】
2004220208.tif 000032
【図３０】
2004220208.tif 000033
【図３１】
2004220208.tif 000034
【図３２】
2004220208.tif 000035
【図３３】
2004220208.tif 000036
【図３４】
2004220208.tif 000037
【図３５】
2004220208.tif 000038
【図３６】
2004220208.tif 000039
【図３７】
2004220208.tif 000040
【図３８】
2004220208.tif 000041
【図３９】
2004220208.tif 000042
【図４０】
2004220208.tif 000043
【図４１】
2004220208.tif 000044
【図４２】
2004220208.tif 000045
【図４３】
2004220208.tif 000046
【図４４】
2004220208.tif 000047
【図４５】
2004220208.tif 000048
【図４６】
2004220208.tif 000049
【図４７】
2004220208.tif 000050
【図４８】
2004220208.tif 000051