JP4400051B2 - プログラム環境を簡便に切り替え可能とする基本プログラムおよび記録媒体 - Google Patents

プログラム環境を簡便に切り替え可能とする基本プログラムおよび記録媒体 Download PDF

Info

Publication number
JP4400051B2
JP4400051B2 JP2003005114A JP2003005114A JP4400051B2 JP 4400051 B2 JP4400051 B2 JP 4400051B2 JP 2003005114 A JP2003005114 A JP 2003005114A JP 2003005114 A JP2003005114 A JP 2003005114A JP 4400051 B2 JP4400051 B2 JP 4400051B2
Authority
JP
Japan
Prior art keywords
data
program
computer
environment
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.)
Expired - Fee Related
Application number
JP2003005114A
Other languages
English (en)
Other versions
JP2004220208A (ja
Inventor
強 宮木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP2003005114A priority Critical patent/JP4400051B2/ja
Publication of JP2004220208A publication Critical patent/JP2004220208A/ja
Application granted granted Critical
Publication of JP4400051B2 publication Critical patent/JP4400051B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Electrophonic Musical Instruments (AREA)
  • User Interface Of Digital Computer (AREA)

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または複数のユーザインタフェースのいずれかに対するユーザの操作が行われると、前記選択手段によって選択された環境データに含まれるリンクデータによって当該ユーザインタフェースに関連付けられた拡張プログラムの実行制御を行う拡張プログラム制御手段として機能させるための基本プログラム基本プログラムを提供する。
また、前記環境データデータベースに登録されている環境データには、その構成要素が、前記環境データデータベースに登録された他の環境データで構成されるものが含まれてもよい。
【0015】
かかる構成による基本プログラムを用いると、使用目的に応じた環境データが選択されることにより、使用目的に必要な処理に対応付けられたユーザインタフェースのみが画面に表示される。その結果、ユーザが複数の処理を有する複数の拡張プログラムを同時に利用し、使用目的に応じてそれらを使い分ける必要がある場合であっても、ユーザは環境データを切り替えることにより、容易に使用目的に応じた画面をコンピュータに表示させることができる。
【0016】
また、前記環境雛形データは、前記1または複数の拡張プログラムに従って実行される各処理が必要とする入力データが、前記1または複数の拡張プログラムに従って行われるいずれの処理の出力データであるかを示す入出力関係データを含み、前記拡張プログラム制御手段は、実行制御する拡張プログラムに従って、前記コンピュータにある処理を実行させ、その処理において出力データが得られると、前記選択手段において選択された環境データに含まれる入出力関係データに従って、当該出力データを入力データとする処理を前記コンピュータに実行させてもよい。
【0017】
かかる構成による基本プログラムを用いると、複数の拡張プログラム間におけるデータの入力および出力の関係が、環境データの選択により自動的に決定される。
【0018】
また、前記コンピュータを、前記インストール手段によって前記拡張プログラムがインストールされると、前記環境データデータベースに既に登録されていた環境データを、当該環境データの生成元である環境雛形データから、すでに前記コンピュータにインストールされている拡張プログラムと関連するデータを抽出して更新する更新手段としてさらに機能させてもよい。
また、前記コンピュータを、前記拡張プログラムを取得するプログラム取得手段と、前記コンピュータにインストールされている拡張プログラムから、いずれかの拡張プログラムを削除する削除手段としてさらに機能させ、前記更新手段は、さらに前記削除手段によって拡張プログラムが削除されると、前記環境データを更新し、前記インストール手段は、さらに、前記プログラム取得手段によって取得された拡張プログラムを前記コンピュータにインストールしてもよい。
【0019】
かかる構成による基本プログラムを用いると、コンピュータにおいて利用可能な拡張プログラムの構成に変更があった場合に、環境データにおけるデータインタフェースデータおよびリンクデータがその変更に応じて自動的に更新される。
【0020】
また、前記コンピュータは、1または複数の外部機器から前記1または複数の外部機器の各々を識別するデバイスIDを受信可能であり、前記デバイスIDと前記デバイスIDと前記環境データデータベースに登録された環境データとの対応関係を示すデバイス環境関係データを記憶、前記選択手段は、前記コンピュータが前記1または複数の外部機器のいずれかからデバイスIDを受信すると、前記デバイス環境関係データによって、当該デバイスIDに対応付けられた環境データを選択てもよい。
【0021】
かかる構成による基本プログラムを用いると、外部機器からコンピュータに送信されるデバイスIDに応じて環境データが自動的に選択されるため、ユーザは外部機器をコンピュータに接続するだけで、使用目的に応じた画面をコンピュータに表示させることができる。
【0022】
また、前記コンピュータは、外部機器から音声情報を取得可能であり、1または複数の音声情報の特徴を示す情報である音声特徴データと前記環境データとの対応関係を示す音声環境関係データを記憶前記コンピュータを、前記コンピュータが前記外部機器から音声情報を受信すると、受信した音声情報から該音声情報の特徴を示す音声特徴データを生成する音声特徴データ生成手段としてさらに機能させ、前記選択手段は、前記音声環境関係データによって、前記音声特徴データ生成手段において生成した音声特徴データに対応付けられた環境データを選択てもよい。
【0023】
かかる構成による基本プログラムを用いると、外部機器からコンピュータに入力される音声情報に応じて環境データが自動的に選択されるため、ユーザは外部機器から音声情報をコンピュータに対し送信させるだけで、使用目的に応じた画面をコンピュータに表示させることができる。
【0024】
また、前記コンピュータにインストールされている拡張プログラムの少なくとも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】
Figure 0004400051
【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・・・マイクロフォン。

Claims (9)

  1. コンピュータを、
    ユーザから指示を受け取るための1または複数のユーザインタフェースを定義するユーザインタフェースデータと、前記1または複数のユーザインタフェースの各々を、基本プログラムと共に動作しアプリケーションを構築する複数の機能の一部の特定の機能を実現するためのプログラムである1または複数の拡張プログラムの実行制御に関連付けるリンクデータとを含環境データが登録される環境データデータベースを記憶する記憶手段と、
    前記拡張プログラムと、当該拡張プログラムに関連するあらゆる前記ユーザインタフェースデータおよび前記リンクデータを含む環境雛形データとを組にした拡張パッケージを取得する取得手段と、
    前記取得手段によって取得された拡張パッケージに係る拡張プログラムを前記コンピュータにインストールするインストール手段と、
    前記インストール手段によって前記拡張パッケージに係る拡張プログラムがインストールされると、当該拡張パッケージに係る環境雛形データから、すでに前記コンピュータにインストールされている拡張プログラムと関連するデータを抽出した環境データを生成し、当該環境データを前記環境データデータベースに登録する生成手段と、
    前記環境データデータベースに登録された環境データのうち1の環境データを選択する選択手段と、
    前記選択手段によって選択された環境データに含まれるユーザインタフェースデータに従って1または複数のユーザインタフェースを提供する提供手段と、
    前記提供手段によって提供された1または複数のユーザインタフェースのいずれかに対するユーザの操作が行われると、前記選択手段によって選択された環境データに含まれるリンクデータによって当該ユーザインタフェースに関連付けられた拡張プログラムの実行制御を行う拡張プログラム制御手段
    として機能させるための基本プログラム。
  2. 前記環境データデータベースに登録されている環境データには、その構成要素が、前記環境データデータベースに登録された他の環境データで構成されるものが含まれる
    請求項1に記載の基本プログラム。
  3. 前記コンピュータを、
    前記インストール手段によって前記拡張プログラムがインストールされると、前記環境データデータベースに既に登録されていた環境データを、当該環境データの生成元である環境雛形データから、すでに前記コンピュータにインストールされている拡張プログラムと関連するデータを抽出して更新する更新手段
    としてさらに機能させる
    請求項1または請求項2に記載の基本プログラム。
  4. 前記コンピュータを、
    前記拡張プログラムを取得するプログラム取得手段と、
    前記コンピュータにインストールされている拡張プログラムから、いずれかの拡張プログラムを削除する削除手段
    としてさらに機能させ、
    前記更新手段は、さらに前記削除手段によって拡張プログラムが削除されると、前記環境データを更新し、
    前記インストール手段は、さらに、前記プログラム取得手段によって取得された拡張プログラムを前記コンピュータにインストールする
    請求項3に記載の基本プログラム。
  5. 前記環境雛形データは、前記1または複数の拡張プログラムに従って実行される各処理が必要とする入力データが、前記1または複数の拡張プログラムに従って行われるいずれの処理の出力データであるかを示す入出力関係データを含み、
    前記拡張プログラム制御手段は、実行制御する拡張プログラムに従って、前記コンピュータにある処理を実行させ、その処理において出力データが得られると、前記選択手段において選択された環境データに含まれる入出力関係データに従って、当該出力データを入力データとする処理を前記コンピュータに実行させる
    請求項1乃至請求項4のいずれかに記載の基本プログラム。
  6. 前記コンピュータは、1または複数の外部機器から前記1または複数の外部機器の各々を識別するデバイスIDを受信可能であり、前記デバイスIDと前記デバイスIDと前記環境データデータベースに登録された環境データとの対応関係を示すデバイス環境関係データを記憶
    前記選択手段は、前記コンピュータが前記1または複数の外部機器のいずれかからデバイスIDを受信すると、前記デバイス環境関係データによって、当該デバイスIDに対応付けられた環境データを選択する
    請求項1乃至請求項のいずれかに記載の基本プログラム。
  7. 前記コンピュータは、外部機器から音声情報を取得可能であり、1または複数の音声情報の特徴を示す情報である音声特徴データと前記環境データとの対応関係を示す音声環境関係データを記憶
    前記コンピュータを、
    前記コンピュータが前記外部機器から音声情報を受信すると、受信した音声情報から該音声情報の特徴を示す音声特徴データを生成する音声特徴データ生成手段
    としてさらに機能させ、
    前記選択手段は、前記音声環境関係データによって、前記音声特徴データ生成手段において生成した音声特徴データに対応付けられた環境データを選択する
    請求項1乃至請求項のいずれかに記載の基本プログラム。
  8. 前記コンピュータにインストールされている拡張プログラムの少なくとも1つは、前記拡張プログラム制御手段によって実行制御されると、前記コンピュータに、音声データを電子的に生成する音声データ生成処理を実行させる
    請求項1乃至請求項のいずれかに記載の基本プログラム。
  9. 請求項1乃至請求項のいずれかに記載の基本プログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2003005114A 2003-01-10 2003-01-10 プログラム環境を簡便に切り替え可能とする基本プログラムおよび記録媒体 Expired - Fee Related JP4400051B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003005114A JP4400051B2 (ja) 2003-01-10 2003-01-10 プログラム環境を簡便に切り替え可能とする基本プログラムおよび記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003005114A JP4400051B2 (ja) 2003-01-10 2003-01-10 プログラム環境を簡便に切り替え可能とする基本プログラムおよび記録媒体

Publications (2)

Publication Number Publication Date
JP2004220208A JP2004220208A (ja) 2004-08-05
JP4400051B2 true JP4400051B2 (ja) 2010-01-20

Family

ID=32895861

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003005114A Expired - Fee Related JP4400051B2 (ja) 2003-01-10 2003-01-10 プログラム環境を簡便に切り替え可能とする基本プログラムおよび記録媒体

Country Status (1)

Country Link
JP (1) JP4400051B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4905708B2 (ja) * 2007-07-18 2012-03-28 ヤマハ株式会社 Gui開発装置、その制御方法を実現するためのプログラム、および電子音楽装置
TWI777230B (zh) 2020-08-28 2022-09-11 寶德科技股份有限公司 行動裝置橋接平台
CN116828288B (zh) * 2023-08-28 2024-01-02 广州信邦智能装备股份有限公司 可多场景应用的复合型智能巡检机器人和相关系统

Also Published As

Publication number Publication date
JP2004220208A (ja) 2004-08-05

Similar Documents

Publication Publication Date Title
JP3726712B2 (ja) 演奏設定情報の授受が可能な電子音楽装置及びサーバ装置、並びに、演奏設定情報授受方法及びプログラム
CN1841495B (zh) 电子乐器
JPH10177380A (ja) 動作端末の機能拡張方法及びこの機能拡張方法を適用するための動作端末並びにプログラムを記録した媒体
JP2003099037A (ja) 音楽コンテンツストレージシステム、音楽コンテンツ提供サーバ及び電子音楽装置
JP4265551B2 (ja) 演奏補助装置及び演奏補助プログラム
JP2003050579A (ja) 電子音楽装置のカスタム化方法、電子音楽装置および電子音楽装置用サーバ
JP6167542B2 (ja) 電子装置及びプログラム
JP4400051B2 (ja) プログラム環境を簡便に切り替え可能とする基本プログラムおよび記録媒体
JP4135011B2 (ja) 音楽コンテンツ共有システム
JP3922247B2 (ja) 演奏制御データ生成装置およびプログラム
JP2003208174A (ja) 電子音楽装置及び電子音楽装置用プログラム
JP4853330B2 (ja) カラオケシステム及びカラオケ装置
JP2013224999A (ja) 音楽画像表示方法を実現するためのプログラムおよび音楽画像表示装置
Pleshkova et al. Development of a MIDI synthesizer for test signals to a wireless acoustic sensor network
JP3637196B2 (ja) 音楽再生装置
JP4853054B2 (ja) 演奏データ編集装置及びプログラム
JP2006106768A (ja) 音楽コンテンツストレージシステム
JP2013178509A (ja) 電子装置、及び音声ガイド用プログラム
JP4487743B2 (ja) 電子楽器及び楽音パラメータ制御プログラム
JP2011197664A (ja) 音楽ファイル再生装置及びシステム
JP4273821B2 (ja) 音声データ処理プログラム
JP2003114680A (ja) 楽曲情報編集装置及び楽曲情報編集プログラム
JP6614902B2 (ja) カラオケシステム、サーバ装置及びプログラム
JP5387032B2 (ja) 電子音楽装置及びプログラム
JP4214932B2 (ja) サーバコンピュータに適用されるウェブサイト用プログラム

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