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 PDF

Info

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
Application number
JP2003005114A
Other languages
Japanese (ja)
Other versions
JP4400051B2 (en
Inventor
Tsutomu Miyaki
強 宮木
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/en
Publication of JP2004220208A publication Critical patent/JP2004220208A/en
Application granted granted Critical
Publication of JP4400051B2 publication Critical patent/JP4400051B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

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

Abstract

<P>PROBLEM TO BE SOLVED: To provide a program for allowing a user to easily select a program use environment constituted of only necessary functions according to the purpose of use of the user in a condition that a plurality of mutually associated programs are simultaneously used. <P>SOLUTION: Environment data are registered with the information of a user interface. Any of the processing of a plurality of extended programs is linked to the user interface. A CPU displays the image of the user interface shown by the environment data at a display part according to a basic program. When a user performs an operation to the user interface displayed at the display part, the CPU executes the extended program linked to the user interface, and executes processing corresponding to the operation. The user switches the environment data to make the CPU display a screen constituted of a different user interface. <P>COPYRIGHT: (C)2004,JPO&NCIPI

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】

Figure 2004220208
【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 Patent Document 1. Have been.
[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 computer 1 as an execution environment of an application (hereinafter, referred to as “music application 1”) according to the first embodiment and external devices connected thereto will be described with reference to FIG.
[0028]
The computer 1 includes a CPU (Central Processing Unit) 101, a DSP (Digital Signal Processor) 102, a ROM (Read Only Memory) 103, a RAM (Random Access Memory) 104, an HD (Hard Disk) 104, a display unit 106, a display unit 106. , NW (Network) input / output unit 108, MIDI (Musical Instrument Digital Interface) input / output unit 109, analog audio input unit 110, A / D (Analog to Digital) converter 111, D / A (Digital to Analog) converter 112, amplifier 113 and a speaker 114. In the computer 1, components other than the analog audio input unit 110, the amplifier 113, and the speaker 114 are connected to each other via a bus 115.
[0029]
The CPU 101 is a microprocessor that performs general-purpose data processing, and performs processing such as control of other components of the computer 1 according to a control program stored in the ROM 103. Further, the CPU 101 reads the music application 1 recorded on the HD 105 into the RAM 104 and performs various processes according to the music application 1.
[0030]
The DSP 102 is a microprocessor that can process digital audio data and digital image data at high speed, reads data from the RAM 104 and performs processing, and records data generated as a result in the RAM 104.
[0031]
The ROM 103 is a non-volatile memory that stores various control programs. The RAM 104 is a volatile memory for temporarily storing data used by the CPU 101 and other components. The HD 105 is a non-volatile memory having a large-capacity storage area, and data stored in the HD 105 is rewritable. The HD 105 stores the music application 1 and various data used together with the music application 1. The applications and data stored in the HD 105 are read out to the RAM 104 as needed, and then read and used by the CPU 101 and the like.
[0032]
The display unit 106 has a liquid crystal display, a driving circuit, and the like, and displays information such as characters and figures. The operation unit 107 includes a keypad, a mouse, and the like, and transmits predetermined data to the CPU 101 according to a user operation.
[0033]
The NW input / output unit 108 relays data transmitted and received between the computer 1 and another communication device connected to a LAN (Local Area Network). The NW input / output unit 108 is connected to the Internet 120 via a LAN.
[0034]
The MIDI input / output unit 109 receives data conforming to the MIDI standard (hereinafter referred to as “MIDI data”) from an external device, transfers the received MIDI data to the CPU 101, and transmits the MIDI data generated by the CPU 101 to the external device. Or send it to In the first embodiment, a MIDI keyboard 121 is connected to the MIDI input / output unit 109. The MIDI keyboard 121 has various controls such as a keyboard and a slider, and transmits MIDI data to the MIDI input / output unit 109 in response to a user operation.
[0035]
The analog audio input unit 110 is connected to the A / D converter 111 and the amplifier 113 inside the computer 1 and outputs an analog audio signal input from an external device to the A / D converter 111 and the amplifier 113. In the first embodiment, an electric guitar 122 is connected to the analog audio input unit 110. The electric guitar 122 includes a steel string stretched on a main body, a sensor for picking up vibration of the string, and the like. The string vibration caused by the user's performance is converted into an analog audio signal, which is output to the analog audio input unit 110. . The A / D converter 111 converts an analog audio signal input via the analog audio input unit 110 into digital audio data and records the digital audio data in the RAM 104.
[0036]
The D / A converter 112 converts digital audio data read from the RAM 104 by the CPU 101 or the DSP 102 into an analog audio signal and outputs the analog audio signal to the amplifier 113. Amplifier 113 amplifies the analog audio signal input from analog audio input unit 110 and D / A converter 112 and outputs the amplified analog audio signal to speaker 114. The speaker 114 generates sound by converting an analog audio signal input from the amplifier 113 into air vibration.
[0037]
[1.2: Configuration and operation of music application]
Next, the configuration and operation of the music application 1 will be described. The music application 1 is a composite of the basic package shown in FIG. 2 and a plurality of extension packages. Each of these packages is downloaded to the computer 1 via the Internet 120 and installed on the HD 105 in accordance with an instruction from the user.
[0038]
The basic package includes a basic program and related data. Each extension package contains an extension program and related data. The CPU 101 manages the execution of the extension program according to the basic program. Therefore, the basic program must be installed on the computer 1 before the installation of the extension program. The extension program is installed on the computer 1 after the installation of the basic program. However, the user can select a desired extension package from a plurality of extension packages and install only the extension program included in the selected extension package on the computer 1. it can.
[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 computer 1 or an external device connected to the computer 1 by a user, the basic program receives data representing the operation via the OS (Operating System) of the computer 1 and receives the data. The data is transferred to the extension program (data flow F301). In addition, when data is generated by the extension program, the basic program causes the computer 1 to execute a process corresponding to the generated data, such as reproduction of audio data generated by the extension program, via the OS ( Data flow F305, data flow F306). Further, the basic program causes data generated by the computer 1 according to a certain extension program to be used in processing of the computer 1 executed according to another extension program (data flow F307, data flow F308, and data flow F309). That is, the basic program functions as a means for transferring data between programs.
[0040]
When the user causes the computer 1 to execute a certain program or exchange information between the running program and the user, it is necessary to ask the user for an instruction as to which program is the target. There is. In order to obtain an instruction from the user, the basic program according to the present embodiment displays a screen on which a plurality of user interfaces are arranged on the display unit 106 of the computer 1. Here, the user interface represents a component of a screen displayed on the display unit 106 of the computer 1, that is, a command button, a text box, a list box, or the like.
[0041]
These user interfaces are associated with the processing of some extension programs that can be executed by the computer 1. When the user performs an operation such as a click on a certain user interface, the basic program causes the computer 1 to execute a process associated with the user interface (data flow F302). When the computer 1 executes a specific process according to an extension program and generates data, the basic program causes the computer 1 to display the content of the data on a user interface associated with the process (data flow F303). , Data flow F304). In this way, the basic program also functions as a means for transferring instructions or data between the user and the program via the user interface.
[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 computer 1, output data obtained in a process executed according to each program is input data of any process executed according to another program. Is a table that defines
[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 display unit 106 and a link destination process ID (link data) for associating some processing with each user interface. The basic program displays a user interface on the display unit 106 in accordance with the component table and, at the same time, associates the user interface with some processing executed in accordance with the program and transfers data between the user and the program.
[0044]
The input / output relation table and the component element table described above are provided from the provider of the music application 1 as environment template data included in the basic package as related data of the basic program and environmental template data included as related data of the extended program in the extension package. Provided. The environment template data included in the basic package includes an input / output relation table relating to data transfer between the basic program and the OS, and a component table relating to a user interface displayed when the basic program is started.
[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 music application 1 are installed in the computer 1, so to speak, in a fully equipped state. More specifically, the environment template data included in the extension package includes an input / output relation table regarding data transfer between the extension program included in the extension package, the basic program, and any other extension programs. I have. In addition, the environment template data included in the extension package is associated with a user interface for sending and receiving information for controlling the execution of the process for all processes related to the extension program included in the extension package. Component table is included.
[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 computer 1 actually used by the user, some of the data included in the environment template data include functions that cannot be provided by the OS of the computer 1 and data related to an extension program that is not installed in the computer 1. Yes, such data is unnecessary. Therefore, in the present embodiment, when the basic program and the extension program are installed in the computer 1, environment data is generated by extracting only data relating to the functions of the OS and the extension program that can be used in the computer 1 from the environment template data. This environmental data is actually used by the basic program.
[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 MIDI keyboard 121 is not connected, and the extension program “Chorus” is not installed. The environment template data includes all data flows shown in FIG. 3, that is, data relating to data flows F301 to F309. However, the environmental data actually used in the computer shown in FIG. 4 does not include data relating to the unusable data flow F301, the data flow F304, and the like. As a result, the display unit 106 does not display the user interface associated with the unusable data flow F304.
[0048]
Next, the details of the operation of the computer 1 when the user installs the basic program and the extension program in the computer 1 in order and uses the music application 1 will be described. The user can download the basic package of the music application 1 to the computer 1 from the HP (Home Page) of the music application 1 via the Internet. The basic package includes a plurality of environment template data and a plurality of component data in addition to the basic program.
[0049]
The user can install the basic program included in the downloaded basic package on the computer 1. When installing the basic program, the CPU 101 checks the environment of the computer 1 and creates a program database, an input / output database, a processing database, a component data database, a plurality of environment data, and an environment data database. The CPU 101 stores these databases and the like in the HD 105. Hereinafter, the configuration and contents of each of the above databases will be described.
[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 HD 105 is registered. At this stage, the program ID, program name, version information, and program file name of the installed basic program are registered in the program database. In the example shown in FIG. 5, the version of the basic program is 1.0, and the storage destination in the HD 105 is c: \ musicsystem \ program \ p0001. exe.
[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 HD 105. As shown in this figure, a program ID and a program name of a basic program and each program related thereto are registered in the input / output database. Each of these programs has one or more types of data that can be input and output. Therefore, in the input / output database, each data type and input / output ID are registered for each data that can be input / output by each program. One input / output ID field is divided into input and output subfields.
[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 audio input unit 110 and the A / D converter 111, and outputs the digital audio data to another program. As described above, the program “microphone” outputs audio data to another program, but the other program does not input audio data to the program “microphone”. Therefore, only the input / output ID for output is assigned to the program “microphone”. The input / output ID is assigned independently for each program.
[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 CPU 101 to perform one or more processes. The processing database includes, for each of the processes executed in accordance with the programs registered in the program database, a program for executing the respective processes for receiving a parameter designation or the like from a user or displaying a result to a user. , And a process ID, a process name, and a setting range of each process are registered. The setting range is information indicating a range of parameters that can be given by the user to the process, and specifically, a range of numerical values, ON or OFF, and the like are registered.
[0054]
According to the data example in FIG. 7, among the processes performed by the basic program, the termination of the music application 1, the activation of the environment setting of the music application 1, and the activation of the browser are registered. In this database, the processing ID is independently assigned to each program.
[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 music application 1 are registered. The component data is data that is downloaded to the computer 1 together with the program, and is data representing a component of a screen, such as a command button or a text box, that is, a component that can be a user interface. The component data includes image data for displaying the component on the screen as a user interface and, when a user operation such as clicking with a mouse is performed on the displayed user interface, in accordance with the operation. It comprises a program module to be executed.
[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 music application 1. All the environment data registered in the environment data database shown in FIG. 9 are environment data generated when the basic program is installed, based on the environment template data included in the basic package. Hereinafter, a process of generating environment data from environment template data included in the basic package will be described.
[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 computer 1 from data included in the environment template data. Further, when the environment data is generated from the environment template data, the display position information in the environment template data is corrected if necessary, and the corrected display position information is registered in the environment data. Here, the environment data has the same name as the original environment template data. Therefore, the name of the environment data generated from the environment template data “toolbar for main menu” is “toolbar for main menu”.
[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 CPU 101 reads the environment template data “main menu toolbar” from the basic package according to the basic program. Subsequently, the CPU 101 determines whether or not each input / output relation data constituting the input / output relation table of the environment template data is to be incorporated into the environment data. More specifically, the CPU 101 registers in the input / output database both the set of the program ID and the input / output ID of the output field of the input / output relation data to be determined and the set of the program ID and the input / output ID of the input field. It is determined whether or not it has been performed. If this determination result is affirmative, the CPU 101 sets the input / output relation data as the target to be incorporated into the environment data, and otherwise, does not incorporate it into the environment data.
[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 computer 1 does not have an interface for MIDI output, and other programs cannot input MIDI data to the MIDI interface. Therefore, the CPU 101 excludes the fourth line from the target for incorporating the input / output-related data into the environmental data. The CPU 101 performs the above-described processing on all the input / output relation data in the input / output relation table to create environment data.
[0063]
Subsequently, the CPU 101 determines whether or not the link destination process ID of each component element data included in the environment template data is registered in the process database (FIG. 7). When the determination result is affirmative, the CPU 101 incorporates the component data to be determined into the environment data, and when the determination result is negative, does not incorporate the component data into the environment data.
[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 CPU 101 performs the same processing for all the component data in the component table. With the above processing, the environment data is generated from the environment template data.
[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 CPU 101 refers to the input / output relation table and transfers the generated data to the program specified by the input / output relation table as input data.
[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 display unit 106. The component data of the first row includes the X and Y coordinate values of the upper left position of the background of the screen displayed on the display unit 106 as the display position information. The component data in the second and subsequent rows of the component table are data corresponding to the user interface displayed on the background, and the X and Y coordinate values included in the data are the origin at the upper left corner of the background. X and Y coordinate values of the user interface in the obtained XY coordinate system.
[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 music application 1 by the basic program. Similarly, the data in the third and fourth lines indicates that two more command buttons are displayed on the background, and that the linking of the process for starting the environment setting of the music application 1 and the process for starting the browser is performed. ing.
[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 display unit 106 by the CPU 101 according to the component table of the environment data “Main Menu Classic”. The command button group 141 in FIG. 13 corresponds to the environment data “toolbar for main menu” in FIG. 11 referred to by the component data in the third row of the component table in FIG. The child window 142 in FIG. 13 corresponds to the component data in the second row of the component table in FIG.
[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 music application 1 included in the basic program will be described. FIG. 14 is a screen for setting the environment of the music application 1. According to FIG. 14, the items of the environment setting are classified into “environment data”, “package”, and “other”.
[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 music application 1 from those registered in the environment data database (FIG. 9). According to the example shown in FIG. 14, the environment data “main menu / classic” is specified as the environment data selected at the time of startup. Further, on this screen, the user can add, delete, and edit environmental data.
[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 CPU 101 when the music application 1 is activated will be described with reference to FIG. First, when the user gives an instruction to start the music application 1 to the computer 1 (step S101), the CPU 101 reads out the basic program from the HD 105 to the RAM 104, and according to the basic program, reads out the environmental data specified as the environmental data at the time of startup. An environment data ID is obtained (step S102). According to the specific examples (hereinafter, simply referred to as “specific examples”) shown in each of FIGS. 5 to 14 above, the environment data ID acquired by the CPU 101 in step S102 is the environment data “Main Menu Classic”. EV301, which is the ID of the device.
[0081]
Subsequently, the CPU 101 refers to the environment data database (FIG. 9) and acquires an environment data file name from the acquired environment data ID (step S103). According to a specific example, the environment data file name obtained by the CPU 101 in step S103 is c: \ musicsystem \ environment \ 301. env.
[0082]
Subsequently, the CPU 101 reads the environment data specified by the obtained environment data file name, and determines whether the component type included in the first component data of the component table of the read environment data is environmental data (step S104).
[0083]
If the result of determination in step S104 is that the component type of the first row is not environmental data, the CPU 101 acquires the component data ID of that row (step S105). According to a specific example, in step S105, the CPU 101 acquires IM089 as the component data ID of the first line of the environment data “Main Menu Classic” (FIG. 12).
[0084]
Next, the CPU 101 refers to the component data database (FIG. 8) and acquires a component data file name from the component data ID (step S106). According to a specific example, the component data file name acquired by the CPU 101 in step S106 is c: \ musicsystem \ part \ 089. img.
[0085]
Subsequently, the CPU 101 reads the component data specified by the component data file name, and displays the image data of the read component data at the position specified by the display position information of the environment data with the size specified (step S107). For the background component displayed first, instead of using the position specified by the display position information as the origin of the XY coordinate system, for example, a variable position based on the screen position of the music application 1 at the previous end is used as a reference. It may be a position. According to a specific example, in step S107, the CPU 101 displays a light blue rectangle at an appropriate position on the display unit 106 as a background.
[0086]
Subsequently, the CPU 101 determines whether or not there is next component data to be processed in the component table (step S108). If there is the next component data, the CPU 101 determines whether there is the next component data in steps S104 to S108. Repeat the process. In the specific example, since the component table of the environment data “Main Menu / Classic” has three rows of component data, the process for the component data of the first row is followed by the processing of step S104 for the component data of the second row. The process from step S108 is performed, and the process returns to step S104 again. Through such a process, the CPU 101 causes the display unit 106 to display the child window. Note that a series of processing from step S104 to step S107 is hereinafter referred to as “component display processing”.
[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 CPU 101 acquires the component data ID as the environment data ID of the child environment data (step S109). According to the specific example, since the component type in the third row of the component table of the environment data “Main Menu Classic” is environment data, the CPU 101 sets the value of the component data ID of the data row, that is, the EV 201 to the child environment data. As the environmental data ID.
[0088]
Subsequently, the CPU 101 acquires the environment data file name of the child environment data from the environment data ID of the child environment data with reference to the environment data database (FIG. 9) (step S110). According to a specific example, the environment data file name acquired by the CPU 101 in step S110 is c: \ musicsystem \ environment \ 201. env.
[0089]
Subsequently, the CPU 101 performs a component display process, that is, a series of processes from step S104 to step S107, using the acquired environment data file name (step S111). As a result, the background image indicated by the data in the first row of the component table of the child environment data is displayed on the screen. Subsequently, the CPU 101 determines whether or not there is the next component data to be processed in the component table of the child environment data (step S112). The display process is repeated (step S111). According to the specific example, step S111 is repeated with respect to the component data of the first to fourth rows of the component table of the environment data “toolbar for main menu” (FIG. 11). The display unit 106 displays three command buttons.
[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 CPU 101 further determines whether there is the next component data to be processed in the component table of the parent environment data. Is determined (step S113). If there is the next component data in the component table of the parent environment data, the CPU 101 returns the process to step S104, and continues to step S104 until it is determined in step S108 that there is no next component data to be processed. The processing from step S104 to step S108 is repeated. Then, after processing the component data of the last row of the component table of the parent environment data, the CPU 101 ends the above-described series of processes.
[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 CPU 101 ends the above series of processes. According to the specific example, after the component display processing for the component data in the last row of the component table of the child environment data “Main Menu Toolbar” is completed, the parent environment data “Main Menu Classic” is displayed in the component table. Since there is no remaining component data to be processed, the CPU 101 ends a series of processes.
[0092]
As a result of the above series of processing, the screen illustrated in FIG. 13 is displayed on the display unit 106 as the display screen of the music application 1. If the component table of the child environment data specifies yet another environment data, the processing from step S109 to step S113 is executed recursively. As a result, a screen composed of a plurality of environment data is hierarchically combined to form a more complicated screen.
[0093]
Next, the operation of the music application 1 when the user operates a component of any screen, that is, a user interface on the display screen of the music application 1 will be described. While the screen of the music application 1 is displayed, the CPU 101 periodically performs a process of detecting an operation performed by the user using the operation unit 107 at an extremely short time interval according to the basic program. When the user clicks a specific user interface with the mouse or inputs characters or the like from the keyboard on the screen of the music application 1, the CPU 101 determines the components of the environmental data used for the configuration of the currently displayed screen. Referring to the table, the user interface that is the target of the operation is specified from the position information of the cursor when the operation is performed.
[0094]
Subsequently, when the component table indicates a process linked to the specified user interface, the CPU 101 executes the linked process. At this time, the content of the operation performed by the user, that is, the type of operation such as a click or a double click, the input data, and the like are used for processing as parameters.
[0095]
For example, when the command button “Browser” is clicked on the screen of FIG. 14, the CPU 101 refers to the component table of the parent environment data “Main Menu Classic” (FIG. 12), and subsequently, the child environment data “Main Menu Referring to the component table of the "toolbar" (FIG. 11), it is specified that the clicked position is the display position of the user interface "CB003".
[0096]
Subsequently, since the component type of the user interface “CB003” is the command button, the CPU 101 performs processing when the command button is clicked, that is, changes the display to the pressed state of the command button and generates a click sound. At the same time, the CPU 101 uses the link destination process ID “P0001-CB103” of the user interface “CB003” in the component table and refers to the process database (FIG. 7) to execute the browser startup process of the basic program. As a result, the screen shown in FIG. 13 is displayed on the display unit 106.
[0097]
As described above, the music application 1 including only the basic package has only basic functions such as a browser function. Therefore, a user who cannot be satisfied with this alone can download to the computer 1 a desired extension package among the extension packages shown in FIG. 2 from the HP of the provider of the music application 1 via the Internet. The extension package includes an extension program, a plurality of environment template data, a plurality of component data, audio data used by the extension program, still image data and moving image data, MIDI data, musical score data, sound source data, accompaniment pattern data, and the like. I have.
[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 computer 1 to realize a function that can be commonly used by players of all musical instruments. For example, the computer 1 realizes a function of adding reverberation to input audio information according to an extension program included in an extension package “reverb” classified as “effector” of “general”.
[0099]
More specifically, in the present embodiment, under the control of the CPU 101, the A / D converter 111 converts an analog audio signal input from the analog audio input unit 110 into digital audio data and records the digital audio data in the RAM 104. I do. When the execution of the extension program “reverb” is instructed, the CPU 101 instructs the DSP 102 to perform reverb processing according to the extension program “reverb”. The DSP 102 reads audio data from the RAM 104 in accordance with an instruction from the CPU 101, generates audio data corresponding to the reverberant sound by processing the preceding audio data, and sequentially adds the audio data to the subsequent audio data to generate audio data for reproduction. I do. The audio data for reproduction generated by the DSP 102 is generated as a musical tone through a D / A converter 112, an amplifier 113, and a speaker 114. The reverb process may be performed by the CPU 101 without using the DSP 102.
[0100]
The extension package categorized as “musical instrument” includes an extension program that causes the computer 1 to function as a musical instrument or a part of a musical instrument by realizing the functions of an audio device such as a sound source module and a guitar amplifier. For example, the computer 1 realizes the function of an electronic piano sound source according to the extension program “electronic piano”.
[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 CPU 101 receives MIDI data from the MIDI keyboard 121 or the like according to the extension program “electronic piano”, and generates a waveform corresponding to a pitch specified by the MIDI data. It instructs the DSP 102 to reproduce the data. The DSP 102 reads designated waveform data from the RAM 104 in accordance with an instruction from the CPU 101, performs processing such as pitch adjustment on the waveform data, and generates audio data for reproduction. The audio data for reproduction generated by the DSP 102 is generated as a musical tone through a D / A converter 112, an amplifier 113, and a speaker 114. The processing performed by the DSP 102 may be performed by the CPU 101.
[0102]
The extension program that causes the computer 1 to realize the function of the sound source module includes a subtraction method other than the method of using the sound data obtained from the actual instrument sound as described above when the computer 1 generates the electronic musical sound. , An addition method, an FM (Frequency Modulation) method, a physical modeling method, and a combination thereof.
[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 computer 1 displays a score of the song “for Elise”, plays an accompaniment, Perform performance evaluation.
[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 computer 1 when the program is installed in the computer 1 will be described.
[0105]
The user downloads the extension packages “Sequencer”, “Electronic Piano”, and “Electric Guitar” from the provider's HP to the computer 1, and then installs the extension programs included in these extension packages on the computer 1.
[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 computer 1 from the extension package is registered together with the installed extension program. FIGS. 16, 17, 18, and 19 show a program database, an input / output database, a processing database, and a component data database, respectively, updated as a result of the installation of three extension programs.
[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 computer 1, the configuration of the hardware of the computer 1 and the configuration of the already installed extension program are unknown. Therefore, in the input / output relation table of the environment template data, the input / output relation data that specifies the input / output relation of all data that may be used when executing the extension program “electronic piano” is listed. I have.
[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 computer 1 is extracted to generate environment data. In addition, with the extraction process, if necessary, the display position information in the environment template data is corrected, and the corrected display position information is used as the display position information of the environment data.
[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 computer 1 is included in the environmental data “Piano Classic”. Not. Further, for example, the display position information of the user interface “SK001” or the like is changed in the environment data “Piano Classic” from that in the environment template data “Piano Classic”.
[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 CPU 101 according to the music application 1 after the extension program is installed will be described. When the user instructs to start the music application 1, the CPU 101 reads the environment data “Main Menu Classic” (FIG. 23) according to the basic program, and displays the screen shown in FIG. 24 on the display unit 106 according to the environment data. Let it. 24, a command button group 143 corresponding to the newly installed extension program is added to the screen shown in FIG.
[0116]
When the user clicks the command button “sequencer” on the screen of FIG. 24, the CPU 101 refers to the environment data “main menu / classic” according to the basic program, and the link destination processing ID “P0001-EV401” of the clicked command button. To get. Since the latter half of the ID starts with EV, the CPU 101 recognizes that this ID indicates environmental data, and refers to the environmental data database (FIG. 22), and the environmental data ID is EV401. As the environment data file name of the environment data, c: \ musicsystem \ environment \ 401. Get env.
[0117]
The CPU 101 reads the environment data “Sequencer Original” indicated by the acquired environment data file name, and performs the processing from step S104 described with reference to the flowchart of FIG. As a result, the screen shown in FIG. 25 is displayed on the display unit 106.
[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 computer 1 as a music sequencer by using various functions of the extension program “sequencer” from the screen of FIG. The functions of the music sequencer that can realize the extension program “sequencer” are the same as those of a general music sequencer, and a detailed description thereof will be omitted.
[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 MIDI keyboard 121, and can generate a piano sound that is electronically generated according to MIDI data generated by the performance from the speaker 114 of the computer 1.
[0120]
That is, the user can use the computer 1 as an electronic piano sound source by using various functions of the extension program “electronic piano” from the screen of FIG. Since the function of the electronic piano sound source that can realize the extension program “electronic piano” is the same as the function of a general electronic piano sound source, detailed description will be omitted.
[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 computer 1 as an amplifier simulator.
[0122]
For example, in a state where the screen of FIG. 27 is displayed, the user plays using the electric guitar 122. An analog audio signal output from electric guitar 122 is converted to digital audio data in A / D converter 111. The digital audio data is subjected to processing such as acoustic distortion processing and amplification of frequency components in the DSP 102, and is generated as audio data for reproduction. The reproduction audio data generated by the DSP 102 is generated via a D / A converter 112, an amplifier 113, and a speaker 114. As a result, the user can hear a tone similar to that produced when the tone generated by the electric guitar 122 is generated by the guitar amplifier. Note that the function of the guitar amplifier that can realize the extension program “Electric Guitar” is the same as the function of a general amplifier simulator, and a detailed description thereof will be omitted. The processing performed by the DSP 102 may be performed by the CPU 101.
[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 computer 1 can be used like different specific electronic devices. Hereinafter, the features of the music application 1 will be described in more detail.
[0124]
First, on each screen of the music application 1, the user can use functions of a plurality of different extension programs. For example, the user interface group 151 in FIG. 26 is a slider group for the user to adjust the brightness of the sound generated by the electronic piano sound source and the sense of the weight of the keyboard, and is linked to the processing of the extension program “electronic piano”. Have been. On the other hand, the user interface group 152 in FIG. 26 is a command button or the like used by the user for recording a performance and playing back an accompaniment and the like, and is linked to processing of the extension program “sequencer”.
[0125]
As described above, on each screen of the music application 1, the user can use the functions of a plurality of different extension programs, but the user does not need to be aware of the individual extension programs. For example, the processes linked to the user interface group 152 in FIG. 26 and the user interface group 153 in FIG. 27 are processes of the same extended program “sequencer”. However, since the user interface group 152 and the user interface group 153 have different appearances and are arranged so as to be suitable for the purpose of use of each screen, the user uses the functions of these extended programs and the functions of one program. Available with a sense.
[0126]
The music application 1 can expand its functions by installing a necessary extension program by the user. However, the user needs to perform complicated setting operations and the like in order to use the function of the newly installed extension program on each screen. No need to do.
[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 computer 1. And a screen displayed by “Guitar Solid”.
[0128]
26, a user interface group 155, a user interface group 156, and a user interface group 157 are added to the screen of FIG. Similarly, a user interface group 158 is added to the screen of FIG. 29 in addition to the screen of FIG. In the screens of FIGS. 28 and 29, the arrangement position and the size of the user interface are adjusted, and a natural screen configuration is obtained. The addition of these user interfaces is automatically realized when environment data is generated from environment template data when a new extension program is installed.
[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 music application 1. The user can also create completely new environmental data. In that case, the user can select the component data registered in the component data database and the process registered in the processing database, construct the desired screen configuration and use it on each screen simply by arranging them on the screen. The process can make a selection.
[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 computer 2 which is an execution environment of the application according to the second embodiment (hereinafter, referred to as “music application 2”) and external devices connected to the computer 2 will be described with reference to FIG. .
[0136]
Since the computer 2 has many common components with the computer 1 of the first embodiment, in FIG. 31, the same components are denoted by the same reference numerals as those in FIG. Hereinafter, only the differences between the computer 2 and the computer 1 will be described. FIG. 31 does not show the MIDI input / output unit 109, analog audio input unit 110, and A / D converter 111 which are not used in the following description.
[0137]
The computer 2 has a USB (Universal Serial Bus) interface 201. The USB interface 201 relays transmission and reception of data configured according to the USB standard between the computer 2 and an external device.
[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 USB interface 201 is an interface that performs processing of the above-described master-side USB device, and includes a USB host controller and the like. The device ID includes a class ID indicating the type of the USB device, a revision ID indicating the new or old USB device of the same type, a vendor ID indicating the manufacturer of the USB device, and the like. A necessary driver program may be incorporated by using one or a combination of the IDs of the USB devices.
[0140]
Instead of the MIDI keyboard 121 and the electric guitar 122 in the first embodiment, a USB keyboard 202 and a USB guitar 203 are connected to the computer 2 in the second embodiment. These components are connected to the USB interface 201.
[0141]
The USB keyboard 202 has substantially the same configuration and function as the MIDI keyboard 121 of the first embodiment, but has a USB interface 2021 for performing communication processing of a USB device on the slave side, unlike the MIDI keyboard 121. The USB interface 2021 includes a USB slave controller and the like. The USB keyboard 202 generates MIDI data in accordance with a user's operation of a keyboard or the like, converts the generated MIDI data into a data format conforming to the USB standard, and transmits the data via the USB interface 2021.
[0142]
The USB guitar 203 includes a steel string attached to a main body, a sensor 2031 that picks up vibration of the string and converts the vibration into an analog audio signal, an A / D converter 2032 that converts an analog audio signal output from the sensor 2031 into digital audio data, and It has a USB interface 2033 that performs communication processing of the USB device on the slave side. The USB interface 2033 includes a USB slave controller and the like. The USB guitar 203 further converts the audio information based on the vibration of the strings converted into digital audio data by the A / D converter 2032 into a data format in accordance with the USB standard, and then transmits the converted data via the USB interface 2033.
[0143]
[2.2: Configuration and operation of music application]
The configuration and operation of the music application 2 are common to the music application 1 in many points. Therefore, only the points where the music application 2 differs from the music application 1 will be described below. In the following description, it is assumed that all the extension programs used in the description of the first embodiment are installed in the computer 2.
[0144]
In the music application 2 of the second embodiment, an environment data database shown in FIG. 32 is used instead of the environment data database used in the music application 1 of the first embodiment. The environment data database of FIG. 32 has a type field in addition to the environment data database in the first embodiment. In the type field, information indicating the type of the USB device connected to the computer 2 when each environmental data is displayed is registered.
[0145]
The music application 2 uses the device environment-related data shown in FIG. 33 in addition to the database and the like in the first embodiment. In the device environment related data, a user ID of a user using the music application 2, a device ID of a USB device connected to the computer 2, and an environment data ID are registered. However, the device ID shown in FIG. 33 is simplified for the sake of explanation, and a device ID according to the USB standard is actually used.
[0146]
At the stage when the basic program is installed in the computer 2, nothing is registered in the device environment related data, and the data is sequentially registered by a USB device registration process described later. The method by which the computer 2 acquires the user ID will also be described later in the description of the USB device registration process.
[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 HD 105 when the basic program is installed. The device database has device ID and type fields. In the device database, device IDs of all USB devices that are connected to the computer and can be used when the music application 2 is executed are listed together with information indicating the type of the USB device.
[0148]
Next, the operation of the music application 2 will be described. When the user uses the music application 2, the user needs to perform a USB device registration process described below. First, when the user performs an operation of activating the music application 2, the CPU 101 causes the display unit 106 to display a screen for requesting input of a user ID according to the basic program. On the screen, the user inputs his or her user ID. As an example, assume that the user has input a user ID of JOE005. Thereafter, the CPU 101 causes the display unit 106 to display the screen shown in FIG. 24 according to the environment data specified as the environment data at the time of startup.
[0149]
Subsequently, the user connects the USB keyboard 202 to the USB interface 201. When connected to the computer 2, the USB keyboard 202 detects the connection and transmits the device ID of the USB keyboard 202 to the computer 2. As an example, it is assumed that the device ID of the USB keyboard 202 is USBKB0035.
[0150]
When receiving the device ID from the USB keyboard 202, the CPU 101 refers to the device database (FIG. 34) and determines whether or not the device ID is registered in the device database. If the received device ID is not registered in the device database, the CPU 101 does not perform any processing. In this case, since USBKB0035 is registered in the device database, the CPU 101 temporarily stores the value of the type of the device “USBKB0035”, that is, “keyboard” in the RAM 104. Subsequently, the CPU 101 refers to the device environment-related data (FIG. 33) and determines whether or not data having a user ID of JOE005 and a device ID of USBKB0035 is registered.
[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 CPU 101 displays the screen shown in FIG. That is, the screen of FIG. 35 is displayed when a certain user connects to the computer 2 for the first time while using a music application 2 with a certain USB device usable in the music application 2.
[0152]
When the screen of FIG. 35 is displayed, the CPU 101 reads out the type value “keyboard” temporarily recorded in the RAM 104 and refers to the environment data database (FIG. 32). The data that matches the value of the type read from is extracted. Then, the CPU 101 displays the environment data name of the environment data obtained as the extraction result in the list box 251.
[0153]
The user selects environmental data corresponding to a screen normally used together with the USB keyboard 202 on the screen of FIG. 35, and clicks a command button “OK”. As an example, it is assumed that the user selects the environment data “piano classic”.
[0154]
When the command button “OK” in FIG. 35 is clicked, the CPU 101 refers to the environment data database (FIG. 32) and replaces the environment data ID “EV451” of the environment data selected by the user with the device environment related data (FIG. 33). ) Is registered together with the user ID and the device ID. Subsequently, the CPU 101 causes the display unit 106 to display the screen shown in FIG. 28 based on the environment data selected by the user. Through the above processing, the USB keyboard 202 is registered in the music application 2.
[0155]
Subsequently, the user registers the USB guitar 203 in the music application 2. In that case, the user disconnects the USB keyboard 202 from the computer 2 and connects the USB guitar 203 to the computer 2. After that, the same processing as the above-described processing for the USB keyboard 202 is performed for the USB guitar 203, and the registration processing of the USB guitar 203 is performed.
[0156]
As an example, it is assumed that the device ID of the USB guitar 203 is USBGT1208, and the user selects “guitar / eleaco” as environment data used when using the USB guitar 203. As a result, the CPU 101 causes the display unit 106 to display the screen shown in FIG. As a result of the above processing, the device environment related data (FIG. 33) is updated as shown in FIG.
[0157]
When the USB device is registered in the device environment-related data as described above, in the music application 2, the user can switch the screen only by connecting the USB device. Hereinafter, a screen switching operation by the music application 2 will be described.
[0158]
The user activates the music application 2 and inputs the user ID “JOE005” according to the instructions on the screen. Subsequently, the user connects the USB keyboard 202 to the computer 2. The USB keyboard 202 transmits the device ID “USBKB0035” to the computer 2.
[0159]
Upon receiving the device ID from the USB keyboard 202, the CPU 101 refers to the device database (FIG. 34) and determines whether or not the received device ID is registered. In this case, since the received device ID is registered in the device database, the CPU 101 subsequently refers to the device environment-related data (FIG. 36), and data having a user ID of JOE005 and a device ID of USBKB0035 is registered. Is determined.
[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 CPU 101 acquires the environment data ID “EV451” of the data having the user ID of JOE005 and the device ID of USBKB0035. I do. Subsequently, the CPU 101 refers to the environment data database (FIG. 32) and displays the screen shown in FIG. 28 on the display unit 106 based on the environment data “Piano Classic” indicated by the acquired environment data ID “EV451”. Let it.
[0161]
Thereafter, it is assumed that the user has finished using the music application 2 using the USB keyboard 202 and wishes to use the music application 2 using the USB guitar 203. In that case, the user disconnects the USB keyboard 202 from the computer 2 and connects the USB guitar 203 to the computer 2. When the USB guitar 203 is connected to the computer 2, the same processing as that for the USB keyboard 202 described above is performed for the USB guitar 203, and the CPU 101 performs the processing shown in FIG. 30 based on the environmental data “guitar and electric piano”. The screen is displayed on the display unit 106.
[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 music application 2 will be described. Note that this user has already performed the above-described USB device registration processing for the USB keyboard 202 and the USB guitar 203, and by the registration processing, the user ID and the device ID are stored as data in the first and second rows in FIG. And the environment data ID are registered in the device environment related data.
[0164]
This user starts the music application 2 and inputs the user ID “KEN102” according to the instructions on the screen. Thereafter, the user connects, for example, the USB guitar 203 to the computer 2. The USB guitar 203 detects the connection, and transmits the device ID “USBGT1208” of the USB guitar 203 to the computer 2. Subsequently, the same processing as when the user whose user ID is JOE005 connects the USB guitar 203 to the computer 2 is performed. In this case, since the user ID is KEN102, the CPU 101 The environment data ID “EV501” is acquired from FIG. 36). As a result, the CPU 101 causes the display unit 106 to display the screen shown in FIG. 29 based on the environment data “guitar solid” indicated by the environment data ID “EV501”.
[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 computer 3 as an execution environment of the application according to the third embodiment (hereinafter, referred to as “music application 3”) and external devices connected to the computer 3 will be described with reference to FIG. .
[0172]
Since the computer 3 has many common components with the computer 1 of the first embodiment, in FIG. 37, the common components are denoted by the same reference numerals as those in FIG. Note that the MIDI input / output unit 109 is not used in the third embodiment, and thus the MIDI input / output unit 109 is not shown in FIG. The other components are the same as the components of the computer 1, and the description thereof is omitted.
[0173]
In the third embodiment, a microphone 301 is connected to the analog audio input unit 110 in addition to the electric guitar 122. The microphone 301 is a microphone for vocals, has a diaphragm, a voice coil, and the like, and converts sound into an analog electric signal and outputs the signal.
[0174]
[3.2: Configuration and operation of music application]
The configuration and operation of the music application 3 are common to the music application 1 in many points. Therefore, only the points where the music application 3 is different from the music application 1 will be described below.
[0175]
The music application 3 uses the voice environment-related data shown in FIG. 38 in addition to the various databases and the like in the first embodiment. In the sound environment-related data, sound feature data indicating a sound feature is registered together with the environment data ID. The content and role of the audio feature data will be described later. When the basic program is installed in the computer 3, nothing is registered in the voice environment related data, and the data is sequentially registered by a voice registration process described later.
[0176]
In the following description, the computer 3 includes, in addition to all the extension programs used in the description of the first embodiment, an extension package “Sakura Sakura” shown in FIG. It is assumed that each extension program of the extension package "Soon" classified as "Electric Guitar" of "Song" is installed. FIG. 39 shows an environment data database in a state where these extension programs are installed in the computer 3.
[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 CPU 101 on the display unit 106 based on the environmental data “vocal classic” according to the basic program. In the screen of FIG. 40, first, the user connects the microphone 301 to the analog voice input unit 110 of the music application 3, and then checks, for example, the check boxes “piano” and “melody 2” of the user interface group 352. Subsequently, when the user clicks the command button “play” of the user interface group 353, the CPU 101 plays the MIDI data for piano accompaniment and the audio data of the second part of the vocal according to the extension program “sequencer”. Further, the CPU 101 causes the contents of the image data of the musical score to be displayed in the child window of the user interface group 351 according to the extension program “Sakura Sakura”.
[0179]
The user listens to the piano accompaniment and the sound of the second part, which are pronounced from the speaker 114, and performs the singing performance of the first part using the microphone 301 while reading the musical score displayed on the display unit 106. The voice of the user's singing performance is sequentially recorded in the RAM 104 as digital voice data via the microphone 301 and the A / D converter 111. In accordance with the extension program “Sakura Sakura”, the CPU 101 reads digital voice data of the first part of the vocal (hereinafter referred to as “sample data”) and digital voice data generated by the user's singing performance (hereinafter referred to as “performance data”). ) And evaluate the rhythm, pitch and strength of the user's singing performance.
[0180]
That is, for example, the CPU 101 compares the change timing of the frequency of the sound indicated by the sample data with the change timing of the frequency of the sound indicated by the performance data, and quantifies the rhythm deviation. Further, the CPU 101 quantifies, for example, the average frequency shift and the volume shift between the specific portion of the sample data and the specific portion of the performance data associated with each other based on the frequency change timing.
[0181]
When the user finishes the singing performance and clicks the command button “stop” of the user interface group 353, the CPU 101 displays the result of the above-mentioned score and the content of the comment data corresponding to the result on the user interface group 354. In this way, the computer 3 realizes the practice support of the singing performance of the user according to the extension program “Sakura Sakura”.
[0182]
FIG. 41 is an example of a screen displayed on the display unit 106 by the CPU 101 based on the environmental data “guitar solid” according to the basic program. The screen shown in FIG. 41 includes a user interface group 361, a user interface group 362, and a user interface group 361 linked to the processing of the extension program "Soon" in addition to the screen (FIG. 29) based on the environmental data "guitar solid" in the first embodiment. A user interface group 363 has been added. The roles of these user interface groups are the same as the roles of the user interface group 351, the user interface group 352, and the user interface group 354 in FIG. The operation of the extension program "Soon" is the same as the operation of the extension program "Sakura Sakura".
[0183]
Next, the operation of the music application 3 will be described. When the user uses the music application 3, the user needs to perform a voice registration process described below. First, when the user starts the music application 3, the CPU 101 causes the display unit 106 to display the screen shown in FIG. 42 on the display unit 106 according to the environment data designated as the environment data at the time of startup according to the basic program. The screen at the start of the music application 3 is different from the screen at the start of the music application 1 (FIG. 24) in that a command button “register voice” is added.
[0184]
The user connects the microphone 301 to the analog audio input unit 110 of the computer 2. Subsequently, when the user clicks the command button “voice registration” in FIG. 42, the CPU 101 causes the display unit 106 to display the screen shown in FIG. The user follows the instructions on the screen of FIG. 43 and clicks the command button “Start”, and then speaks to the microphone 301 for three seconds or more.
[0185]
The user's voice is recorded in the RAM 104 as digital voice data (hereinafter, referred to as “sample data”) via the microphone 301 and the A / D converter 111. Subsequently, the CPU 101 obtains the formant frequency of the sound indicated by the sample data.
[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 CPU 101 instructs the DSP 102 to perform a fast Fourier transform process, a filter process using a low-pass filter, and the like using the sample data recorded in the RAM 104. The DSP 102 reads the sample data from the RAM 104 according to the instruction of the CPU 101, generates the data shown in FIG. The CPU 101 reads the data recorded in the RAM 104 by the DSP 102, performs a differentiation process on the read data, and calculates the above-mentioned formant frequency up to the third formant frequency. The processing performed by the DSP 102 may be performed by the CPU 101.
[0190]
After completing the calculation of the formant frequency, the CPU 101 causes the display unit 106 to display a screen shown in FIG. The user selects, for example, environmental data “vocal classic” according to the instructions on the screen in FIG. 47, and clicks the command button “OK”.
[0191]
The CPU 101 refers to the environment data database (FIG. 39) and registers the environment data ID “EV601” of the environment data selected by the user in the environment data ID field of the voice environment related data (FIG. 38). Further, the CPU 101 registers the values of the first to third formant frequencies calculated previously in the field of the audio feature data in the same data row of the audio environment related data. Subsequently, the CPU 101 causes the display unit 106 to display the screen shown in FIG. 40 based on the environment data “vocal classic” selected by the user. Through the above processing, the voice generated by the user is registered in the music application 3.
[0192]
Subsequently, the user registers the sound of the electric guitar 122 in the music application 3. In that case, the user disconnects the microphone 301 from the computer 3 and connects the electric guitar 122 to the computer 3. Thereafter, the user clicks the command button “Main Menu” on the screen of FIG. As a result, the screen shown in FIG. 42 is displayed on the display unit 106. On the screen in FIG. 42, the user clicks the command button “voice registration”. Subsequently, the screen shown in FIG. 43 is displayed on the display unit 106.
[0193]
On the screen of FIG. 43, the user plays the strings of the electric guitar 122 and inputs the analog audio signal generated by the electric guitar 122 to the computer 3. After that, the same processing as that performed when the microphone 301 is used is also performed on the electric guitar 122. At this time, as an example, it is assumed that the user selects the environmental data “guitar solid” on the screen in FIG. As a result, the CPU 101 causes the display unit 106 to display the screen shown in FIG. 41 based on the environmental data “guitar solid”.
[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 electric guitar 122.
[0195]
When the voice is registered in the voice environment-related data as described above, in the music application 3, the user can switch the screen only by inputting the voice. Hereinafter, the screen switching operation by the music application 3 will be described.
[0196]
The user first activates the music application 3, connects the microphone 301 to the computer 3, and then goes to the microphone 301 and utters a voice similar to the voice uttered at the time of registration in FIG. The voice generated by the user is sequentially recorded in the RAM 104 as digital voice data via the microphone 301, the analog voice input unit 110, and the A / D converter 111. On the other hand, according to the basic program, the CPU 101 constantly repeats the above-described process of obtaining the formant frequency using digital audio data recorded in the RAM 104 for a predetermined period of time, for example, three seconds.
[0197]
When the CPU 101 calculates the formant frequency from the digital audio data for three seconds recorded in the RAM 104, the CPU 101 refers to the audio environment-related data (FIG. 48) and uses the newly calculated formant frequency (hereinafter, referred to as "sample frequency"). Using the formant frequencies registered in the voice environment-related data (hereinafter, referred to as “registered frequencies”), the value of Err shown in the following equation (1) is obtained. Here, the sample frequency is (S1, S2, S3) and the registered frequency is (R1, R2, R3).
(Equation 1)
Figure 2004220208
[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 computer 3 by the user is similar to the voice used for registration of the voice environment related data. In addition to the equation (1), various indices indicating the similarity between the sample frequency and the registered frequency can be considered. For example, an absolute value may be used instead of the square of the difference between each term of the sample frequency and the registered frequency in Expression (1). Further, the first term of the sample frequency and the registered frequency may be set as a set, the second term may be set as a set, and the third term may be set as a set, and the correlation coefficient may be obtained for these sets.
[0199]
When obtaining the value of Err in Expression (1) with respect to each data of the voice environment related data, the CPU 101 determines whether or not the obtained value of Err is a predetermined value, for example, 0.01 or less. Now, as an example, it is assumed that the sample frequency obtained by the utterance of the user is (0.41, 1.22, 3.73). This value is similar to the registered frequency whose audio ID is registered in the data line of WAV207 in the audio environment related data. This is because those frequencies are calculated from voices generated by the same user with the same utterance. Therefore, the value of Err calculated using the registered frequency of the sound “WAV207” is equal to or less than the predetermined value of 0.01.
[0200]
When the value of Err is equal to or less than a predetermined value, the CPU 101 refers to the voice environment related data and acquires the environment data ID “EV601” of the data row in which the registered frequency used for calculating Err is the voice feature data. . Subsequently, the CPU 101 refers to the environment data database (FIG. 39) and causes the display unit 106 to display the screen shown in FIG. 40 based on the environment data “vocal classic” indicated by the environment data ID “EV601”.
[0201]
Thereafter, it is assumed that the user has finished using the music application 3 using the microphone 301 and wishes to use the music application 3 using the electric guitar 122. In that case, the user disconnects the microphone 301 from the computer 3 and connects the electric guitar 122 to the computer 3. When the user uses the electric guitar 122 to input an audio signal similar to that at the time of registration on the screen of FIG. 43 to the computer 3, the CPU 101 performs the same processing as that for the audio signal input from the microphone 301 described above. This is performed for the audio signal input from the input terminal 122. In this case, regarding the audio feature data of the audio “WAV208” in the audio environment-related data, the value of Err becomes 0.01 or less. Then, the screen shown in FIG. 41 is displayed on the display unit 106.
[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 / A converter 113, an amplifier, 114, a speaker, 115, a bus, 120, an Internet, 121, a MIDI keyboard, 122, an electric guitar, 201, 2021, 2033, a USB interface, 202 USB keyboard, 203 USB guitar, 2031 sensor, 301 microphone.

Claims (7)

1または複数の拡張プログラムと、ユーザから指示を受け取るための1または複数のユーザインタフェースを定義するユーザインタフェースデータと、前記1または複数のユーザインタフェースの各々を前記1または複数の拡張プログラムの実行制御に関連付けるリンクデータとを含んだ複数の環境データを記憶したメモリを有するコンピュータに、
前記複数の環境データのうち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または複数の拡張プログラムに従って行われるいずれの処理の出力データであるかを示す入出力関係データを含み、
前記基本プログラムは、前記コンピュータが前記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.
前記コンピュータは、1または複数の外部機器から前記1または複数の外部機器の各々を識別するデバイスIDを受信可能であり、
前記メモリには、前記デバイス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または複数の拡張プログラムの少なくとも1つは、前記コンピュータに、音声データを電子的に生成する音声データ生成処理を実行させる
請求項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.
請求項1乃至請求項6のいずれかに記載の基本プログラムを記録した記録媒体。A recording medium on which the basic program according to claim 1 is recorded.
JP2003005114A 2003-01-10 2003-01-10 Basic program and recording medium enabling easy switching of program environment Expired - Fee Related JP4400051B2 (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (8)

* Cited by examiner, † Cited by third party
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
JP4265551B2 (en) Performance assist device and performance assist 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
JP4400051B2 (en) Basic program and recording medium enabling easy switching of program environment
JP3922247B2 (en) Performance control data generation apparatus and program
JP5870831B2 (en) Program and music image display apparatus for realizing music image display method
JP2003208174A (en) Electronic musical apparatus and program therefor
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
JP4239952B2 (en) Automatic accompaniment apparatus and program for realizing the control method

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