JP2004220208A - Basic program and recording medium capable of easily switching program environment - Google Patents
Basic program and recording medium capable of easily switching program environment Download PDFInfo
- Publication number
- JP2004220208A JP2004220208A JP2003005114A JP2003005114A JP2004220208A JP 2004220208 A JP2004220208 A JP 2004220208A JP 2003005114 A JP2003005114 A JP 2003005114A JP 2003005114 A JP2003005114 A JP 2003005114A JP 2004220208 A JP2004220208 A JP 2004220208A
- Authority
- JP
- Japan
- Prior art keywords
- data
- environment
- computer
- program
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
- User Interface Of Digital Computer (AREA)
- Stored Programmes (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は、複数のプログラムから一部のプログラムが選択され利用されるプログラム利用環境において、プログラムの選択作業を容易化し、かつ選択されたプログラムに応じてユーザインタフェースの変更処理を行うプログラムに関する。
【0002】
【従来の技術】
近年、特定機能を実現するための電子機器(以下、「特定電子機器」と呼ぶ)の多くが、パーソナルコンピュータやゲーム機、PDA(Personal Digital Assistance)等(以下、単に「汎用コンピュータ」と呼ぶ)に必要なアプリケーションプログラム(以下、単に「アプリケーション」と呼ぶ)をインストールすることにより実現可能となっている。特に、汎用コンピュータの音声データおよび画像データの処理能力が向上しているため、音響映像機器の機能の多くが汎用コンピュータにより実現可能となっている。
【0003】
特定電子機器はDSP(Digital Signal Processor)や液晶ディスプレイ等、同種の部品を多く有している。それに対し、汎用コンピュータに異なるアプリケーションをインストールすることにより、1台の汎用コンピュータに複数の特定電子機器の機能を実現させる場合、DSPや液晶ディスプレイ等の部品を汎用コンピュータが1つ有すれば足り、コストの低減がはかられる。
【0004】
上記のように、汎用コンピュータを用いて特定電子機器の機能を実現させる従来技術の例として、例えばネットワークに接続された複数のコンピュータ資源を用いて電子楽器を実現する技術が、特許文献1に開示されている。
【0005】
【特許文献1】
特開平7−261756号公報
【0006】
【発明が解決しようとする課題】
ところで、汎用コンピュータにより互いに関連する複数の特定電子機器の機能が実現可能な場合、それらの機能を連携させることができればユーザの利便性が向上する。
【0007】
汎用コンピュータにおいて複数機能の連携を実現するために、まずそれらの複数機能を1つのアプリケーションに統合することが考えられる。例えば、汎用コンピュータにミュージックシンセサイザの機能を実現するアプリケーション(以下、「シンセソフト」と呼ぶ)と、汎用コンピュータに音声データに対する音響効果を付加するエフェクタの機能を実現させるアプリケーション(以下、「エフェクタソフト」と呼ぶ)の両方の機能を有するアプリケーション(以下、「エフェクタ機能付シンセソフト」と呼ぶ)を開発すれば、ユーザはミュージックシンセサイザによって再生される音声に対し、容易にエフェクタによる音響効果を付加することができる。
【0008】
しかしながら、上記のように異なる機能を有する複数のアプリケーションを単純に統合すると、一方のアプリケーションの機能のみを必要とするユーザには不便である。例えば、エフェクタ機能を必要としないユーザも、エフェクタ機能付シンセソフトを購入しなければならず、そのために不要な費用を払わなければならない。その不便さを解消するために、もしシンセソフト、エフェクタソフトおよびエフェクタ機能付シンセソフトを個別に販売するならば、今度はアプリケーションの開発者の開発コストが増大する。
【0009】
上記の問題に対し、複数のプログラムの制御等を行う基本的なプログラム(以下、「基本プログラム」と呼ぶ)と、この基本的プログラムと共に動作し、特定の機能を実現するためのプログラム(以下、「拡張プログラム」と呼ぶ)とを組み合わせることにより、複数の機能を有するアプリケーションを構築する方法が考えられる。例えば、汎用コンピュータにミュージックシーケンサの機能を実現させるアプリケーション(以下、「シーケンサソフト」と呼ぶ)を基本プログラムとして開発し、シンセソフトおよびエフェクタソフトはシーケンサソフトの拡張プログラムとして開発する。この場合、ユーザはシーケンサソフトを購入した後、必要な拡張プログラムのみを購入すればよい。また、アプリケーションの開発者は、各拡張プログラムを個別に開発できるため、開発コストも最小限ですむ。
【0010】
上記の基本プログラムと拡張プログラムを用いる方法の効果は、各拡張プログラムの機能が細分化される程、大きい。しかしながら、各拡張プログラムの機能が細分化されると、ユーザがそれら多くの拡張プログラムを管理するための負担が増大する。例えば、エフェクタソフトの機能を実現する拡張プログラムが、リバーブおよびディストーションの機能を実現させる拡張プログラム(以下、それぞれ「リバーブソフト」および「ディストーションソフト」と呼ぶ)に細分化されたとする。リバーブソフトとディストーションソフトの両方を購入したユーザが、例えばリバーブソフトのみを利用したい場合、不要なディストーションソフトに関するコマンドボタン等が汎用コンピュータの画面に表示されると邪魔である。
【0011】
ユーザは画面に表示される邪魔なコマンドボタン等を非表示にすることができる。しかしユーザがアプリケーションの使用目的に応じていちいち不要なコマンドボタン等の非表示化の操作をするのは面倒である。また、複数の拡張プログラムの各種の機能の間には、関連性が高いものと関連性が低いものが存在する。従って、ユーザはある画面においていずれのコマンドボタン等が不要であるかを判断することも容易ではない。
【0012】
しかしながら、もしプログラムの開発者がアプリケーションにおける望ましい画面表示の構成を決定してユーザに提供し、ユーザはプログラム開発者により決定された画面表示の構成しか利用できないとすれば、そのアプリケーションは様々なユーザの使用目的を満たすアプリケーションの使用環境を提供することができない。
【0013】
上記のような事情に鑑み、本発明は、複数の関連するプログラムを含み、それらを同時に利用可能なプログラムにおいて、開発者およびユーザがそれら複数のプログラムを利用する際の画面構成を使用目的に応じて柔軟に変更でき、かつそのように変更された複数の画面構成の中からユーザが望ましいものを容易に選択できるプログラムを提供することを目的としている。
【0014】
【課題を解決するための手段】
以上説明した課題を解決するため、本発明は、1または複数の拡張プログラムと、ユーザから指示を受け取るための1または複数のユーザインタフェースを定義するユーザインタフェースデータと、前記1または複数のユーザインタフェースの各々を前記1または複数の拡張プログラムの実行制御に関連付けるリンクデータとを含んだ複数の環境データを記憶したメモリを有するコンピュータに、前記複数の環境データのうち1の環境データを選択する環境データ選択処理と、選択した環境データに従って1または複数のユーザインタフェースを提供するユーザインタフェース提供処理と、提供した1または複数のユーザインタフェースのいずれかに対するユーザの操作が行われた場合、選択した環境データに含まれるリンクデータによって当該ユーザインタフェースに関連付けられた拡張プログラムの実行制御を行う拡張プログラム制御処理とを実行させる基本プログラムを提供する。
【0015】
かかる構成による基本プログラムを用いると、使用目的に応じた環境データが選択されることにより、使用目的に必要な処理に対応付けられたユーザインタフェースのみが画面に表示される。その結果、ユーザが複数の処理を有する複数の拡張プログラムを同時に利用し、使用目的に応じてそれらを使い分ける必要がある場合であっても、ユーザは環境データを切り替えることにより、容易に使用目的に応じた画面をコンピュータに表示させることができる。
【0016】
また、前記複数の環境データの各々は、前記1または複数の拡張プログラムに従って実行される各処理が必要とする入力データが、前記1または複数の拡張プログラムに従って行われるいずれの処理の出力データであるかを示す入出力関係データを含み、前記基本プログラムは、前記コンピュータが前記1または複数の拡張プログラムに従って、ある処理を実行し、その処理において出力データが得られた場合、前記環境データ選択処理において選択された環境データに含まれる入出力関係データに従って、当該出力データを入力データとする処理を前記コンピュータに実行させてもよい。
【0017】
かかる構成による基本プログラムを用いると、複数の拡張プログラム間におけるデータの入力および出力の関係が、環境データの選択により自動的に決定される。
【0018】
また、前記基本プログラムは、前記メモリに、ある拡張プログラムが新たに記憶された場合、前記コンピュータに、前記複数の環境データの各々に対し、新たに記憶された拡張プログラムに関連するデータを追加させ、前記メモリに記憶されている前記1または複数の拡張プログラムのいずれかが前記メモリから削除された場合、前記コンピュータに、前記複数の環境データの各々から、削除された拡張プログラムに関連するデータを削除させてもよい。
【0019】
かかる構成による基本プログラムを用いると、コンピュータにおいて利用可能な拡張プログラムの構成に変更があった場合に、環境データにおけるデータインタフェースデータおよびリンクデータがその変更に応じて自動的に更新される。
【0020】
また、前記コンピュータは、1または複数の外部機器から前記1または複数の外部機器の各々を識別するデバイスIDを受信可能であり、前記メモリには、前記デバイスIDと前記環境データとの対応関係を示すデバイス環境関係データが記憶されており、前記基本プログラムは、前記コンピュータが前記1または複数の外部機器のいずれかからデバイスIDを受信した場合、前記環境データ選択処理において、前記コンピュータに、前記デバイス環境関係データによって受信したデバイスIDに対応付けられた環境データを選択させてもよい。
【0021】
かかる構成による基本プログラムを用いると、外部機器からコンピュータに送信されるデバイスIDに応じて環境データが自動的に選択されるため、ユーザは外部機器をコンピュータに接続するだけで、使用目的に応じた画面をコンピュータに表示させることができる。
【0022】
また、前記コンピュータは、外部機器から音声情報を取得可能であり、前記メモリには、1または複数の音声情報の特徴を示す情報である音声特徴データと前記環境データとの対応関係を示す音声環境関係データが記憶されており、前記基本プログラムは、前記コンピュータが前記外部機器から音声情報を受信した場合、前記コンピュータに、受信した音声情報から該音声情報の特徴を示す音声特徴データを生成させる音声特徴データ生成処理を実行させ、前記環境データ選択処理において、前記コンピュータに、前記音声環境関係データによって、前記音声特徴データ生成処理において生成した音声特徴データに対応付けられた環境データを選択させてもよい。
【0023】
かかる構成による基本プログラムを用いると、外部機器からコンピュータに入力される音声情報に応じて環境データが自動的に選択されるため、ユーザは外部機器から音声情報をコンピュータに対し送信させるだけで、使用目的に応じた画面をコンピュータに表示させることができる。
【0024】
前記1または複数の拡張プログラムの少なくとも1つは、前記コンピュータに、音声データを電子的に生成する音声データ生成処理を実行させてもよい。
【0025】
かかる構成による基本プログラムを用いると、コンピュータは複数のデジタル音響機器の機能を実現可能となり、ユーザは環境データを切り替えることにより、それらデジタル音響機器の機能を容易に使い分けることができる。
【0026】
【発明の実施の形態】
[1:第1実施形態]
以下、本発明の好適な実施形態として、あるアプリケーションの構成および動作を説明する。このアプリケーションは、コンピュータに電子ピアノ音源およびギターアンプの機能を実現させ、さらにそれらの機能をユーザが手動で容易に切り替えることを可能とするものである。なお、以下の説明において、「アプリケーション」は、複数の関連するプログラムの集合体を意味する言葉として用いる。
【0027】
[1.1:コンピュータおよび外部機器の構成および動作]
まず、第1実施形態に係るアプリケーション(以下、「音楽アプリケーション1」と呼ぶ)の実行環境であるコンピュータ1およびこれに接続される外部機器の構成および動作を、図1を用いて説明する。
【0028】
コンピュータ1は、CPU(Central Processing Unit)101、DSP(Digital Signal Processor)102、ROM(Read Only Memory)103、RAM(Random Access Memory)104、HD(Hard Disk)105、表示部106、操作部107、NW(Network)入出力部108、MIDI(Musical Instrument Digital Interface)入出力部109、アナログ音声入力部110、A/D(Analogto Digital)コンバータ111、D/A(Digital to Analog)コンバータ112、アンプ113およびスピーカ114を有している。コンピュータ1において、アナログ音声入力部110、アンプ113およびスピーカ114以外の各構成部は、バス115を介して互いに接続されている。
【0029】
CPU101は汎用的なデータ処理を行うマイクロプロセッサであり、ROM103に記憶された制御用プログラムに従いコンピュータ1の他の構成部の制御等の処理を行う。また、CPU101は、HD105に記録された音楽アプリケーション1をRAM104に読み込み、音楽アプリケーション1に従った各種処理を行う。
【0030】
DSP102はデジタル音声データやデジタル画像データを高速に処理可能なマイクロプロセッサであり、RAM104からデータを読み込んで加工処理を行い、その結果生成されるデータをRAM104に記録する。
【0031】
ROM103は各種の制御用プログラムを格納する不揮発性メモリである。RAM104はCPU101や他の構成部が利用するデータを一時的に記憶するための揮発性メモリである。HD105は大容量の記憶領域を有する不揮発性のメモリであり、HD105に格納されるデータは書き換え可能である。HD105には、音楽アプリケーション1および音楽アプリケーション1と共に利用される各種データが格納される。HD105に格納されるアプリケーションおよびデータは、必要に応じてRAM104に読み出された後、CPU101等に読み込まれて利用される。
【0032】
表示部106は液晶ディスプレイ、駆動回路等を有し、文字、図形等の情報を表示する。操作部107はキーパッドやマウス等を有し、ユーザの操作に応じて所定のデータをCPU101に送信する。
【0033】
NW入出力部108はLAN(Local Area Network)に接続された他の通信機器とコンピュータ1との間で送受信されるデータの中継を行う。NW入出力部108はLANを介してインターネット120に接続されている。
【0034】
MIDI入出力部109は外部機器からMIDI規格に従ったデータ(以下、「MIDIデータ」と呼ぶ)を受信し、受信したMIDIデータをCPU101に転送したり、CPU101により生成されたMIDIデータを外部機器に送信したりする。第1実施形態においては、MIDI入出力部109にはMIDIキーボード121が接続されている。MIDIキーボード121は、鍵盤、スライダー等の各種操作子を有し、ユーザの操作に応じてMIDIデータをMIDI入出力部109に送信する。
【0035】
アナログ音声入力部110はコンピュータ1の内部においてA/Dコンバータ111およびアンプ113と接続され、外部機器から入力されるアナログ音声信号をA/Dコンバータ111およびアンプ113に出力する。第1実施形態においては、アナログ音声入力部110にはエレクトリックギター122が接続されている。エレクトリックギター122は、本体に張られたスチールの弦と、弦の振動をピックアップするセンサ等を有し、ユーザの演奏による弦の振動をアナログ音声信号に変換し、アナログ音声入力部110に出力する。A/Dコンバータ111はアナログ音声入力部110を介して入力されるアナログ音声信号をデジタル音声データに変換しRAM104に記録する。
【0036】
D/Aコンバータ112は、CPU101またはDSP102によってRAM104から読み出されるデジタル音声データをアナログ音声信号に変換し、アンプ113に出力する。アンプ113はアナログ音声入力部110およびD/Aコンバータ112から入力されるアナログ音声信号を増幅し、スピーカ114に出力する。スピーカ114はアンプ113から入力されるアナログ音声信号を空気振動に変換することにより、発音する。
【0037】
[1.2:音楽アプリケーションの構成および動作]
続いて、音楽アプリケーション1の構成および動作を説明する。音楽アプリケーション1は、図2に示す基本パッケージと複数の拡張パッケージの複合体である。これらの各パッケージは、ユーザからの指示に従い、インターネット120を介してコンピュータ1にダウンロードされ、HD105にインストールされる。
【0038】
基本パッケージには、基本プログラムおよび関連データが含まれている。また、各拡張パッケージには、拡張プログラムおよび関連データが含まれている。CPU101は、基本プログラムに従い、拡張プログラムの実行管理を行う。従って、拡張プログラムのインストールに先立ち、基本プログラムは必ずコンピュータ1にインストールされなければならない。拡張プログラムは基本プログラムのインストールの後にコンピュータ1にインストールされるが、ユーザは複数の拡張パッケージから利用を希望するものを選び、選んだ拡張パッケージに含まれる拡張プログラムのみをコンピュータ1にインストールすることができる。
【0039】
図3は基本プログラムと拡張プログラムの関係を模式的に示した図である。まず、ユーザによってコンピュータ1もしくはコンピュータ1に接続された外部機器に対する操作が行われた場合、基本プログラムは、この操作を表すデータを、コンピュータ1のOS(Operating System)を介して受信し、受信したデータを拡張プログラムに受け渡す(データフローF301)。また、基本プログラムは、拡張プログラムによりデータが生成された場合、OSを介して、その生成されたデータに応じた処理、例えば拡張プログラムにより生成された音声データの再生等をコンピュータ1に実行させる(データフローF305、データフローF306)。また、基本プログラムは、ある拡張プログラムに従ってコンピュータ1が生成したデータを、他の拡張プログラムに従って実行されるコンピュータ1の処理において利用させる(データフローF307、データフローF308およびデータフローF309)。すなわち、基本プログラムはプログラム間のデータの受け渡しを行う手段として働く。
【0040】
ユーザがコンピュータ1に何らかのプログラムを実行させたり、あるいは実行中のプログラムとユーザとの間で情報の授受を行わせるに当たり、いずれのプログラムをその対象とするかについてユーザに指示を求める必要が生じることがある。このユーザからの指示を得るために、本実施形態における基本プログラムは、コンピュータ1の表示部106に、複数のユーザインタフェースを配置した画面を表示する。ここで、ユーザインタフェースとは、コンピュータ1の表示部106に表示される画面の構成要素、すなわちコマンドボタン、テキストボックス、リストボックス等を表す。
【0041】
これらのユーザインタフェースは、コンピュータ1が実行可能な何らかの拡張プログラムの処理に関連付けられている。ユーザがあるユーザインタフェースに対し、クリック等の操作を行うと、基本プログラムは、そのユーザインタフェースに関連付けられている処理をコンピュータ1に実行させる(データフローF302)。また、コンピュータ1がある拡張プログラムに従い特定の処理を実行し、データを生成すると、基本プログラムは、コンピュータ1に、その処理が関連付けられているユーザインタフェースにそのデータの内容を表示させる(データフローF303、データフローF304)。このように、基本プログラムはユーザインタフェースを介してユーザとプログラムとの間の指示またはデータの受け渡しを行う手段としても働く。
【0042】
上記のように、基本プログラムは、各プログラムとその環境を構成する他のプログラムとの間のデータの受け渡し手段としての機能を持つ。この機能を実行するために、本実施形態における基本プログラムは、予め用意された入出力関係表を参照する。この入出力関係表は、コンピュータ1が実行可能な基本プログラムおよび拡張プログラムの各々について、各プログラムに従って実行される処理において得られる出力データが、他のプログラムに従って実行されるいずれの処理の入力データとなるかを定義した表である。
【0043】
また、本実施形態における基本プログラムは、ユーザインタフェースとプログラムとの間のデータの受け渡し手段としての機能を果たすために、予め用意された構成要素表を参照する。この構成要素表は、表示部106にユーザインタフェースを表示させるためのユーザインタフェースデータおよび各ユーザインタフェースに何らかの処理を関連づけるリンク先処理ID(リンクデータ)により構成されている。基本プログラムは、構成要素表に従い、ユーザインタフェースを表示部106に表示させると同時に、ユーザインタフェースをプログラムに従って実行される何らかの処理に関連付け、ユーザとプログラムとの間のデータの受け渡しを行う。
【0044】
上述した入出力関係表および構成要素表は、基本パッケージに基本プログラムの関連データとして含まれる環境雛形データ、および拡張パッケージに拡張プログラムの関連データとして含まれる環境雛形データとして、音楽アプリケーション1のプロバイダから提供される。基本パッケージに含まれる環境雛形データには、基本プログラムとOSとの間のデータの受け渡しに関する入出力関係表と、基本プログラムの起動時に表示されるユーザインタフェースに関する構成要素表が含まれている。
【0045】
また、拡張パッケージに含まれる環境雛形データは、仮に音楽アプリケーション1のプロバイダによって提供される全ての拡張プログラムがコンピュータ1にインストールされた、いわばフル装備状態を想定して作成されている。さらに詳述すると、拡張パッケージに含まれる環境雛形データには、その拡張パッケージに含まれる拡張プログラムと、基本プログラムおよび他のあらゆる拡張プログラムとの間のデータの受け渡しに関する入出力関係表が含まれている。また、拡張パッケージに含まれる環境雛形データには、その拡張パッケージに含まれる拡張プログラムと関係を持つあらゆる処理について、その処理の実行制御のための情報の授受をユーザと行うためのユーザインタフェースを関連付けた構成要素表が含まれている。
【0046】
このように、環境雛形データは、コンピュータのOSがあらゆる種類の機能を提供可能であり、またコンピュータに全ての拡張プログラムがインストールされている場合を想定してデザインされている。しかし、実際にユーザが利用するコンピュータ1を考えると、環境雛形データに含まれるデータの中には、コンピュータ1のOSが提供できない機能や、コンピュータ1にインストールされていない拡張プログラムに関連するデータもあり、そのようなデータは不要である。そこで、本実施形態においては、基本プログラムおよび拡張プログラムがコンピュータ1にインストールされる際に、環境雛形データから、コンピュータ1において利用可能なOSの機能および拡張プログラムに関するデータのみを抽出した環境データが生成され、この環境データが実際に基本プログラムにより利用される。
【0047】
図4は、図3に示した例と比較し、OSが提供する機能およびコンピュータにインストールされている拡張プログラムが少ない場合のデータフローを示している。すなわち、図4におけるコンピュータにおいては、OSはMIDIデータの入力処理を行うことができないためMIDIキーボード121が接続されておらず、また拡張プログラム「コーラス」がインストールされていない。環境雛形データは、図3に示される全てのデータフロー、すなわちデータフローF301からデータフローF309に関するデータを含んでいる。しかしながら、図4に示されるコンピュータにおいて実際に利用される環境データには、利用できないデータフローF301、データフローF304等に関するデータは含まれない。その結果、表示部106には、利用できないデータフローF304が関連付けられているユーザインタフェースが表示されることはない。
【0048】
続いて、ユーザがコンピュータ1に、基本プログラム、拡張プログラムの順でそれらのプログラムをインストールし、音楽アプリケーション1を利用する場合のコンピュータ1の動作の詳細を説明する。ユーザはインターネットを介し、音楽アプリケーション1のプロバイダのHP(Home Page)から音楽アプリケーション1の基本パッケージをコンピュータ1にダウンロードすることができる。基本パッケージには、基本プログラムに加え、複数の環境雛形データおよび複数の部品データが含まれている。
【0049】
ユーザは、ダウンロードした基本パッケージに含まれる基本プログラムをコンピュータ1にインストールすることができる。この基本プログラムのインストールの際、CPU101はコンピュータ1の環境等を調査し、プログラムデータベース、入出力データベース、処理データベース、部品データデータベース、複数の環境データ、および環境データデータベースを作成する。CPU101はこれらの各データベース等を、HD105に格納する。以下、上記の各データベース等の構成および内容を説明する。
【0050】
図5は、基本プログラムのみがインストールされた段階におけるプログラムデータベースの内容を示す図である。プログラムデータベースは、HD105に格納されているプログラムの情報が登録されたデータベースである。この段階において、プログラムデータベースには、インストールされた基本プログラムのプログラムID、プログラム名、バージョン情報およびプログラムファイル名が登録されている。図5に示す例では、基本プログラムのバージョンは1.0であり、HD105における格納先はc:¥musicsystem¥program¥p0001.exeである。
【0051】
図6には基本プログラムのみがインストールされた段階における入出力データベースの内容が例示されている。入出力データベースは、HD105に格納されている各プログラムについて、如何なるデータの入出力が行われるかを定義するデータベースである。この図に示すように、入出力データベースには、基本プログラムおよびこれに関連する各プログラムのプログラムIDおよびプログラム名が登録されている。これらの各プログラムは入出力可能な1または複数種類のデータを有している。そこで、入出力データベースには、各プログラムが入出力可能な各データについて各々のデータタイプおよび入出力IDが登録されている。1つの入出力IDのフィールドは入力および出力のサブフィールドに分かれている。
【0052】
図6のデータ例においては、「マイクロフォン」、「スピーカ」、「ディスプレイ」および「MIDIインタフェース」はOSに属するプログラムである。例えばプログラム「マイクロフォン」は外部機器から入力されるアナログ音声信号を、アナログ音声入力部110およびA/Dコンバータ111によりデジタル音声データに変換した後、他のプログラムに出力する。このようにプログラム「マイクロフォン」は他のプログラムに音声データを出力するが、他のプログラムがプログラム「マイクロフォン」に音声データを入力することはない。そこで、プログラム「マイクロフォン」には出力用の入出力IDしか割り当てられていない。入出力IDは各プログラムごとに独立して割り当てられる。
【0053】
図7は基本プログラムのみがインストールされた段階における処理データベースの内容を示す図である。プログラムデータベースに登録されているプログラムは、CPU101に1または複数の処理を行わせる。処理データベースには、このプログラムデータベースに登録されたプログラムに従って実行される各処理のうち、ユーザからパラメータの指定等を受けたり、結果をユーザに対し表示したりするものについて、各処理を実行するプログラムのプログラムIDおよびプログラム名と、各処理の処理ID、処理名および設定範囲が登録されている。設定範囲とは、処理に対しユーザが与えることが可能なパラメータの範囲を示す情報であり、具体的には数値の範囲やONまたはOFF等が登録される。
【0054】
図7のデータ例によれば、基本プログラムが行う各処理のうち、音楽アプリケーション1の終了、音楽アプリケーション1の環境設定の起動およびブラウザの起動が登録されている。このデータベースにおいて、処理IDは各プログラムごとに独立して割り当てられる。
【0055】
図8は基本プログラムのみがインストールされた段階における部品データデータベースの内容を示す図である。部品データデータベースには音楽アプリケーション1において利用可能な部品データの部品データID、部品スタイル名、部品タイプおよび部品データファイル名が登録されている。部品データは、プログラムと共にコンピュータ1にダウンロードされるデータであり、コマンドボタンやテキストボックス等、画面の構成要素、すなわちユーザインタフェースとなり得る部品を表すデータである。この部品データは、その部品をユーザインタフェースとして画面に表示させるための画像データと、その表示されたユーザインタフェースに対して、マウスによるクリックなど、ユーザの操作が行われた場合にその操作に応じて実行されるプログラムモジュール等から構成される。
【0056】
図9は基本プログラムのみがインストールされた段階における環境データデータベースの内容を示す図である。環境データデータベースには音楽アプリケーション1において利用可能な環境データに関し、環境データID、環境データ名および環境データファイル名が登録されている。図9に示す環境データデータベースに登録されている環境データは全て、基本パッケージに含まれる環境雛形データに基づき、基本プログラムのインストール時に生成された環境データである。以下、基本パッケージに含まれる環境雛形データから環境データが生成される処理を説明する。
【0057】
図10は環境雛形データ「メインメニュー用ツールバー」の内容を示す図である。この図に示すように、環境雛形データは、プログラム間のデータの入出力関係を示す入出力関係表と、画面の構成要素、すなわちユーザインタフェースと、それらのユーザインタフェースに関連付けられる処理を示す構成要素表から構成されている。
【0058】
入出力関係表には、複数の入出力関係データの集合体である。個々の入出力関係データは、出力と入力のフィールドを有しており、出力フィールドによって指定された、あるプログラムのある出力データが、入力フィールドによって指定された、あるプログラムのある入力データとなることを示す。出力フィールドは、出力データの発生元であるプログラムのプログラムIDおよびプログラム名と、出力データのデータタイプおよび入出力IDとからなる。一方、入力フィールドは、出力フィールドによって示された出力データの供給先であるプログラムのプログラムIDおよびプログラム名を有する。さらに入力フィールドは、出力フィールドによって指定された出力データがその供給先のプログラムにおいて如何なる入力データとして取り扱われるかを表す情報、具体的にはその入力データのデータタイプおよび入出力IDを有している。例えば、図10の入出力関係表の第5行の入出力関係データは、基本プログラムから出力される音声がスピーカに音声として入力されることを示している。
【0059】
一方、構成要素表には、画面に配置される個々のユーザインタフェースを表す複数の構成要素データによって構成されている。そして、1つの構成要素データは、構成要素ID、部品データID、部品タイプ、表示位置情報およびリンク先処理IDによって構成されている。構成要素データにおける部品データID、部品タイプおよび表示位置情報はユーザインタフェースの表示に関するデータであり、これらを総称してユーザインタフェースデータと呼ぶ。一方、リンク先処理IDはユーザインタフェースに関連付けられる処理に関するデータであり、リンクデータと呼ぶ。これらのデータの具体的な役割は、以下の環境データの説明において併せて説明する。
【0060】
図11は環境データ「メインメニュー用ツールバー」の内容を示す図である。環境データは既述のように、環境雛形データに含まれるデータから、コンピュータ1において現在、利用可能なものが抽出されて生成されたものである。また、環境雛形データから環境データが生成される際、必要であれば環境雛形データにおける表示位置情報に修正が加えられ、修正後の表示位置情報が環境データに登録される。ここで、環境データは、元となる環境雛形データと同じ名称を持つ。従って、環境雛形データ「メインメニュー用ツールバー」から生成された環境データの名称は「メインメニュー用ツールバー」となる。
【0061】
続いて、環境雛形データ「メインメニュー用ツールバー」および環境データ「メインメニュー用ツールバー」を例に、環境データの生成処理の具体例を示す。まず、基本パッケージから基本プログラムがインストールされると、CPU101は、この基本プログラムに従い、基本パッケージから環境雛形データ「メインメニュー用ツールバー」を読み込む。続いて、CPU101は、環境雛形データの入出力関係表を構成する各入出力関係データについて、各々を環境データに組み込むか否かを判定する。さらに詳述すると、CPU101は、判定対象である入出力関係データの出力フィールドのプログラムIDと入出力IDの組と、入力フィールドのプログラムIDと入出力IDの組の両方が、入出力データベースに登録されているか否かを判定する。この判定結果が肯定的である場合に、CPU101は、その入出力関係データを環境データに組み込む対象とし、そうでない場合には環境データに組み込まない。
【0062】
例えば、図10の入出力関係表の第4行に示される入出力関係データは、基本プログラムからMIDIインタフェースへのデータの流れを示すものであり、出力フィールドに基本プログラムのプログラムID「P0001」とMIDIの入出力ID「MO01」を有し、かつ、入力フィ−ルドにMIDIインタフェースのプログラムID「S0085」とMIDIの入出力ID「MI01」を有している。しかし、この入出力関係データにおいて入力フィールドにあるプログラムID「S0085」および入出力ID「MI01」の組は、入出力データベース(図6)に登録されていない。これは、コンピュータ1がMIDI出力用のインタフェースを有しておらず、MIDIインタフェースに対して他のプログラムがMIDIデータの入力を行うことができないためである。従って、CPU101はこの第4行を入出力関係データを環境データに組み込む対象から除外する。CPU101は、上記のような処理を入出力関係表における全ての入出力関係データについて実施し、環境データを作成する。
【0063】
続いて、CPU101は、環境雛形データに含まれる各構成要素データのリンク先処理IDが、処理データベース(図7)に登録されているか否かを判定する。CPU101は、この判定結果が肯定的である場合には判定対象である構成要素データを環境データに組み込み、否定的である場合にはその構成要素データを環境データに組み込まない。
【0064】
例えば、図10の構成要素表の第2行にはP0001−CB101がリンク先処理IDとして登録されているが、この処理IDは処理データベースに登録されているため、環境データに組み込まれる。CPU101は同様の処理を構成要素表の全ての構成要素データについて行う。以上のような処理により、環境雛形データから環境データが生成される。
【0065】
続いて、上記のように生成された環境データの役割を説明する。まず、環境データの入出力関係表は、環境雛形データにおいて既に説明したように、プログラム間のデータの入出力関係を示している。CPU101は、あるプログラムに従い出力データを生成した場合、入出力関係表を参照し、その生成したデータを入出力関係表により指定されるプログラムに入力データとして引き渡す。
【0066】
環境データの構成要素表は、複数の構成要素データによって構成されている。各構成要素データは、環境雛形データにおいて既に説明したように、画面に表示される個々の構成要素、すなわちユーザインタフェースに関連するデータであり、構成要素ID、部品データID、部品タイプ、表示位置情報およびリンク先処理IDにより構成されている。環境雛形データにおける場合と同様に、これらのうち、ユーザインタフェースの表示に関する部品データID、部品タイプおよび表示位置情報はユーザインタフェースデータと呼ばれ、ユーザインタフェースに関連づけられる処理に関するリンク先処理IDはリンクデータと呼ばれる。
【0067】
構成要素IDは、各ユーザインタフェースを一意に識別するためのIDである。各ユーザインタフェースの画像を画面に表示するためには、部品データデータベース内のいずれかの部品データを参照する必要がある。構成要素データにおける部品データIDと部品タイプは、構成要素IDによって特定されるユーザインタフェースの画像を表示するために部品データデータベース内のどの部品データを参照すべきかを特定するものである。
【0068】
表示位置情報は、ユーザインタフェースの表示位置と表示サイズを特定する情報であり、4つの数値からなる。表示位置情報における第1および第2の各数値は、構成要素IDによって特定されるユーザインタフェースの表示画像において、最も左上にある代表点の画面内でのX座標値およびY座標値を各々特定するものである。また、表示位置情報における第3の数値は、ユーザインタフェースの表示画像のY軸方向のサイズ、第4の数値はX軸方向のサイズを各々特定するものである。
【0069】
リンク先処理IDは、ユーザインタフェースの表示画像に対してマウスによるクリックなどの操作が行われた場合に実行される処理を示す情報で、処理データベース(図7)に登録されている処理をプログラムIDと処理IDの組み合わせにより特定している。なお、すべてのユーザインタフェースがいずれかの処理にリンクされる必要はない。
【0070】
続いて、構成要素表における各構成要素データの役割および関係を説明する。まず、構成要素表の先頭行の構成要素データは、表示部106に表示される画面の背景に対応するデータである。この先頭行の構成要素データは、表示位置情報として、表示部106に表示される画面の背景の左上端の位置のX、Y座標値を含んでいる。そして、構成要素表の第2行以降の構成要素データは、背景の上に表示されるユーザインタフェースに対応するデータであり、これに含まれるX、Y座標値は、背景の左上端を原点としたXY座標系における当該ユーザインタフェースのX座標値およびY座標値である。
【0071】
図11の構成要素表によれば、まず先頭行のデータは、部品データIDがIM101であるイメージを画面の背景として指定している。部品データ「IM101」は、部品データデータベース(図8)によれば、透明長方形である。続いて、第2行のデータは、コマンドボタンを背景の上に表示し、そのコマンドボタンに処理「P0001−CB101」をリンクすることを指定している。処理データベース(図7)によれば、この処理は基本プログラムによる音楽アプリケーション1の終了処理である。同様に、第3行および第4行のデータは、さらに2つのコマンドボタンを背景の上に表示し、それらに音楽アプリケーション1の環境設定の起動処理およびブラウザの起動処理をリンクすることを指定している。
【0072】
続いて、図12は環境データ「メインメニュー・クラシック」の内容を示す図である。図12の入出力関係表は環境データ「メインメニュー用ツールバー」(図11)の入出力関係表と同じであるが、構成要素表は環境データ「メインメニュー用ツールバー」のものと異なっている。まず、先頭行のデータは、部品データ「IM089」を画面の背景として指定している。部品データ「IM089」は、部品データデータベース(図8)によれば、水色長方形である。続いて、第2行のデータは、部品データ「CW035」を背景の上に表示することを指定している。部品データ「CW035」の部品タイプである子ウィンドウは、各処理がユーザに対し情報を表示するために用いる画面領域である。
【0073】
続いて、第3行のデータは、部品データ「EV201」を画面を背景の上に表示することを指定している。しかしながら、部品データデータベース(図8)には部品タイプが環境データである部品データは登録されていない。このように、構成要素表において部品タイプが環境データである構成要素を指定するデータがある場合、そのデータはその環境データにより構成される画面を、全体画面の一部として表示することを指定している。
【0074】
以下の説明において、ある環境データの構成要素表が、他の環境データで構成される画面を構成要素として指定している場合、前者の環境データを親環境データ、後者の環境データを子環境データと呼ぶ。環境データデータベース(図9)によれば、環境データIDがEV201である環境データは、環境データ「メインメニュー用ツールバー」(図11)である。この環境データ「メインメニュー用ツールバー」は環境データ「メインメニュー・クラシック」の子環境データである。逆に、環境データ「メインメニュー・クラシック」は環境データ「メインメニュー用ツールバー」の親環境データである。
【0075】
図13は、環境データ「メインメニュー・クラシック」の構成要素表に従い、CPU101が表示部106に表示する画面を示している。図13におけるコマンドボタン群141は、図12の構成要素表の第3行の構成要素データにより参照される、図11の環境データ「メインメニュー用ツールバー」に対応している。また、図13における子ウィンドウ142は、図12の構成要素表の第2行の構成要素データに対応している。
【0076】
なお、基本パッケージには環境データ「メインメニュー・クラシック」および「メインメニュー用ツールバー」以外の環境データも含まれている。例えば、環境データデータベース(図9)には環境データ「メインメニュー・カジュアル」が登録されているが、これは環境データ「メインメニュー・クラシック」とは異なる部品データ等を指定することにより、図13に示した画面とは異なる外観の画面を構成する環境データである。
【0077】
続いて、基本プログラムが有する音楽アプリケーション1の環境設定の機能概要を説明する。図14は音楽アプリケーション1の環境設定の画面である。図14によれば、環境設定の項目は「環境データ」、「パッケージ」および「その他」に分類されている。
【0078】
環境設定「環境データ」の画面においては、ユーザは音楽アプリケーション1の起動時に選択される環境データを、環境データデータベース(図9)に登録されているものから指定できる。図14に示した例によれば、環境データ「メインメニュー・クラシック」が起動時に選択される環境データとして指定されている。また、この画面において、ユーザは環境データの追加、削除および編集をすることができる。
【0079】
環境設定「パッケージ」の画面(図示略)においては、ユーザは拡張パッケージの追加や削除、基本パッケージおよび拡張パッケージのバージョンアップ等を行うことができる。その際、プログラムデータベース(図5)が更新および参照される。また、環境設定「その他」の画面(図示略)においては、ユーザはデータフォーマットに関する設定、MIDIに関する設定、ユーザアカウントの設定、セキュリティに関する設定等を行うことができる。
【0080】
続いて、図15を用いて、音楽アプリケーション1が起動される際のCPU101の動作を説明する。まずユーザがコンピュータ1に対し音楽アプリケーション1の起動の指示を与えると(ステップS101)、CPU101は基本プログラムをHD105からRAM104に読み出し、基本プログラムに従い、起動時の環境データとして指定されている環境データの環境データIDを取得する(ステップS102)。上記の図5から図14までの各図に示した具体例(以下、単に「具体例」と呼ぶ)によれば、ステップS102においてCPU101が取得する環境データIDは環境データ「メインメニュー・クラシック」のIDであるEV301である。
【0081】
続いて、CPU101は環境データデータベース(図9)を参照し、取得した環境データIDから環境データファイル名を取得する(ステップS103)。具体例によれば、ステップS103においてCPU101が取得する環境データファイル名はc:¥musicsystem¥environment¥301.envである。
【0082】
続いて、CPU101は取得した環境データファイル名で指定される環境データを読み出し、読み出した環境データの構成要素表の先頭の構成要素データに含まれる部品タイプが環境データか否かを判定する(ステップS104)。
【0083】
ステップS104の判定の結果、先頭行の部品タイプが環境データでない場合、CPU101はその行の部品データIDを取得する(ステップS105)。具体例によれば、ステップS105においてCPU101は環境データ「メインメニュー・クラシック」(図12)の先頭行の部品データIDとしてIM089を取得する。
【0084】
続いて、CPU101は部品データデータベース(図8)を参照し、部品データIDから部品データファイル名を取得する(ステップS106)。具体例によれば、ステップS106においてCPU101が取得する部品データファイル名はc:¥musicsystem¥part¥089.imgである。
【0085】
続いて、CPU101は部品データファイル名で指定される部品データを読み込み、読み込んだ部品データの画像データを環境データの表示位置情報で指定される位置に指定されるサイズで表示する(ステップS107)。なお、最初に表示される背景の構成要素に関しては、表示位置情報により指定される位置をXY座標系の原点とする代わりに、例えば音楽アプリケーション1の前回終了時の画面位置に基づく可変位置を基準位置としてもよい。具体例によれば、ステップS107においてCPU101は背景として水色長方形を表示部106の適当な位置に表示させる。
【0086】
続いて、CPU101は構成要素表に処理すべき次の構成要素データがあるか否かを判定し(ステップS108)、次の構成要素データがある場合にはそのデータに関して、ステップS104からステップS108の処理を繰り返す。具体例においては、環境データ「メインメニュー・クラシック」の構成要素表には3行の構成要素データがあるため、先頭行の構成要素データに関する処理に続き、第2行の構成要素データに関してステップS104からステップS108の処理が行われ、再度ステップS104に処理が戻される。このような過程を経ることにより、CPU101は子ウィンドウを表示部106に表示させる。なお、ステップS104からステップS107までの一連の処理を、以下、「構成要素表示処理」と呼ぶ。
【0087】
ステップS104において、判定対象となった構成要素データが部品タイプとして環境データを指定している場合、その構成要素データにおける部品データIDは、現在読み込んでいる環境データを親環境データとする子環境データを指定している。その場合、CPU101はその部品データIDを、子環境データの環境データIDとして取得する(ステップS109)。具体例によれば、環境データ「メインメニュー・クラシック」の構成要素表の第3行における部品タイプが環境データであるため、CPU101はそのデータ行の部品データIDの値、すなわちEV201を子環境データの環境データIDとして取得する。
【0088】
続いて、CPU101は環境データデータベース(図9)を参照し、子環境データの環境データIDから、子環境データの環境データファイル名を取得する(ステップS110)。具体例によれば、ステップS110においてCPU101が取得する環境データファイル名はc:¥musicsystem¥environment¥201.envである。
【0089】
続いて、CPU101は取得した環境データファイル名を用いて、構成要素表示処理、すなわちステップS104からステップS107までの一連の処理を行う(ステップS111)。その結果、子環境データの構成要素表の先頭行のデータが示す背景のイメージが画面に表示される。続いて、CPU101は子環境データの構成要素表に処理すべき次の構成要素データがあるか否かを判定し(ステップS112)、次の構成要素データがある場合にはそのデータに関して、構成要素表示処理を繰り返す(ステップS111)。具体例によれば、ステップS111が環境データ「メインメニュー用ツールバー」(図11)の構成要素表の第1行から第4行の構成要素データに関して繰り返され、このような過程を経て、CPU101は表示部106に3つのコマンドボタンを表示する。
【0090】
ステップS112における判定において、子環境データの構成要素表に処理すべき次の構成要素データがない場合、CPU101はさらに親環境データの構成要素表に関し、処理すべき次の構成要素データがあるか否かを判定する(ステップS113)。親環境データの構成要素表に次の構成要素データがある場合には、CPU101は処理をステップS104に戻し、ステップS108の判定において処理すべき次の構成要素データがないと判定されるまで、ステップS104からステップS108の処理を繰り返す。そして、CPU101は親環境データの構成要素表の最終行の構成要素データを処理した後、上記の一連の処理を終了する。
【0091】
また、ステップS113の判定において親環境データの構成要素表に処理すべき次の構成要素データがない場合、CPU101は上記の一連の処理を終了する。具体例によれば、子環境データ「メインメニュー用ツールバー」の構成要素表の最終行の構成要素データに関する構成要素表示処理が終了した後、親環境データ「メインメニュー・クラシック」の構成要素表には処理すべき構成要素データが残っていないので、CPU101は一連の処理を終了する。
【0092】
上記の一連の処理の結果、音楽アプリケーション1の表示画面として、図13に例示した画面が表示部106に表示される。なお、子環境データの構成要素表がさらに別の環境データを指定している場合、ステップS109からステップS113の処理が再帰的に実行される。その結果、複数の環境データにより構成される画面が階層的に組み合わされ、より複雑な画面が構成される。
【0093】
次に、音楽アプリケーション1の表示画面において、ユーザがいずれかの画面の構成要素、すなわちユーザインタフェースに対し操作を行う場合の、音楽アプリケーション1の動作について説明する。音楽アプリケーション1の画面が表示されている間、基本プログラムに従い、CPU101はきわめて短い時間間隔で定期的に、ユーザによる操作部107を用いた操作の検出処理を行っている。ユーザが音楽アプリケーション1の画面において、特定のユーザインタフェースをマウスでクリックしたり、キーボードから文字等を入力したりした場合、CPU101は現在表示されている画面の構成に用いられた環境データの構成要素表を参照し、操作が行われた際のカーソルの位置情報から操作の対象となったユーザインタフェースを特定する。
【0094】
続いて、CPU101は、構成要素表において、特定されたユーザインタフェースにリンクされる処理が示されている場合、そのリンクされる処理を実行する。その際、ユーザにより行われた操作の内容、すなわちクリックやダブルクリック等の操作の種類や、入力されたデータ等をパラメータとして処理に利用する。
【0095】
例えば、図14の画面においてコマンドボタン「ブラウザ」がクリックされた場合、CPU101は親環境データ「メインメニュー・クラシック」(図12)の構成要素表を参照し、続いて子環境データ「メインメニュー用ツールバー」(図11)の構成要素表を参照し、クリックされた位置が、ユーザインタフェース「CB003」の表示位置であることを特定する。
【0096】
続いてCPU101は、ユーザインタフェース「CB003」の部品タイプがコマンドボタンであることから、コマンドボタンがクリックされた場合の処理、すなわちコマンドボタンの押下状態への表示変更およびクリック音の発音を行う。同時に、CPU101は構成要素表においてユーザインタフェース「CB003」のリンク先処理ID「P0001−CB103」を用いて、処理データベース(図7)を参照して、基本プログラムのブラウザの起動処理を実行する。その結果、表示部106には図13に示した画面が表示される。
【0097】
上記のように、基本パッケージのみで構成される音楽アプリケーション1はブラウザ機能等の基本機能しか持たない。従って、これのみでは満足することができないユーザは、インターネットを介し、音楽アプリケーション1のプロバイダのHPから図2に示した拡張パッケージのうち、利用を希望するものをコンピュータ1にダウンロードすることができる。拡張パッケージには拡張プログラム、複数の環境雛形データ、複数の部品データおよび拡張プログラムが利用する音声データ、静止画データおよび動画データ、MIDIデータ、楽譜データ、音源データおよび伴奏パターンデータ等が含まれている。
【0098】
図2に示したように、拡張パッケージは内容に応じて「一般」、「楽器」、「楽曲」等に分類されている。「一般」に分類される拡張パッケージは、いずれの楽器の演奏者にとっても共通に利用可能な機能をコンピュータ1に実現させる拡張プログラムを含んでいる。例えば「一般」の「エフェクタ」に分類される拡張パッケージ「リバーブ」に含まれる拡張プログラムに従って、コンピュータ1は入力される音声情報に対し、残響音を付加する機能を実現する。
【0099】
より具体的に説明すると、本実施形態では、CPU101の制御のもとで、A/Dコンバータ111はアナログ音声入力部110から入力されるアナログ音声信号をデジタル音声データに変換して、RAM104に記録する。そして、CPU101は拡張プログラム「リバーブ」の実行が指示されると、この拡張プログラム「リバーブ」に従い、DSP102に対してリバーブ処理を指示する。DSP102はCPU101の指示に従い、RAM104から音声データを読み出し、先行する音声データを加工して残響音に対応する音声データを生成し、後続の音声データに順次加算することにより再生用の音声データを生成する。DSP102により生成された再生用の音声データはD/Aコンバータ112、アンプ113およびスピーカ114を介して楽音として発音される。なお、このリバーブ処理はDSP102によらず、CPU101が行っても良い。
【0100】
「楽器」に分類される拡張パッケージは、コンピュータ1に音源モジュールやギターアンプ等の音響機器の機能を実現させることにより、コンピュータ1を楽器もしくは楽器の一部として機能させる拡張プログラムを含んでいる。例えば拡張プログラム「電子ピアノ」に従って、コンピュータ1は電子ピアノ音源の機能を実現する。
【0101】
より具体的に説明すると、まず拡張パッケージにはアコースティックピアノの各音高の音をサンプリングして得られる音声データが波形データとして含まれている。CPU101は、拡張プログラム「電子ピアノ」の実行を指示されると、この拡張プログラム「電子ピアノ」に従い、MIDIキーボード121等からMIDIデータを受信し、このMIDIデータにより指定される音高に対応する波形データを再生処理するよう、DSP102に指示する。DSP102はCPU101の指示に従い、RAM104から指定された波形データを読み出し、その波形データに対し音高調整等の処理を行い、再生用の音声データを生成する。DSP102により生成された再生用の音声データはD/Aコンバータ112、アンプ113およびスピーカ114を介して楽音として発音される。なお、このDSP102により行われる処理は、CPU101により行われても良い。
【0102】
なお、コンピュータ1に音源モジュールの機能を実現させる拡張プログラムには、コンピュータ1に電子的な楽音を生成させる際、上記のように実際の楽器音から得られる音声データを用いる方式以外に、減算方式、加算方式、FM(Frequency Modulation)方式、物理モデリング方式、およびそれらの組み合わせ等の様々な方式を用いるものがある。
【0103】
「楽曲」に分類される拡張パッケージには、ユーザに対し楽曲演奏の支援を行う拡張プログラムが含まれている。例えば、「楽曲」の「クラシックピアノ」に分類される拡張パッケージ「エリーゼのために」に含まれる拡張プログラムに従って、コンピュータ1は楽曲「エリーゼのために」の楽譜の表示、伴奏の再生、ユーザの演奏の評価等を行う。
【0104】
続いて、ユーザが「一般」に分類される拡張パッケージ「シーケンサ」、「楽器」に分類される拡張パッケージ「電子ピアノ」および「エレクトリックギター」に含まれる拡張プログラムをインストールする場合を例に、拡張プログラムがコンピュータ1にインストールされる際のコンピュータ1の動作を説明する。
【0105】
ユーザは、拡張パッケージ「シーケンサ」、「電子ピアノ」および「エレクトリックギター」をプロバイダのHPからコンピュータ1にダウンロードした後、これらの拡張パッケージに含まれる拡張プログラムをコンピュータ1にインストールする。
【0106】
拡張プログラムのインストールの際、プログラムデータベース(図5)に、インストールされた拡張プログラムに関する情報が登録される。また、入出力データベース(図6)に、インストールされた拡張プログラムが扱うことが可能なデータの入力および出力に関する情報が登録される。また、処理データベース(図7)に、インストールされた拡張プログラムが行うことが可能な処理に関する情報が登録される。また、部品データデータベース(図8)に、インストールされた拡張プログラムと共に拡張パッケージからコンピュータ1にインストールされた部品データに関する情報が登録される。図16、図17、図18および図19は、それぞれ、3つの拡張プログラムがインストールされた結果、更新されたプログラムデータベース、入出力データベース、処理データベースおよび部品データデータベースを示している。
【0107】
続いて、拡張パッケージに含まれる環境雛形データから新たな環境データが生成される。拡張パッケージに含まれる環境雛形データの構成および役割、環境雛形データから環境データが生成される際の処理は基本パッケージに含まれる環境雛形データと同様である。以下、具体例を用いて、環境データの生成処理を補足的に説明する。
【0108】
図20は、拡張パッケージ「電子ピアノ」に含まれる環境雛形データ「ピアノ・クラシック」の内容を示した図である。この環境雛形データがコンピュータ1にダウンロードされた時点では、コンピュータ1のハードウェアの構成および既にインストールされている拡張プログラムの構成が不明である。従って、環境雛形データの入出力関係表には、拡張プログラム「電子ピアノ」の実行時に利用される可能性のあるあらゆるデータの入出力関係に関し、それらを指定する入出力関係データがリストアップされている。
【0109】
同様に、環境雛形データの構成要素表には、拡張プログラム「電子ピアノ」と共に利用される可能性のあるあらゆる他のプログラムの処理に関し、それらにリンクされたユーザインタフェースを指定する構成要素データがリストアップされている。
【0110】
上記の環境雛形データの各入出力関係データおよび各構成要素データのうち、コンピュータ1において利用できるもののみが抽出されて、環境データが生成される。また、その抽出処理に伴い、必要であれば環境雛形データにおける表示位置情報に修正が加えられ、修正後の表示位置情報が環境データの表示位置情報として用いられる。
【0111】
図21は環境雛形データ「ピアノ・クラシック」(図20)から生成される環境データ「ピアノ・クラシック」の内容を示す図である。例えば、環境雛形データ「ピアノ・クラシック」に含まれる各データのうち、コンピュータ1にインストールされていない拡張プログラム「リバーブ」等に関連する入出力関係データは、環境データ「ピアノ・クラシック」に含まれていない。また、例えばユーザインタフェース「SK001」等の表示位置情報は、環境データ「ピアノ・クラシック」において環境雛形データ「ピアノ・クラシック」におけるものから変更されている。
【0112】
上記のように新たに環境データが生成されると、新たな環境データに応じて、環境データデータベース(図9)が更新される。図22は更新後の環境データデータベースの内容を示す図である。さらに、新たな拡張プログラムがインストールされると、基本プログラムにより、既存の環境データの全てが更新される。なぜなら、既存の拡張プログラムと新たな拡張プログラムとの間で新たに利用可能なデータの入出力関係や処理が生じ、それらの入出力関係や処理に対応するデータを、改めて環境雛形データから抽出して環境データに含める必要があるためである。
【0113】
図23は、基本プログラムがインストールされた後、3つの拡張プログラム「シーケンサ」、「電子ピアノ」および「エレクトリックギター」がインストールされた場合に、これらの拡張プログラムのインストールに伴って更新された環境データ「メインメニュー・クラシック」の内容を示す図である。図23に示す環境データは、更新前の環境データ「メインメニュー・クラシック」(図12)と比較し、更新後の環境データ「メインメニュー・クラシック」の構成要素表には、構成要素IDが各々「CB001」、「CB002」および「CB003」である3行の構成要素データが追加されている。これらは、新たにインストールされた3つの拡張プログラム「シーケンサ」、「電子ピアノ」および「エレクトリックギター」に対応している。
【0114】
図23において、例えば、ユーザインタフェース「CB002」にはリンク先処理IDに「P0001−EV451」が指定されている。「P0001−EV451」は環境データ「EV451」を示しており、環境データデータベース(図22)によれば、環境データIDがEV451である環境データは環境データ「ピアノ・クラシック」である。すなわち、更新後の環境データ「メインメニュー・クラシック」におけるユーザインタフェース「CB002」の構成要素データは、環境データ「メインメニュー・クラシック」により構成される画面から、環境データ「ピアノ・クラシック」により構成される画面を表示させるためのコマンドボタンを示している。
【0115】
続いて、拡張プログラムがインストールされた後の音楽アプリケーション1に従ったCPU101の動作を説明する。ユーザにより音楽アプリケーション1の起動が指示されると、CPU101は、基本プログラムに従い、環境データ「メインメニュー・クラシック」(図23)を読み込み、その環境データに従い図24に示す画面を表示部106に表示させる。図24に示す画面には図13に示した画面に対し、新たにインストールされた拡張プログラムに対応するコマンドボタン群143が追加されている。
【0116】
ユーザが図24の画面において、コマンドボタン「シーケンサ」をクリックすると、CPU101は基本プログラムに従い、環境データ「メインメニュー・クラシック」を参照し、クリックされたコマンドボタンのリンク先処理ID「P0001−EV401」を取得する。CPU101はこのIDの後半の値がEVで始まっていることから、このIDが環境データを示していることを認識し、環境データデータベース(図22)を参照して、環境データIDがEV401である環境データの環境データファイル名として、c:¥musicsystem¥environment¥401.envを取得する。
【0117】
CPU101は取得した環境データファイル名で示される環境データ「シーケンサ・オリジナル」を読み込み、図15のフロー図を用いて説明した、ステップS104以降の処理を行う。その結果、表示部106には図25に示す画面が表示される。
【0118】
図25の画面において、ユーザはMIDIデータおよび音声データの再生、記録、編集等を行うことができる。すなわち、ユーザは図25の画面から拡張プログラム「シーケンサ」の各種機能を利用することにより、コンピュータ1をミュージックシーケンサとして利用することができる。なお、拡張プログラム「シーケンサ」が実現できるミュージックシーケンサの機能は一般的なミュージックシーケンサと同様であるので、詳細な説明は省略する。
【0119】
同様に、ユーザが図24の画面において、コマンドボタン「電子ピアノ」をクリックすると、表示部106には図26に示す画面が表示される。その際、利用される環境データは環境データ「ピアノ・クラシック」である。図26の画面において、ユーザは例えばMIDIキーボード121を用いて演奏を行い、その演奏により生成されるMIDIデータに従って電子的に生成されるピアノ音をコンピュータ1のスピーカ114から発音させることができる。
【0120】
すなわち、ユーザは図26の画面から拡張プログラム「電子ピアノ」の各種機能を利用することにより、コンピュータ1を電子ピアノ音源として利用することができる。なお、拡張プログラム「電子ピアノ」が実現できる電子ピアノ音源の機能は一般的な電子ピアノ音源の機能と同様であるので、詳細な説明は省略する。
【0121】
同様に、ユーザが図24の画面において、コマンドボタン「エレクトリックギター」をクリックすると、表示部106には図27に示す画面が表示される。その際、利用される環境データは環境データ「ギター・ソリッド」である。図27の画面において、ユーザはコンピュータ1をアンプシミュレータとして利用することができる。
【0122】
例えば図27の画面が表示されている状態において、ユーザはエレクトリックギター122を用いて演奏を行う。エレクトリックギター122から出力されるアナログ音声信号は、A/Dコンバータ111においてデジタル音声データに変換される。そのデジタル音声データはDSP102において音響的な歪み処理や周波数成分の増幅等の処理を施され、再生用音声データとして生成される。DSP102により生成された再生用音声データは、D/Aコンバータ112、アンプ113およびスピーカ114を介して発音される。その結果、ユーザはエレクトリックギター122の生成する楽音をギターアンプにより発音した場合と類似の楽音を聴くことができる。なお、拡張プログラム「エレクトリックギター」が実現できるギターアンプの機能は、一般的なアンプシミュレータの機能と同様であるので、詳細な説明は省略する。なお、このDSP102が行う処理は、CPU101により行われても良い。
【0123】
上記のように、図25、図26および図27に示した画面は、それぞれ拡張プログラム「シーケンサ」、「電子ピアノ」および「エレクトリックギター」に対応しており、ユーザはこれらの画面を切り替えることにより、異なる複数のアプリケーションを利用する場合と同様に、コンピュータ1を異なる特定電子機器のように用いることができる。以下、音楽アプリケーション1の特徴をさらに詳しく述べる。
【0124】
まず、音楽アプリケーション1の各画面において、ユーザは異なる複数の拡張プログラムの機能を利用できる。例えば、図26のユーザインタフェース群151は、ユーザが電子ピアノ音源の生成する音の明るさや、鍵盤の重さの感覚を調整するためのスライダ群であり、拡張プログラム「電子ピアノ」の処理にリンクされている。一方、図26のユーザインタフェース群152は、ユーザが演奏の記録および伴奏等の再生に用いるコマンドボタン等であり、拡張プログラム「シーケンサ」の処理にリンクされている。
【0125】
上記のように、音楽アプリケーション1の各画面において、ユーザは異なる複数の拡張プログラムの機能を利用できるが、ユーザは個々の拡張プログラムを意識する必要はない。例えば、図26のユーザインタフェース群152と図27のユーザインタフェース群153とにリンクされている処理は、同じ拡張プログラム「シーケンサ」の処理である。しかしながら、ユーザインタフェース群152とユーザインタフェース群153は外観が異なり、各画面の使用目的に適するようアレンジされているため、ユーザはこれらの複数の拡張プログラムの機能を、1つのプログラムの機能を利用する感覚で利用できる。
【0126】
音楽アプリケーション1はユーザが必要な拡張プログラムをインストールすることにより、その機能を拡大することができるが、ユーザは新たにインストールした拡張プログラムの機能を各画面で利用するために、面倒な設定操作等を行う必要はない。
【0127】
図28および図29は、ユーザがさらにコンピュータ1に拡張パッケージ「エリーゼのために」、「コーラス」、「リバーブ」、「ディレイ」および「ディストーション」をインストールした際に、環境データ「ピアノ・クラシック」および「ギター・ソリッド」によって表示される画面を示している。
【0128】
図26の画面に対し、図28の画面にはユーザインタフェース群155、ユーザインタフェース群156およびユーザインタフェース群157が追加されている。同様に、図27の画面に対し、図29の画面にはユーザインタフェース群158が追加されている。また、図28および図29の画面においては、ユーザインタフェースの配置位置およびサイズが調整され、自然な画面構成となっている。これらのユーザインタフェースの追加は、新たな拡張プログラムのインストール時に、環境データが環境雛形データから生成されることにより自動的に実現される。
【0129】
ところで、図28には新たにインストールされた拡張プログラム「ディレイ」および「ディストーション」の処理にリンクされたユーザインタフェースが配置されていない。これは環境データ「ピアノ・クラシック」の生成に用いられた環境雛形データ「ピアノ・クラシック」が、主にクラシックのピアノ楽曲を演奏するユーザにより利用されることを想定してデザインされており、ピアノ楽曲の演奏には通常用いられない拡張プログラム「ディレイ」および「ディストーション」に関するデータ行を有していないためである。同様に、エレキギター楽曲を演奏するユーザにより利用されることが想定されている図29の画面には、新たにインストールされた拡張プログラム「エリーゼのために」および「リバーブ」の処理にリンクされたユーザインタフェースが配置されず、代わりに拡張プログラム「ディレイ」および「ディストーション」の処理にリンクされたユーザインタフェースが配置されている。
【0130】
上記のように、新たな拡張プログラムがインストールされた場合であっても、既存の拡張プログラムの処理と新たな拡張プログラムの処理との関連性に応じて、必要と思われる処理にリンクされたユーザインタフェースのみが各画面に追加される。その結果、拡張プログラムの追加により不要なコマンドボタン等が画面に追加されることがなく、ユーザの使い勝手が損なわれない。これらのユーザインタフェースの選択も、拡張プログラムのインストール時に、環境データが環境雛形データから生成されることにより自動的に実現される。
【0131】
既に述べたように、1つの画面には、複数の拡張プログラムの処理をリンクすることができる。それはすなわち、1つの拡張プログラムの処理を複数の画面にリンクすることができることを意味する。例えば、図30は拡張パッケージ「エレクトリックギター」に含まれる環境雛形データ「ギター・エレアコ」から生成された環境データ「ギター・エレアコ」に従い表示される画面である。
【0132】
図30の画面の基本的な構成や利用可能な処理は図29の画面のものと同じであるが、図30の画面はエレクトリックアコースティックギターの演奏者に適するようにアレンジされており、利用可能なエフェクタの種類等が異なっている。従って、ユーザはたとえ同じ拡張プログラムを主として利用する際であっても、使用目的に応じてより使い勝手のよいアプリケーションの環境を選ぶことができる。
【0133】
なお、上記の説明において詳細な説明は省略したが、ユーザは音楽アプリケーション1の環境設定「環境データ」の画面において、既存の環境データを自由に編集することができる。また、ユーザは全く新しい環境データを作成することもできる。その場合、ユーザは部品データデータベースに登録されている部品データおよび処理データベースに登録されている処理を選択し、画面に配置してゆくだけで自分の希望する画面構成の構築および各画面において利用できる処理が選択を行うことができる。
【0134】
[2:第2実施形態]
以下、本発明の第2の好適な実施形態として、コンピュータに電子ピアノ音源およびギターアンプの機能を実現させ、それらのプログラムをコンピュータに接続される外部機器に応じて自動的に切り替えることを可能とするアプリケーションの構成および動作を説明する。
【0135】
[2.1:コンピュータおよび外部機器の構成および動作]
まず、第2実施形態に係るアプリケーション(以下、「音楽アプリケーション2」と呼ぶ)の実行環境であるコンピュータ2、およびコンピュータ2に接続される外部機器の構成および動作を、図31を用いて説明する。
【0136】
コンピュータ2は第1実施形態のコンピュータ1と多くの共通する構成部を有するため、図31においてはその共通する構成部に関しては図1における符号と同じ符号を付している。以下、コンピュータ2がコンピュータ1と異なる点のみを説明する。なお、図31には、以下の説明において利用されないMIDI入出力部109、アナログ音声入力部110およびA/Dコンバータ111は示されていない。
【0137】
コンピュータ2は、USB(Universal Serial Bus)インタフェース201を有している。USBインタフェース201はコンピュータ2と外部機器との間で、USB規格に従って構成されたデータの送受信を中継する。
【0138】
USB規格は汎用的なデータ伝送のための規格であり、USB規格に従い、コンピュータ等の情報機器は音声データや画像データを含むあらゆるタイプのデータを送受信することができる。USB規格に従って構成された情報機器(以下、「USB機器」と呼ぶ)どうしでデータの送受信が行われる場合、それらのUSB機器の片方がマスタの役割を、他方がスレーブの役割を受け持つ。マスタ側のUSB機器が主としてデータ伝送の管理を行うため、マスタ側のUSB機器としてはデータ処理能力の高いコンピュータ等が用いられる。
【0139】
スレーブ側のUSB機器がマスタ側のUSB機器に接続されると、スレーブ側のUSB機器はマスタ側のUSB機器に、スレーブ側のUSB機器の識別子であるデバイスIDを送信する。マスタ側のUSB機器はスレーブ側のUSB機器から送信されるデバイスIDに応じて、スレーブ側のUSB機器とのデータ伝送に必要なドライバプログラムの読み込み等を行う。USBインタフェース201は上記のマスタ側のUSB機器の処理を行うインタフェースであり、USBホストコントローラ等から構成される。なお、デバイスIDは、USB機器の種類を示すクラスID、同じ型のUSB機器の新旧を示すリビジョンID、USB機器の製造者を示すベンダIDなどからなり、マスタ側のUSB機器は、スレーブ側のUSB機器に関するそれらのIDの1または複数の組み合わせにより、必要なドライバプログラムの組み込みを行っても良い。
【0140】
第1実施形態におけるMIDIキーボード121およびエレクトリックギター122の代わりに、第2実施形態においてはUSBキーボード202およびUSBギター203がコンピュータ2に接続される。なお、これらの構成要素はUSBインタフェース201に接続される。
【0141】
USBキーボード202は第1実施形態のMIDIキーボード121とほぼ同様の構成および機能を有するが、MIDIキーボード121と異なり、スレーブ側のUSB機器の通信処理を行うUSBインタフェース2021を有している。USBインタフェース2021はUSBスレーブコントローラ等から構成される。USBキーボード202はユーザの鍵盤等の操作に応じてMIDIデータを生成し、生成したMIDIデータをUSB規格に従ったデータフォーマットに変換した後、USBインタフェース2021を介し送信する。
【0142】
USBギター203は本体に張られたスチールの弦、弦の振動をピックアップしアナログ音声信号に変換するセンサ2031、センサ2031から出力されるアナログ音声信号をデジタル音声データに変換するA/Dコンバータ2032およびスレーブ側のUSB機器の通信処理を行うUSBインタフェース2033を有している。USBインタフェース2033はUSBスレーブコントローラ等から構成される。USBギター203はA/Dコンバータ2032によりデジタル音声データに変換された弦の振動による音声情報を、USB規格に従ったデータフォーマットにさらに変換した後、USBインタフェース2033を介して送信する。
【0143】
[2.2:音楽アプリケーションの構成および動作]
音楽アプリケーション2の構成および動作は多くの点で音楽アプリケーション1と共通している。従って、以下、音楽アプリケーション2が音楽アプリケーション1と異なる点のみを説明する。なお、以下の説明においては、コンピュータ2には、第1実施形態において説明に用いた全ての拡張プログラムがインストールされているものとする。
【0144】
第2実施形態の音楽アプリケーション2においては、第1実施形態の音楽アプリケーション1において利用される環境データデータベースの代わりに、図32に示す環境データデータベースが利用される。図32の環境データデータベースには、第1実施形態における環境データデータベースに加え、種別のフィールドがある。種別のフィールドには、各環境データが表示される際にコンピュータ2に接続されるUSB機器の種別を示す情報が登録されている。
【0145】
また、音楽アプリケーション2においては、第1実施形態におけるデータベース等に加え、図33に示すデバイス環境関係データが利用される。デバイス環境関係データには、音楽アプリケーション2を利用するユーザのユーザID、コンピュータ2に接続されるUSB機器のデバイスIDおよび環境データIDが登録される。ただし、図33に示されるデバイスIDは、説明のため簡略化されており、実際にはUSB規格に従ったデバイスIDが用いられる。
【0146】
なお、基本プログラムがコンピュータ2にインストールされた段階ではデバイス環境関係データには何も登録されておらず、後述するUSB機器の登録処理により順次、データが登録される。また、コンピュータ2がユーザIDを取得する方法については、後述するUSB機器の登録処理の説明において併せて説明する。
【0147】
また、第2実施形態における基本パッケージは、第1実施形態における基本パッケージに加え、図34に示すデバイスデータベースを含んでおり、基本プログラムのインストール時に、このデバイスデータベースがHD105に格納される。デバイスデータベースにはデバイスIDおよび種別のフィールドがある。デバイスデータベースにはコンピュータに接続され、音楽アプリケーション2の実行の際に利用可能なあらゆるUSB機器のデバイスIDが、そのUSB機器の種別を示す情報と共にリストアップされている。
【0148】
続いて、音楽アプリケーション2の動作を説明する。ユーザが音楽アプリケーション2を利用する際、ユーザは以下に説明するUSB機器の登録処理を行う必要がある。まず、ユーザが音楽アプリケーション2の起動の操作を行うと、基本プログラムに従い、CPU101は表示部106にユーザIDの入力を求める画面を表示させる。その画面に対し、ユーザは自分のユーザIDを入力する。例として、ユーザがJOE005というユーザIDを入力したとする。その後、CPU101は起動時の環境データとして指定されている環境データに従い、図24に示した画面を表示部106に表示させる。
【0149】
続いて、ユーザはUSBキーボード202をUSBインタフェース201に接続する。USBキーボード202は、コンピュータ2に接続されるとその接続を検出し、USBキーボード202のデバイスIDをコンピュータ2に送信する。例として、USBキーボード202のデバイスIDはUSBKB0035であるとする。
【0150】
CPU101はUSBキーボード202からデバイスIDを受信すると、デバイスデータベース(図34)を参照し、そのデバイスIDがデバイスデータベースに登録されているか否かを判定する。受信したデバイスIDがデバイスデータベースに登録されていない場合、CPU101は特に処理を行わない。この場合、USBKB0035はデバイスデータベースに登録されているので、CPU101はデバイス「USBKB0035」の種別の値、すなわち「キーボード」をRAM104に一時的に記録する。CPU101は続いてデバイス環境関係データ(図33)を参照し、ユーザIDがJOE005、デバイスIDがUSBKB0035であるデータが登録されているか否かを判定する。
【0151】
この場合、デバイス環境関係データにはユーザIDがJOE005、デバイスIDがUSBKB0035であるデータは登録されていない。その場合、CPU101は図35に示す画面を表示する。すなわち、図35の画面は、あるユーザが音楽アプリケーション2の利用中に、音楽アプリケーション2において利用可能なあるUSB機器を初めてコンピュータ2に接続した場合に表示される。
【0152】
図35の画面を表示する際、CPU101はRAM104に一時的に記録した種別の値「キーボード」を読み出し、環境データデータベース(図32)を参照し、環境データデータベースの種別の値が、先にRAM104から読み出した種別の値と一致するデータを抽出する。そして、CPU101はその抽出結果として得られる環境データの環境データ名をリストボックス251に表示する。
【0153】
ユーザは図35の画面において、USBキーボード202と共に通常利用する画面に対応する環境データを選択し、コマンドボタン「OK」をクリックする。例として、ユーザは環境データ「ピアノ・クラシック」を選択するものとする。
【0154】
図35のコマンドボタン「OK」がクリックされると、CPU101は環境データデータベース(図32)を参照し、ユーザにより選択された環境データの環境データID「EV451」を、デバイス環境関係データ(図33)にユーザIDおよびデバイスIDと共に登録する。続いて、CPU101はユーザにより選択された環境データに基づいて、図28に示した画面を表示部106に表示させる。以上の処理により、音楽アプリケーション2にUSBキーボード202が登録される。
【0155】
続いて、ユーザは音楽アプリケーション2にUSBギター203の登録を行う。その場合、ユーザはUSBキーボード202とコンピュータ2の接続を取り外し、USBギター203をコンピュータ2に接続する。その後、上記のUSBキーボード202に関する処理と同様の処理がUSBギター203に関しても行われ、USBギター203の登録処理がなされる。
【0156】
例として、USBギター203のデバイスIDはUSBGT1208であり、ユーザはUSBギター203を用いる際に利用する環境データとして「ギター・エレアコ」を選択するものとする。その結果、CPU101は図30に示した画面を表示部106に表示させる。なお、上記のような処理の結果、デバイス環境関係データ(図33)は図36に示すように更新される。
【0157】
デバイス環境関係データに上記に示したようにUSB機器が登録されている場合、音楽アプリケーション2において、ユーザは画面の切り替えをUSB機器の接続のみによって行うことができる。以下、音楽アプリケーション2による画面の切り替え動作を説明する。
【0158】
ユーザは、音楽アプリケーション2を起動し、画面の指示に従ってユーザID「JOE005」を入力する。続いて、ユーザはUSBキーボード202をコンピュータ2に接続する。USBキーボード202はデバイスID「USBKB0035」をコンピュータ2に送信する。
【0159】
CPU101はUSBキーボード202からデバイスIDを受信すると、デバイスデータベース(図34)を参照し、受信したデバイスIDが登録されているか否かを判定する。この場合、受信されるデバイスIDはデバイスデータベースに登録されているので、続いてCPU101はデバイス環境関係データ(図36)を参照し、ユーザIDがJOE005、デバイスIDがUSBKB0035であるデータが登録されているか否かを判定する。
【0160】
この場合、ユーザIDがJOE005、デバイスIDがUSBKB0035であるデータがデバイス環境関係データに登録されているので、CPU101はユーザIDがJOE005、デバイスIDがUSBKB0035であるデータの環境データID「EV451」を取得する。続いて、CPU101は環境データデータベース(図32)を参照し、取得した環境データID「EV451」で示される環境データ「ピアノ・クラシック」に基づいて、図28に示した画面を表示部106に表示させる。
【0161】
その後、ユーザがUSBキーボード202を用いての音楽アプリケーション2の利用を終え、USBギター203を用いて音楽アプリケーション2を利用したいと考えたとする。その場合、ユーザはUSBキーボード202の接続をコンピュータ2から外し、USBギター203をコンピュータ2に接続する。USBギター203がコンピュータ2に接続されると、上記のUSBキーボード202に関する処理と同様の処理がUSBギター203に関しても行われ、CPU101は環境データ「ギター・エレアコ」に基づいて、図30に示した画面を表示部106に表示させる。
【0162】
上記のように、ユーザはコンピュータにUSB機器を接続するだけで、画面の表示、すなわちアプリケーションの環境を切り替えることができる。すなわち、接続されるUSB機器に応じてアプリケーションの環境が自動的に変化するため、ユーザはコンピュータをあたかも個々のUSB機器の一部であるかのように利用することができる。
【0163】
次に、ユーザIDがKEN102である、上記のユーザとは異なるユーザが音楽アプリケーション2を利用する場合の動作を説明する。なお、このユーザは既にUSBキーボード202およびUSBギター203に関し、上記のUSB機器の登録処理を行っており、その登録処理により、図36の第1行および第2行のデータとしてユーザID、デバイスIDおよび環境データIDがデバイス環境関係データに登録されているものとする。
【0164】
このユーザは、音楽アプリケーション2を起動し、画面の指示に従ってユーザID「KEN102」を入力する。その後、ユーザは例えばUSBギター203をコンピュータ2に接続する。USBギター203はその接続を検出し、USBギター203のデバイスID「USBGT1208」をコンピュータ2に送信する。続いて、上記のユーザIDがJOE005であるユーザがコンピュータ2にUSBギター203を接続した場合と同様の処理が行われるが、この場合はユーザIDがKEN102であるため、CPU101はデバイス環境関係データ(図36)から環境データID「EV501」を取得する。その結果、CPU101は環境データID「EV501」で示される環境データ「ギター・ソリッド」に基づいて、図29に示した画面を表示部106に表示させる。
【0165】
上記のように、同じUSB機器を用いてアプリケーションが利用される場合であっても、アプリケーションを利用するユーザによってアプリケーションの環境が自動的に変化するため、ユーザはコンピュータをあたかも自分専用に構成されたUSB機器の一部であるかのように利用することができる。
【0166】
[2.3:第2実施形態の変形例]
上述した例では、コンピュータとコンピュータに接続される外部機器との間のデータ伝送方式として、USB規格に従ったデータ伝送方式が用いられている。しかしながら、本発明において採用可能なデータ伝送方式はUSB規格に従ったものに限られない。
【0167】
例えば、IEEE(Institute of Electrical and Electronics Engineers)1394規格に従ったデータ伝送方式のように、コンピュータと外部機器が接続された場合、コンピュータもしくは外部機器のいずれかがその接続を自動的に検出し、外部機器がコンピュータに自分のデバイスIDを送信するしくみを規定しているあらゆるデータ伝送方式が採用可能である。
【0168】
さらに、自動的にデバイスIDを送信するしくみが規定されていないデータ伝送方式であっても、例えばコンピュータが定期的に外部機器に対しデバイスIDの送信要求を行い、外部機器からデバイスIDを取得することが可能な環境においては、本発明の実施が可能である。
【0169】
例えば、MIDI規格は電子機器が自動的にデバイスIDを接続先の電子機器に送信するしくみを規定していない。しかし、MIDI規格においてはデバイスIDの要求メッセージであるアイデンティティリクエストおよび送信メッセージであるアイデンティティリプライが利用可能である。従って、MIDIデータの入出力を行うMIDIインタフェースを有するコンピュータは、アプリケーションを実行している間、十分に短い間隔で、アイデンティティリクエストをMIDIインタフェースから送信する。MIDIインタフェースに外部機器が接続されている場合、その外部機器はアイデンティティリクエストに対しアイデンティティリプライを送信する。その結果、コンピュータは外部に接続されている機器の機種等を識別することができる。
【0170】
[3:第3実施形態]
以下、本発明の第3の好適な実施形態として、コンピュータにボーカルおよびエレクトリックギターの楽曲演奏の練習室を仮想的に実現させ、それらのアプリケーションの環境をコンピュータに入力される音声情報に応じて自動的に切り替えることを可能とするアプリケーションの構成および動作を説明する。
【0171】
[3.1:コンピュータおよび外部機器の構成および動作]
まず、第3実施形態に係るアプリケーション(以下、「音楽アプリケーション3」と呼ぶ)の実行環境としてのコンピュータ3、およびコンピュータ3に接続される外部機器の構成および動作を、図37を用いて説明する。
【0172】
コンピュータ3は第1実施形態のコンピュータ1と多くの共通する構成部を有するため、図37においてはその共通する構成部に関しては図1における符号と同じ符号を付している。なお、第3実施形態においては、MIDI入出力部109は利用されないため、図37にはMIDI入出力部109が示されていない。その他の構成部に関しては、コンピュータ1の構成部と同じであるので、その説明を省略する。
【0173】
第3実施形態においては、エレクトリックギター122に加え、マイクロフォン301がアナログ音声入力部110に接続される。マイクロフォン301はボーカル用のマイクロフォンであり、振動板、ボイスコイル等を有し、音声をアナログ電気信号に変換して出力する。
【0174】
[3.2:音楽アプリケーションの構成および動作]
音楽アプリケーション3の構成および動作は多くの点で音楽アプリケーション1と共通している。従って、以下、音楽アプリケーション3が音楽アプリケーション1と異なる点のみを説明する。
【0175】
音楽アプリケーション3においては、第1実施形態における各種データベース等に加え、図38に示す音声環境関係データが利用される。音声環境関係データには、音声の特徴を示す音声特徴データが環境データIDと共に登録される。音声特徴データの内容および役割は後述する。なお、基本プログラムがコンピュータ3にインストールされた段階では、音声環境関係データには何も登録されておらず、後述する音声の登録処理により、順次データが登録される。
【0176】
以下の説明において、コンピュータ3には、第1実施形態において説明に用いた全ての拡張プログラムに加え、図2で示した、「楽曲」の「ボーカル」に分類される拡張パッケージ「さくらさくら」と、「楽曲」の「エレクトリックギター」に分類される拡張パッケージ「Soon」の各拡張プログラムがインストールされているものとする。図39は、これらの拡張プログラムがコンピュータ3にインストールされた状態における、環境データデータベースを示している。
【0177】
以下、「楽曲」に分類される拡張プログラムの動作の概要を、拡張プログラム「さくらさくら」を例に説明する。なお、拡張パッケージ「さくらさくら」は、拡張プログラム、環境雛形データおよび部品データ以外に、楽譜の画像データ、伴奏用のMIDIデータ、ボーカルの各パートのデジタル音声データ、歌唱演奏の評点に応じたコメントデータ等を含んでいる。
【0178】
図40は、基本プログラムに従い、CPU101が環境データ「ボーカル・クラシック」に基づいて表示部106に表示させる画面である。図40の画面において、まずユーザはマイクロフォン301を音楽アプリケーション3のアナログ音声入力部110に接続した後、例えばユーザインタフェース群352のチェックボックス「ピアノ」および「メロディー2」をチェックする。続いて、ユーザがユーザインタフェース群353のコマンドボタン「再生」をクリックすると、CPU101は拡張プログラム「シーケンサ」に従って、ピアノ伴奏用のMIDIデータおよびボーカルの第2パートの音声データを再生する。さらに、CPU101は拡張プログラム「さくらさくら」に従い、楽譜の画像データの内容をユーザインタフェース群351の子ウィンドウに表示させる。
【0179】
ユーザはスピーカ114から発音されるピアノ伴奏および第2パートの音声を聞き、また表示部106に表示される楽譜を読みながら、マイクロフォン301を用いて第1パートの歌唱演奏を行う。ユーザの歌唱演奏による音声はマイクロフォン301およびA/Dコンバータ111を介してデジタル音声データとしてRAM104に順次記録される。CPU101は拡張プログラム「さくらさくら」に従い、ボーカルの第1パートのデジタル音声データ(以下、「見本データ」と呼ぶ)と、ユーザの歌唱演奏により生成されたデジタル音声データ(以下、「演奏データ」と呼ぶ)とを比較し、ユーザの歌唱演奏のリズム、音程および強弱を評点する。
【0180】
すなわち、CPU101は、例えば見本データが示す音声の周波数の変化タイミングと、演奏データが示す音声の周波数の変化タイミングを比較し、リズムのずれを数値化する。またCPU101は、例えば周波数の変化タイミングに基づいて対応づけられる見本データの特定部分と演奏データの特定部分の平均周波数のずれおよびボリュームのずれをそれぞれ数値化する。
【0181】
ユーザが歌唱演奏を終え、ユーザインタフェース群353のコマンドボタン「停止」をクリックすると、CPU101は上記の評点の結果およびその結果に対応するコメントデータの内容をユーザインタフェース群354に表示する。このように、拡張プログラム「さくらさくら」に従い、コンピュータ3はユーザの歌唱演奏の練習支援を実現する。
【0182】
図41は、基本プログラムに従い、CPU101が環境データ「ギター・ソリッド」に基づいて表示部106に表示させる画面の例である。図41の画面には、第1実施形態における環境データ「ギター・ソリッド」に基づく画面(図29)に対し、拡張プログラム「Soon」の処理にリンクされたユーザインタフェース群361、ユーザインタフェース群362およびユーザインタフェース群363が追加されている。それらのユーザインタフェース群の役割は、それぞれ図40におけるユーザインタフェース群351、ユーザインタフェース群352およびユーザインタフェース群354の役割と同じである。また、拡張プログラム「Soon」の動作は拡張プログラム「さくらさくら」の動作と同じである。
【0183】
続いて、音楽アプリケーション3の動作を説明する。ユーザが音楽アプリケーション3を利用する際、ユーザは以下に説明する音声の登録処理を行う必要がある。まず、ユーザが音楽アプリケーション3を起動すると、基本プログラムに従い、CPU101は起動時の環境データとして指定されている環境データに従い、表示部106に図42に示す画面を表示部106に表示させる。音楽アプリケーション3の起動時の画面には、音楽アプリケーション1の起動時の画面(図24)に対し、コマンドボタン「音声登録」が追加されている。
【0184】
ユーザはマイクロフォン301をコンピュータ2のアナログ音声入力部110に接続する。続いて、ユーザが図42のコマンドボタン「音声登録」をクリックすると、基本プログラムに従い、CPU101は図43に示す画面を表示部106に表示させる。ユーザは図43の画面の指示に従い、コマンドボタン「スタート」をクリックした後、マイクロフォン301に対し3秒以上の発声を行う。
【0185】
ユーザの音声はマイクロフォン301およびA/Dコンバータ111を介してデジタル音声データ(以下、「サンプルデータ」と呼ぶ)としてRAM104に記録される。続いて、CPU101はサンプルデータが示す音声のフォルマント周波数を求める。
【0186】
フォルマント周波数は、音声の特徴を示す指標の一種である。図44はある音声をサンプリングして得られるデジタル音声データを模式的に示した図である。図44の横軸は時間、縦軸は音圧のレベルである。このように、デジタル音声データは全体として音声の波形を示している。
【0187】
図45は高速フーリエ変換法を用いて、図44に示したデジタル音声データの周波数成分を算出した結果を模式的に示した図である。図45の横軸は周波数、縦軸は音声が含む各周波数成分の振幅を示している。また、図46はローパスフィルタ等を用いて、図45に示した周波数成分の振幅を平滑化した結果を模式的に示した図である。図46の縦軸および横軸は図45のものと同様である。
【0188】
図46のデータによれば、0.42kHz、1.21kHz、3.37kHzおよび3.83kHzの各周波数においてピークが確認される。これらのピークに対応する周波数がフォルマント周波数であり、低周波数側からそれぞれ第1フォルマント周波数、第2フォルマント周波数、のように呼ぶ。
【0189】
すなわち、CPU101は、DSP102に対し、RAM104に記録されたサンプルデータを用いて高速フーリエ変換処理、ローパスフィルタによるフィルタ処理等を行うよう指示する。DSP102はCPU101の指示に従い、RAM104からサンプルデータを読み込み、図46のデータを生成してRAM104に記録する。CPU101はDSP102によりRAM104に記録されたデータを読み込み、読み込んだデータに対する微分処理等を行って、上記のフォルマント周波数を第3フォルマント周波数まで算出する。なお、このDSP102により行われる処理は、CPU101により行われても良い。
【0190】
CPU101はフォルマント周波数の算出を終えると、図47に示す画面を表示部106に表示させる。ユーザは図47の画面の指示に従い、例えば環境データ「ボーカル・クラシック」を選択し、コマンドボタン「OK」をクリックする。
【0191】
CPU101は環境データデータベース(図39)を参照し、ユーザにより選択された環境データの環境データID「EV601」を音声環境関係データ(図38)の環境データIDのフィールドに登録する。また、CPU101は音声環境関係データの同じデータ行の音声特徴データのフィールドに、先に算出した第1から第3のフォルマント周波数の値を登録する。続いて、CPU101はユーザにより選択された環境データ「ボーカル・クラシック」に基づいて、図40に示した画面を表示部106に表示させる。以上の処理により、音楽アプリケーション3にユーザの発声による音声が登録される。
【0192】
続いて、ユーザは音楽アプリケーション3にエレクトリックギター122の音声の登録を行う。その場合、ユーザはマイクロフォン301とコンピュータ3の接続を取り外し、エレクトリックギター122をコンピュータ3に接続する。その後、ユーザは図40の画面のコマンドボタン「メインメニュー」をクリックする。その結果、表示部106には図42に示した画面が表示される。図42の画面においてユーザはコマンドボタン「音声登録」をクリックする。続いて、表示部106には図43に示した画面が表示される。
【0193】
図43の画面において、ユーザはエレクトリックギター122の弦を弾き、エレクトリックギター122の生成するアナログ音声信号をコンピュータ3に入力する。その後、上記のマイクロフォン301を用いた場合の処理と同様の処理がエレクトリックギター122に関しても行われる。その際、例として、ユーザは図47の画面において環境データ「ギター・ソリッド」を選択するものとする。その結果、CPU101は環境データ「ギター・ソリッド」に基づいて、図41に示した画面を表示部106に表示させる。
【0194】
上記のような処理の結果、音声環境関係データ(図38)は図48に示すように更新される。図48において、音声IDがWAV207であるデータがこのユーザの発声による音声に対応するデータであり、一方、音声IDがWAV208であるデータがエレクトリックギター122の生成する音声に対応するデータである。
【0195】
音声環境関係データに上記に示したように音声が登録されている場合、音楽アプリケーション3において、ユーザは画面の切り替えを音声の入力のみによって行うことができる。以下、音楽アプリケーション3による画面の切り替え動作を説明する。
【0196】
ユーザは、まず音楽アプリケーション3を起動し、マイクロフォン301をコンピュータ3に接続した後、マイクロフォン301に向かい、上記の図43における登録時に発声した声と同様の声を発声する。ユーザの発声による音声は、マイクロフォン301、アナログ音声入力部110およびA/Dコンバータ111を介してデジタル音声データとしてRAM104に順次記録される。一方、CPU101は基本プログラムに従い、過去一定時間、例えば3秒間にRAM104に記録されたデジタル音声データを用いて、上述したフォルマント周波数を求める処理を常時繰り返している。
【0197】
CPU101はRAM104に記録された3秒間分のデジタル音声データからフォルマント周波数を算出すると、音声環境関係データ(図48)を参照し、新たに算出したフォルマント周波数(以下、「サンプル周波数」と呼ぶ)と、音声環境関係データに登録されている各フォルマント周波数(以下、「登録周波数」と呼ぶ)を用いて、以下の式(1)に示されるErrの値を求める。ただし、サンプル周波数を(S1,S2,S3)、登録周波数を(R1,R2,R3)とする。
【数1】
【0198】
式(1)のErrは、各登録周波数とサンプル周波数とのずれを示す指標である。Errの値が小さいほど、サンプル周波数と登録周波数が類似しており、従って現在ユーザによりコンピュータ3に入力されている音声と、音声環境関係データに対する登録に用いられた音声が類似している。なお、式(1)以外にもサンプル周波数と登録周波数の類似性を示す指標としては、さまざまなものが考えられる。例えば、式(1)におけるサンプル周波数および登録周波数の各項の差の二乗の代わりに、絶対値を用いてもよい。また、サンプル周波数と登録周波数の第1項を組とし、第2項を組とし、さらに第3項を組として、これらの組に関して相関係数を求めてもよい。
【0199】
CPU101は音声環境関係データの各データに関し、式(1)のErrの値を求めると、求めたErrの値が所定の値、例えば0.01以下であるか否かを判定する。今、例としてユーザの発声により得られたサンプル周波数が(0.41,1.22,3.73)であるとする。この値は、音声環境関係データにおいて音声IDがWAV207のデータ行に登録されている登録周波数と類似している。なぜなら、それらの周波数が同じユーザが同様の発声によって生成した音声から算出されたものであるからである。従って、音声「WAV207」の登録周波数を用いて算出されたErrの値が、所定の値である0.01以下となる。
【0200】
CPU101は、Errの値が所定の値以下であると、音声環境関係データを参照し、Errの算出に用いられた登録周波数を音声特徴データとするデータ行の環境データID「EV601」を取得する。続いて、CPU101は環境データデータベース(図39)を参照し、環境データID「EV601」で示される環境データ「ボーカル・クラシック」に基づいて、図40に示した画面を表示部106に表示させる。
【0201】
その後、ユーザがマイクロフォン301を用いての音楽アプリケーション3の利用を終え、エレクトリックギター122を用いて音楽アプリケーション3を利用したいと考えたとする。その場合、ユーザはマイクロフォン301の接続をコンピュータ3から取り外し、エレクトリックギター122をコンピュータ3に接続する。ユーザがエレクトリックギター122を用いて図43の画面における登録時のものと同様の音声信号をコンピュータ3に入力すると、CPU101は上記のマイクロフォン301から入力された音声信号に関する処理と同様の処理をエレクトリックギター122から入力される音声信号に関して行う。この場合、音声環境関係データにおける音声「WAV208」の音声特徴データに関し、Errの値が0.01以下となり、その結果、CPU101は環境データID「EV501」が示す環境データ「ギター・ソリッド」に基づいて、図41に示した画面を表示部106に表示させる。
【0202】
上記のように、第3実施形態によれば、コンピュータに入力される音声信号に応じてアプリケーションの環境が自動的に切り替わる。従って、異なるユーザが同じアプリケーションを利用する場合、ユーザは自分の声をマイクロフォンでコンピュータに入力するだけで、アプリケーションの環境を切り替えることができる。また、ユーザがコンピュータに対し異なる音響機器を接続してアプリケーションを利用する場合、ユーザは音響機器からコンピュータに対し音声信号を入力するだけで、アプリケーションの環境を切り替えることができる。
【0203】
従って、ユーザはコンピュータをあたかも自分専用に構成された電子機器のように利用したり、コンピュータをあたかも音響機器の一部であるかのように利用することができる。
【0204】
[3.3:第3実施形態の変形例]
上述した例では、フォルマント周波数を用いて音声の類似性が算出されている。しかしながら、本発明において採用可能な音声の類似性を示す指標はフォルマント周波数に限られず、確率モデルによる音声認識法等のさまざまな音声認識手法の採用が可能である。また、フォルマント周波数の算出方法も、上述した方法に限られない。例えば高速フーリエ変換ではなく、通常のフーリエ変換が用いられてもよい。
【0205】
[4:変形例]
上述した第1から第3の実施形態は、それぞれ本発明の実施形態の例示であり、上記実施形態に対しては、本発明の主旨から逸脱しない範囲で様々な変形を加えることができる。以下、変形例を示す。
【0206】
[4.1:第1変形例]
第1変形例においては、コンピュータの各構成部は必ずしも同じ筐体の中に配置されておらず、一部の構成部は他の構成部から分離して配置されている。例えば、HD、表示部、操作部、アンプ、スピーカ等はコンピュータに対する外部機器として接続されていてもよい。また、互いにLAN等で接続された異なる情報機器、例えば高い処理能力のDSPを有するコンピュータと、それとは異なる高い処理能力のCPUを有するコンピュータが協働して上記の各実施形態で示したコンピュータの処理を行ってもよい。
【0207】
第1変形例によれば、ユーザは分散して配置されている各種の情報機器の資源を有効に活用して、本発明に係るアプリケーションの実行をコンピュータに行わせることができる。
【0208】
[4.2:第2変形例]
第2変形例においては、コンピュータは無線通信インタフェースを有し、この無線通信インタフェースを介して、無線通信機能を有する外部機器からのデータを受信することができる。そして、コンピュータは、外部機器から無線を介して受信されるデータに応じて、環境データの選択および画面の切り替え等を行う。第2変形例によれば、ユーザはコンピュータと外部機器との間のケーブルの接続および接続の解除に要する手間を省くことができ、利便性が高まる。
【0209】
[4.3:第3変形例]
第3変形例においては、コンピュータはさらにCD−ROM(CompactDisc Read Only Memory)ドライブ等の外部記録媒体からデータを読み込む構成部を有し、CD−ROM等に格納されている基本パッケージ、拡張パッケージ等を読み込んで、それらに含まれるプログラムのインストール等を行うことができる。第3変形例によれば、インターネットへの接続が困難なコンピュータの利用時においても、ユーザは本発明に係るアプリケーションの実行をコンピュータに行わせることができる。
【0210】
[4.4:第4変形例]
第4変形例においては、基本プログラムおよび拡張プログラムはXML(Extensible Markup Language)等のブラウザソフトで実行可能な言語により記述されている。さらに、環境データ等の各種データおよびデータベースの内容は、XML等のデータ構造の定義が可能な言語により記述されている。
【0211】
第4変形例によれば、基本プログラムおよび拡張プログラムの複合体であるアプリケーションは、ブラウザソフトにおいて実行可能となるため、プログラム開発者は既存のブラウザソフトの機能を利用することにより各プログラムにおける内容表示や音声データ等の再生などの各種機能をプログラムに実現させることができ、開発における負担を軽減することができる。また、基本プログラムおよび拡張プログラムに関する画面表示を、例えば関連するHPの画面の中に埋め込む処理など、XML等の言語により記述された他のデータとの連携処理が容易に実現される。
【0212】
【発明の効果】
以上示したように、本発明にかかるプログラムによれば、プログラムの開発および管理が拡張パッケージ単位で行われるため、プログラムの開発者のプログラム開発および管理が容易となる。また、ユーザは利用を希望する拡張プログラムのみを選択して購入できるため、ユーザのプログラム購入の費用負担が削減される。
【0213】
同時に、本発明にかかるプログラムによれば、多くの拡張プログラムがインストールされたとしても、それら多くの拡張プログラムの機能に関するコマンドボタン等が表示され、ユーザが必要な機能を探し出すことが困難になる等の不都合が生じることはない。
【0214】
さらに、本発明にかかるプログラムによれば、互いに関連する複数の拡張プログラムの処理が同じ画面から利用できるため、ユーザは異なる拡張プログラムを意識する必要がない。
【0215】
さらに、本発明にかかるプログラムによれば、使用目的に応じて必要な処理にリンクされたユーザインタフェースのみを集めた画面が表示されるため、ユーザは各画面ごとに異なるアプリケーションを利用する感覚でアプリケーションを利用することができる。その際、ユーザは画面を切り替えるだけで容易にアプリケーションの環境を変更することができる。
【0216】
さらに、本発明にかかるプログラムによれば、ユーザは画面の構成を示す環境データを編集することで、容易にアプリケーションの環境を自分の使用目的に適したものに調整することができる。
【0217】
また、本発明にかかるプログラムによれば、ユーザはコンピュータに外部機器を接続するだけで、アプリケーションの環境を変更することができる。また、本発明にかかるプログラムによれば、ユーザはコンピュータに音声情報を入力するだけで、アプリケーションの環境を変更することができる。
【図面の簡単な説明】
【図1】第1実施形態にかかる、コンピュータおよびコンピュータに接続される外部機器の構成を示す図である。
【図2】第1実施形態、第2実施形態および第3実施形態にかかる、音楽アプリケーションの構成を示す図である。
【図3】第1実施形態、第2実施形態および第3実施形態にかかる、基本プログラムと拡張プログラムの関係を示す図である。
【図4】第1実施形態、第2実施形態および第3実施形態にかかる、基本プログラムと拡張プログラムの関係を示す図である。
【図5】第1実施形態、第2実施形態および第3実施形態にかかる、プログラムデータベースの内容を示す図である。
【図6】第1実施形態、第2実施形態および第3実施形態にかかる、入出力データベースの内容を示す図である。
【図7】第1実施形態、第2実施形態および第3実施形態にかかる、処理データベースの内容を示す図である。
【図8】第1実施形態、第2実施形態および第3実施形態にかかる、部品データデータベースの内容を示す図である。
【図9】第1実施形態および第3実施形態にかかる、環境データデータベースの内容を示す図である。
【図10】第1実施形態にかかる、環境雛形データの内容を示す図である。
【図11】第1実施形態にかかる、環境データの内容を示す図である。
【図12】第1実施形態にかかる、環境データの内容を示す図である。
【図13】第1実施形態にかかる、画面表示を示す図である。
【図14】第1実施形態にかかる、画面表示を示す図である。
【図15】第1実施形態、第2実施形態および第3実施形態にかかる、画面表示の処理を示すフロー図である。
【図16】第1実施形態にかかる、プログラムデータベースの内容を示す図である。
【図17】第1実施形態にかかる、入出力データベースの内容を示す図である。
【図18】第1実施形態にかかる、処理データベースの内容を示す図である。
【図19】第1実施形態にかかる、部品データデータベースの内容を示す図である。
【図20】第1実施形態にかかる、環境雛形データの内容を示す図である。
【図21】第1実施形態にかかる、環境データの内容を示す図である。
【図22】第1実施形態にかかる、環境データデータベースの内容を示す図である。
【図23】第1実施形態にかかる、環境データの内容を示す図である。
【図24】第1実施形態および第2実施形態にかかる、画面表示を示す図である。
【図25】第1実施形態にかかる、画面表示を示す図である。
【図26】第1実施形態にかかる、画面表示を示す図である。
【図27】第1実施形態にかかる、画面表示を示す図である。
【図28】第1実施形態および第2実施形態にかかる、画面表示を示す図である。
【図29】第1実施形態および第2実施形態にかかる、画面表示を示す図である。
【図30】第1実施形態および第2実施形態にかかる、画面表示を示す図である。
【図31】第2実施形態にかかる、コンピュータおよびコンピュータに接続される外部機器の構成を示す図である。
【図32】第2実施形態にかかる、環境データデータベースの内容を示す図である。
【図33】第2実施形態にかかる、デバイス環境関係データの内容を示す図である。
【図34】第2実施形態にかかる、デバイスデータベースの内容を示す図である。
【図35】第2実施形態にかかる、画面表示を示す図である。
【図36】第2実施形態にかかる、デバイス環境関係データの内容を示す図である。
【図37】第3実施形態にかかる、コンピュータおよびコンピュータに接続される外部機器の構成を示す図である。
【図38】第3実施形態にかかる、音声環境関係データの内容を示す図である。
【図39】第3実施形態にかかる、環境データデータベースの内容を示す図である。
【図40】第3実施形態にかかる、画面表示を示す図である。
【図41】第3実施形態にかかる、画面表示を示す図である。
【図42】第3実施形態にかかる、画面表示を示す図である。
【図43】第3実施形態にかかる、画面表示を示す図である。
【図44】フォルマント周波数の説明のための音声データの例を示す図である。
【図45】フォルマント周波数の説明のための音声データの周波数成分の例を示す図である。
【図46】フォルマント周波数の説明のための平滑化された音声データの周波数成分の例を示す図である。
【図47】第3実施形態にかかる、画面表示を示す図である。
【図48】第3実施形態にかかる、音声環境関係データの内容を示す図である。
【符号の説明】
1、2、3・・・コンピュータ、101・・・CPU、102・・・DSP、103・・・ROM、104・・・RAM、105・・・HD、106・・・表示部、107・・・操作部、108・・・NW入出力部、109・・・MIDI入出力部、110・・・アナログ音声入力部、111、2032・・・A/Dコンバータ、112・・・D/Aコンバータ、113・・・アンプ、114・・・スピーカ、115・・・バス、120・・・インターネット、121・・・MIDIキーボード、122・・・エレクトリックギター、201、2021、2033・・・USBインタフェース、202・・・USBキーボード、203・・・USBギター、2031・・・センサ、301・・・マイクロフォン。[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a program for facilitating the operation of selecting a program and changing a user interface according to the selected program in a program use environment in which some programs are selected and used from a plurality of programs.
[0002]
[Prior art]
2. Description of the Related Art In recent years, most of electronic devices for realizing specific functions (hereinafter, referred to as “specific electronic devices”) are personal computers, game machines, PDAs (Personal Digital Assistance), and the like (hereinafter, simply referred to as “general-purpose computers”). Can be realized by installing an application program (hereinafter simply referred to as “application”) necessary for the application. In particular, since the processing capability of general-purpose computers for audio data and image data has been improved, many functions of audiovisual equipment can be realized by general-purpose computers.
[0003]
Specific electronic devices have many components of the same kind, such as a DSP (Digital Signal Processor) and a liquid crystal display. On the other hand, when a single general-purpose computer realizes the functions of a plurality of specific electronic devices by installing different applications on the general-purpose computer, it is sufficient that the general-purpose computer has one component such as a DSP and a liquid crystal display. Cost can be reduced.
[0004]
As an example of a conventional technique for realizing the function of a specific electronic device using a general-purpose computer as described above, for example, a technique for realizing an electronic musical instrument using a plurality of computer resources connected to a network is disclosed in
[0005]
[Patent Document 1]
JP-A-7-261756
[0006]
[Problems to be solved by the invention]
By the way, when functions of a plurality of specific electronic devices related to each other can be realized by a general-purpose computer, convenience of the user is improved if those functions can be linked.
[0007]
In order to realize cooperation of a plurality of functions in a general-purpose computer, it is conceivable to first integrate the plurality of functions into one application. For example, an application that realizes a function of a music synthesizer on a general-purpose computer (hereinafter, referred to as “synthesizer software”) and an application that realizes a function of an effector that adds an acoustic effect to audio data to a general-purpose computer (hereinafter, “effector software”) (Hereinafter referred to as "synthesizer software with effector function"), the user can easily add the sound effect by the effector to the sound reproduced by the music synthesizer. Can be.
[0008]
However, simply integrating a plurality of applications having different functions as described above is inconvenient for a user who needs only the functions of one application. For example, a user who does not need an effector function must purchase synth software with an effector function, and must pay an unnecessary cost for that purpose. If synthesizing software, effector software and synth software with effector functions are sold separately to eliminate the inconvenience, the development cost of the application developer will increase.
[0009]
To solve the above problem, a basic program (hereinafter, referred to as a “basic program”) for controlling a plurality of programs and a program (hereinafter, referred to as a “basic program”) that operates together with the basic program to realize a specific function A method of constructing an application having a plurality of functions can be considered by combining this with an "extended program". For example, an application (hereinafter, referred to as “sequencer software”) for realizing the function of a music sequencer on a general-purpose computer is developed as a basic program, and the synth software and the effector software are developed as extension programs of the sequencer software. In this case, after purchasing the sequencer software, the user may purchase only necessary extension programs. In addition, application developers can develop each extension program individually, minimizing development costs.
[0010]
The effect of the method using the basic program and the extension program is greater as the function of each extension program is subdivided. However, when the functions of each extension program are subdivided, the burden for the user to manage many extension programs increases. For example, it is assumed that the extension program that realizes the function of the effector software is subdivided into extension programs that realize the functions of reverb and distortion (hereinafter, referred to as “reverb software” and “distortion software”, respectively). If the user who has purchased both the reverb software and the distortion software wants to use only the reverb software, for example, a command button or the like relating to unnecessary distortion software is displayed on the screen of the general-purpose computer.
[0011]
The user can hide the disturbing command buttons and the like displayed on the screen. However, it is troublesome for the user to perform an operation of hiding unnecessary command buttons or the like depending on the purpose of use of the application. Also, among the various functions of the plurality of extension programs, there are those having high relevance and those having low relevance. Therefore, it is not easy for the user to determine which command button or the like is unnecessary on a certain screen.
[0012]
However, if the program developer determines the desired screen display configuration in the application and provides it to the user, and the user can use only the screen display configuration determined by the program developer, the application can be used by various users. Use environment of the application that satisfies the purpose of use.
[0013]
In view of the above circumstances, the present invention includes a plurality of related programs, and in a program that can use them at the same time, a screen configuration when a developer and a user use the plurality of programs is determined according to a purpose of use. It is an object of the present invention to provide a program that can be flexibly changed by a user and that allows a user to easily select a desired one from a plurality of screen configurations thus changed.
[0014]
[Means for Solving the Problems]
In order to solve the problems described above, the present invention provides one or more extension programs, user interface data defining one or more user interfaces for receiving instructions from a user, and one or more user interface data. An environment data selection unit for selecting one of the plurality of environment data from a computer having a memory storing a plurality of environment data including link data relating each to execution control of the one or more extension programs; A process, a user interface providing process of providing one or more user interfaces according to the selected environment data, and a case where a user operation on any of the provided one or more user interfaces is included in the selected environment data. Depending on the link data Providing a basic program for executing the extended program control process and performing execution control of the extended program associated with the user interface.
[0015]
When the basic program having such a configuration is used, only the user interface associated with the processing necessary for the intended purpose is displayed on the screen by selecting the environmental data according to the intended purpose. As a result, even when the user needs to use a plurality of extension programs having a plurality of processes at the same time and needs to use them properly according to the purpose of use, the user can easily switch to the environment data to easily achieve the purpose of use. The corresponding screen can be displayed on the computer.
[0016]
Further, each of the plurality of environment data is output data of any of the processes performed by the input data required by each process executed according to the one or more extension programs according to the one or more extension programs. The input / output relation data indicating that the basic program is executed by the computer in accordance with the one or more extended programs, and when output data is obtained in the processing, According to the input / output relation data included in the selected environment data, the computer may be caused to execute a process of using the output data as input data.
[0017]
When a basic program having such a configuration is used, the relationship between data input and output among a plurality of extension programs is automatically determined by selecting environmental data.
[0018]
Further, the basic program, when a certain extension program is newly stored in the memory, causes the computer to add data relating to the newly stored extension program to each of the plurality of environment data. When any one of the one or more extension programs stored in the memory is deleted from the memory, the computer transmits, from each of the plurality of environment data, data related to the deleted extension program. You may delete it.
[0019]
When the basic program having such a configuration is used, when the configuration of the extension program that can be used in the computer is changed, the data interface data and the link data in the environment data are automatically updated according to the change.
[0020]
The computer can receive a device ID for identifying each of the one or more external devices from one or more external devices, and the memory stores a correspondence between the device ID and the environmental data. Device environment-related data to be stored, and the basic program, when the computer receives a device ID from one of the one or more external devices, in the environment data selection processing, the computer The environment data associated with the device ID received by the environment-related data may be selected.
[0021]
When the basic program having such a configuration is used, environmental data is automatically selected in accordance with the device ID transmitted from the external device to the computer. The screen can be displayed on a computer.
[0022]
Further, the computer can acquire audio information from an external device, and the memory stores an audio environment indicating a correspondence between audio characteristic data, which is information indicating characteristics of one or a plurality of audio information, and the environment data. Relational data is stored, and the basic program is configured to, when the computer receives voice information from the external device, cause the computer to generate voice feature data indicating characteristics of the voice information from the received voice information. Executing the feature data generation process, and in the environment data selection process, the computer may select environment data associated with the voice feature data generated in the voice feature data generation process by the voice environment related data. Good.
[0023]
When the basic program having such a configuration is used, environmental data is automatically selected in accordance with audio information input from an external device to a computer. A screen suitable for the purpose can be displayed on the computer.
[0024]
At least one of the one or more extension programs may cause the computer to execute audio data generation processing for electronically generating audio data.
[0025]
By using the basic program having such a configuration, the computer can realize the functions of a plurality of digital audio devices, and the user can easily use the functions of the digital audio devices by switching environmental data.
[0026]
BEST MODE FOR CARRYING OUT THE INVENTION
[1: First Embodiment]
Hereinafter, a configuration and operation of an application will be described as a preferred embodiment of the present invention. This application allows a computer to realize the functions of an electronic piano sound source and a guitar amplifier, and also allows the user to easily switch between these functions manually. In the following description, “application” is used as a word meaning an aggregate of a plurality of related programs.
[0027]
[1.1: Configuration and operation of computer and external device]
First, the configuration and operation of a
[0028]
The
[0029]
The
[0030]
The
[0031]
The
[0032]
The
[0033]
The NW input /
[0034]
The MIDI input /
[0035]
The analog
[0036]
The D /
[0037]
[1.2: Configuration and operation of music application]
Next, the configuration and operation of the
[0038]
The basic package includes a basic program and related data. Each extension package contains an extension program and related data. The
[0039]
FIG. 3 is a diagram schematically showing the relationship between the basic program and the extension program. First, when an operation is performed on the
[0040]
When the user causes the
[0041]
These user interfaces are associated with the processing of some extension programs that can be executed by the
[0042]
As described above, the basic program has a function as a means for transferring data between each program and other programs constituting its environment. To execute this function, the basic program in the present embodiment refers to an input / output relation table prepared in advance. This input / output relation table indicates that, for each of the basic program and the extension program that can be executed by the
[0043]
Further, the basic program in the present embodiment refers to a component table prepared in advance in order to function as a data transfer unit between the user interface and the program. This component table is composed of user interface data for displaying a user interface on the
[0044]
The input / output relation table and the component element table described above are provided from the provider of the
[0045]
The environment template data included in the extension package is created on the assumption that all extension programs provided by the provider of the
[0046]
As described above, the environment template data is designed on the assumption that the OS of the computer can provide all kinds of functions and that all the extension programs are installed on the computer. However, considering the
[0047]
FIG. 4 shows a data flow in a case where the number of functions provided by the OS and the number of extension programs installed in the computer are smaller than those in the example shown in FIG. That is, in the computer shown in FIG. 4, the OS cannot perform MIDI data input processing, so that the
[0048]
Next, the details of the operation of the
[0049]
The user can install the basic program included in the downloaded basic package on the
[0050]
FIG. 5 is a diagram showing the contents of the program database when only the basic program is installed. The program database is a database in which information of programs stored in the
[0051]
FIG. 6 illustrates the contents of the input / output database when only the basic program is installed. The input / output database is a database that defines what data is input and output for each program stored in the
[0052]
In the data example of FIG. 6, “microphone”, “speaker”, “display” and “MIDI interface” are programs belonging to the OS. For example, the program “microphone” converts an analog audio signal input from an external device into digital audio data by the analog
[0053]
FIG. 7 is a diagram showing the contents of the processing database when only the basic program is installed. The programs registered in the program database cause the
[0054]
According to the data example in FIG. 7, among the processes performed by the basic program, the termination of the
[0055]
FIG. 8 is a diagram showing the contents of the component data database when only the basic program is installed. In the component data database, component data IDs, component style names, component types, and component data file names of component data usable in the
[0056]
FIG. 9 is a diagram showing the contents of the environment data database when only the basic program is installed. In the environment data database, environment data IDs, environment data names, and environment data file names are registered with respect to environment data usable in the
[0057]
FIG. 10 is a diagram showing the contents of the environment template data “toolbar for main menu”. As shown in this figure, the environment template data includes an input / output relationship table indicating data input / output relationships between programs, components of a screen, that is, user interfaces, and components indicating processes associated with those user interfaces. It consists of a table.
[0058]
The input / output relation table is an aggregate of a plurality of input / output relation data. Each input / output relation data has an output field and an input field, and certain output data of a certain program specified by the output field becomes certain input data of a certain program specified by the input field. Is shown. The output field includes a program ID and a program name of a program that is a source of output data, and a data type and an input / output ID of the output data. On the other hand, the input field has a program ID and a program name of a program to which the output data indicated by the output field is supplied. Further, the input field has information representing what output data specified by the output field is handled as input data in the program of the supply destination, specifically, the data type and input / output ID of the input data. . For example, the input / output relation data in the fifth row of the input / output relation table in FIG. 10 indicates that the sound output from the basic program is input to the speaker as the sound.
[0059]
On the other hand, the component table is composed of a plurality of component data representing individual user interfaces arranged on the screen. One component data is composed of a component ID, a component data ID, a component type, display position information, and a link destination process ID. The component data ID, component type, and display position information in the component data are data relating to the display of the user interface, and these are collectively referred to as user interface data. On the other hand, the link destination process ID is data relating to a process associated with the user interface, and is referred to as link data. The specific role of these data will be explained together in the following description of the environmental data.
[0060]
FIG. 11 is a diagram showing the contents of the environment data “toolbar for main menu”. As described above, the environment data is generated by extracting data currently available in the
[0061]
Next, a specific example of environment data generation processing will be described using the environment template data “toolbar for main menu” and the environment data “toolbar for main menu” as examples. First, when the basic program is installed from the basic package, the
[0062]
For example, the input / output relation data shown in the fourth row of the input / output relation table of FIG. 10 indicates the flow of data from the basic program to the MIDI interface, and the program ID “P0001” of the basic program is displayed in the output field. It has a MIDI input / output ID "MO01", and has a MIDI interface program ID "S0085" and a MIDI input / output ID "MI01" in the input fields. However, in this input / output relation data, the set of the program ID “S0085” and the input / output ID “MI01” in the input field is not registered in the input / output database (FIG. 6). This is because the
[0063]
Subsequently, the
[0064]
For example, P0001-CB101 is registered as a link destination process ID in the second row of the component table in FIG. 10, but since this process ID is registered in the process database, it is incorporated in the environment data. The
[0065]
Next, the role of the environment data generated as described above will be described. First, the input / output relation table of the environment data indicates the input / output relation of data between programs, as already described in the environment template data. When generating the output data according to a certain program, the
[0066]
The component table of the environment data is composed of a plurality of component data. Each component data is data related to an individual component displayed on the screen, that is, data related to the user interface, as described in the environment template data, and includes component ID, component data ID, component type, and display position information. And a link destination processing ID. As in the case of the environment template data, the component data ID, component type, and display position information related to the display of the user interface are called user interface data, and the link destination process ID related to the process associated with the user interface is the link data. Called.
[0067]
The component ID is an ID for uniquely identifying each user interface. In order to display the image of each user interface on the screen, it is necessary to refer to any component data in the component data database. The component data ID and the component type in the component data specify which component data in the component data database should be referred to in order to display the image of the user interface specified by the component ID.
[0068]
The display position information is information for specifying a display position and a display size of the user interface, and includes four numerical values. The first and second numerical values in the display position information specify the X coordinate value and the Y coordinate value of the most upper left representative point on the screen in the display image of the user interface specified by the component ID. Things. The third numerical value in the display position information specifies the size of the display image on the user interface in the Y-axis direction, and the fourth numerical value specifies the size in the X-axis direction.
[0069]
The link destination process ID is information indicating a process to be executed when an operation such as a mouse click is performed on a display image of the user interface. The process ID registered in the process database (FIG. 7) is a program ID. And the processing ID. Note that not all user interfaces need to be linked to any process.
[0070]
Next, the role and relationship of each component data in the component table will be described. First, the component data in the first row of the component table is data corresponding to the background of the screen displayed on the
[0071]
According to the component table shown in FIG. 11, the data in the first row specifies an image whose component data ID is IM101 as the background of the screen. The component data “IM101” is a transparent rectangle according to the component data database (FIG. 8). Subsequently, the data in the second line indicates that the command button is displayed on the background and that the processing “P0001-CB101” is linked to the command button. According to the processing database (FIG. 7), this processing is termination processing of the
[0072]
Next, FIG. 12 is a diagram showing the contents of the environment data “Main Menu Classic”. The input / output relation table of FIG. 12 is the same as the input / output relation table of the environment data “toolbar for main menu” (FIG. 11), but the constituent element table is different from that of the environment data “toolbar for main menu”. First, the data in the first row specifies the component data “IM089” as the background of the screen. The component data “IM089” is a light blue rectangle according to the component data database (FIG. 8). Subsequently, the data on the second line specifies that the component data “CW035” is to be displayed on the background. The child window which is the component type of the component data “CW035” is a screen area used by each process to display information to the user.
[0073]
Subsequently, the data in the third line specifies that the component data “EV201” is to be displayed on the screen on the background. However, component data whose component type is environmental data is not registered in the component data database (FIG. 8). In this way, when there is data specifying a component whose component type is environmental data in the component table, the data specifies that a screen constituted by the environmental data is to be displayed as a part of the entire screen. ing.
[0074]
In the following description, if a component table of a certain environment data specifies a screen composed of other environment data as a component, the former environment data is the parent environment data, and the latter is the child environment data. Call. According to the environment data database (FIG. 9), the environment data whose environment data ID is EV201 is the environment data “main menu toolbar” (FIG. 11). This environment data “main menu toolbar” is a child environment data of the environment data “main menu classic”. Conversely, the environment data “Main Menu Classic” is the parent environment data of the environment data “Main Menu Toolbar”.
[0075]
FIG. 13 shows a screen displayed on the
[0076]
The basic package also includes environment data other than the environment data “Main Menu Classic” and “Tool Bar for Main Menu”. For example, the environment data “main menu / casual” is registered in the environment data database (FIG. 9). By specifying part data different from the environment data “main menu / classic”, the environment data shown in FIG. Is environmental data constituting a screen having a different appearance from the screen shown in FIG.
[0077]
Subsequently, an outline of the function of the environment setting of the
[0078]
On the screen of the environment setting “environmental data”, the user can specify the environment data to be selected at the time of starting the
[0079]
On the environment setting “package” screen (not shown), the user can add or delete an extension package, upgrade the basic package and the extension package, and the like. At that time, the program database (FIG. 5) is updated and referenced. On the environment setting “others” screen (not shown), the user can perform settings related to data format, settings related to MIDI, settings of a user account, settings related to security, and the like.
[0080]
Next, the operation of the
[0081]
Subsequently, the
[0082]
Subsequently, the
[0083]
If the result of determination in step S104 is that the component type of the first row is not environmental data, the
[0084]
Next, the
[0085]
Subsequently, the
[0086]
Subsequently, the
[0087]
In step S104, if the component data to be determined specifies environment data as the component type, the component data ID in the component data is the child environment data in which the currently read environment data is the parent environment data. Is specified. In that case, the
[0088]
Subsequently, the
[0089]
Subsequently, the
[0090]
If it is determined in step S112 that there is no next component data to be processed in the component table of the child environment data, the
[0091]
If there is no next component data to be processed in the component table of the parent environment data in the determination of step S113, the
[0092]
As a result of the above series of processing, the screen illustrated in FIG. 13 is displayed on the
[0093]
Next, the operation of the
[0094]
Subsequently, when the component table indicates a process linked to the specified user interface, the
[0095]
For example, when the command button “Browser” is clicked on the screen of FIG. 14, the
[0096]
Subsequently, since the component type of the user interface “CB003” is the command button, the
[0097]
As described above, the
[0098]
As shown in FIG. 2, the extension packages are classified into “general”, “instrument”, “music”, and the like according to the content. The extension package classified as “general” includes an extension program that causes the
[0099]
More specifically, in the present embodiment, under the control of the
[0100]
The extension package categorized as “musical instrument” includes an extension program that causes the
[0101]
More specifically, first, the expansion package includes, as waveform data, audio data obtained by sampling each pitch of the acoustic piano. When instructed to execute the extension program “electronic piano”, the
[0102]
The extension program that causes the
[0103]
The extension package classified as "music" includes an extension program for assisting the user in performing music. For example, in accordance with an extension program included in an extension package “for Elise” classified as “classical piano” of “song”, the
[0104]
Next, an example in which the user installs the extension programs included in the extension package “Sequencer” classified as “General”, the expansion package “Electronic Piano” classified as “Musical Instrument”, and the “Electric Guitar” will be described. The operation of the
[0105]
The user downloads the extension packages “Sequencer”, “Electronic Piano”, and “Electric Guitar” from the provider's HP to the
[0106]
When the extension program is installed, information on the installed extension program is registered in the program database (FIG. 5). Further, information relating to input and output of data that can be handled by the installed extension program is registered in the input / output database (FIG. 6). Further, information relating to processing that can be performed by the installed extension program is registered in the processing database (FIG. 7). In the component data database (FIG. 8), information on the component data installed on the
[0107]
Subsequently, new environment data is generated from the environment template data included in the extension package. The configuration and role of the environment template data included in the extension package and the processing when the environment data is generated from the environment template data are the same as the environment template data included in the basic package. Hereinafter, the process of generating environment data will be supplementarily described using a specific example.
[0108]
FIG. 20 is a diagram showing the contents of environment template data “Piano Classic” included in the extension package “Electronic Piano”. When the environment template data is downloaded to the
[0109]
Similarly, the component table of the environment template data includes a list of component data specifying the user interface linked to the processing of any other programs that may be used together with the extension program “electronic piano”. Has been up.
[0110]
Of the input / output relation data and the component data of the environment template data, only data that can be used in the
[0111]
FIG. 21 is a diagram showing the contents of environment data "Piano Classic" generated from environment template data "Piano Classic" (FIG. 20). For example, among the data included in the environmental template data “Piano Classic”, the input / output relation data related to the extension program “Reverb” and the like not installed in the
[0112]
When new environment data is generated as described above, the environment data database (FIG. 9) is updated according to the new environment data. FIG. 22 is a diagram showing the contents of the environment data database after updating. Further, when a new extension program is installed, all of the existing environment data is updated by the basic program. Because new input / output relations and processing of available data occur between the existing extension program and new extension program, data corresponding to those input / output relations and processing must be extracted from the environment template data again. It is necessary to include it in environmental data.
[0113]
FIG. 23 shows the case where three extension programs “Sequencer”, “Electronic Piano” and “Electric Guitar” are installed after the basic program is installed, and environmental data updated with the installation of these extension programs. It is a figure showing the contents of "main menu classic." The environment data shown in FIG. 23 is compared with the environment data “Main Menu Classic” before the update (FIG. 12), and the component ID of the environment data “Main Menu Classic” after the update has each of the component IDs. Three rows of component data “CB001”, “CB002” and “CB003” are added. These correspond to the three newly installed extension programs "Sequencer", "Electronic Piano" and "Electric Guitar".
[0114]
In FIG. 23, for example, “P0001-EV451” is designated as the link destination processing ID in the user interface “CB002”. “P0001-EV451” indicates the environment data “EV451”. According to the environment data database (FIG. 22), the environment data whose environment data ID is EV451 is the environment data “piano classic”. That is, the component data of the user interface “CB002” in the updated environment data “Main Menu Classic” is configured by the environment data “Piano Classic” from the screen configured by the environment data “Main Menu Classic”. Command buttons for displaying a screen to be displayed.
[0115]
Next, an operation of the
[0116]
When the user clicks the command button “sequencer” on the screen of FIG. 24, the
[0117]
The
[0118]
On the screen of FIG. 25, the user can play, record, edit, and the like MIDI data and audio data. That is, the user can use the
[0119]
Similarly, when the user clicks the command button “electronic piano” on the screen of FIG. 24, the screen shown in FIG. At this time, the environmental data used is the environmental data “Piano Classic”. On the screen shown in FIG. 26, the user can perform a performance using, for example, the
[0120]
That is, the user can use the
[0121]
Similarly, when the user clicks the command button “Electric Guitar” on the screen of FIG. 24, the screen shown in FIG. At this time, the environmental data used is the environmental data “guitar solid”. On the screen of FIG. 27, the user can use the
[0122]
For example, in a state where the screen of FIG. 27 is displayed, the user plays using the
[0123]
As described above, the screens shown in FIGS. 25, 26, and 27 correspond to the extension programs “sequencer”, “electronic piano”, and “electric guitar”, respectively, and the user can switch between these screens. As in the case where a plurality of different applications are used, the
[0124]
First, on each screen of the
[0125]
As described above, on each screen of the
[0126]
The
[0127]
FIGS. 28 and 29 show the environmental data “Piano Classic” when the user further installs the extension packages “for Elise”, “Chorus”, “Reverb”, “Delay” and “Distortion” on the
[0128]
26, a
[0129]
By the way, in FIG. 28, a user interface linked to the processing of the newly installed extension programs “delay” and “distortion” is not arranged. This is designed on the assumption that the environmental template data "Piano Classic" used to generate the environmental data "Piano Classic" is mainly used by users who play classical piano music. This is because there is no data line related to the extension programs “delay” and “distortion” which are not usually used for playing music. Similarly, the screen of FIG. 29, which is assumed to be used by the user playing the electric guitar music, is linked to the processing of the newly installed extension programs “for Elise” and “Reverb”. No user interface is provided, but instead a user interface linked to the processing of the extension programs “delay” and “distortion” is provided.
[0130]
As described above, even when a new extension program is installed, a user linked to a process that is deemed necessary according to the relationship between the processing of the existing extension program and the processing of the new extension program. Only the interface is added to each screen. As a result, unnecessary command buttons and the like are not added to the screen by the addition of the extension program, and the usability of the user is not impaired. Selection of these user interfaces is also automatically realized when environment data is generated from environment template data when the extension program is installed.
[0131]
As described above, processing of a plurality of extension programs can be linked to one screen. That means that the processing of one extended program can be linked to a plurality of screens. For example, FIG. 30 is a screen displayed in accordance with environment data “guitar / eleako” generated from environment template data “guitar / eleako” included in the extension package “electric guitar”.
[0132]
Although the basic configuration and available processing of the screen of FIG. 30 are the same as those of the screen of FIG. 29, the screen of FIG. 30 is arranged so as to be suitable for a player of an electric acoustic guitar, and The effector types are different. Therefore, even when mainly using the same extension program, the user can select a more convenient application environment according to the purpose of use.
[0133]
Although detailed description is omitted in the above description, the user can freely edit existing environment data on the screen of the environment setting “environment data” of the
[0134]
[2: Second Embodiment]
Hereinafter, as a second preferred embodiment of the present invention, it is possible to make a computer realize the functions of an electronic piano sound source and a guitar amplifier, and to automatically switch those programs according to external devices connected to the computer. The configuration and operation of the application to be executed will be described.
[0135]
[2.1: Configuration and operation of computer and external device]
First, the configuration and operation of the
[0136]
Since the
[0137]
The
[0138]
The USB standard is a standard for general-purpose data transmission. According to the USB standard, an information device such as a computer can transmit and receive all types of data including audio data and image data. When data is transmitted and received between information devices (hereinafter, referred to as “USB devices”) configured according to the USB standard, one of the USB devices plays a role of a master and the other plays a role of a slave. Since the master USB device mainly manages data transmission, a computer or the like having a high data processing capability is used as the master USB device.
[0139]
When the slave USB device is connected to the master USB device, the slave USB device transmits a device ID, which is an identifier of the slave USB device, to the master USB device. The USB device on the master side reads a driver program necessary for data transmission with the USB device on the slave side in accordance with the device ID transmitted from the USB device on the slave side. The
[0140]
Instead of the
[0141]
The
[0142]
The
[0143]
[2.2: Configuration and operation of music application]
The configuration and operation of the
[0144]
In the
[0145]
The
[0146]
At the stage when the basic program is installed in the
[0147]
The basic package in the second embodiment includes the device database shown in FIG. 34 in addition to the basic package in the first embodiment, and this device database is stored in the
[0148]
Next, the operation of the
[0149]
Subsequently, the user connects the
[0150]
When receiving the device ID from the
[0151]
In this case, no data with the user ID JOE005 and the device ID USBKB0035 is registered in the device environment-related data. In that case, the
[0152]
When the screen of FIG. 35 is displayed, the
[0153]
The user selects environmental data corresponding to a screen normally used together with the
[0154]
When the command button “OK” in FIG. 35 is clicked, the
[0155]
Subsequently, the user registers the
[0156]
As an example, it is assumed that the device ID of the
[0157]
When the USB device is registered in the device environment-related data as described above, in the
[0158]
The user activates the
[0159]
Upon receiving the device ID from the
[0160]
In this case, since the data having the user ID of JOE005 and the device ID of USBKB0035 are registered in the device environment-related data, the
[0161]
Thereafter, it is assumed that the user has finished using the
[0162]
As described above, the user can switch the screen display, that is, the application environment, simply by connecting the USB device to the computer. That is, since the environment of the application automatically changes according to the connected USB device, the user can use the computer as if it were a part of each USB device.
[0163]
Next, an operation when a user different from the above-mentioned user whose user ID is KEN102 uses the
[0164]
This user starts the
[0165]
As described above, even when an application is used using the same USB device, the user of the application automatically changes the environment of the application. It can be used as if it were part of a USB device.
[0166]
[2.3: Modification of Second Embodiment]
In the example described above, a data transmission method according to the USB standard is used as a data transmission method between a computer and an external device connected to the computer. However, the data transmission method that can be adopted in the present invention is not limited to the method according to the USB standard.
[0167]
For example, when a computer and an external device are connected, such as a data transmission method according to the IEEE (Institute of Electrical and Electronics Engineers) 1394 standard, either the computer or the external device automatically detects the connection, Any data transmission method that defines the mechanism by which the external device transmits its own device ID to the computer can be adopted.
[0168]
Further, even in a data transmission method in which a mechanism for automatically transmitting a device ID is not specified, for example, a computer periodically sends a request for transmission of a device ID to an external device and acquires a device ID from the external device. Where possible, the invention can be implemented.
[0169]
For example, the MIDI standard does not specify a mechanism by which an electronic device automatically transmits a device ID to a connected electronic device. However, in the MIDI standard, an identity request that is a request message for a device ID and an identity reply that is a transmission message can be used. Accordingly, a computer having a MIDI interface for inputting and outputting MIDI data transmits an identity request from the MIDI interface at sufficiently short intervals while executing an application. When an external device is connected to the MIDI interface, the external device sends an identity reply to the identity request. As a result, the computer can identify the model of the externally connected device.
[0170]
[3: Third Embodiment]
Hereinafter, as a third preferred embodiment of the present invention, a computer virtually implements a practice room for music performance of vocals and electric guitars, and the environment of these applications is automatically adjusted in accordance with audio information input to the computer. A configuration and an operation of an application that can be selectively switched will be described.
[0171]
[3.1: Configuration and operation of computer and external device]
First, the configuration and operation of the
[0172]
Since the
[0173]
In the third embodiment, a
[0174]
[3.2: Configuration and operation of music application]
The configuration and operation of the
[0175]
The
[0176]
In the following description, the
[0177]
Hereinafter, the outline of the operation of the extension program classified as “music” will be described by taking the extension program “Sakura Sakura” as an example. The extended package "Sakura Sakura" includes, in addition to the extended program, environmental template data and parts data, image data of musical score, MIDI data for accompaniment, digital voice data of each part of vocal, comment data according to the score of singing performance. Etc. are included.
[0178]
FIG. 40 is a screen displayed by the
[0179]
The user listens to the piano accompaniment and the sound of the second part, which are pronounced from the
[0180]
That is, for example, the
[0181]
When the user finishes the singing performance and clicks the command button “stop” of the
[0182]
FIG. 41 is an example of a screen displayed on the
[0183]
Next, the operation of the
[0184]
The user connects the
[0185]
The user's voice is recorded in the
[0186]
The formant frequency is a kind of an index indicating a feature of a sound. FIG. 44 is a diagram schematically showing digital audio data obtained by sampling a certain audio. In FIG. 44, the horizontal axis represents time, and the vertical axis represents sound pressure level. As described above, the digital audio data shows an audio waveform as a whole.
[0187]
FIG. 45 is a diagram schematically showing the result of calculating the frequency components of the digital audio data shown in FIG. 44 using the fast Fourier transform method. In FIG. 45, the horizontal axis indicates frequency, and the vertical axis indicates the amplitude of each frequency component included in the voice. FIG. 46 is a diagram schematically showing the result of smoothing the amplitude of the frequency component shown in FIG. 45 using a low-pass filter or the like. The vertical and horizontal axes in FIG. 46 are the same as those in FIG.
[0188]
According to the data in FIG. 46, peaks are confirmed at the respective frequencies of 0.42 kHz, 1.21 kHz, 3.37 kHz and 3.83 kHz. The frequencies corresponding to these peaks are formant frequencies, and are referred to as a first formant frequency and a second formant frequency, respectively, from the lower frequency side.
[0189]
That is, the
[0190]
After completing the calculation of the formant frequency, the
[0191]
The
[0192]
Subsequently, the user registers the sound of the
[0193]
On the screen of FIG. 43, the user plays the strings of the
[0194]
As a result of the above processing, the voice environment related data (FIG. 38) is updated as shown in FIG. In FIG. 48, data having a voice ID of WAV 207 is data corresponding to voice generated by the user, while data having a voice ID of WAV 208 is data corresponding to voice generated by
[0195]
When the voice is registered in the voice environment-related data as described above, in the
[0196]
The user first activates the
[0197]
When the
(Equation 1)
[0198]
Err in Expression (1) is an index indicating a deviation between each registered frequency and the sample frequency. The smaller the value of Err, the more similar the sample frequency and the registered frequency are. Therefore, the voice currently input to the
[0199]
When obtaining the value of Err in Expression (1) with respect to each data of the voice environment related data, the
[0200]
When the value of Err is equal to or less than a predetermined value, the
[0201]
Thereafter, it is assumed that the user has finished using the
[0202]
As described above, according to the third embodiment, the environment of the application is automatically switched according to the audio signal input to the computer. Therefore, when different users use the same application, the user can switch the environment of the application only by inputting his / her voice into the computer with the microphone. Further, when the user uses an application by connecting a different audio device to the computer, the user can switch the environment of the application only by inputting an audio signal from the audio device to the computer.
[0203]
Accordingly, the user can use the computer as if it were an electronic device configured for himself, or use the computer as if it were part of an audio device.
[0204]
[3.3: Modification of Third Embodiment]
In the example described above, the similarity of speech is calculated using the formant frequency. However, the index indicating the similarity of speech that can be adopted in the present invention is not limited to the formant frequency, and various speech recognition methods such as a speech recognition method using a stochastic model can be adopted. Also, the method of calculating the formant frequency is not limited to the method described above. For example, a normal Fourier transform may be used instead of the fast Fourier transform.
[0205]
[4: Modification]
The above-described first to third embodiments are exemplifications of the embodiments of the present invention, and various modifications can be made to the above-described embodiments without departing from the gist of the present invention. Hereinafter, modified examples will be described.
[0206]
[4.1: First Modification]
In the first modification, each component of the computer is not necessarily arranged in the same housing, and some components are arranged separately from other components. For example, the HD, the display unit, the operation unit, the amplifier, the speaker, and the like may be connected as external devices to the computer. Further, different information devices connected to each other via a LAN or the like, for example, a computer having a DSP having a high processing capability and a computer having a CPU having a different high processing capability cooperate with the computer shown in each of the above embodiments. Processing may be performed.
[0207]
According to the first modification, the user can cause the computer to execute the application according to the present invention by effectively utilizing the resources of various information devices that are distributed and arranged.
[0208]
[4.2: Second Modification]
In the second modification, the computer has a wireless communication interface, and can receive data from an external device having a wireless communication function via the wireless communication interface. The computer selects environmental data, switches screens, and the like in accordance with data received from an external device via wireless communication. According to the second modification, the user can save time and effort required to connect and disconnect the cable between the computer and the external device, and the convenience is improved.
[0209]
[4.3: Third Modification]
In the third modification, the computer further includes a component for reading data from an external recording medium such as a CD-ROM (Compact Disc Only Memory) drive, and includes a basic package, an extension package, and the like stored in a CD-ROM or the like. Can be read, and the programs included in them can be installed. According to the third modification, the user can cause the computer to execute the application according to the present invention even when using a computer that is difficult to connect to the Internet.
[0210]
[4.4: Fourth Modification]
In the fourth modification, the basic program and the extension program are described in a language executable by browser software such as XML (Extensible Markup Language). Further, various data such as environmental data and the contents of the database are described in a language capable of defining a data structure such as XML.
[0211]
According to the fourth modification, an application that is a composite of the basic program and the extension program can be executed in the browser software. Therefore, the program developer uses the functions of the existing browser software to display the contents in each program. And various functions such as reproduction of audio data and the like can be realized in the program, and the burden on development can be reduced. Further, cooperative processing with other data described in a language such as XML, such as processing for embedding a screen display related to the basic program and the extended program in a screen of a related HP, is easily realized.
[0212]
【The invention's effect】
As described above, according to the program of the present invention, the development and management of the program are performed in units of extension packages, so that the developer of the program can easily develop and manage the program. In addition, since the user can select and purchase only the extension program desired to be used, the cost burden of the user purchasing the program is reduced.
[0213]
At the same time, according to the program of the present invention, even if many extension programs are installed, command buttons and the like related to the functions of the many extension programs are displayed, and it becomes difficult for the user to find necessary functions. There is no inconvenience.
[0214]
Further, according to the program of the present invention, since the processes of a plurality of extension programs related to each other can be used from the same screen, the user does not need to be aware of different extension programs.
[0215]
Furthermore, according to the program of the present invention, a screen is displayed in which only the user interface linked to the necessary processing according to the purpose of use is displayed, so that the user can use the application as if using a different application for each screen. Can be used. At that time, the user can easily change the environment of the application only by switching the screen.
[0216]
Furthermore, according to the program of the present invention, the user can easily adjust the environment of the application to one suitable for his / her own purpose by editing the environment data indicating the configuration of the screen.
[0219]
Further, according to the program of the present invention, the user can change the environment of the application only by connecting the external device to the computer. Further, according to the program of the present invention, the user can change the environment of the application only by inputting audio information to the computer.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating a configuration of a computer and external devices connected to the computer according to a first embodiment.
FIG. 2 is a diagram illustrating a configuration of a music application according to the first, second, and third embodiments.
FIG. 3 is a diagram illustrating a relationship between a basic program and an extension program according to the first embodiment, the second embodiment, and the third embodiment.
FIG. 4 is a diagram showing a relationship between a basic program and an extension program according to the first embodiment, the second embodiment, and the third embodiment.
FIG. 5 is a diagram showing contents of a program database according to the first embodiment, the second embodiment and the third embodiment.
FIG. 6 is a diagram showing contents of an input / output database according to the first embodiment, the second embodiment, and the third embodiment.
FIG. 7 is a diagram showing contents of a processing database according to the first embodiment, the second embodiment, and the third embodiment.
FIG. 8 is a diagram showing contents of a component data database according to the first, second, and third embodiments.
FIG. 9 is a diagram showing contents of an environment data database according to the first embodiment and the third embodiment.
FIG. 10 is a diagram showing contents of environment template data according to the first embodiment.
FIG. 11 is a diagram showing contents of environment data according to the first embodiment.
FIG. 12 is a diagram showing contents of environment data according to the first embodiment.
FIG. 13 is a diagram showing a screen display according to the first embodiment.
FIG. 14 is a diagram showing a screen display according to the first embodiment.
FIG. 15 is a flowchart showing screen display processing according to the first, second, and third embodiments.
FIG. 16 is a diagram showing contents of a program database according to the first embodiment.
FIG. 17 is a diagram showing contents of an input / output database according to the first embodiment.
FIG. 18 is a diagram showing contents of a processing database according to the first embodiment.
FIG. 19 is a diagram showing contents of a component data database according to the first embodiment.
FIG. 20 is a diagram showing the contents of environment template data according to the first embodiment.
FIG. 21 is a diagram showing contents of environment data according to the first embodiment.
FIG. 22 is a diagram showing contents of an environment data database according to the first embodiment.
FIG. 23 is a diagram showing contents of environment data according to the first embodiment.
FIG. 24 is a diagram showing a screen display according to the first embodiment and the second embodiment.
FIG. 25 is a diagram showing a screen display according to the first embodiment.
FIG. 26 is a diagram showing a screen display according to the first embodiment.
FIG. 27 is a diagram showing a screen display according to the first embodiment.
FIG. 28 is a diagram showing a screen display according to the first embodiment and the second embodiment.
FIG. 29 is a diagram showing a screen display according to the first embodiment and the second embodiment.
FIG. 30 is a diagram showing a screen display according to the first embodiment and the second embodiment.
FIG. 31 is a diagram illustrating a configuration of a computer and external devices connected to the computer according to the second embodiment.
FIG. 32 is a diagram showing contents of an environment data database according to the second embodiment.
FIG. 33 is a diagram showing contents of device environment related data according to the second embodiment.
FIG. 34 is a diagram showing contents of a device database according to the second embodiment.
FIG. 35 is a diagram showing a screen display according to the second embodiment.
FIG. 36 is a diagram showing contents of device environment related data according to the second embodiment.
FIG. 37 is a diagram illustrating a configuration of a computer and external devices connected to the computer according to the third embodiment.
FIG. 38 is a diagram showing contents of audio environment related data according to the third embodiment.
FIG. 39 is a diagram showing contents of an environment data database according to the third embodiment.
FIG. 40 is a diagram showing a screen display according to the third embodiment.
FIG. 41 is a diagram showing a screen display according to the third embodiment.
FIG. 42 is a diagram showing a screen display according to the third embodiment.
FIG. 43 is a diagram showing a screen display according to the third embodiment.
FIG. 44 is a diagram showing an example of audio data for explaining a formant frequency.
FIG. 45 is a diagram illustrating an example of frequency components of audio data for describing a formant frequency.
FIG. 46 is a diagram illustrating an example of frequency components of smoothed audio data for explaining a formant frequency.
FIG. 47 is a diagram showing a screen display according to the third embodiment.
FIG. 48 is a diagram showing the contents of voice environment related data according to the third embodiment.
[Explanation of symbols]
1, 2, 3 ... computer, 101 ... CPU, 102 ... DSP, 103 ... ROM, 104 ... RAM, 105 ... HD, 106 ... display unit, 107 ... -Operation unit, 108: NW input / output unit, 109: MIDI input / output unit, 110: Analog audio input unit, 111, 2032: A / D converter, 112: D /
Claims (7)
前記複数の環境データのうち1の環境データを選択する環境データ選択処理と、
選択した環境データに従って1または複数のユーザインタフェースを提供するユーザインタフェース提供処理と、
提供した1または複数のユーザインタフェースのいずれかに対するユーザの操作が行われた場合、選択した環境データに含まれるリンクデータによって当該ユーザインタフェースに関連付けられた拡張プログラムの実行制御を行う拡張プログラム制御処理と
を実行させる基本プログラム。One or more extension programs, user interface data defining one or more user interfaces for receiving instructions from a user, and each of the one or more user interfaces for execution control of the one or more extension programs A computer having a memory storing a plurality of environment data including link data to be associated;
Environmental data selection processing for selecting one environmental data from the plurality of environmental data;
A user interface providing process for providing one or more user interfaces according to the selected environment data;
An extended program control process for controlling execution of an extended program associated with the user interface by link data included in the selected environment data when a user operation is performed on one of the provided one or more user interfaces; Basic program to execute
前記基本プログラムは、前記コンピュータが前記1または複数の拡張プログラムに従って、ある処理を実行し、その処理において出力データが得られた場合、前記環境データ選択処理において選択された環境データに含まれる入出力関係データに従って、当該出力データを入力データとする処理を前記コンピュータに実行させる
請求項1に記載の基本プログラム。Each of the plurality of environment data indicates whether input data required by each process executed according to the one or more extension programs is output data of any process performed according to the one or more extension programs. Including input-output related data shown,
When the computer executes a certain process according to the one or more extended programs and obtains output data in the process, the basic program includes input / output data included in the environment data selected in the environment data selection process. The basic program according to claim 1, wherein the basic program causes the computer to execute a process of using the output data as input data in accordance with the relation data.
前記メモリに、ある拡張プログラムが新たに記憶された場合、前記コンピュータに、前記複数の環境データの各々に対し、新たに記憶された拡張プログラムに関連するデータを追加させ、
前記メモリに記憶されている前記1または複数の拡張プログラムのいずれかが前記メモリから削除された場合、前記コンピュータに、前記複数の環境データの各々から、削除された拡張プログラムに関連するデータを削除させる
請求項1または請求項2に記載の基本プログラム。The basic program is:
In the memory, when a certain extension program is newly stored, the computer, for each of the plurality of environment data, to add data related to the newly stored extension program,
When any of the one or more extension programs stored in the memory is deleted from the memory, the computer deletes data related to the deleted extension program from each of the plurality of environment data. The basic program according to claim 1 or 2, wherein the basic program is executed.
前記メモリには、前記デバイスIDと前記環境データとの対応関係を示すデバイス環境関係データが記憶されており、
前記基本プログラムは、前記コンピュータが前記1または複数の外部機器のいずれかからデバイスIDを受信した場合、前記環境データ選択処理において、前記コンピュータに、前記デバイス環境関係データによって受信したデバイスIDに対応付けられた環境データを選択させる
請求項1乃至請求項3のいずれかに記載の基本プログラム。The computer can receive a device ID for identifying each of the one or more external devices from one or more external devices,
In the memory, device environment relation data indicating a correspondence between the device ID and the environment data is stored,
When the computer receives a device ID from one of the one or more external devices, the basic program associates the computer with the device ID received by the device environment-related data in the environment data selection process. The basic program according to any one of claims 1 to 3, wherein the selected environment data is selected.
前記メモリには、1または複数の音声情報の特徴を示す情報である音声特徴データと前記環境データとの対応関係を示す音声環境関係データが記憶されており、
前記基本プログラムは、
前記コンピュータが前記外部機器から音声情報を受信した場合、前記コンピュータに、受信した音声情報から該音声情報の特徴を示す音声特徴データを生成させる音声特徴データ生成処理を実行させ、
前記環境データ選択処理において、前記コンピュータに、前記音声環境関係データによって、前記音声特徴データ生成処理において生成した音声特徴データに対応付けられた環境データを選択させる
請求項1乃至請求項3のいずれかに記載の基本プログラム。The computer can acquire audio information from an external device,
In the memory, audio environment relationship data indicating a correspondence between the audio feature data and the environment data, which are information indicating characteristics of one or a plurality of audio information, is stored.
The basic program is:
When the computer receives voice information from the external device, the computer causes the computer to execute voice feature data generation processing for generating voice feature data indicating a feature of the voice information from the received voice information,
4. The computer according to claim 1, wherein, in the environment data selection processing, the computer selects environment data associated with the voice feature data generated in the voice feature data generation processing based on the voice environment related data. 5. Basic program described in.
請求項1乃至請求項5のいずれかに記載の基本プログラム。The basic program according to claim 1, wherein at least one of the one or more extension programs causes the computer to execute audio data generation processing for electronically generating audio data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003005114A JP4400051B2 (en) | 2003-01-10 | 2003-01-10 | Basic program and recording medium enabling easy switching of program environment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003005114A JP4400051B2 (en) | 2003-01-10 | 2003-01-10 | Basic program and recording medium enabling easy switching of program environment |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004220208A true JP2004220208A (en) | 2004-08-05 |
JP4400051B2 JP4400051B2 (en) | 2010-01-20 |
Family
ID=32895861
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003005114A Expired - Fee Related JP4400051B2 (en) | 2003-01-10 | 2003-01-10 | Basic program and recording medium enabling easy switching of program environment |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4400051B2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009025988A (en) * | 2007-07-18 | 2009-02-05 | Yamaha Corp | Gui development device, program for achieving control method, and electronic music device |
JP7018110B1 (en) | 2020-08-28 | 2022-02-09 | 寶トク科技股フン有限公司 | Mobile device dock |
CN116828288A (en) * | 2023-08-28 | 2023-09-29 | 广州信邦智能装备股份有限公司 | Composite intelligent inspection robot capable of being applied to multiple scenes and related system |
-
2003
- 2003-01-10 JP JP2003005114A patent/JP4400051B2/en not_active Expired - Fee Related
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009025988A (en) * | 2007-07-18 | 2009-02-05 | Yamaha Corp | Gui development device, program for achieving control method, and electronic music device |
JP7018110B1 (en) | 2020-08-28 | 2022-02-09 | 寶トク科技股フン有限公司 | Mobile device dock |
CN114116571A (en) * | 2020-08-28 | 2022-03-01 | 宝德科技股份有限公司 | Mobile device bridge platform |
JP2022039887A (en) * | 2020-08-28 | 2022-03-10 | 寶トク科技股フン有限公司 | Mobile device dock |
CN114116571B (en) * | 2020-08-28 | 2023-08-18 | 宝德科技股份有限公司 | Bridging platform for mobile device |
US11874703B2 (en) | 2020-08-28 | 2024-01-16 | Dexin Corporation | Mobile dock |
CN116828288A (en) * | 2023-08-28 | 2023-09-29 | 广州信邦智能装备股份有限公司 | Composite intelligent inspection robot capable of being applied to multiple scenes and related system |
CN116828288B (en) * | 2023-08-28 | 2024-01-02 | 广州信邦智能装备股份有限公司 | Composite intelligent inspection robot capable of being applied to multiple scenes and related system |
Also Published As
Publication number | Publication date |
---|---|
JP4400051B2 (en) | 2010-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1841495B (en) | Electronic musical instrument | |
US6975995B2 (en) | Network based music playing/song accompanying service system and method | |
JPH10177380A (en) | Method for expanding function of operation terminal, operation terminal for applying the method and medium for recording program | |
JP2002372970A (en) | Electronic music device and server device capable of transferring performance setting information, performance setting information transfer method and program | |
JP2003050579A (en) | Customizing method for electronic music device, the electronic music device and server for the electronic music device | |
JP6167542B2 (en) | Electronic device and program | |
JP4265551B2 (en) | Performance assist device and performance assist program | |
JP4400051B2 (en) | Basic program and recording medium enabling easy switching of program environment | |
JP3922247B2 (en) | Performance control data generation apparatus and program | |
JP2003208174A (en) | Electronic musical apparatus and program therefor | |
JP5870831B2 (en) | Program and music image display apparatus for realizing music image display method | |
JP4572874B2 (en) | Electronic musical instrument main body apparatus and program thereof | |
JP5969421B2 (en) | Musical instrument sound output device and musical instrument sound output program | |
JP3637196B2 (en) | Music player | |
JP4853054B2 (en) | Performance data editing apparatus and program | |
US20130204628A1 (en) | Electronic apparatus and audio guide program | |
JP3903864B2 (en) | Program for realizing automatic composition device and automatic composition method | |
JP2011197664A (en) | Music file reproduction device and system | |
JP4487743B2 (en) | Electronic musical instrument and musical tone parameter control program | |
JP4273821B2 (en) | Audio data processing program | |
JP2009014862A (en) | Electronic musical instrument, and method of controlling the electronic musical instrument | |
JP2003114680A (en) | Apparatus and program for musical sound information editing | |
JP5387032B2 (en) | Electronic music apparatus and program | |
JP4214932B2 (en) | Website program applied to server computer | |
JP5387031B2 (en) | Electronic music apparatus and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050927 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080805 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081006 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20091006 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20091019 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121106 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121106 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131106 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |