以下、図面を参照しつつ、この発明の実施の形態について説明する。
図1は、本発明の一実施形態の電子楽器10の外観を示す斜視図である。
図1に示すように、電子楽器10は、ユーザに演奏操作を行わせるための入力装置として、演奏操作入力モジュール110a、110b1〜b8および110c1〜110c11を有する。演奏操作入力モジュール110a、110b1〜b8および110c1〜110c11の各々には、演奏操作用の操作子が設けられている。なお、本実施形態における演奏操作には、電子楽器10に対してある音高の演奏音の発音開始や発音終了を指示する操作の他に、演奏音の音量を調整する操作や演奏音に付与する音響効果の程度を調整する操作等が含まれる。
図1に示すように演奏操作入力モジュール110aはピアノ鍵盤を模した入力装置であり、黒鍵および白鍵の各々が演奏操作用の操作子である。電子楽器10のユーザは、演奏操作入力モジュール110aに設けられた各鍵を押下することで演奏音の音高および当該演奏音の発音開始を電子楽器10に指示することができ、押鍵を解除することで演奏音の発音終了を指示することができる。本実施形態では、演奏音の音高、発音開始および発音終了をユーザに指示させるための演奏操作入力モジュールとしてピアノ鍵盤を模した入力装置を用いたが、ギター等の撥弦楽器やバイオリン等の擦弦楽器、トランペット等の管楽器を模した入力装置を用いても良い。例えば、撥弦楽器や擦弦楽器を模した入力装置であれば、弦を模した操作子により演奏音の音高、発音開始および発音終了を指示させれば良い。また、管楽器を模した入力装置であれば、管楽器の唄口やバルブ等を模した操作子により演奏音の音高、発音開始および発音終了を指示させれば良い。
演奏操作入力モジュール110b1〜110b8の各々には、演奏操作用の操作子としてボリューム(ポテンションメータ)を模した操作子が4個設けられている。本実施形態では、演奏操作入力モジュール110b1〜110b8の各々には、互いに異なる周波数帯域が対応付けられており、ボリュームを模した4個の操作子の各々は当該周波数帯域を4分割した各周波数帯域に対応付けられている。電子楽器10のユーザは、例えば、演奏操作入力モジュール110b1に設けられている操作子を操作することで、電子楽器10から出力される演奏音のうち当該操作子に対応する帯域に属する信号成分の音量を調整することができる。以下において、演奏操作入力モジュール110b1〜110b8の各々を区別する必要がない場合には「演奏操作入力モジュール110b」と表記する。本実施形態の演奏操作入力モジュール110bにはボリュームを模した操作子が4個設けられているが、演奏操作入力モジュール110bに設けられている操作子の数は1〜3個であっても良く、5個以上であっても良い。
演奏操作入力モジュール110c1〜110c11には、演奏操作用の操作子としてスライダを模した操作子が設けられている。本実施形態では、演奏操作入力モジュール110c1〜110c11の各々には互いに異なる音響効果が対応付けられている。例えば、演奏操作入力モジュール110c1にはピッチベンドが対応付けられており、電子楽器10のユーザは、演奏操作入力モジュール110c1の操作子を操作することで演奏音に付与するピッチベンドの程度を調整することができる。演奏操作入力モジュール110c1〜110c11についても、各々を区別する必要がない場合には「演奏操作入力モジュール110c」と表記する。本実施形態の演奏操作入力モジュール110cにはスライダを模した操作子が1つ設けられているが、2個以上の操作子を設けても良い。本実施形態では、演奏音に付与する音響効果の度合いを調整するための操作子として、ボリュームやスライダを模した操作子を用いるが、スイッチを模した操作子であっても良い。
以下においては、演奏操作入力モジュール110a、110bおよび110cの各々を区別する必要がない場合には「演奏操作入力モジュール110」と表記する。図1では詳細な図示を省略したが、電子楽器10は、演奏操作入力モジュール110の他に、表示部と、音出力部と、電子楽器10のユーザに各種設定操作を行わせるための設定操作入力部と、を含んでいる。表示部は、例えば液晶ディスプレイなどの表示装置であり、設定操作の実行を促す画像等を表示する。音出力部は例えばスピーカであり、ユーザの演奏操作に応じた演奏音を出力する。設定操作入力部は、テンキーやマウス等である。
本実施形態では、電子楽器10に対して演奏操作入力モジュール110が着脱自在に構成されている。このため、電子楽器10のユーザは、電子楽器10に装着する演奏操作入力モジュール110の種類や数(すなわち、演奏操作用のユーザインタフェース)を自身の嗜好に応じてカスタマイズすることができる。例えば、演奏操作入力モジュール110aを取り外して(図2(a)参照)、他の演奏操作入力モジュール(例えば、バイオリン等の弦楽器を模した演奏操作入力モジュール)を装着するといった具合である。また、図1に示す各演奏操作入力モジュール110のなかに電子楽器10のユーザが使用しないものが含まれている場合には、当該使用しない演奏操作入力モジュール110を取り外して除去しても良い。例えば図2(b)には、演奏操作入力モジュール110b1および演奏操作入力モジュール110c1を除去した場合について例示されている。また、図1に示す電子楽器10にさらに演奏操作入力モジュール110を装着しても勿論良い。
加えて、本実施形態の電子楽器10は、音源の役割を果たすハードウェア(所謂音源チップ等)を有さず、この点にも本実施形態の特徴が現れている。本実施形態の電子楽器10では、音源がソフトウェアで実現されている。以下、音源の役割を果たすソフトウェアのことを「音源ソフトウェア」と呼ぶ。電子楽器10のユーザは、自身の嗜好や演奏しようとする楽曲の種類に応じた音源ソフトウェアを電子楽器10にインストールすることで、自身の嗜好に即した音色或いは演奏しようとする楽曲の種類に応じた音色の演奏音を電子楽器10に出力させることや、所望の音響効果の付与(すなわち、演奏音のカスタマイズ)をすることができる。音源ソフトウェアには、楽器の演奏音の音波形を表す波形データを音高と対応付けて格納した演奏音データベースと、演奏操作によりユーザにより指定された音高に対応する波形データを当該演奏音データベースから読み出し、演奏操作により付与を指示された音響効果に応じた信号処理を施して出力する処理を電子楽器10に実行させる読出し制御プログラムとが含まれている。本実施形態の音源ソフトウェアは、演奏音データベースと読出し制御プログラムとで構成されていた。しかし、FM音源チップ等のハードウェア音源の動作をCPU(Central
Processing Unit)にシミュレートさせるプログラムを音源ソフトウェアとして用いても良い。
音源ソフトウェアを電子楽器10にインストールする方法については種々の態様が考えられるが、本実施形態ではインターネットなどの電気通信回線経由の通信により上記インストールが実現される。より詳細に説明すると、本実施形態では、図3に示すように、音源ソフトウェアと当該音源ソフトウェアの特徴を示すタグ情報とを対応付けて複数組格納した音源サーバ装置30が電気通信回線20に予め接続されている。音源サーバ装置30は、webサーバ機能を備えたコンピュータ装置であり、電気通信回線20を介して受信したタグ情報に対応する音源ソフトウェアを当該タグ情報の送信元へ返信する機能を有する。
タグ情報の具体例としては、電子楽器10を音源ソフトウェアにしたがって作動させることで放音される演奏音の音色を表す文字列や、その音色での演奏に適した楽曲のジャンルを示す文字列等が挙げられる。図3に示す例では、AAAというタグ情報(以下、「タグ情報AAA」と表記)に対応付けて音源ソフトウェアAが音源サーバ装置30に記憶されており、BBBというタグ情報(以下、「タグ情報BBB」と表記)に対応付けて音源ソフトウェアBが音源サーバ装置30に記憶されている。本実施形態におけるタグ情報は、楽曲のジャンルを示す文字列である。具体的には、タグ情報AAAはクラシックを表し、タグ情報BBBはジャズを表す。本実施形態における音源ソフトウェアAはクラシック曲の演奏に適した音色のピアノ演奏音を電子楽器10に再現させるソフトウェアであり、音源ソフトウェアBはジャズの演奏に適した音色のピアノ演奏音を電子楽器10に再現させるソフトウェアである。
本実施形態の電子楽器10にはwebブラウザが予めインストールされている。webブラウザとは、WWWに準拠したデータ通信をコンピュータに実現させるソフトウェアである。本実施形態では、図3に示すように電子楽器10を電気通信回線20に接続し、音源サーバ装置30との間の通信をwebブラウザにしたがって電子楽器10に行わせることで、音源サーバ装置30に記憶されている音源ソフトウェアの検索、当該音源サーバ装置30からの音源ソフトウェアの取得(ダウンロード)、および取得した音源ソフトウェアの電子楽器10へのインストールが実現される。なお、webブラウザによる検索を容易にするため、上記タグ情報と、そのタグ情報に対応する音源ソフトウェアおよびその格納場所を示す情報(所謂URI)とを対応付けて、検索エンジン等に予め登録しておいても良い。
また、本実施形態においてwebブラウザは、音源ソフトウェア(より正確には音源ソフトウェアに含まれる読出し制御プログラム)の実行にも利用される。つまり、本実施形態の音源ソフトウェアは、webブラウザの提供するプログラム実行環境において実行されるwebアプリケーションである。本実施形態において音源ソフトウェアをwebアプリケーションとしたのは、ブラウザ以外のプログラム実行環境(例えば、Java(登録商標)におけるJVM)を必要とせず、OS(Operating System)や電子楽器10の機種等に対する依存性が生じないようにするためである。
このように、本実施形態の電子楽器10では、演奏操作用のユーザインタフェースと音源のカスタマイズを行えるのであるが、さらに電子楽器10はそれらカスタマイズに起因する不整合が発生しても演奏に支障が生じないように構成されており、この点に本実施形態の特徴がある。
図4は、電子楽器10のハードウェア構成の一例を示す図である。
図4に示すように電子楽器10は、音出力部120、設定操作入力部130、制御部140、通信インタフェース(以下、「I/F」と表記)部150、モジュールI/F部160、記憶部170、表示部190およびこれら構成要素間のデータ授受を仲介するバス180を有する。
モジュールI/F部160には演奏操作入力モジュール110が着脱自在に装着される。モジュールI/F部160の具体例としては、USBI/FやシリアルI/F等が挙げられる。モジュールI/F部160は、自身に接続されている演奏操作入力モジュール110と制御部140との間のデータの授受を仲介する。モジュールI/F部160を介して演奏操作入力モジュール110から制御部140に与えられるデータの具体例としては、当該演奏操作入力モジュール110に設けられている操作子に対するユーザの操作内容を表す操作内容データが挙げられる。
制御部140は例えばCPUである。制御部140は記憶部170(より正確には不揮発性記憶部174)に記憶されている各種プログラムを実行することで電子楽器10の制御中枢として機能する。通信I/F部150は例えばNIC(Network Interface Card)であり、電気通信回線20に接続される。通信I/F部150は、電気通信回線20から受信したデータを制御部140に引き渡す一方、制御部140から与えられたデータを電気通信回線20へ送出する。
記憶部170は、図4に示すように、揮発性記憶部172と不揮発性記憶部174とを有する。揮発性記憶部172は例えばRAM(Random Access Memory)である。揮発性記憶部172は各種ソフトウェアを実行する際のワークエリアとして利用される。不揮発性記憶部174は例えばハードディスクやフラッシュROMである。不揮発性記憶部174には、音源サーバ装置30からダウンロードした音源ソフトウェアが格納される。また、不揮発性記憶部174には、図4に示すように、OSを制御部140に実現させるためのOSソフトウェア174aとブラウザランタイム174bが予め格納されている。図5は、電子楽器10におけるソフトウェア構成(各ソフトウェア間の階層関係)を示す図である。図5を参照しつつ、OSソフトウェア174aとブラウザランタイム174bについて説明する。
図5に示すように、OSソフトウェア174aには、カーネルと、ドライバソフトウェアと、webブラウザとが含まれる。ドライバソフトウェアとは、モジュールI/F部160に接続された演奏操作入力モジュール110や設定操作入力部130、通信I/F部150の作動制御を制御部140に行わせるためのソフトウェアである。カーネルとは、webブラウザ等の他のソフトウェア(カーネル以外のソフトウェア)の実行制御を制御部140に行わせるプログラムである。制御部140は、電子楽器10の電源(図4では図示略)投入を契機としてカーネルを不揮発性記憶部174から揮発性記憶部172に読み出し、その実行を開始する。カーネルにしたがって作動している制御部140は、モジュールI/F部160を介してその接続先の演奏操作入力モジュール110と通信してその種別を識別し、演奏操作入力モジュール110に対応するドライバソフトウェアを揮発性記憶部172に読み出す。なお、モジュールI/F部160に接続されている演奏操作入力モジュール110の種別の識別については、プラグアドンプレイ等の既存技術を適宜用いるようにすれば良い。以降、制御部140は、揮発性記憶部172に読み出したドライバソフトウェアにしたがって演奏操作入力モジュール110の作動制御を行う。なお、設定操作入力部130等の作動制御についても同様である。
各種ドライバソフトウェアの読出しを完了し、カーネルにしたがって作動している制御部140は、設定操作入力部130を介して与えられるユーザの指示に応じたプログラムを実行することができる。例えば、設定操作入力部130を介してwebブラウザの実行を指示されると、webブラウザとブラウザランタイム174bを不揮発性記憶部174から揮発性記憶部172に読み出し、webブラウザの実行を開始する。webブラウザにしたがって作動している制御部140は、設定操作入力部130に対するユーザの操作に応じて各種情報を検索し取得する機能、webアプリケーションを実行する機能等が付与される。ブラウザランタイム174bは、各種のwebアプリケーションに共通する機能を実現するサブルーチンの集合体であり、webアプリケーションの実行過程で制御部140によって適宜参照される。
前述したように、本実施形態では、音源サーバ装置30からの音源ソフトウェアの取得、および当該音源ソフトウェアの実行の際にwebブラウザが利用される。音源ソフトウェアは、webブラウザの提供するプログラム実行環境において実行されるwebアプリケーションである。前述したように音源ソフトウェアには読出し制御プログラムと演奏音データベースとが含まれている。音源ソフトウェアに含まれている読出し制御プログラムは、演奏操作入力モジュール110から受け取った操作内容データを、ある音高の音の発音開始を指示するノートオン信号やピッチベンド等の音響効果の付与を指示する信号等の制御信号に変換する第1の処理、当該制御信号の表す音高の波形データを演奏音データベースから読み出す第2の処理、および当該波形データに音響効果等を付与して音出力部120へ出力する第3の処理、を制御部140に実行させるプログラムである。本実施形態では、上記第1の処理〜第3の処理のうちの第1および第3の処理はサブルーチン化されてブラウザランタイム174bに含まれており、音源ソフトウェアにはこれら各サブルーチンを呼び出すコードが含まれている。
音源サーバ装置30から取得された各音源ソフトウェアには、演奏操作の時に利用が想定される操作子(音源ソフトウェアにて予定されている操作子)を示すデータが含まれている。図6は、音源ソフトウェアAにて利用が想定されている操作子の組み合わせの例を示す図である。図6には、音源ソフトウェアAにて利用が想定されている操作子の種別を示す文字列、および当該操作子の個数が規定されている。図6に示すように、音源ソフトウェアAにて利用が想定されている操作子として、49個の鍵(1個の49鍵の鍵盤)、8個のボリューム、10個のスライダ、4個のセレクトスイッチ、6個の回転つまみが列挙されている。音源ソフトウェアにて利用が想定されている操作子に対して、実際に電子楽器10に装着されている演奏操作入力モジュール110に設けられた操作子が不足する(すなわち、音源ソフトウェアと当該操作子との間で操作子の組み合わせに不整合が発生する)と、電子楽器を正常に作動させることができなくなり、演奏に支障が生じるのは、上述したとおりである。そこで、本実施形態による制御部140は、本発明の特徴を顕著に示す処理、すなわち操作子実装チェック処理および仮想操作子表示処理を実行する。図7は、制御部140が実行する処理の内容を示すフローチャートである。
音源ソフトウェアにしたがって作動している(すなわち、音源サーバ装置30から取得した音源ソフトウェアに含まれている読出し制御プログラムを実行している)制御部140は、操作子実装チェック処理を行う(ステップS100)。この処理では、制御部140は、モジュールI/F部160を介してその接続先の演奏操作入力モジュール110と通信してその種別を識別する。次いで、制御部140は、その音源ソフトウェアにて利用が想定されている操作子を示すデータを参照し、その組み合わせ(操作子の種別とその個数)を特定する。ステップS100の処理が完了すると、制御部140は、各々を対比することにより、音源ソフトウェアにて利用が想定されている操作子に対して、実際に電子楽器10に装着されている演奏操作入力モジュール110に設けられた操作子が不足しているか否かを判別する(ステップS110)。ステップS110の判定結果が“No”の場合、制御部140は、以降、演奏音信号生成処理(前述した第1〜第3の処理)を実行する(ステップS130)。
ステップS110の判定結果が“Yes”の場合、制御部140は、仮想操作子表示処理を行う(ステップS120)。この仮想操作子表示処理では、制御部140は、不足分の操作子に対して演奏操作用の操作子とは異なる操作子を対応付ける処理を実行する。本実施形態では、制御部140は、不足分の操作子に対応する仮想操作子を表す画像データを生成するとともに、設定操作入力部130の操作子(例えばマウス)を当該仮想操作子に対応付けることにより、上記処理を実現する。制御部140は、この処理を実行すると、生成した画像データを表示部190に与える。表示部190は、この画像データを受け取ると、当該画像データの表す仮想操作子の画像を画面に表示する。制御部140は、ステップS120を実行すると、以降、ステップS130の処理を実行する。すなわち、制御部140は、ユーザによる演奏操作入力モジュール110に設けられた操作子に対する演奏操作に応じて演奏音信号を生成し、音出力部120へ出力する。また、制御部140は、表示部190に表示された仮想操作子に対する操作を表す操作信号であれば、当該仮想操作子に対応する上記不足分の操作子についての操作信号であると見做して演奏音信号を生成し、音出力120へ出力する。なお、本実施形態では、ステップS100およびS120の各々の処理がサブルーチン化されてブラウザランタイム174bに含まれており、制御部140はブラウザランタイム174bから各サブルーチンを呼び出すことにより、各サブルーチンに対応する処理を実行する。
以上が電子楽器10の構成である。
(動作例1)
次いで、電子楽器10が実行する動作のうち、本実施形態の特徴を顕著に示す動作、すなわち操作子実装チェック処理および仮想操作子表示処理について、図7を参照しつつ説明する。本動作例は、ユーザが、モジュールI/F部160に装着する演奏操作入力モジュール110の構成を変更し、演奏操作用の操作子のカスタマイズを行ったときのものである。カスタマイズ後の電子楽器10には、音源ソフトウェアAがインストールされている。この音源ソフトウェアAにて利用が想定されている操作子は、図6に示したとおりである。このカスタマイズにより、音源ソフトウェアAにて利用が想定されている操作子に対して、実際に電子楽器10に装着されている演奏操作入力モジュール110に設けられた操作子として、ある周波数帯域に対応するボリュームが4個、およびある音響効果に対応するスライダが5個不足している。
音源ソフトウェアAにしたがって作動する制御部140は、ステップS100およびS110を実行する(図7)。本動作例では、音源ソフトウェアAにて利用が想定されている操作子に対して、実際に電子楽器10に装着されている演奏操作入力モジュール110に設けられた操作子として、ボリュームが4個、スライダが5個不足しているため、ステップS110の判定結果は‘Yes’となる。したがって、制御部140は、ステップS120の処理を実行し、4個のボリュームに対応する仮想操作子を表す画像データと5個のスライダに対応する仮想操作子を表す画像データを生成し、当該画像データを表示部190に与える。表示部190は、この画像データを受け取ると、画面に4個のボリュームおよび5個のスライダの各々に対応する仮想操作子を表示する。図8は、表示部190に表示された仮想操作子(ボリュームおよびスライダ)を示す図である。ユーザが、マウス(設定操作入力部130)を介して、表示部190に表示されたスライダをスライドする操作(例えばドラッグアンドドロップ)を行うと、当該操作に応じた操作信号が制御部140へ送信される。制御部140は、ステップS130を実行し、当該スライダ(仮想操作子)の操作に応じた演奏音信号を生成し、音出力部120へ出力する。この結果、音出力部120から、当該スライダの操作に応じた音響効果の付与された演奏音が出力される。
(動作例2)
本動作例は、ユーザが、モジュールI/F部160に装着する演奏操作入力モジュール110の構成を変更し、演奏操作用の操作子のカスタマイズを行ったときのものである。カスタマイズ後の電子楽器10には、音源ソフトウェアAがインストールされている。この音源ソフトウェアAにて利用が想定されている操作子は、図6に示したとおりである。このカスタマイズにより、音源ソフトウェアAにて利用が想定されている操作子に対して、実際に電子楽器10に装着されている演奏操作入力モジュール110に設けられた操作子として、17個の鍵が不足している。
音源ソフトウェアにしたがって作動している制御部140は、ステップS100およびS110を実行する。本動作例では、音源ソフトウェアAにて利用が想定されている操作子に対して、実際に電子楽器10に装着されている演奏操作入力モジュール110に設けられた操作子として、17個の鍵が不足しているため、ステップS110の判定結果は‘Yes’となる。したがって、制御部140は、ステップS120を実行し、上記17個の鍵に対応する仮想操作子を表す画像データを生成し、当該画像データを表示部190に与える。表示部190は、この画像データを受け取ると、画面に17個の鍵に対応する仮想操作子を表示する。図9は、表示部190に表示された仮想操作子(鍵)を示す図である。ユーザが、マウス(設定操作入力部130)を介して、表示部190に表示されたある音高に対応する鍵を押下する操作(例えばクリック)を行うと、当該操作を示す操作信号に応じて発生するノートオン信号が制御部140へ送信される。制御部140は、ステップS130を実行し、当該鍵(仮想操作子)の操作に応じた演奏音信号を生成し、音出力部120へ出力する。この結果、音出力部120から、当該仮想操作子に対応する音高の演奏音が出力される。
以上、本実施形態によれば、演奏操作入力モジュール110に設けられた操作子のカスタマイズが為された結果、音源ソフトウェアにて利用が想定されている操作子に対して、実際に電子楽器10に装着されている演奏操作入力モジュール110に設けられた操作子が不足した(すなわち、演奏操作入力モジュール110に設けられた操作子と音源ソフトウェアとの間で不整合が発生した)としても、不足分の操作子に対応する仮想操作子が表示部190に表示され、その仮想操作子に対して為される操作に応じて演奏音信号が生成される。したがって、演奏操作入力モジュール110に設けられた操作子と音源ソフトウェアとの間に不整合が生じても、演奏に支障が生じないようにすることが可能となる。
<他の実施形態>
以上、本発明の一実施形態について説明したが、この実施形態に以下の変形を加えても勿論良い。
(1)上記実施形態では、演奏操作用のユーザインタフェースのカスタマイズが為され、演奏操作用のユーザインタフェースと音源との間に不整合が発生した場合における本願発明の適用例について説明した。しかし、上記不整合は、演奏音のカスタマイズが為された場合にも発生し得る。より詳細には、演奏音のカスタマイズが為された結果、実際に電子楽器10に装着されている演奏操作入力モジュール110に設けられた操作子に対して、音源ソフトウェアにて利用が想定されている操作子の数が超過した場合に上記不整合は発生する。しかし、この場合も、音源ソフトウェアにて利用が想定されている操作子に対して、実際に電子楽器10に装着されている演奏操作入力モジュール110に設けられた操作子が不足していることに変わりはない。したがって、本願発明を適用することにより、上記不整合が生じても、演奏に支障が生じないようにすることが可能となる。
(2)上記実施形態において、音源ソフトウェアにて利用が想定されている操作子に対して、実際に電子楽器10に装着されている演奏操作入力モジュール110に設けられた操作子が不足する場合、制御部140は、当該不足分の操作子に対応する仮想操作子に代えて、当該不足分の操作子とは操作態様の異なる操作子に対応する仮想操作子を表示部190に表示させても良い。例えば、音源ソフトウェアにて利用が想定されているスライダに対して、実際に電子楽器10に装着されている演奏操作入力モジュール110cに設けられたスライダが1個不足する場合、制御部140は、1個のスライダに代えて1個のボリュームに対応する仮想操作子を表示部190に表示させる、といった具合である。この態様によれば、通常とはテイストの異なる音響効果を演奏音に付与することが可能となる。
(3)上記実施形態において、音源ソフトウェアにて利用が想定されている操作子に対して、実際に電子楽器10に装着されている演奏操作入力モジュール110に設けられた操作子が不足する場合、制御部140は、当該不足分の操作子と当該不足分の操作子とは操作態様の異なる操作子とからなる複数の操作態様の操作子に対応する仮想操作子を表示部190に表示させてもよい。例えば、音源ソフトウェアにて利用が想定されているスライダに対して、実際に電子楽器10に装着されている演奏操作入力モジュール110cに設けられたスライダが1個不足する場合、制御部140は、1個のスライダに加えて、1個のボリュームと1個のフェーダに対応する仮想操作子を表示部190に表示させる、といった具合である。この場合、表示部190に表示された複数の仮想操作子の中から、所望の仮想操作子をユーザに選択させ、選択された1または複数の仮想操作子に対する操作に応じて、制御部140に演奏音信号生成処理(図7)を実行させる。これにより、ユーザは自身の嗜好に応じた操作子に対応する仮想操作子を操作することができる。なお、制御部140は、上記仮想操作子を示す識別子或いはその名称を示す文字列のリストを表示部190に表示させ、ユーザがいずれかの識別子或いは文字列を選択した際に、その識別子或いは文字列が示す仮想操作子を表示部190に表示させても良い。
(4)上記実施形態において、制御部140は、修飾操作子(他の操作子の機能を切り替えるために、当該他の操作子と併用して用いられる操作子。例えば、シフトキー)に対応する仮想操作子(以下、修飾操作用の仮想操作子)を表示部190に表示させ、この修飾操作用の仮想操作子と演奏操作用(音響効果を付与したり、音高を指定したりするための操作用)の仮想操作子の各々に対する操作が同時に為された際に、その演奏操作用の仮想操作子の機能を他の演奏操作用の操作子の機能へと切り替えても良い。例えば、制御部140は、修飾操作子とドの音高に対応する鍵の各々に対応する仮想操作子を表示部190に表示させ、ユーザにより両仮想操作子に対する操作が同時に為された際に、ド♯(ド・シャープ)の音高の演奏音を音出力部120に発生させる、といった具合である。この態様によれば、ユーザに修飾操作用の仮想操作子を操作させることにより、1つの演奏操作用の仮想操作子に2つの演奏操作用の操作子としての役割を具備させることが可能となる。つまり、この態様によれば、表示部190に表示させる演奏操作用の仮想操作子の数を半減させることも可能となり、特に、表示部190に多数の演奏操作用の仮想操作子を表示させなければならない場合には好適である。
(5)上記実施形態および上記各変形例において、音源ソフトウェアにて利用が想定されている操作子に対して、実際に電子楽器10に装着されている演奏操作入力モジュール110に設けられた操作子が不足する場合、制御部140は、当該不足分の操作子に対応する仮想操作子を表示部190に表示させ、この仮想操作子に設定操作入力部130の操作子(テンキーやマウス等)を対応付けた。しかし、仮想操作子の表示は必須ではない。例えば、不足分の操作子に対してテンキーやマウス等の操作子を対応付け、当該操作子と演奏操作用の操作子とに対して為された操作に応じて演奏音信号を生成する処理を制御部140に実行させても良い。より詳細には、上記不足分の操作子が鍵である場合、制御部140は、テンキーを構成する各キーに不足分の鍵に対応する音高を割り当て、各キーに対して為された押下操作と演奏操作用の操作子に対して為された操作とに応じて演奏音信号を生成する。或いは、上記不足分の操作子がフェーダである場合、制御部140は、前後または左右のスライド操作時におけるマウスの移動量にフェーダの調整幅を対応付け、マウスに対して為されたスライド操作に応じて演奏音信号を生成する。
すなわち、操作入力部は、演奏操作用の第1の操作子(電子楽器10に装着されている演奏操作入力モジュール110に設けられた操作子)と当該第1の操作子とは異なる第2の操作子(テンキーやマウス等)とを含み、演奏音信号生成処理において制御部140は、音源ソフトウェアにて利用が想定されている演奏操作用の操作子に対して上記第1の操作子が不足する場合には、不足分の操作子に対して上記第2の操作子を対応付け、当該第2の操作子と上記第1の操作子とに対して為された操作に応じて演奏音信号を生成する。この態様においても、演奏操作入力モジュール110に設けられた操作子と音源ソフトウェアとの間に不整合が生じても、演奏に支障が生じないようにすることが可能となる。
(6)上記実施形態において、音源ソフトウェアにて利用が想定されている操作子に対して、実際に電子楽器10に装着されている演奏操作入力モジュール110に設けられた操作子が不足する場合、制御部140に当該不足分の操作子の利用を想定していない他の音源ソフトウェアを電子楽器10に再インストールさせても良い。この態様によっても、演奏操作入力モジュール110に設けられた操作子と音源ソフトウェアとの間に不整合が生じても、演奏に支障が生じないようにすることが可能となる。なお、この態様を実現するために、電子楽器10(より正確には制御部140)と音源サーバ装置30に、以下に示す処理を実行させても良い。
例えば、音源ソフトウェアにて利用が想定されている操作子を示すデータを格納したテーブルを音源ソフトウェア毎に予め作成しておき、作成したテーブルを、音源ソフトウェアを示す識別子に対応付けて音源サーバ装置30の記憶部に記憶しておく。制御部140は、操作子実装チェック処理(図7)において、モジュールI/F部160を介してその接続先の演奏操作入力モジュール110と通信してその種別を識別すると、当該演奏操作入力モジュール110に設けられたすべての操作子の種別を示す情報(以下、操作子情報)と、現時点において電子楽器10にインストールされている音源ソフトウェアの対象とする楽器(例えばギター)の種別を示す情報(以下、楽器情報)を音源サーバ装置30に送信する。音源サーバ装置30は、上記各情報を受け取ると、操作子情報が示す全ての操作子の種別を検索キーとして、これら全ての操作子を含むテーブルを検索する。該当したテーブル(すなわち、操作子情報が示す全ての操作子を含むテーブル)に対応付けられた音源ソフトウェアが、楽器情報の示す楽器を対象とする音源ソフトウェアではない場合(例えば、ピアノを対象とする音源ソフトウェアの場合)、音源サーバ装置30は上記検索を再開する。該当したテーブルに対応付けられた音源ソフトウェアが、楽器情報の示す楽器を対象とする音源ソフトウェアである場合(すなわち、ギターを対象とする音源ソフトウェアの場合)、音源サーバ装置30は当該音源ソフトウェアを制御部140に送信する。上記検索により、複数の音源ソフトウェアが抽出された場合、音源サーバ装置30は所定数の音源ソフトウェアを制御部140に送信する。制御部140は、音源ソフトウェアを受信すると、当該音源ソフトウェアを電子楽器10に再インストールする。音源サーバ装置30から複数の音源ソフトウェアが送信された場合、制御部140は当該音源ソフトウェアの種別を示すリストを表示部190に表示させ、ユーザにより選択された音源ソフトウェアを再インストールすれば良い。なお、上記処理において、楽器情報を用いた処理は必須ではなく、操作子情報を用いて検索された1または複数の音源ソフトウェアを電子楽器10に送信し、制御部140に当該音源ソフトウェアを電子楽器10に再インストールさせても良い。
(7)上記実施形態において、音源ソフトウェアにて利用が想定されている操作子に対して、実際に電子楽器10に装着されている演奏操作入力モジュール110に設けられた操作子が不足する場合、制御部140にその旨を示すメッセージを表示部140に表示させたり、音出力部120から警告音を放音させる処理を実行させてもよい。この態様によれば、ユーザにその旨を報知することが可能となる。
(8)上記実施形態および各変形例において、設定操作入力部130の操作子としてタッチパッドを利用し、当該タッチパッドを仮想操作子に対応付けてもよい。この場合、タッチパッドの複数箇所をタッチすることにより、複数の仮想操作子を同時に操作することが可能となる。
(9)上記実施形態では、音源ソフトウェアを演奏音データベースと当該演奏音データベースと対になる読出し制御プログラムとで構成する場合について説明した。しかし、読出し制御プログラムのみで音源ソフトウェアを構成しても良い。この場合、当該読出し制御プログラムにしたがって作動している制御部140には、電気通信回線20経由で音源サーバ装置30の演奏音データベースから波形データを読み出す処理を演奏音信号生成処理として実行させるようにすれば良い。このような態様においては、上記実施形態に比較して演奏音データベースを含まない分だけ音源ソフトウェアのデータサイズが小さくなり、音源サーバ装置30から電子楽器10への音源ソフトウェアのダウンロードに要する時間を上記実施形態よりも短縮できるといったメリットがある。
また、本態様においては、ユーザの演奏操作毎に音源サーバ装置30とのデータ通信が発生するため、演奏操作の実行から発音までに遅延が発生する虞がある、といったデメリットが生じ得る。音源ソフトウェアを演奏音データベースと当該演奏音データベースと対になる読出し制御プログラムとで構成するのか、それとも後者のみで構成するのかについては、上記ダウンロード時間の短縮と上記遅延の有無の何れが優先されるのかに応じて決定すれば良い。なお、電子楽器10の不揮発性記憶部174の記憶容量を充分に確保できない場合には、音源ソフトウェアを読出し制御プログラムのみで構成する態様の方が好ましい。また、音源サーバ装置30から電子楽器10へ音源ソフトウェアをダウンロードするのではなく、音源ソフトウェアを利用するための情報(例えば、URI)を音源サーバ装置30から電子楽器10に返信するようにしても良い。例えば上記情報としてURLを用いる態様であれば、演奏操作入力モジュール110に対する操作内容を表す操作内容データをURI宛てに送信し、この操作内容データに対する返信として音源サーバ装置30から返信されている波形データに応じた音を電子楽器10に出力させるといった所謂ASP(Application Service Provider)形式の通信サービスを提供することが可能になる。
(10)上記実施形態では、ステップS100およびS120の各々の処理をサブルーチン化してブラウザランタイム174bに含めたが、サブルーチン化する処理の組み合わせはこれに限定されるものではなく、例えばステップS100〜S120の一連の処理をサブルーチン化してブラウザランタイム174bに含めてもよい。
(11)上記実施形態では、音源ソフトウェアがwebアプリケーションであったが、音源ソフトウェアをブラウザによるプログラム実行環境を前提としないアプリケーションプログラムとしても良い。例えばJVMなどの他の実行環境を前提としたアプリケーションプログラムであっても良く、また、C言語やC++などでソースコードが記述されたアプリケーションプログラム(OS以外にプログラム実行環境を必要としないアプリケーションプログラム)であっても良い。ただし、前者の態様であれば、JVMなどの他のプログラム実行環境を制御部140に実現させるためのソフトウェアを電子楽器10に予めインストールしておく必要があり、後者の態様であれば、OS毎(或いは電子楽器10の機種毎等のハードウェア毎)に音源ソフトウェアを作成しておくことが必要となる。
また、上記実施形態のように音源ソフトウェアをwebアプリケーションとする場合には、演奏音データベースのデータ構造や読出し制御プログラムの仕様(演奏音データベースへのアクセス仕様やブラウザランタイムへのアクセス仕様)を一般に公開しても良い。このような態様によれば、一般のユーザが自由に音源ソフトウェアを作成し、他者がダウンロード可能なように公開することが可能になり、電子楽器10のユーザが利用可能な音源ソフトウェアの豊富化を促すことができる。
(12)上記実施形態では、電気通信回線20に1台の音源サーバ装置30が接続されていたが、複数台の音源サーバ装置30が電気通信回線経由20に接続されていても良い。同様に、電気通信回線20に複数台の電子楽器10が接続されても良い。要は、演奏操作用の操作子が各々設けられた1または複数の演奏操作入力モジュール110を各々着脱自在な1または複数の電子楽器10と、電子楽器10と通信する1または複数の音源サーバ装置30とを電気通信回線20に接続して通信システムを構成し、電子楽器10と各音源サーバ装置30に以下の処理を実行させるようにすれば良い。各音源サーバ装置30には、電子楽器10に装着された演奏操作入力モジュール110に対して為された演奏操作に応じて演奏音信号を生成する演奏音信号生成処理を当該電子楽器に実現させる音源ソフトウェアと当該音源ソフトウェアにしたがって生成される音の特徴を示すタグ情報の組を少なくとも1組記憶させておく。そして、各音源サーバ装置30には、電子楽器10から受信したタグ情報が自装置に記憶されている場合には当該タグ情報に対応する音源ソフトウェアを当該電子楽器10へ送信する処理を実行させる。一方、電子楽器10には、ユーザにより入力されたタグ情報を1または複数の音源サーバ装置30の各々へ送信させる。さらに電子楽器10には、当該タグ情報に対する返信として送信されてくる音源ソフトウェア(すなわち、タグ情報に対応する音源ソフトウェア)を受信させ、当該音源ソフトウェアにしたがって演奏音信号生成処理を実行させる。
(13)上記実施形態では、電気通信回線20経由で音源ソフトウェアを制御部140に取得させた。しかし、通信I/F部150に代えて(或いは通信I/F部150の他に)、CD−ROMやUSBメモリ、SDメモリなどのコンピュータ読み取り可能な記録媒体から当該記録媒体に記録されているデータを読み出す記録媒体I/Fを電子楽器10に設け、音源ソフトウェアが予め格納された記録媒体を当該記録媒体I/Fに装着し、制御部140には、当該記録媒体I/F経由で当該記録媒体から音源ソフトウェアを読み出す処理をユーザの指示に応じて実行させるようにしても良い。また、上記記録媒体I/FをモジュールI/F部160とは別個に設けるのではなく、モジュールI/F部160に記録媒体I/Fの役割を兼ねさせても良い。要は、演奏操作用の操作子が各々設けられた1または複数の演奏操作入力モジュール110を着脱自在なモジュールI/F部160と、モジュールI/F部160に装着された演奏操作入力モジュールに対して為された演奏操作に応じて演奏音信号を生成する演奏音信号生成処理を実現するための音源ソフトウェアをユーザの指示に応じて取得し、取得した音源ソフトウェアにしたがって演奏音信号生成処理を実行する制御部140と、を組み合わせて電子楽器を構成する態様であれば良い。
(14)上記実施形態では、ユーザインタフェースのカスタマイズと演奏音のカスタマイズの両方が可能な電子楽器について説明したが、何れか一方のみのカスタマイズを可能としても良い。例えば、音源がハードウェアで実現されている電子楽器、或いは音源ソフトウェアの入れ替えができない電子楽器であっても、演奏操作用の操作子が各々設けられた1または複数の演奏操作入力モジュールを着脱自在に構成されていれば、前述した不整合が発生し得る。このような場合であっても、当該電子楽器の制御部に、音源側で利用が想定されている演奏操作用の操作子に対して、演奏操作用に実装されている操作子(第1の操作子)が不足する場合には、その不足分に対して設定操作用の操作子(第2の操作子)を対応付け、当該第2の操作子と第1の操作子とに対して為された操作に応じて演奏音信号を生成する処理を実行させるようにすれば、本電子楽器の演奏に何ら支障は生じない。
また、演奏操作入力モジュール110が電子楽器10に対して着脱できないように設けられている場合についても同様に、当該電子楽器の制御部に、音源側で利用が想定されている演奏操作用の操作子に対して、演奏操作用に実装されている操作子(第1の操作子)が不足する場合には、その不足分に対して設定操作用の操作子(第2の操作子)を対応付け、当該第2の操作子と第1の操作子とに対して為された操作に応じて演奏音信号を生成する処理を実行させるようにすれば、上記不整合が発生したとしても、本電子楽器の演奏に何ら支障は生じない。このように、電子楽器10に対して演奏操作入力モジュール110を着脱できない構成とする場合には、モジュールI/F部160を省略しても良い。