以下、本発明の実施の形態を図面に基づいて詳細に説明する。
図1は、本発明の一実施の形態に係る電子音楽装置を適用した電子楽器100の概略構成を示すブロック図である。
同図に示すように、電子楽器100は、音高情報を含む演奏情報を入力するための鍵盤を含む演奏操作子1と、各種情報を入力するための複数のスイッチやホイール、ジョイスティックを含む設定操作子2と、演奏操作子1の操作状態を検出する検出回路3と、設定操作子2の操作状態を検出する検出回路4と、装置全体の制御を司るCPU5と、該CPU5が実行する制御プログラムや各種テーブルデータ等を記憶するROM6と、演奏情報、各種入力情報および演算結果等を一時的に記憶するRAM7と、タイマ割込み処理における割込み時間や各種時間を計時するタイマ8と、各種情報等を表示する小型の液晶ディスプレイ(LCD)9と、前記制御プログラムを含む各種アプリケーションプログラムや各種楽曲データ、各種データ等を記憶する外部記憶装置10と、USBホスト・コントローラ11と、USBターゲット・コントローラ12と、外部からのMIDI(musical instrument digital interface)メッセージを入力したり、MIDIメッセージを外部に出力したりするMIDIインターフェース(I/F)13と、通信ネットワーク510を介して、たとえばサーバコンピュータ(以下、「サーバ」と略して言う)500とデータの送受信を行う通信インターフェース(I/F)14と、演奏操作子1から入力された演奏情報や、前記外部記憶装置10に記憶されたいずれかの楽曲データを再生して得られた演奏情報等を楽音信号に変換する音源回路15と、該音源回路15からの楽音信号に各種効果を付与するための効果回路16と、該効果回路16からの楽音信号を音響に変換する、たとえば、DAC(digital-to-analog converter)やアンプ、スピーカ等のサウンドシステム17とにより構成されている。
上記構成要素3〜16は、バス18を介して相互に接続され、CPU5にはタイマ8が接続され、USBホスト・コントローラ11には撮像装置300が接続され、USBターゲット・コントローラ12にはPC(パーソナルコンピュータ)200が接続され、MIDII/F13には外部MIDI機器400が接続され、通信I/F14には通信ネットワーク510が接続され、音源回路15には効果回路16が接続され、効果回路16にはサウンドシステム17が接続されている。ここで、通信I/F14および通信ネットワーク510は、有線方式のものに限らず、無線方式のものであってもよい。また、両方式のものを備えていてもよい。
小型LCD9のブロックは、図1では破線で描かれている。これは、小型LCD9は電子楽器100の必須の構成ではないことを意味する。ただし、設定操作子2のオン/オフ状態を表示可能な、たとえば発光ダイオード(LED)等の簡易な表示器(図示せず)は備えていた方が好ましい。同様に、通信I/F14も電子楽器100の必須の構成ではない。
外部記憶装置10としては、たとえば、フレキシブルディスクドライブ(FDD)、ハードディスクドライブ(HDD)、CD−ROMドライブおよび光磁気ディスク(MO)ドライブ等を挙げることができる。そして、外部記憶装置10には、前述のように、CPU5が実行する制御プログラムも記憶でき、ROM6に制御プログラムが記憶されていない場合には、この外部記憶装置10に制御プログラムを記憶させておき、それをRAM7に読み込むことにより、ROM6に制御プログラムを記憶している場合と同様の動作をCPU5にさせることができる。このようにすると、制御プログラムの追加やバージョンアップ等が容易に行える。なお、前記各楽曲データは、ファイル形式で外部記憶装置10に記憶される。
通信I/F14(電子楽器100に備わっていれば)は、上述のように、たとえばLAN(local area network)やインターネット、電話回線等の通信ネットワーク510に接続されており、該通信ネットワーク510を介して、サーバ500に接続される。外部記憶装置10に上記各プログラムや各種パラメータが記憶されていない場合には、通信I/F14は、サーバ500からプログラムやパラメータをダウンロードするために用いられる。クライアントとなる電子楽器100は、通信I/F14および通信ネットワーク510を介してサーバ500へとプログラムやパラメータのダウンロードを要求するコマンドを送信する。サーバ500は、このコマンドを受け、要求されたプログラムやパラメータを、通信ネットワーク510を介して電子楽器100へと配信し、電子楽器100が通信I/F14を介して、これらプログラムやパラメータを受信して外部記憶装置10に蓄積することにより、ダウンロードが完了する。
撮像装置300は、たとえばUSBビデオ・クラス(USB video class)に対応したWebカメラやデジタルビデオカメラなどのカメラであり、撮影して得られた動画像データをMotion-JPEG、DV(digital video)、MPEG-2またはMPEG-4などの圧縮データに変換して、あるいは非圧縮データのまま出力する。ROM6には、USBビデオ・クラス・ドライバが組み込まれており(もちろん、ホスト・コントローラ・ドライバやターゲット・コントローラ・ドライバなどの他のドライバも組み込まれている)、USBホスト・コントローラ11は、撮像装置300が出力した上記各種形式の動画像データをUSBの通信プロトコルに従って受信する。なお、USBホスト・コントローラ11としては、上記各種形式すべての動画像データを受信可能なものに限らず、そのうちの少なくとも1つの形式の動画像データを受信可能なものであればよい。また、動画像データの通信プロトコルは、USBビデオ・クラスに規定されているものに限られる訳ではない。USBビデオ・クラスに規定されている通信プロトコル以外の通信プロトコルを採用した場合には、この通信プロトコルに従って通信する動画像データは上記各種形式に限られない。本実施の形態では説明の都合上、動画像データは、撮像装置300内でMotion-JPEG形式のデータに変換されてからUSBホスト・コントローラ11に供給されるものとする。また本実施の形態では、撮像装置300として、USBホスト・コントローラ11を介して外部接続したものを採用したが、これに限らず、電子楽器100内に組み込んだものを採用してもよい。
なお、電子楽器100は、上述の構成から分かるように、電子鍵盤楽器上に構築されたものであるが、鍵盤楽器の実施形態に限らず、弦楽器タイプ、管楽器タイプ、打楽器タイプ等の他の実施形態でもよい。また、楽器の実施形態に限らず、動画像データを記録可能な携帯音楽端末上に本発明を構築するようにしてもよい。
PC200のハードウェアは、本実施の形態では、汎用PCと同様に構成されている。より具体的には、PC200は、電子楽器100の上記構成から、演奏操作子1、設定操作子2、検出回路3,4、小型LCD9、USBターゲット・コントローラ12、MIDII/F13、音源回路15、効果回路16およびサウンドシステム17を除き、その代わりに、文字数字入力用キーボード、マウスおよび大型ディスプレイを加えたものによって構成されている。なお、汎用PCは通常、通信ネットワークを介して外部のサーバと接続する機能を備えているので、PC200も、電子楽器100とは異なり、通信I/Fを必須の構成要素としている。
図2は、電子楽器100の機能構成を示すブロック図である。
同図において、演奏情報供給部21は、演奏操作子21aおよび自動演奏部21bによって構成され、演奏情報(本実施の形態では、MIDIイベント)を楽音生成部22および動画・オーディオ記録部25に供給する。
演奏操作子21aは、主として前記演奏操作子1および検出回路3に相当し、ユーザによる演奏操作に応じた演奏情報を生成して出力する。
自動演奏部21bは、主としてCPU5およびRAM7に相当し、CPU5が所定の制御プログラムを実行することで実現される。自動演奏部21bは、RAM7の一部領域に設けた自動演奏データ記憶領域(図示せず)を備え、この自動演奏データ記憶領域に記憶した自動演奏データを用いて自動演奏を行う。自動演奏データは、ファイル記憶部26(前記外部記憶装置10に相当する)に複数種類記憶されており、自動演奏データ記憶領域には、その中からユーザによって選択された1つが記憶される。ここで、自動演奏データは、ユーザが演奏操作子1を用いてある楽曲を演奏する際のバック演奏を行わせるためのものであり、具体的には、1曲の楽曲を表す楽曲データ(ソングデータ)や、伴奏スタイルデータ、コード進行データなどである。自動演奏データのフォーマットとしては、どのようなものを採用しても構わないが、本実施の形態では、通常の電子楽器でよく用いられているSMF(standard MIDI file)形式を採用することにする。
楽音生成部22は、主として前記音源回路15および効果回路16に相当し、ユーザによって設定された楽音生成環境(音色、音量および効果など)で、演奏情報供給部21から供給された演奏情報に基づいて楽音信号(オーディオデータ)を生成し、適宜効果を付与した後、動画・オーディオ記録部25に出力する。
撮像部23は、主として前記撮像装置300、USBホスト・コントローラ11およびCPU5に相当し、撮像装置300を用いて撮影され、USBホスト・コントローラ11を介して電子楽器100内に供給された動画像データ(画像データストリーム)を、CPU5を介して第1レート・品質変換部24、第2レート・品質変換部27および第3レート・品質変換部31に供給する。
第1レート・品質変換部24は、主としてCPU5およびRAM7に相当し、CPU5が所定の制御プログラムを実行することで実現される。第1レート・品質変換部24は、撮像部23から供給される動画像データのレートおよび品質を第1のレートおよび品質に変換し、変換後の動画像データを動画・オーディオ記録部25に供給する。ここで、レートとは、1秒間に供給される(静止)画像データのフレーム数を言い、品質とは、解像度を言う。なお、品質は、圧縮率に応じた品質でもよいが、本実施の形態では、解像度としている。また、第1レート・品質変換部24は、本実施の形態では、動画像データのレートおよび品質のいずれも変換するようにしたが、これに限らず、動画像データのレートまたは品質のいずれかを変換するようにしてもよい。さらに、変換の程度は、固定であっても、可変であってもよい。可変の場合には、ユーザが変更の程度を選択できるようにしてもよい。なお「品質」は、表示画像の見栄えの善し悪しの意味でも使われ、その場合には、「品質」は「解像度」だけを意味しない。この事情は、第2レート・品質変換部27および第3レート・品質変換部31についても同様である。
第1レート・品質変換部24は、撮像部23からの動画像データのレートおよび品質を、それより若干低い第1のレートおよび品質に変換する。具体的には、撮像部23から、たとえば30フレーム/秒で1280×1024ピクセルの動画像データが供給されているとすると、第1レート・品質変換部24は、この動画像データを、たとえば20フレーム/秒で800×600ピクセルの動画像データに変換する。Motion-JPEG形式の動画像データは、フレーム内圧縮されているので、単にコマ落としする(間引く)だけで簡単に、目的のレートに変換することができる。動画像データとして、圧縮されていないものが供給された場合にも、Motion-JPEG形式の動画像データと同様に、コマ落としによってレート変換することができるが、MPEGなどのフレーム間圧縮されているものが供給された場合には、圧縮されていないフレーム間に存在する、すべての圧縮されているフレームをコマ落としすることで、レート変換しなければならない。
このように、第1レート・品質変換部24によって、撮像部23からの動画像データのレートおよび品質を落とすようにしたのは、動画像データのデータ容量を低減させることで、それを記憶する外部記憶装置10として、記憶容量の低い、つまり安価なものを採用したいからである。したがって、このような制約のない場合には、第1レート・品質変換部24を省略し、撮像部23からの動画像データをそのまま動画・オーディオ記録部25に供給するようにすればよい。
第2レート・品質変換部27も、主としてCPU5およびRAM7に相当し、CPU5が所定の制御プログラムを実行することで実現される。第2レート・品質変換部27は、撮像部23から供給される動画像データのレートおよび品質を第2のレートおよび品質に変換し、変換後の動画像データを出力部28に供給する。出力部28は、主としてCPU5およびUSBターゲット・コントローラ12に相当し、第2レート・品質変換部27からの動画像データをUSBの通信プロトコルに従って、USBターゲット・コントローラ12に接続されているPC200に出力する。ここで、第2のレートおよび品質は、前記第1のレートおよび品質よりさらに若干低く設定されている。具体的には、撮像部23から、たとえば30フレーム/秒で1280×1024ピクセルの動画像データが供給されているとすると、第2レート・品質変換部27は、この動画像データを、たとえば10フレーム/秒で640×480ピクセルの動画像データに変換する。変換後の動画像データは、PC200の前記大型ディスプレイ上に表示されるので、PC200の表示能力からすれば、撮像部23からの動画像データそのままのレートおよび品質でも問題はない。それにも拘わらず、第2のレートおよび品質を第1のレートおよび品質よりさらに低く設定したのは、電子楽器100の通信能力を考慮したからである。つまり、電子楽器100は、本実施の形態では、廉価なものを想定しているために、CPU5も安価な、演算能力の低いものを用いなければならず、その結果、USBターゲット・コントローラ12の通信速度が遅くなるので、これを介して送信される動画像データのデータ容量も低減させる必要がある。
第3レート・品質変換部31も、主としてCPU5およびRAM7に相当し、CPU5が所定の制御プログラムを実行することで実現される。第3レート・品質変換部31は、撮像部23から供給される動画像データのレートおよび品質を第3のレートおよび品質に変換し、変換後の動画像データを表示部32に供給する。表示部32は、主として前記小型LCD9に相当し、変換後の動画像データを表示する。ここで、第3のレートおよび品質は、レートについては、前記第2のレートとほぼ同等、品質については、前記第2の品質よりさらに低く、たとえば160×120ピクセルに設定されている。これは、表示部32の解像度がPC200の大型ディスプレイのそれよりも低いからである。なお、第3レート・品質変換部31には、映像再生部30が出力した動画像データも供給され、この動画像データも、第3レート・品質変換部31によってそのレートおよび品質が変換された後、表示部32によって表示される。
映像再生部30は、主としてCPU5およびRAM7に相当し、CPU5が所定の制御プログラムを実行することで実現される。映像再生部30は、ファイル記憶部26に記憶された動画ファイル(図3参照)を再生することで、動画像データを生成して出力する。
なお、小型LCD9は、前述のように、電子楽器100に備えられないことがあり、この場合には、表示部32、第3レート・品質変換部31および映像再生部30も、電子楽器100には備えられない。このことを示すために、表示部32、第3レート・品質変換部31および映像再生部30の各ブロックは破線で描かれている。
動画・オーディオ記録部25は、主としてCPU5およびRAM7に相当し、CPU5が所定の制御プログラムを実行することで実現される。動画・オーディオ記録部25は、演奏情報供給部21から供給されたMIDIイベントをSMF形式で記録し、楽音生成部22から供給された楽音信号(オーディオデータ)を時間の経過に従って記録し、第1レート・品質変換部24から供給された動画像データを時間の経過に従って記録する。ここで、オーディオデータの記録フォーマットは、どのようなものを採用してもよく、非圧縮のものでも、圧縮したものでもよい。また、動画像データを記録する際のデータフォーマットも、どのようなものを採用してもよいので、第1レート・品質変換部24から供給される動画像データのフォーマットと同じフォーマットで記録してもよいし、他のフォーマットに変換した後記録するようにしてもよい。
動画・オーディオ記録部25は、図3に示すように、記録された動画像データ、オーディオデータおよびSMF形式のMIDIデータをそれぞれ別のチャンクデータとして、1つのファイル内に収めた動画ファイルを作成し、ファイル記憶部26に供給する。なお、動画ファイルのデータ構造は、これに限られず、複数種類のデータのそれぞれについて個別にファイルを作成し、その個々のファイルを関連付けて、同時に再生可能に構成してもよい。
ファイル記憶部26は、動画・オーディオ記録部25から供給された動画ファイルを記憶する。なお、ファイル記憶部26には、この動画ファイルとは別に、前述のように、複数種類の自動演奏データも記憶される。なお、記憶された動画ファイルは、前記USBターゲット・コントローラ12あるいは着脱可能な記憶媒体経由で外部の装置に供給可能であり、たとえば動画投稿サイトのサーバや、ブログサイトのサーバなどにアップロードすることができる。
以上のように構成された電子楽器100が実行する制御処理を、まず図1および図2を参照してその概要を説明し、次に図4〜図9を参照して詳細に説明する。
電子楽器100には、USBホスト・コントローラ11を介して外部接続された撮像装置300から動画像データ(画像データストリーム)が供給される。ユーザは、撮像装置300を用いて、自身の演奏風景などの演奏に関する情景を撮影する。このような撮影によって撮像部23から電子楽器100内に画像データストリームが供給されると、その画像データストリームのレートおよび品質は、第1レート・品質変換部24によって第1のレートおよび品質に変換された後、動画・オーディオ記録部25に供給されるとともに、第2レート・品質変換部27によって第2のレートおよび品質に変換された後、出力部28に供給される。ここで、第2のレートおよび品質は、第1のレートおよび品質と比較して、同等か、あるいは若干低く設定されている。若干低く設定される場合があるのは、出力部28の通信速度を考慮してのものである。
動画・オーディオ記録部25には、演奏情報供給部21から演奏情報(MIDIイベント)がそのまま供給されるとともに、楽音生成部22から当該演奏情報に基づいて生成された楽音信号(オーディオデータ)も供給される。動画・オーディオ記録部25は、供給された画像データストリーム、オーディオデータおよびMIDIイベントを時間の経過に従って同時に記録して行く。
動画・オーディオ記録部25における記録と並行して、第2のレートおよび品質に変換された画像データストリームが、汎用通信プロトコル(本実施の形態では、USBで規定されている通信プロトコル)に従って、出力部28からPC200へ出力される。これにより、ユーザは、画像データストリームの現在の記録状況を、PC200に備えられた大型ディスプレイ上でモニタすることができる。
さらに、撮像部23から供給された画像データストリームは、第3レート・品質変換部31によって第3のレートおよび品質に変換された後、表示部32に供給される。ここで、第3のレートおよび品質は、第2のレートおよび品質と比較して、かなり低く設定されている。これは、電子楽器100全体の製造コストを低減させるために、表示部32として、表示能力の低いものを採用せざるを得ないからである。なお、電子楽器100をさらに低廉にするために、動画像は言うに及ばず、静止画像も表示できない表示器を採用することもあり、その場合には、その表示器には画像データストリームを供給しない(できない)ので、第3レート・品質変換部31は必要ない。
このように、本実施の形態では、撮像部23から供給される画像データストリームを記録しながら、外部接続されたPC200の大型ディスプレイ上でモニタできるようにしたので、電子楽器100に備えられた表示器の画面サイズが小さかったり、解像度が低かったりして、その表示器上で、撮像装置300を用いて撮像されている映像を高解像度でモニタできないとしても、PC200をUSBターゲット・コントローラ12に接続するだけで簡単に、高解像度の映像をPC200の大型ディスプレイ上でモニタすることができる。
また、電子楽器100に設けられた表示器に、高解像度の画像データストリームを表示することができたとしても、CPU5の演算処理能力が低いために、画像データストリームの記録と同時に、その映像を表示器上に表示できないことがあるが、この場合でも、本実施の形態では、高解像度の映像をPC200の大型ディスプレイ上でモニタすることができる。
また、電子楽器100をさらに低廉にするために、動画像は言うに及ばず、静止画像も表示できない表示器を用いるようにした場合、どのような解像度の画像データストリームも表示器上に表示することができないが、この場合でも、本実施の形態では、高解像度の映像をPC200の大型ディスプレイ上でモニタすることができる。
さらに、本実施の形態では、電子楽器100をUSBビデオ・クラスに準拠させるようにしたので、外部接続するPCとして、USBビデオ・クラスに準拠しているものを用いれば、PC側に、画像データストリームを受信するための専用ドライバが不要となる。
次に、この制御処理を詳細に説明する。
図4は、電子楽器100、特にCPU5が実行するメインルーチンの手順を示すフローチャートである。
本メインルーチンでは、CPU5は、主として、
(1)初期設定処理(ステップS1)
(2)演奏処理(ステップS2)
(3)記録処理(ステップS3)
(4)表示処理(ステップS4)
(5)画像出力処理(ステップS5)
(6)動画ファイル転送処理(ステップS6)
の各処理を行う。本メインルーチンは、前記設定操作子2に含まれる電源スイッチ(図示せず)によって電源がオンされたときに起動される。起動後、前記(1)の初期設定処理が1回実行され、これに続いて、前記(2)〜(6)の各処理が順次実行される。そして(6)の処理が終了すると、(2)の処理に戻って、(2)〜(6)の処理が、電源スイッチによって電源がオフされるまで、繰り返し実行される。
前記(1)の初期設定処理では、CPU5は、RAM7をクリアしたり、各種パラメータの値をデフォルト値に設定したり、タイマ8の計時を開始させたりする等の初期設定を行う。
図5は、前記(2)の演奏処理の詳細な手順を示すフローチャートである。
この(2)演奏処理では、まずCPU5は、ユーザが設定操作子2に含まれる自動演奏のスタート/ストップスイッチ(図示せず)を押下したかどうかを常時チェックする。このスタート/ストップスイッチは、たとえばトグルスイッチで、自動演奏がなされていない状態でスタート/ストップスイッチが押下されると、自動演奏の開始が指示され、自動演奏がなされている状態でスタート/ストップスイッチが押下されると、自動演奏の終了が指示される。CPU5は、スタート/ストップスイッチが押下されたことを検知すると、現在の自動演奏の状態(自動演奏中かどうか)に基づいて、自動演奏の開始が指示されたか、あるいは自動演奏の終了が指示されたかを判別し、自動演奏の開始が指示されたときには、自動演奏部21bに対して自動演奏の開始を指示する一方、自動演奏の終了が指示されたときには、自動演奏部21bに対して自動演奏の終了を指示する(ステップS11)。これに応じて、自動演奏部21bは、指示された方の動作を行う。なお、現在の自動演奏の状態は、たとえば、RAM7の一部領域に設けた自動演奏中フラグ(図示せず)がセット(“1”)状態のときに「自動演奏中」と判別し、リセット(“0”)状態のときに「非自動演奏中」と判別するようにすればよい。そしてCPU5は、自動演奏部21bに自動演奏の開始を指示するときに一緒に、自動演奏中フラグをセットし、自動演奏部21bに自動演奏の終了を指示するときに一緒に、自動演奏中フラグをリセットする。ただし、自動演奏中フラグの初期状態はリセット状態であるため、前記(1)の初期設定処理で、自動演奏中フラグをリセットしておく必要がある。
次にCPU5は、演奏情報供給部21からMIDIイベントが供給されたかどうかを常時チェックする(ステップS12)。演奏情報供給部21からMIDIイベントが供給される場合は、ユーザが演奏操作子1を用いて演奏を行った場合と、自動演奏部21bが自動演奏を行っている場合である。さらに、図2には示されていないが、電子楽器100には外部MIDI機器400が接続されている(図1参照)ので、MIDIイベントは、外部MIDI機器400から供給される場合もある。そして、MIDIイベントの供給を検知すると、CPU5は、このMIDIイベントに応じた楽音信号の生成を前記楽音生成部22に指示し(ステップS13)、前記タイマ8から現在時刻を取得し(ステップS14)、取得した現在時刻とこのMIDIイベントを関連付けて、前記RAM7の一部領域に設けたMIDIバッファ(図示せず)に一時的に記憶する(ステップS15)。
前記ステップS13の指示に応じて、楽音生成部22は、当該楽音信号(オーディオデータ)を生成し、そのオーディオデータを、RAM7の一部領域に設けたオーディオバッファ(図示せず)に一時的に記憶するとともに、前記サウンドシステム17に供給する。これに応じて、サウンドシステム17からは、当該楽音信号に応じた楽音が放音される(前記ステップS13内のカッコ書き)。
図6は、前記(3)の記録処理の詳細な手順を示すフローチャートである。
この(3)記録処理では、まずCPU5は、現在の処理タイミングが第1レートの処理タイミングであるかどうかを常時チェックする(ステップS21)。その結果、現在の処理タイミングが第1レートの処理タイミングでないときには、本記録処理を終了する(ステップS21→リターン)一方、現在の処理タイミングが第1レートの処理タイミングであるときには、前記撮像部23から供給される1フレーム分の画像データを取得する(ステップS21→S22)。ここで、第1レートとは、前記第1レート・品質変換部24が動画像データのレートを変換するときに目標とするレートである。前述のように、第1レートを20フレーム/秒とし、撮像部23から供給される動画像データのレートを30フレーム/秒とすると、撮像部23からは、1フレーム分の画像データが1/30(秒)毎に供給されるが、前記ステップS22の処理では、その中から、1/20(秒)の倍数に相当する時間に供給される1フレーム分の画像データを取得することになる。
次にCPU5は、取得した1フレーム分の画像データの解像度を所定の解像度に変換する(ステップS23)。ここで、撮像部23から供給された動画像データの解像度を、記録時にどの程度まで落とす必要があるかであるが、その程度は、主としてCPU5の演算処理能力、外部記憶装置10の記憶容量および記録された動画ファイルの使用目的によって決定される。したがって、これらの事情によっては、レート変換は行うものの、解像度変換は行わない場合、これとは逆に、解像度変換は行うものの、レート変換は行わない場合、さらに、レート変換も解像度変換も行わない場合もあり得る。
次にCPU5は、前記オーディオバッファから、そこに記憶されているオーディオデータを読み出して取得する(ステップS24)とともに、前記MIDIバッファから、そこに記憶されているMIDIデータを読み出して取得し(ステップS25)、レート変換および解像度変換された1フレーム分の画像データ、上記取得されたオーディオデータおよび上記取得されたMIDIデータを、記録中の動画ファイルに追記する(ステップS26)。MIDIバッファ内には前述のように、MIDIイベントがその時刻と関連付けて記録されているので(前記ステップS15参照)、ここではSMF形式になるように、デルタタイム(先行するイベントとの時間差)とMIDIイベントとに変換して追記する。ただし、これらのデータを初めて動画ファイルに記録する場合には、新規に(空の)動画ファイルを取得した上で、そのファイルに記録する。
なお、この(3)記録処理は、ユーザが記録の開始を指示したときに開始され、ユーザが記録の終了を指示したときに終了する。そして本実施の形態では、記録の開始/終了と自動演奏の開始/終了を同期させているので、この(3)記録処理も、自動演奏中フラグがセット状態のときにのみ実行される。
図7は、前記(4)の表示処理の詳細な手順を示すフローチャートである。
この(4)表示処理では、まずCPU5は、現在の処理タイミングが第3レートの処理タイミングであるかどうかを常時チェックする(ステップS31)。その結果、現在の処理タイミングが第3レートの処理タイミングでないときには、本表示処理を終了する(ステップS31→リターン)一方、現在の処理タイミングが第3レートの処理タイミングであるときには、撮像部23から供給される1フレーム分の画像データを取得する(ステップS31→S32)。なお、ステップS31の処理は、前記ステップS21の処理と、レート変換の程度が異なるのみであり、ステップS31の処理は、ステップS21の処理から簡単に類推できるので、ステップS31の処理についてのこれ以上の説明は省略する。
次にCPU5は、取得した1フレーム分の画像データの解像度を所定の解像度に変換する(ステップS33)。ここで、撮像部23から供給された動画像データの解像度を、表示時にどの程度まで落とす必要があるかであるが、その程度は、専ら小型LCD9の解像度に依存する。
そしてCPU5は、変換後の画像データを前記表示部32に供給する(ステップS34)。
なお、小型LCD9が電子楽器100に備えられていないときには、この(4)表示処理は当然ながら、本メインルーチンに含まれない。
図8は、前記(5)の画像出力処理の詳細な手順を示すフローチャートである。なお、図8には、PC200側の画像表示処理も記載されている。
この(5)画像出力処理では、まずCPU5は、現在の処理タイミングが第2レートの処理タイミングであるかどうかを常時チェックする(ステップS41)。その結果、現在の処理タイミングが第2レートの処理タイミングでないときには、ステップS45に進む一方、現在の処理タイミングが第2レートの処理タイミングであるときには、撮像部23から供給される1フレーム分の画像データを取得する(ステップS41→S42)。なお、ステップS41の処理は、前記ステップS21の処理と、レート変換の程度が異なるのみであり、ステップS41の処理は、ステップS21の処理から簡単に類推できるので、ステップS41の処理についてのこれ以上の説明は省略する。
次にCPU5は、取得した1フレーム分の画像データの解像度を所定の解像度に変換する(ステップS43)。ここで、撮像部23から供給された動画像データの解像度を、画像出力時にどの程度まで落とす必要があるかであるが、その程度は、専らCPU5の演算処理能力に依存する。したがって、CPU5の演算処理能力によっては、レート変換は行うものの、解像度変換は行わない場合、これとは逆に、解像度変換は行うものの、レート変換は行わない場合、さらに、レート変換も解像度変換も行わない場合もあり得る。
そしてCPU5は、変換後の画像データを、RAM7の一部領域に設けた出力バッファ(図示せず)に蓄積する(ステップS44)。
一方、PC200は、自身の画像表示処理により、所定周期(たとえば、100ms)毎に、電子楽器100に対して画像データの取得要求を行う(ステップS101→S102)。これに応じて、CPU5は、出力バッファをチェックし(ステップS45→S46)、出力バッファ内に画像データが蓄積されているときには、その画像データを、前記出力部28を介してPC200に出力する(ステップS47)。
PC200は、電子楽器100が出力した画像データを受信すると、その画像データを自身の大型ディスプレイに供給する(ステップS103→S104)。これにより、その画像データに応じた画像が、大型ディスプレイ上に表示される。
図9は、前記(6)の動画ファイル転送処理の詳細な手順を示すフローチャートである。
この(6)動画ファイル転送処理では、まずCPU5は、PC200から動画ファイルの転送要求がなされたかどうかを常時チェックし(ステップS51)、転送要求がなされたときには、転送要求された動画ファイルを、前記ファイル記憶部26からセクタ単位で読み出す(ステップS52)。
次にCPU5は、読み出したセクタを、出力部28を介してPC200に転送する(ステップS53)。
なお、上述した実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給し、そのシステムまたは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
この場合、記憶媒体から読出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードおよび該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、たとえば、フレキシブルディスク、ハードディスク、光磁気ディスク、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。また、通信ネットワークを介してサーバコンピュータからプログラムコードが供給されるようにしてもよい。
また、コンピュータが読出したプログラムコードを実行することにより、上述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOSなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって上述した実施の形態の機能が実現される場合も含まれることは言うまでもない。