以下、本発明の実施の形態を図面に基づいて詳細に説明する。
図1は、本発明の一実施の形態に係る音楽画像表示装置を含む音楽システムのシステム構成の一例を示す図である。
同図に示すように、本実施の形態の音楽画像表示装置は、タッチパネル11を備えた汎用のスレートデバイス(slate device)1(のCPU10)が所定の制御プログラムおよびアプリケーションプログラム(図5を用いて後述する映像効果表示・編集処理のプログラムを含む)を実行することによって実現されている。スレートデバイス1は、アダプタ4を介して直接、電子鍵盤楽器2および外部LCD(liquid crystal display)3と接続されている。
アダプタ4は、スレートデバイス1から入力された演奏情報を電子鍵盤楽器2に出力するとともに、電子鍵盤楽器2から入力された演奏情報をスレートデバイス1に出力する。またアダプタ4は、電子鍵盤楽器2から入力されたオーディオ信号をスレートデバイス1に出力する。さらにアダプタ4は、スレートデバイス1から入力された映像信号を外部LCD3に出力する。演奏情報のフォーマットとして、本実施の形態では説明の都合上、MIDI(musical instrument digital interface)形式のデータを採用している。もちろん、MIDIのフォーマットを採らない他のフォーマット、たとえばOSC(Open Sound Control)などの演奏情報であってもよい。
電子鍵盤楽器2は、図示例では、24鍵からなる鍵盤2aと、自動伴奏の各種セクション(“A”〜“D”)を切替指定する複数(4つ)のセクション指定スイッチ2bと、各種設定を行うための複数(6つ)のスイッチ2cと、各種情報を表示する小型のLCD2dと、楽音を発生するスピーカ2eとを備えている。電子鍵盤楽器2は、自動伴奏機能を備え、この自動伴奏機能により、たとえば内蔵メモリ(図示せず)に記憶された自動伴奏データを再生することで伴奏音をスピーカ2eから発生させ、この伴奏音に従って演奏者(ユーザ)が鍵盤2aを押鍵すると、その押鍵音もスピーカ2eから発生させる。そして電子鍵盤楽器2は、この伴奏音および押鍵音の発生とともに、この伴奏音および押鍵音に対応するMIDIデータ(主としてMIDIチャンネルメッセージであるが、SysExメッセージ(システム・エクスクルーシブ・メッセージ)の場合もある)およびオーディオ信号を生成して出力する。電子鍵盤楽器2から出力されたMIDIデータおよびオーディオ信号は、前述のようにアダプタ4を介してスレートデバイス1に送信される。また、ユーザがセクション指定スイッチ2bのいずれかを押すと、電子鍵盤楽器2は、押されたスイッチに割り当てられているセクション名(“A”〜“D”のいずれか)を含むMIDIデータ(この場合は、SysExメッセージ)を生成して出力する。なお、楽音についての各種パラメータ、たとえば、音色、テンポ、ピッチベンド、モジュレーション、アフタータッチ、フットペダル(サスティンペダル、ソフテヌートペダルおよびソフトペダルなど)の操作状態、フィルタ係数(カットオフ・レゾナンスなど)などの値が変更されたときなどにも、電子鍵盤楽器2は、その変更後の値を知らせるために当該パラメータの種類と値を含むMIDIデータを生成して出力する。
スレートデバイス1は、タッチパネル11上に1種類または複数種類(本実施の形態では、2種類)の映像効果を表示し、その表示態様を、電子鍵盤楽器2からの前記伴奏音および押鍵音に対応するMIDIデータの内容に応じて変動させて表示する。またこのとき、スレートデバイス1は、タッチパネル11に対するユーザのタッチ操作を受け付け、そのタッチ操作に応じた楽音信号を生成して発音するとともに、タッチパネル11上の映像効果の表示態様を当該タッチ操作に応じて変動させて表示するようにも構成されている。さらにスレートデバイス1は、タッチパネル11上に表示される映像効果を外部LCD3にも表示できるように、当該映像効果に対応する映像信号を生成して出力する。外部LCD3は、この映像信号を、アダプタ4を介して入力し、表示する。これにより、スレートデバイス1のタッチパネル11上に表示される映像効果と同様の映像効果が外部LCD3上に表示される。
なお本実施の形態では、スレートデバイス1と電子鍵盤楽器2および外部LCD3とは、アダプタ4を介して有線で接続されているが、これに限らず、無線で接続されていてもよい。また両者は、アダプタ4を介して直接1対1で接続される態様ではなく、LAN(local area network)やインターネット、電話回線等のネットワーク5を経由して接続される態様であってもよい。
また本実施の形態では、スレートデバイス1に電子鍵盤楽器2を外部接続し、伴奏音の生成と押鍵音(演奏音)の生成を電子鍵盤楽器2に任せるようにしたが、これに限らず、電子鍵盤楽器2の当該機能をソフトウェアによってスレートデバイス1内に実現させ、スレートデバイス1が電子鍵盤楽器2と協働して行う機能を、スレートデバイス1単独で行うようにしてもよい。
図2は、スレートデバイス1の概略構成を示すブロック図である。
同図に示すように、スレートデバイス1は、デバイス全体の制御を司るCPU(central processing unit)10を備えている。CPU10には、タッチパネル11、操作子12、各種センサ13,メモリ14、タイマ15、アダプタインターフェース(I/F)16、通信インターフェース(I/F)17およびサウンドシステム18が接続されている。
操作子12は、タッチパネル11上に表示されるソフトウェアボタンではなく、ハードウェアスイッチである。その典型例としては、電源スイッチ12a(図1参照)やリセットスイッチ(図示せず)などを挙げることができる。
各種センサ13には、マイクロフォン、地磁気センサ、GPS(Global Positioning System)、重力加速度も検出可能な加速度センサ、超音波センサ、カメラ、赤外線または可視光を検出する光センサなどが含まれる。
メモリ14には、CPU10によって実行される制御プログラムや各種アプリケーションプログラム、各プログラムによって画面表示に利用される画像データや発音に利用される音声データを含む各種データ等を記憶するROM(read only memory)と、上記画像データや音声データを含む各種データ、各種入力情報および演算結果等を一時的に記憶するRAM(random access memory)が含まれている。上記制御プログラムや各種アプリケーションプログラム、各種データ等は、本実施の形態では適宜、追加、削除あるいはアップデートできるようにするために、ROMとして、書き換え可能な不揮発性のもの、具体的にはフラッシュメモリを採用している。
タイマ15は、図8を用いて後述するタイマ割込み処理における割込み時間や各種時間を計時する。
アダプタI/F16は、スレートデバイス1にアダプタ4を接続させ、アダプタ4に接続された外部機器との間で各種データの送受信を行う。
通信I/F17は、スレートデバイス1を前記ネットワーク5(図1参照)に接続させ、ネットワーク5に接続された他の機器との間で各種データの送受信を行う。他の機器として、サーバコンピュータ(図示せず)が接続された場合、上記プログラム等の追加、削除あるいはアップデートは、サーバコンピュータを介して行うようにしてもよい。この場合、通信I/F17は、サーバコンピュータから各種プログラムや各種データをダウンロードするために用いられる。クライアントとなるスレートデバイス1は、通信I/F17およびネットワーク5を介してサーバコンピュータへとプログラムやデータのダウンロードを要求するコマンドを送信する。サーバコンピュータは、このコマンドを受け、要求されたプログラムやデータを、ネットワーク5を介してスレートデバイス1へと配信し、スレートデバイス1が通信I/F17を介して、これらプログラムやデータを受信してフラッシュメモリに蓄積することにより、ダウンロードが完了する。
サウンドシステム18は、たとえば、DAC(digital-to-analog converter)やアンプ、スピーカ等によって構成される。サウンドシステム18は、CPU10が前記制御プログラムや各種アプリケーションプログラムを実行しているときに生成した楽音信号を音響に変換する。楽音信号は、本実施の形態では、CPU10が音源プログラムを実行することによって生成する、いわゆるソフトウェア音源によって生成する。もちろん、ソフトウェア音源を用いて楽音信号を生成する態様に限らず、ハードウェア音源を用いてもよいし、一部をハードウェアで構成し、残りをソフトウェアで構成した音源を用いてもよい。
なお本実施の形態では、音楽画像表示装置としてスレートデバイス1を採用したが、これに限らず、ポインティングデバイス(マウスなど)とディスプレイ装置からなる通常のPC(パーソナルコンピュータ)を採用してもよい。また、汎用的な装置に限らず、本発明を実施できる最小限要素のみから構成した専用装置上に本発明を構築してもよい。
図3は、メモリ14に記憶された各種データ間のつながりを説明するための図である。
同図に示すように、メモリ14のフラッシュメモリには、タッチパネル11上に表示される映像効果の基礎となる単体の映像効果データSEm(m=1,2,3,…)が多数記憶されている。各単体の映像効果データSEmは、たとえば、CPU10によって実行される実行コードと、実行コードが実行される際に利用される画像部品を表すデータとによって構成されている。この単体の映像効果データSEmは、一般的には、前記サーバコンピュータからダウンロードされてフラッシュメモリに記憶されるが、一部は、スレートデバイス1が工場から出荷されるときに予めフラッシュメモリに記憶しておくようにし、それ以外は、ユーザが必要に応じて、サーバコンピュータからダウンロードして追加するようにしてもよい。
図4は、単体の映像効果データSEmに基づいてタッチパネル11上に表示した映像効果の一例を示す図である。同図(a)〜(d)がそれぞれ、図3の映像効果データSE1〜SE4に対応するものとする。
図3に戻り、フラッシュメモリには、複数(本実施の形態では、4つ)の映像効果を1組とする映像効果組#n(n=1,2,3,…)も多数記憶されている。各映像効果組#nは、セクションA〜Dのそれぞれに対応付けられた4つのポインタによって構成されている。各ポインタは、映像効果を指し示すものであるが、ポインタによっては、単体の映像効果データSEmではなく、ポインタ組を指し示すものもある。このポインタ組は、ミキシングされる映像効果MEk(k=1,2,3,…)である。
映像効果組#nおよび映像効果MEkは、単体の映像効果データSEmと同様に、サーバコンピュータからダウンロードしてフラッシュメモリに記憶するようにしてもよいし、一部は工場出荷時に予め記憶され、その後、必要に応じて、サーバコンピュータからダウンロードして追加するようにしてもよい。また、映像効果組#nおよび映像効果MEkは、図5を用いて後述する編集モードが選択されたときに、ユーザの編集操作に応じて作成または変更し、フラッシュメモリに保存することもできる。
ユーザがフラッシュメモリに記憶された映像効果組#nの中から、いずれか1つの映像効果組を選択すると、選択された映像効果組、つまり現映像効果組を指し示すポインタ(以下「現映像効果組へのポインタ」という)が、フラッシュメモリから読み出されて、メモリ14の前記RAMのワークエリアに記憶される。図示例では、映像効果組#1が選択され、映像効果組#1へのポインタが、現映像効果組へのポインタとしてRAMに記憶されている。
いずれか1つの映像効果組#nが選択され、現映像効果組へのポインタがRAMに記憶されているときには、現映像効果組に属する4つの映像効果(へのポインタ)のうちのいずれか1つが常に選択されている。現映像効果組へのポインタがRAMに記憶されていない状態から記憶されたり、他の映像効果組#nが選択されて、現映像効果組へのポインタが変更されたりしたときに、現映像効果組に属する4つの映像効果(へのポインタ)のうち、どの1つが選択されるかであるが、デフォルトで決まっていてもよいし、ユーザの指示を待ってその指示されたものが選択されるようにしてもよい。この選択された映像効果を指し示すポインタを、以下「現映像効果へのポインタ」という。図示例では、現映像効果へのポインタは、現映像効果組へのポインタに属する4つの映像効果へのポインタのうち、セクションBに対応付けられたものが選択されている。
このように図示例では、フラッシュメモリに記憶された映像効果組#nのうち、映像効果組#1が選択され、さらに映像効果組#1からセクションBに対応付けられた映像効果が選択されている。この選択により、現映像効果へのポインタと現映像効果組へのポインタがRAMに記憶される。
メモリ14内のこの記憶状態で、ユーザがタッチパネル11上への映像効果の表示を指示すると、現映像効果へのポインタは、ミキシングされる映像効果ME1を指し示しているので、この映像効果ME1を構成する2つのポインタ、つまり第1パート(たとえば、メロディパート)および第2パート(たとえば、伴奏パート)にそれぞれ対応付けられた映像効果へのポインタが指し示す単体の映像効果データSE2およびSE4がフラッシュメモリから読み出される。読み出された映像効果データSE2およびSE4は、RAMのワークエリアに記憶される。そして、この映像効果データSE2およびSE4にそれぞれ含まれる前記実行コードがCPU10によって実行され、第1パートおよび第2パートそれぞれのパートの映像効果を表示するための各画像データが生成される。生成された第1パートの画像データは、RAMのワークエリアに設けられた領域(以下「第1パートの表示レイヤ」という)に記憶され、生成された第2パートの画像データは、同ワークエリアに設けられた領域(以下「第2パートの表示レイヤ」という)に記憶される。
なお現映像効果へのポインタは、前述のように、1つの単体の映像効果データSEkを指し示す場合もある。図示例では、映像効果組#1のセクションAに対応付けられた映像効果がこの場合に該当する。この場合に、ユーザがタッチパネル11上への映像効果の表示を指示すると、単体の映像効果データSE2がフラッシュメモリから読み出されて、RAMのワークエリアに記憶される。そして、この映像効果データSE2に含まれる実行コードがCPU10によって実行されて、第1パートの画像データが生成され、上記第1パートの表示レイヤに記憶される。
単体の映像効果データSE2は、映像効果組#1のセクションAおよびセクションBにそれぞれ対応付けられた2つの映像効果へのポインタによって指し示されている。つまり、単体の映像効果データSEkによっては、複数のポインタによって重複して指し示されることもある。
以上のように構成されたスレートデバイス1が実行する制御処理を、まず図3および図4を参照してその概要を説明し、次に図5〜図8を参照して詳細に説明する。
前記図3のメモリ14内の記憶状態で、ユーザが図5を用いて後述する映像効果表示・編集処理を開始する指示を行うと、第1パートの表示レイヤと第2パートの表示レイヤとが、現在のミキシング設定に従って演算されてミキシングされ、その演算結果であるミキシング結果がタッチパネル11上に表示される。具体的には、図4(b)の映像効果と図4(d)の映像効果とが重ね合わされて、タッチパネル11上に表示される。ただし、図4の映像効果例は、その表示態様が変動中の映像効果を示しているので、映像効果表示・編集処理が開始された直後に、タッチパネル11上に表示される映像効果とは若干異なっている。
このタッチパネル11の表示状態で、電子鍵盤楽器2からMIDIデータが供給されたり、ユーザがタッチパネル11に対して発音のためのタッチ操作をしたりすると、それに応じて、タッチパネル11上の映像効果の表示態様が変動されて表示される。
次にユーザが、セクション指定スイッチ2bのうち、たとえばセクションAを指定するスイッチを押すと、当該スイッチに割り当てられたセクションの名称、つまり「セクションA」を含むSysExメッセージが生成され、電子鍵盤楽器2からスレートデバイス1に送信される。スレートデバイス1は、現映像効果へのポインタを、現映像効果組へのポインタ内のセクションAに対応付けられたポインタに変更し、前述のように、そのポインタが指し示す単体の映像効果データSE2をフラッシュメモリから読み出して、RAMのワークエリアに記憶する。そしてスレートデバイス1は、映像効果データSE2に含まれる実行コードを実行し、第1パートの映像効果を表示するための画像データを生成して、第1パートの表示レイヤに記憶する。これ以降は、タッチパネル11上の映像効果は、第1パートの表示レイヤに記憶された画像データのみに基づいて表示されるので、図4(d)に対応する映像効果は表示されなくなる。
さらにユーザが、他のセクション指定スイッチを押すと、当該セクション指定スイッチに割り当てられているセクションに対応付けられたポインタを介して、対応する1つまたは2つの単体の映像効果データSEkが読み出され、それに基づいて映像効果が切り替えられて、タッチパネル11上に表示される。
なお、現映像効果組内での現映像効果の切替選択方法は、上述のように、ユーザがセクション指定スイッチ2bのいずれかを押すことによって特定の1つに切替選択する方法に限らず、所定の時間が経過する毎に、所定の順序で切替選択する方法や、電子鍵盤楽器2から送信されて来るMIDIデータの内容に応じて切替選択する方法等があるが、その詳細は、制御処理の詳細で後述するので、ここではこれ以上説明しない。
このように本実施の形態では、楽曲を再生あるいは演奏している最中に、複数の映像効果の中から、所定の事象の発生をトリガとしていずれかの映像効果が選択されて切り替えられるので、複数の映像効果の変化を楽しみたいというユーザの要望や、当該変化をユーザに楽しませたいというメーカやクリエータの要望に応えることができる。また、複数の映像効果からなる映像効果組を予め用意しておき、その組の中で各映像効果を切り替えるようにしたので、ユーザ、メーカおよびクリエータがその組を用意する際の意図、たとえば、楽曲に合うイメージの映像効果あるいは統一感のある映像効果を集めて組とし、その組の中で各映像効果を切り替えて、映像効果の変化を楽しみたいあるいは楽しませたいという意図を的確に反映させることができる。
次に、この制御処理を詳細に説明する。
図5は、スレートデバイス1、特にCPU10が実行する映像効果表示・編集処理の手順を示すフローチャートである。
本映像効果表示・編集処理は、フラッシュメモリに記憶されているアプリケーションプログラムの1つであり、ユーザが、たとえば、タッチパネル11上に表示されたメニュー画像(後述する図8のステップS44参照)内の対応するメニューをタッチ操作することにより、起動される。
本映像効果表示・編集処理が起動されると、まずCPU10は、初期設定を行う(ステップS1)。初期設定では、主として
(1)RAMのワークエリアをクリア;
(2)現映像効果組へのポインタおよび現映像効果へのポインタをRAMに記憶;
(3)上記(2)の処理によって記憶された現映像効果へのポインタによって指し示される1つあるいは2つの単体の映像効果データSEmをフラッシュメモリから読み出してRAMに記憶し、記憶した映像効果データSEmに基づいて画像データを生成し、生成した画像データを表示レイヤに記憶;
(4)ミキシング設定、演奏情報とパートとの対応付け、および更新条件をRAMに記憶;
の各処理がなされる。
後述するように、本映像効果表示・編集処理が終了するときに実行される終了処理(ステップS16)により、現映像効果組へのポインタおよび現映像効果へのポインタは、フラッシュメモリの所定領域に保存されるので、上記(2)の処理では、CPU10は、その所定領域に保存された現映像効果組へのポインタおよび現映像効果へのポインタを読み出して、RAMに記憶する。ただし、本映像効果表示・編集処理が一度も起動されていない状態から初めて起動されたり、上記終了処理において現映像効果組へのポインタおよび現映像効果へのポインタが保存されなかったりした場合には、そもそも読み出すべき現映像効果組へのポインタおよび現映像効果へのポインタが存在しないので、その場合には、デフォルトの映像効果組およびその組の中のデフォルトのセクションに対応付けられた映像効果へのポインタを読み出して、現映像効果組へのポインタおよび現映像効果へのポインタとしてRAMに記憶するようにすればよい。
上記(3)の処理における「表示レイヤ」には、本実施の形態では前述のように、第1パートの表示レイヤと第2パートの表示レイヤの2種類がある。そして、映像効果組#nを構成するセクション毎の映像効果へのポインタは、前述のように、単体の映像効果データSEmを差し示すものと、ミキシングされる映像効果MEkを差し示すものの2種類がある。前者のポインタは、1つの単体の映像効果データSEmしか指し示さないので、この場合の「表示レイヤ」は、第1パートの表示レイヤまたは第2パートの表示レイヤのいずれか一方、本実施の形態では、第1パートの表示レイヤを意味する。したがって、当該1つの単体の映像効果データSEmに基づいて生成した画像データは、第1パートの表示レイヤに記憶される。一方、後者のポインタは、ミキシングされる映像効果MEkを介して2つの単体の映像効果データSEmを指し示すので、この場合の「表示レイヤ」は、第1パートの表示レイヤおよび第2パートの表示レイヤの両方を意味する。したがって、ミキシングされる映像効果MEkを構成する2つのポインタのうち、第1パートに対応付けられたポインタが指し示す1つの単体の映像効果データSEmに基づいて生成した画像データは、第1パートの表示レイヤに記憶され、第2パートに対応付けられたポインタが指し示す1つの単体の映像効果データSEmに基づいて生成した画像データは、第2パートの表示レイヤに記憶される。
上記(4)の処理における「ミキシング設定」は、前述のように、第1パートの表示レイヤと第2パートの表示レイヤを重ね合わせる際の演算に使用するものである。このミキシング設定の具体例としては、重ね方(第1パートの表示レイヤと第2パートの表示レイヤのどちらを上にするか)、上に重ねられる表示レイヤの透過率、演算方法(AND,OR,XORなど)などを挙げることができる。
上記(4)の処理における「演奏情報とパートとの対応付け」は、後述する図7のステップS31の「MIDIチャンネルからパートに振り分け」処理で参照されるテーブルデータ(以下「演奏情報・パート対応テーブル」という)であり、第1パートおよび第2パートのそれぞれに対してMIDIチャンネルを重複なく対応付けたものである。ただし、すべてのMIDIチャンネルが常に、第1パートまたは第2パートのいずれかに対応付けられる必要はなく、いずれのパートにも対応付けられないMIDIチャンネルがあってもよい。
上記(4)の処理における「更新条件」は、現映像効果を現映像効果組の中の別の映像効果に変更する処理(後述するステップS6参照)をCPU10に実行させる条件である。なお、更新条件の内容については後述するので、ここではこれ以上説明しない。
上記「ミキシング設定」、「演奏情報・パート対応テーブル」および「更新条件」はいずれも、上記(2)の処理における2つのポインタと同様に、終了処理によってフラッシュメモリの所定領域に保存されるので、上記(4)の処理では、CPU10は、その所定領域に保存された「ミキシング設定」、「演奏情報・パート対応テーブル」および「更新条件」を読み出して、RAMに記憶する。なお、「ミキシング設定」、「演奏情報・パート対応テーブル」および「更新条件」が保存されていないときには、デフォルトの「ミキシング設定」、「演奏情報・パート対応テーブル」および「更新条件」をRAMに記憶するようにすればよい。
次に、ユーザが演奏情報とパートとの対応付け、つまり上記「演奏情報・パート対応テーブル」の内容を変更する操作を行ったときには、CPU10は、その操作に応じた内容に演奏情報・パート対応テーブルを変更する(ステップS2)。この変更操作の典型例は、MIDIチャンネルを指定して、変更対象のパートに追加や削除を行う操作であるが、変更可能な演奏情報・パート対応テーブルの候補がいくつか用意されており、ユーザがその中からいずれかを選択指定すると、選択指定されたテーブルが前のものと置き換わるようにしてもよい。
また、ユーザがミキシング設定の内容を変更する操作を行ったときには、CPU10は、その操作に応じた内容にミキシング設定を変更する(ステップS3)。この変更操作は、上記ステップS2での変更操作と、変更対象が異なるだけで、操作方法は同様にすればよいので、これ以上説明しない。
さらに、ユーザが更新条件を変更する操作を行ったときには、CPU10は、その操作に応じた条件に更新条件を変更する(ステップS4)。この変更操作の典型例は、変更可能な更新条件の候補がいくつか(本実施の形態では、後述する2種類)用意されており、ユーザがその中からいずれかを選択指定する操作であるが、更新条件を変更できれば、この操作方法に限らない。
次にCPU10は、更新条件に合致したかどうかを判定し(ステップS5)、更新条件に合致したときには、現映像効果を現映像効果組内の別の映像効果に変更した(ステップS6)後、ステップS7に進む。ここで、更新条件と映像効果の変更方法には、本実施の形態では、
(C1)セクション変更指示の受信:変更が指示されたセクションに対応付けられたポインタが指し示す映像効果に変更;
(C2)所定時間の経過:所定の順序で、次の映像効果に変更;
の2種類があり、ユーザは、そのいずれかを選択できるように構成されている(前記ステップS4参照)。
上記(C1)の更新条件における「セクション変更指示」は、前述のように、SysExメッセージ内にセクションA〜Dのいずれかを埋め込んだものを電子鍵盤楽器2がスレートデバイス1に送信することによって行われる。したがって、上記(C1)の更新条件が選択された場合には、CPU10は、入力されたMIDIデータがSysExメッセージであるかどうか、SysExメッセージであれば、その中にセクションA〜Dのいずれかが埋め込まれているかどうかを判定することにより、更新条件に合致したかどうかを判定する。この判定の結果、更新条件に合致していれば、つまり、SysExメッセージにセクションA〜Dのいずれかが埋め込まれていれば、CPU10は、現映像効果へのポインタを、現映像効果組へのポインタ中、埋め込まれているセクションに対応付けられた映像効果へのポインタに変更する。そしてCPU10は、変更後の現映像効果へのポインタによって指し示される1つまたは2つの単体の映像効果データSEmをフラッシュメモリから読み出してRAMに記憶し、記憶した映像効果データSEmに基づいて画像データを生成し、生成した画像データを対応する表示レイヤに記憶させる。
また上記(C2)の更新条件における「所定時間」は、前記タイマ15によって計時される。したがって、上記(C2)の更新条件が選択された場合には、CPU10は、タイマ15に「所定時間」の計時を行わせる。「所定時間」として、たとえば15秒が設定されているとすると、CPU10は、タイマ15が15秒を計時したかどうかを判定することにより、更新条件に合致したかどうかを判定する。この判定の結果、更新条件に合致すれば、つまり、タイマ15が15秒を計時すれば、CPU10は、現映像効果へのポインタを、現映像効果組へのポインタ中、次の映像効果へのポインタに変更する。ここで「次の」とは、「所定の順序」における「次の」である。「所定の順序」の例としては、
(O1)セクションA→B→C→D→A;
(O2)セクションD→C→B→A→D;
(O3)セクションA→B→C→D→C→B→A;
(O4)ランダム;
などを挙げることができる。ただし上記例では、「セクション」によって「所定の順序」を説明しているに過ぎず、実際に上記順序の「セクション」が選択される訳ではなく、「セクション」に対応付けられた映像効果へのポインタが選択される。そしてCPU10は、変更後の現映像効果へのポインタによって指し示される1つまたは2つの単体の映像効果データSEmをフラッシュメモリから読み出してRAMに記憶し、記憶した映像効果データSEmに基づいて画像データを生成し、生成した画像データを、対応する表示レイヤに記憶させる。なお、上記(C2)の更新条件が選択されるときには、「所定時間」も「所定の順序」もユーザが自由に設定できるようにすればよい。もちろんこれに限らず、デフォルトの「所定時間」および「所定の順序」が自動的に設定されるようにしてもよい。
一方、ステップS5の判定で、更新条件に合致しないときには、ステップS6をスキップして、ステップS7に進む。
ステップS7では、CPU10は、発音指示のタッチ操作があったかどうかを判定する。本映像効果表示・編集処理の実行中に、動作モードが編集モードに移行していなければ、タッチパネル11上には現映像効果が表示されている。このタッチパネル11上の現映像効果に対して、ユーザがタッチ操作を行うと、CPU10は、そのタッチ操作を発音指示として検知する。ステップS7の判定は、この発音指示となるタッチ操作があったかどうかを判定する。
ステップS7の判定の結果、発音指示のタッチ操作があったときには、CPU10は、発音指示に応じた制御処理を実行した(ステップS8)後、ステップS9に進む一方、発音指示のタッチ操作がなかったときには、CPU10は、ステップS8をスキップしてステップS9に進む。
図6は、この発音指示に応じた制御処理の詳細な手順を示すフローチャートである。
同図において、CPU10は、タッチパネル11上のタッチ位置から発音すべき楽音の音高を決定し、タッチ強度から当該楽音のベロシティを決定し、タッチの継続時間から当該楽音のデュレーションを決定し、決定された音高、ベロシティおよびデュレーションの楽音が発音されるように音源部に発音を指示する(ステップS21)。ここで、ベロシティを決定する基になる「タッチ強度」は、たとえば、前記各種センサ13に含まれる加速度センサからの出力、つまり、ユーザがタッチパネル11をタッチしたときに発生する振動に応じて加速度センサが出力する信号に基づいて算出される。また音源部は、本実施の形態では前述のように、ソフトウェア音源によって構成されているので、CPU10は、決定された音高、ベロシティおよびデュレーションを音源部に受け渡す。これに応じて、音源部は発音指示された楽音信号を生成し、生成した楽音信号をサウンドシステム18に出力する。
そしてCPU10は、発音指示に応じて変動させるべき現映像効果の映像態様を決定し、決定された映像態様を第1パートの表示レイヤに反映させた(ステップS22)後、本制御処理を終了する。このステップS22における「現映像効果の映像態様を決定」は、RAMに記憶されている、第1パートの単体の映像効果データSEmに含まれる実行コードを、CPU10がタッチパネル11に対するユーザのタッチ操作に応じたタッチ情報(タッチ位置、タッチ強度およびタッチ継続時間など)に基づいて実行することによって行われる。現映像効果として、たとえば図4(c)の映像効果がタッチパネル11上に表示されているとする。ただし図4(c)の映像効果は、映像態様が変動された状態のものであるので、現映像効果は、映像態様が変動されていないもの、つまり、3本の柱が突き出ていない、5×5個の穴だけが空いているものである。この現映像効果がタッチパネル11上に表示された状態で、ユーザが、柱の位置の穴をタッチすると、タッチ強度に応じた長さの柱が穴から突き出てくる。図4(c)の映像効果例では、この3本の柱が、変動された映像態様である。
図5に戻り、次にCPU10は、演奏情報を受信したかどうかを判定する(ステップS9)。この演奏情報は、本実施の形態では、電子鍵盤楽器2が送信したMIDIデータ、特にMIDIチャンネルメッセージである。つまり、同じMIDIデータであっても、SysExメッセージを受信した場合には、CPU10は、演奏情報を受信したとは判定しない。
ステップS9の判定の結果、MIDIチャンネルメッセージを受信したときには、CPU10は、演奏情報に応じた制御処理を実行した(ステップS10)後、ステップS11に進む一方、MIDIチャンネルメッセージを受信しなかったときには、CPU10は、ステップS10をスキップしてステップS11に進む。
図7は、この演奏情報に応じた制御処理の詳細な手順を示すフローチャートである。
同図において、CPU10は、前記演奏情報・パート対応テーブルを参照し、受信したMIDIチャンネルメッセージのMIDIチャンネルが第1パートに対応付けられているか、第2パートに対応付けられているか、あるいはいずれのパートにも対応付けられていないかを判定し、判定結果に応じた処理に振り分ける(ステップS31)。具体的には、当該MIDIチャンネルメッセージが第1パートに対応付けられたものであれば、CPU10は、処理をステップS32に進め、当該MIDIチャンネルメッセージが第2パートに対応付けられたものであれば、CPU10は、処理をステップS33に進め、当該MIDIチャンネルメッセージがいずれのパートにも対応付けられたものでなければ、CPU10は、本制御処理を終了する。
ステップS32では、CPU10は、当該MIDIチャンネルメッセージから音高、ベロシティおよびデュレーションを抽出し、当該抽出された音高、ベロシティおよびデュレーションに応じて変動させるべき第1パートの現映像効果の映像態様を決定し、決定された映像態様を第1パートの表示レイヤに反映させる。
ステップS33では、CPU10は、当該MIDIチャンネルメッセージから音高、ベロシティおよびデュレーションを抽出し、当該抽出された音高、ベロシティおよびデュレーションに応じて変動させるべき第2パートの現映像効果の映像態様を決定し、決定された映像態様を第2パートの表示レイヤに反映させる。
上記ステップS32およびS33の各処理は、前記図6のステップS22の処理とほぼ同様であるので、これ以上説明しない。
図5に戻り、次にCPU10は、別の映像効果組#nが選択指示されたどうかを判定する(ステップS11)。現映像効果組ではない別の映像効果組#nの選択指示は、ユーザがタッチパネル11上に表示されたメニュー画像内の対応するメニューをタッチ操作することによって行うことができるので、ステップS11の判定では、CPU10は、そのメニューに対するタッチ操作があったかどうかを判定する。
ステップS11の判定の結果、別の映像効果組#nが選択指示されたときには、CPU10は、選択指示された映像効果組#nをフラッシュメモリから読み出して、現映像効果組としてRAMに記憶することで、別の映像効果組#nを選択する(ステップS12)。またCPU10は、この現映像効果組を構成する4つの映像効果へのポインタのうち、デフォルトのセクションに対応付けられたポインタを、現映像効果としてRAMに記憶する。さらにCPU10は、現映像効果組および現映像効果に基づいて、前記(3)の処理と同様の処理を実行することにより、1つあるいは2つの単体の映像効果データSEmに基づいて画像データを生成し、対応する表示レイヤに記憶する。
一方、ステップS11の判定の結果、別の映像効果組が選択指示されなかったときには、CPU10は、ステップS12をスキップしてステップS13に進む。
ステップS13では、CPU10は、編集モードが指示されたかどうかを判定する。編集モードの指示は、ユーザがタッチパネル11上に表示されたメニュー画像内の対応するメニューをタッチ操作することによって行うことができるので、ステップS13の判定では、CPU10は、そのメニューに対するタッチ操作があったかどうかを判定する。
ステップS13の判定の結果、編集モードが指示されたときには、CPU10は、ユーザ操作に従って、映像効果組を作成あるいは変更して保存する(ステップS14)。なお、映像効果組を作成あるいは変更する際に、ミキシングされる映像効果を指定することもあるので、編集モードでは、ミキシングされる映像効果も作成あるいは変更して保存できるものとする。
一方、ステップS13の判定の結果、編集モードが指示されなかったときには、CPU10は、ステップS14をスキップしてステップS15に進む。
ステップS15では、CPU10は、終了が指示されたかどうかを判定する。終了の指示は、ユーザがタッチパネル11上に表示されたメニュー画像内の対応するメニューをタッチ操作することによって行うことができるので、ステップS15の判定では、CPU10は、そのメニューに対するタッチ操作があったかどうかを判定する。
ステップS15の判定の結果、終了が指示されたときには、CPU10は、終了処理を実行した(ステップS16)後、本映像効果表示・編集処理を終了する。終了処理では、CPU10は、現映像効果組へのポインタ、現映像効果へのポインタ、ミキシング設定、演奏情報・パート対応テーブルおよび更新条件などをフラッシュメモリの所定領域に保存する。
一方、ステップS15の判定の結果、終了が指示されなかったときには、CPU10は、処理を前記ステップS2に戻して、ステップS2〜S15の処理を繰り返す。
図8は、タイマ割込み処理の手順を示すフローチャートである。本タイマ割込み処理は、タイマ15が、たとえば1/30秒を計時する度に、起動される。
図8において、まずCPU10は、現映像効果に応じて、第1パートの表示レイヤあるいは第2パートの表示レイヤの内容を加工する(ステップS41)。「第1パートの表示レイヤあるいは第2パートの表示レイヤ」とは、加工すべき内容が第1パートを対象とするときは第1パートの表示レイヤの内容を加工し、加工すべき内容が第2パートを対象とするときは第2パートの表示レイヤの内容を加工することを意味し、たまたま両パートとも加工の対象としない場合もあれば、一方のパートしか加工の対象としない場合もあり、さらに両パートとも加工の対象とする場合もある。また、このステップS41の処理は、時間の経過に従って表示態様が変化して行く映像効果を生成するためのものであるため、現映像効果の表示態様が時間的に変動しない場合には、このステップS41の処理は実行されない。「現映像効果に応じて」とは、この意味である。図4(a)は、電子鍵盤楽器2から、第1パートに対応付けられたMIDIチャンネルメッセージが送信されて来たときに、タッチパネル11上に表示された映像効果の一例を示している。図示例の映像効果では、たとえば、音名が“E”のMIDIチャンネルメッセージが届くと、そのベロシティに応じた半径の、中心に音名“E”が記載された円が表示され、その円は、時間の経過に従って落下して行く。上記ステップS41の処理は、第1パートの表示レイヤの内容を加工することで、この「落下」の表示態様を生成する。他の例としては、図4(b)の「波紋」を挙げることができる。もちろん、時間の経過に従って変動する表示態様であれば、上記例に限られない。
次にCPU10は、ミキシング設定に応じて、第1パートの表示レイヤと第2パートの表示レイヤとで演算する(ステップS42)。つまり、上記ステップS41までの処理によって用意された第1パートの表示レイヤと第2パートの表示レイヤとの間で、現在のミキシング設定で定められている重ね方、透過率および演算方法(AND,OR,XORなど)などに応じた演算が施される。
そしてCPU10は、演算結果を外部LCD3の表示用に出力し(ステップS43)、演算結果にさらにメニュー画像を重ね合わせ、タッチパネル11の表示用に出力する(ステップS44)。
なお本実施の形態では、第1パートまたは第2パートへの振り分けは、MIDIチャンネルに基づいて行うようにしたが、これに限らず、複数のMIDIポートのポートや、ポートとチャンネルの組み合わせに基づいて行うようにしてもよい。
また本実施の形態では、前記図5のステップS9における「演奏情報」を「MIDIチャンネルメッセージ」に限定したが、これは説明を簡単化するためにそうしたに過ぎず、「SysExメッセージ」の中にも「演奏情報」と見なせるものがあるようにしてもよい。たとえば、SysExメッセージ内に、独自形式でチャンネル情報を持たせ、MIDIチャンネルメッセージと同じように扱えるようにしたり、コモンメッセージやリアルタイムメッセージ(SysExメッセージに含まれる)も演奏時の操作に応じて通信するようにし、「演奏情報」と同様に扱うようにしたりしてもよい。さらにコモンメッセージやリアルタイムメッセージは、選択指示の情報として扱うようにしてもよい。
なお本実施の形態では、映像効果組#n内のポインタ数、ミキシングされる映像効果MEk内のポインタ数、および同時に表示される映像効果のパート数は、それぞれ“4”,“2”および“2”としたが、複数であれば、これに限らないことは言うまでもない。
また本実施の形態では、電子鍵盤楽器2として、鍵盤2aの鍵数が24鍵のものを採用したが、鍵盤の鍵数はこれに限らず、49,61,76,88など、どのような鍵数でもよいし、各種鍵数の電子鍵盤楽器から任意に選択して接続できるようにしてもよい。後者の場合、たとえば49鍵の電子鍵盤楽器が接続されているときには、タッチパネル11の画面全体に映像効果が表示態様を変動しながら適正に表示されていたとしても、その接続が、他の鍵数、たとえば88鍵の電子鍵盤楽器に変更されたときには、映像効果の変動された表示態様の一部がタッチパネル11の画面上からはみ出てしまい、表示されないことがある。この問題に対処するために、接続された電子鍵盤楽器の鍵数に応じて、映像効果を調整(表示範囲の拡大や縮小など)するようにすればよい。このとき、スレートデバイス1は、接続された電子鍵盤楽器の鍵数を取得する必要があるが、その取得方法としては、ユーザに鍵数を入力させる方法や、スレートデバイス1がMIDIデータなどで電子鍵盤楽器に機種を問い合わせ、回答された機種から鍵数を判断する方法などがある。
さらに本実施の形態では、映像効果の表示態様は、電子鍵盤楽器2から送信されて来たMIDIチャンネルメッセージ(音高、ベロシティおよびデュレーションを含むもの)と、タッチパネル11へのユーザの発音指示のタッチ操作とによって変動するが、これに加えて、他のMIDIチャンネルメッセージ、具体的には、前記楽音についての各種パラメータ(音色、テンポ、ピッチベンド、モジュレーション、アフタータッチ、フットペダル(サスティンペダル、ソフテヌートペダルおよびソフトペダルなど)の操作状態、フィルタ係数(カットオフ・レゾナンスなど)など)を含むMIDIチャンネルメッセージや、各種センサ13からの各種センサ出力によって変動するようにしてもよい。
また本実施の形態では、更新条件と映像効果の変更方法として、前記(C1)および(C2)を挙げて説明したが、これに、
(C11)各種センサ出力:セクションを決定し、決定したセクションに対応付けられたポインタが指し示す映像効果に変更;
(C12)所定のMIDIデータを受信:セクションを決定し、決定したセクションに対応付けられたポインタが指し示す映像効果に変更;
(C21)各種センサ出力:所定の順序で、次の映像効果に変更;
(C22)所定のMIDIデータを受信:所定の順序で、次の映像効果に変更;
を加えるようにしてもよい。
上記(C11)の具体例としては、
例1:センサ毎に閾値とセクションを決めておき、あるセンサが当該閾値を超えると、当該セクションに対応付けられたポインタが指し示す映像効果に変更する;
例2:カメラからの画像を画像し、人が所定のポーズや動作をしたときに、予め決められたセクションを決定し、このセクションに対応付けられたポインタが指し示す映像効果に変更する;
を挙げることができる。
上記(C12)の具体例としては、
例1:音色切替や伴奏切替(セクション切替ではない)のMIDIデータを受信すると、切り替え後の「音色」や「伴奏」の属するカテゴリを割り出し、そのカテゴリに対応するセクションを決定し、このセクションに対応付けられたポインタが指し示す映像効果に変更する;
を挙げることができる。
上記(C21)の具体例としては、
例1:センサ毎に閾値を決めておき、あるセンサが当該閾値を超えると、所定の順序で、次の映像効果に変更する;
例2:カメラからの画像を認識し、人が所定のポーズや動作をしたときに、所定の順序で、次の映像効果に変更する;
を挙げることができる。
上記(C22)の具体例としては、
例1:音色切替や伴奏切替(セクション切替ではない)のMIDIデータを受信する度に、所定の順序で、次の映像効果に変更する;
を挙げることができる。
また、各種センサ出力とMIDIデータとの組み合わせによって更新条件を決めるようにしてもよいし、あるいは、電子鍵盤楽器2が出力した前記オーディオ信号によって更新条件を決めるようにしてもよい。そして、この更新条件が成立すると、セクションを決定し、決定したセクションに対応付けられたポインタが指し示す映像効果に変更したり、あるいは、所定の順序で、次の映像効果に変更したりすればよい。オーディオ信号によってセクションを決定する場合には、オーディオ信号内に、あるいはすかしで、セクションを指定する情報を埋め込んでおくようにすればよい。なお、スレートデバイス1に入力されたオーディオ信号は、タッチパネル11上に表示される映像効果とともに動画として記録される。また、オーディオ信号の特性は、映像効果の表示態様の変動に用いるようにしてもよい。
なお、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
この場合、記憶媒体から読出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードおよび該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、たとえば、フレキシブルディスク、ハードディスク、光磁気ディスク、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。また、ネットワーク5を介してサーバコンピュータからプログラムコードが供給されるようにしてもよい。
また、コンピュータが読出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOSなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。