JP4311099B2 - シーケンス制御データ生成装置及びプログラム - Google Patents
シーケンス制御データ生成装置及びプログラム Download PDFInfo
- Publication number
- JP4311099B2 JP4311099B2 JP2003188968A JP2003188968A JP4311099B2 JP 4311099 B2 JP4311099 B2 JP 4311099B2 JP 2003188968 A JP2003188968 A JP 2003188968A JP 2003188968 A JP2003188968 A JP 2003188968A JP 4311099 B2 JP4311099 B2 JP 4311099B2
- Authority
- JP
- Japan
- Prior art keywords
- photographing
- data
- variable
- value
- control data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Closed-Circuit Television Systems (AREA)
- Auxiliary Devices For Music (AREA)
- Electrophonic Musical Instruments (AREA)
Description
【発明の属する技術分野】
本発明は、撮影装置に撮影させる際の撮影条件を順次、変更させながら、撮影装置により楽器を演奏中の演奏者を自動的に撮影させるための技術に関する。
【0002】
【従来の技術】
楽器を用いた演奏は、発音させるべき楽音を発音させるための演奏操作を順次、行っていくことで実現される。その演奏を行っている演奏者を撮影する演奏撮影装置としては、例えば特許文献1に記載されたものが知られている。その従来の演奏撮影装置では、鍵盤上で押鍵した鍵、その押鍵に使用した指、及びその押鍵を行ったタイミングを正確に把握できるように、上方から鍵盤を操作する手を撮影している。
【0003】
【特許文献1】
特開平7−36446号公報
【0004】
【発明が解決しようとする課題】
特許文献1に記載された従来の演奏撮影装置では、カメラの位置を固定し、その位置から一定の撮影倍率で撮影を行うようになっていた。
上方からの視点では、押鍵時の指や鍵の動きは小さい。また、指使いなど、手の動きには細かい動作が含まれていることも多い。このことから、撮影はより大きい撮影倍率で行うことが望ましいと言える。
【0005】
しかし、演奏を行う手は、演奏の進行に応じて鍵盤上を移動する。その移動により撮影範囲外となって手を撮影できないようなことは回避する必要がある。それにより、従来の演奏装置では、撮影倍率を低めに設定せざるを得なかった。このようなことから、移動する手をより大きい撮影倍率で撮影できるようにすることは非常に重要であると考えられる。
【0006】
本発明の課題は、楽器を演奏中の演奏者が行った演奏操作を、撮影した画像からより判りやすくなるように自動的に撮影する演奏撮影制御装置を提供することにある。
【0007】
【課題を解決するための手段】
本発明のシーケンス制御データ生成装置は、撮影装置に撮影させる際の撮影条件を順次、変更させながら、該撮影装置により鍵盤を備えた楽器を演奏中の演奏者を撮影させるためのシーケンス制御データを生成することを前提とし、演奏者が行う演奏の内容を表す演奏データを取得するデータ取得手段と、前記データ取得手段が取得した演奏データを解析して、演奏者の二つの手が存在する該鍵盤上の位置をそれぞれ予想し、該予想した2つの手の位置に応じて前記撮影装置が撮影を行う際の撮影倍率を前記撮影条件として決定する撮影条件決定手段と、前記撮影条件決定手段が決定した撮影倍率で前記鍵盤を備えた楽器を演奏中の演奏者を前記撮影装置に撮影させるためのシーケンス制御データを生成する制御データ生成手段と、を具備する。
【0008】
また本発明のシーケンス制御データ生成装置は、撮影装置に撮影させる際の撮影条件を順次、変更させながら、該撮影装置により鍵盤を備えた楽器を演奏中の演奏者を撮影させるためのシーケンス制御データを生成することを前提とし、演奏者が行う演奏の内容を表す演奏データを取得するデータ取得手段と、前記データ取得手段が取得した演奏データを解析して、演奏者の手が存在する該鍵盤上の位置を予想し、該予想した手の位置に応じて前記撮影装置が撮影を行う際の撮影位置を前記撮影条件として決定する撮影条件決定手段と、前記撮影条件決定手段が決定した撮影位置で前記鍵盤を備えた楽器を演奏中の演奏者を前記撮影装置に撮影させるためのシーケンス制御データを生成する制御データ生成手段と、を具備する。
【0010】
本発明の第1、及び第2の態様のプログラムはそれぞれ、上記本発明のシーケンス制御データ生成装置を実現させるための機能を搭載している。
本発明では、演奏者が行う演奏の内容を表す演奏データを取得し、それを解析して、撮影装置に撮影させる際の撮影条件を決定し、その決定した撮影条件で鍵盤を備えた楽器を演奏中の演奏者を撮影装置に撮影させるためのシーケンス制御データを生成する。演奏データを解析することにより、演奏を行う演奏者の動きを高精度に予想することが可能となる。それにより、実際の動きに合った撮影条件で撮影を行えるようになる。このことから、行った演奏操作を撮影された画像から判りやすいように撮影することも可能となる。
【0011】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
図1は、本実施の形態によるシーケンス制御データ生成装置、及び演奏撮影装置を用いて構築された演奏撮影システムの構成を示す図である。
【0012】
その演奏撮影システムは、図1に示すように、演奏撮影・再生装置10に対し、撮影装置20、表示装置30、及び電子楽器40をそれぞれケーブルで接続させることで構築されている。その演奏撮影・再生装置10は、電子楽器40を演奏するユーザ(演奏者)の画像を撮影装置20により撮影して記録し、その記録した画像を表示装置30上に表示させることで再生する。本実施の形態によるシーケンス制御データ生成装置、及び演奏撮影装置は、その演奏撮影・再生装置10に搭載される形で実現されている。以降、演奏撮影・再生装置10は「再生装置」と略記する。
【0013】
上記電子楽器40は、鍵盤41を備えたものである。図8に示すように、その鍵盤41を構成する鍵のなかで演奏者(ユーザ)が演奏操作を行った鍵、それを行った指、及びそのタイミングは、上方からの視点では把握し易い。このことから、撮影装置20による撮影は上方から演奏者の手を対象に行うことを前提としている。
【0014】
その撮影装置20には、被写体を撮影する撮影機能の他に、位置を移動させる駆動機能が搭載されている。その駆動機能による位置の移動を行えるように、図1に示す板状のガイド部材50に取り付けられて設置されている。その機能は、ガイド部材50の長手方向(鍵盤41の鍵が並んでいる方向)の他に、その前後方向(通常、水平面上でその長手方向と直交する方向)の移動も行えるようになっている。その撮影機能による撮影では、光学的に、或いはデジタル処理により撮影画像の大きさ(撮影倍率)を変えられるようになっている。
【0015】
再生装置10には、ユーザが操作するスイッチとして、上下左右の各スイッチ11a〜dからなるカーソルスイッチ11、撮影装置20の前後方向の位置調整を行うためのPOSスイッチ12、撮影倍率の調整を行うためのZOOMスイッチ13、データの取り込みを指示するためのデータ取込スイッチ14と、記録した画像の再生を指示するための再生スイッチ15、及び撮影を指示するための撮影スイッチ16、が設けられている。
【0016】
図2は、上記再生装置10の回路構成を示す図である。
その再生装置10は、図2に示すように、装置10全体の制御を実行するCPU201と、CPU201が実行するプログラムや各種制御用データ等を格納したROM202と、CPU201がワークに用いるRAM203と、接続された撮影装置20のカメラ部22を制御するためのカメラコントローラ205と、その撮影装置20の駆動部21を制御するための駆動コントローラ206と、図1に示す各種スイッチを有するスイッチ(SW)部206と、接続された電子楽器40からMIDIデータを入力できるMIDI入出力部207と、接続された表示装置30に、CPU201から指示された画像を表示させるディスプレイコントローラ208と、を備えて構成されている。
【0017】
撮影装置20のカメラ部22は、上記撮影機能を実現させるものである。そのカメラ部22により、ズームイン、或いはズームアウトを実現させる撮影が行えるようになっている。他方の駆動部21は、上記駆動機能を実現させるものである。その駆動部21により、ガイド部材50の長手方向、或いは前後方向の移動が行えるようになっている。
【0018】
以上の構成において動作を説明する。
特には図示しない電源がオンされると、CPU201は、ROM202に格納されたプログラムを読み出して実行することにより、装置10の制御を開始する。その制御は、ユーザが操作したスイッチに応じて実行する。
【0019】
データ取込スイッチ14の操作により取り込む対象とするデータとしては、ユーザが演奏を行おうとする曲の演奏内容を表す演奏データを想定している。そのスイッチ14をユーザが操作すると、CPU201は、MIDI入出力部207に受信したデータをRAM203に確保した演奏データエリア(図3参照)に格納する。
【0020】
そのようにして取り込まれる演奏データは、ユーザが行うべき演奏操作を示すイベントデータ(例えばMIDIデータ)毎に、その演奏操作を行うべきタイミングを示すタイムデータを付加した形で構成されている。このことから、取り込みを行った後は、取り込んだ演奏データを解析して、演奏の進行に合わせてユーザが鍵盤41上で移動させる手の位置を予想し、その予想した位置に存在する手を撮影するうえで望ましい撮影倍率、及び撮影位置(撮影装置20の位置)を撮影条件として決定する。その撮影条件を順次、変更させていくためのカメラ制御データは、そのようにして決定した撮影倍率、及び撮影位置で撮影を順次、行わせるために生成する。
【0021】
生成したカメラ制御データは、RAM203に確保したカメラ制御データエリア(図3参照)に格納する。その制御データは、基本的な構成は演奏データと同じであり、撮影条件の変更を指示するカメラ制御イベントデータ毎に、その変更を行うべきタイミングを示すタイムデータが付加された形で構成されている。そのイベントデータには、撮影倍率(ズーム)変更用のものと、撮影位置変更用のものと、が存在する。ここでは便宜的に、前者を「ズームイベントデータ」、後者を「位置イベントデータ」とそれぞれ呼ぶことにする。
【0022】
このようなカメラ制御データを生成することにより、ユーザが演奏を行う手を確実、且つより大きく撮影できるようになる。このため、撮影した画像の再生時には、電子楽器40を演奏中の演奏者が行っている演奏操作をより容易に把握できるようになる。
【0023】
当然のことながら、撮影された画像上における鍵盤41の大きさや位置は、撮影装置30と電子楽器40の相対的な位置関係によって変化する。このことから、本実施の形態では、その大きさや位置に応じた調整、つまりズーム調整や位置調整をユーザに行わせるようにしている。図1に示すPOSスイッチ12、及びZOOMスイッチ13は、その調整を行わせるために用意している。
【0024】
その調整は、ROM202から読み出してRAM203に確保の枠画像エリア(図3参照)に格納した枠画像、及び撮影装置20で撮影した鍵盤41を表示装置30に表示して行わせるようにしている。その枠画像は、図6及び図7に破線で示すものである。未調整時には、図6に示すように、予め設定した位置に予め設定した大きさで表示される。その表示は、CPU201がディスプレイコントローラ208に、表示させるべき画像のデータを送出することで実現される。図6、及び図7に示す60は、表示装置30に表示させる表示画面である。
【0025】
その枠画像が表す各鍵の位置は、RAM203に確保した位置データエリア(図3参照)に格納した位置データで管理している。その位置データエリア内には、各鍵別にその位置データ格納用の鍵位置エリアが確保されている。位置データエリアに最初に格納される位置データは、ROM202から読み出したものである。
【0026】
その位置データとしては、図5に示すように、直線で範囲を表現した鍵に存在する角別にその位置を示すX座標値、及びY座標値を格納している。図中「(x0,y0)」と表記した位置データでは、「x0 」がX座標値を、「y0 」がY座標値を表している。
【0027】
POSスイッチ12を操作すると、位置調整を有効とでき、枠画像の位置を上下左右の何れの方向にも移動できるようになる。上下方向の位置の移動は、カーソルスイッチ11のなかで上スイッチ11a、或いは下スイッチ11bへの操作により行うようになっている。上スイッチ11aを操作した場合には、その位置は上に移動し、下スイッチ11bを操作した場合には、その位置は下に移動する。左右方向の移動は同様にして、左スイッチ11c、或いは右スイッチ11dへの操作により行うようになっている。
【0028】
一方、ZOOMスイッチ13を操作すると、ズーム調整を有効とでき、枠画像の大きさを変更できるようになる。このとき、カーソルスイッチ11のなかで操作が有効となるのは上スイッチ11a、及び下スイッチ11bである。上スイッチ11aを操作した場合には、その大きさは小さくなり(ズームアウト)、下スイッチ11bを操作した場合には、その大きさは大きくなる(ズームイン)。
【0029】
CPU201は、POSスイッチ12をユーザが操作すると、その後にカーソルスイッチ11のなかで操作が行われたスイッチに応じてオフセット値を更新する。ZOOMスイッチ13を操作すると、その後の上スイッチ11a、或いは下スイッチ11bへの操作に応じて、位置データに掛ける値(倍率)を更新する。それにより、図7に示すような調整を実現させる。
【0030】
上記位置データは、例えば枠画像の左上の角、つまり図3、及び図5中に「(x0,y0)」と表記した位置データを基準として表現している。このため、上記オフセット値は、その位置データで表れる位置を上下左右に移動させるものとさせている。オフセット値には、上下(Y)方向移動用のものと、左右(X)方向移動用のものと、が存在する。
【0031】
カメラ制御データエリアに格納したカメラ制御データによる撮影は、本実施の形態では予め定めた周期で行うようにしている。CPU201は、撮影スイッチ16をユーザが操作すると、そのカメラ制御データによる撮影を開始し、その周期で撮影装置20に撮影を行わせることでそれから送信される撮像画像を、RAM203に確保した撮像エリア(図3、及び図4参照)に格納する。そのようにして格納した撮像画像は、再生スイッチ15への操作によって再生する。
【0032】
CPU201は、撮影の指示や撮影倍率(ズーム)の指定を、カメラコントローラ205を介して行い、撮影装置20のカメラ部22から送信された撮像画像は、そのコントローラ205を介して受け取る。撮影位置の移動指示は、駆動コントローラ204を介して行う。
【0033】
次に、図9〜図23に示す各種フローチャートを参照して、再生装置10の動作について詳細に説明する。
図9は、全体処理のフローチャートである。始めに図9を参照して、その全体処理について詳細に説明する。その全体処理は、例えばCPU201が、ROM202に格納されているプログラムを実行することで実現される。
【0034】
電源がオンされると、先ず、ステップ902で装置10のイニシャライズを行い、所定の状態に設定する。このとき、ROM202に格納されている位置データを読み出してRAM203に確保した位置データエリアに格納する。次のステップ902では、スイッチ部206から、図1に示すスイッチを含む各種スイッチに対して行われた操作内容を示す操作情報を受け取り、行われた操作に対応するためのスイッチ(SW)処理を実行する。その後はステップ903に移行する。
【0035】
ステップ903では、取り込んだ演奏(曲)データを解析してカメラ制御データ生成用のデータを抽出する曲データ変換処理を実行する。続くステップ904では、抽出したデータからカメラ制御データを生成する平均化処理を実行する。その実行後は、生成した制御データに従って撮影を行っていくための撮影処理、撮影によって得られた撮像画像を再生するための再生処理、及びその他の処理をその順序で実行してから(ステップ905〜907)、上記ステップ902に戻る。それにより、ステップ902〜907で形成される処理ループを、電源がオフされるまでの間、繰り返し実行する。
【0036】
以降は、上記全体処理内で実行されるサブルーチン処理について詳細に説明する。
図10は、上記ステップ902として実行されるスイッチ処理のフローチャートである。
【0037】
そのスイッチ処理では、図10に示すように、先ず、ステップ1001でPOSスイッチ12への操作に対応するためのPOSスイッチ処理を実行し、次のステップ1202でZOOMスイッチ13への操作に対応するためのZOOMスイッチ処理を実行し、その次のステップ1003でカーソルスイッチ11への操作に対応するためのカーソルスイッチ処理を実行する。
【0038】
ステップ1003に続くステップ1004では、データ取込スイッチ14への操作に対応するためのデータ取込スイッチ処理を実行する。その後は、ステップ1005で撮影スイッチ16への操作に対応するための撮影スイッチ処理、ステップ1006で再生スイッチ15への操作に対応するための再生スイッチ処理、ステップ1007でその他のスイッチへの操作に対応するためのその他のスイッチ処理をその順序で実行してから一連の処理を終了する。ここでは、図11〜図16に示す各フローチャートを参照して、ステップ1001〜1006として実行されるサブルーチン処理について詳細に説明する。
【0039】
上述したように、スイッチ部206から、各種スイッチに対して行われた操作内容を示す操作情報を受け取る。その操作情報から、注目するスイッチが操作されたか否か判定するようになっている。
図11は、上記ステップ1001として実行されるPOSスイッチ処理のフローチャートである。スイッチ処理内で実行されるサブルーチン処理では、始めに図11を参照して、POSスイッチ処理について詳細に説明する。この処理で注目するPOSスイッチ12では、位置調整を無効としている状態で操作するとそれを有効とし、その後に操作するとそれを無効とさせるようにしている。
【0040】
先ず、ステップ1101では、POSスイッチ12が位置調整を有効とさせるために操作(オン)されたか否か判定する。位置調整を無効としている状態でスイッチ部206から受け取った操作情報が、そのスイッチ12に対して操作が行われたことを示していた場合、判定はYESとなり、次にステップ1102に移行して、図3に示す位置データエリアに格納されている位置データから枠画像(図6参照)を作成して枠画像エリアにストアし、そのストア後に移行するステップ1103で変数PFに1、変数ZFに0をそれぞれ代入してから一連の処理を終了する。そうでない場合には、判定はNOとなってステップ1104に移行する。
【0041】
上記ステップ1102では、カメラコントローラ205を介して撮影装置20のカメラ部22に撮影を指示し、その指示によって得られた撮像画像(鍵盤41を撮影した画像)を枠画像とともに表示装置30に表示させることも併せて行う(図6参照)。上記変数PF、ZFは、それぞれ位置調整、ズーム調整が有効か否か管理するための変数であり、代入される値の1は有効、0は無効を示している。このため、ステップ1101の判定がYESとなる場合、変数PFの値は0となっている。
【0042】
ステップ1104では、POSスイッチ12が位置調整を無効とさせるために操作(オン)されたか否か判定する。位置調整を有効としている状態、つまり変数PFに1が代入されている状態でスイッチ部206から受け取った操作情報が、そのスイッチ12に対して操作が行われたことを示していた場合、判定はYESとなり、次にステップ1105に移行して、枠画像エリアのクリアを行い、表示装置30の表示を消去させ、更にステップ1106で変数PFに0を代入した後、一連の処理を終了する。そうでない場合には、即ちPOSスイッチ12が操作されていない場合には、判定はNOとなり、ここで一連の処理を終了する。
【0043】
POSスイッチ処理では、上述したような処理が上述したような流れで行われる。これは、ステップ1002として実行されるZOOMスイッチ処理でも同様である。ZOOMスイッチ13は、ズーム調整用であることから、図11を参照して説明すると、ステップ1103では変数ZFに1、変数PFに0を代入し、ステップ1106では変数ZFに0を代入するようになっている。
【0044】
次に、図12を参照して、図10に示すスイッチ処理内でステップ1003として実行されるカーソルスイッチ処理について詳細に説明する。
カーソルスイッチ11は、位置調整、ズーム調整の何れにも用いられる。このことから、カーソルスイッチ処理では、現在、有効となっている調整、及びカーソルスイッチ11のなかで操作されたスイッチに応じた設定を行うようになっている。
【0045】
先ずステップ1201では、上スイッチ11aが操作されたか否か判定する。スイッチ部206からの操作情報が、そのスイッチ11aに対して操作が行われたことを示していた場合、判定はYESとなってステップ1202に移行し、そうでない場合には、判定はNOとなってステップ1208に移行する。
【0046】
ステップ1202では、変数PFの値が1か否か、つまり位置調整が有効となっているか否か判定する。その位置調整が有効となっている場合、判定はYESとなり、次にステップ1203において、上下(Y)方向移動用のオフセット値に例えば所定値を加算することで更新し、更新後のオフセット値を各位置データのY座標値に加算し、その次のステップ1204では、加算によって修正した位置データに従って、表示させている枠画像を移動させる。一連の処理をその後に終了する。一方、そうでない場合には、判定はNOとなってステップ1205に移行する。
【0047】
上記ステップ1203におけるオフセット値のY座標値への加算は、枠画像の表示位置を設定するために、位置データエリアから読み出したY座標値に対して行われ、位置データエリアにストアされている位置データ自体は更新しない。これは他においても同様である。
【0048】
ステップ1205では、変数ZFの値が1か否か、つまりズーム調整が有効となっているか否か判定する。そのズーム調整が有効となっている場合、判定はYESとなり、次にステップ1206において、ズーム調整用の倍率に例えば所定値を加算することで更新し、更新後の倍率を各位置データのXY座標値に乗算して枠画像の倍率変換を行い、その次のステップ1207では、乗算によって修正した位置データに従って、表示させている枠画像の大きさを変化(ここでは拡大)させる。一連の処理をその後に終了する。一方、そうでない場合には、位置調整、及びズーム調整が何れも有効となっていない場合には、判定はNOとなり、ここで一連の処理を終了する。
【0049】
ズーム調整用の倍率は初期値を1としている。このため、それを有効とさせてからカーソルスイッチ11のなかで最初に上スイッチ11aを操作すると、その倍率は1より大きい値に更新されることになる。
上記ステップ1201の判定がNOとなって移行するステップ1208では、下スイッチ11bが操作されたか否か判定する。スイッチ部206からの操作情報が、そのスイッチ11bに対して操作が行われたことを示していた場合、判定はYESとなってステップ1209に移行し、そうでない場合には、判定はNOとなって図13のステップ1213に移行する。
【0050】
ステップ1209では、変数PFの値が1か否か判定する。位置調整が有効となっている場合、判定はYESとなり、次にステップ1210において、上下(Y)方向移動用のオフセット値から例えば所定値を減算することで更新し、更新後のオフセット値を各位置データのY座標値に加算した後、上記ステップ1204に移行する。そうでない場合には、判定はNOとなってステップ1211に移行する。
【0051】
ステップ1211では、変数ZFの値が1か否か判定する。ズーム調整が有効となっている場合、判定はYESとなり、次にステップ1212において、ズーム調整用の倍率から例えば所定値を減算することで更新し、更新後の倍率を各位置データのXY座標値に乗算して枠画像の倍率変換を行った後、上記ステップ1207に移行する。そうでない場合には、判定はNOとなり、ここで一連の処理を終了する。
【0052】
上述したように、ズーム調整用の倍率は初期値を1としている。このため、それを有効とさせてからカーソルスイッチ11のなかで最初に下スイッチ11bを操作すると、その倍率は1より小さい値に更新されることになる。
上記ステップ1208の判定がNOとなって移行する図13のステップ1213では、右スイッチ11dが操作されたか否か判定する。スイッチ部206からの操作情報が、そのスイッチ11dに対して操作が行われたことを示していた場合、判定はYESとなってステップ1214に移行し、そうでない場合には、判定はNOとなってステップ1216に移行する。
【0053】
ステップ1214では、変数PFの値が1か否か判定する。位置調整が有効となっている場合、判定はYESとなり、次にステップ1215において、左右(X)方向移動用のオフセット値に例えば所定値を加算することで更新し、更新後のオフセット値を各位置データのX座標値に加算した後、上記ステップ1204に移行する。そうでない場合には、判定はNOとなり、ここで一連の処理を終了する。
【0054】
一方、ステップ1216では、左スイッチ11cが操作されたか否か判定する。スイッチ部206からの操作情報が、そのスイッチ11cに対して操作が行われたことを示していた場合、判定はYESとなってステップ1217に移行し、そうでない場合には、判定はNOとなり、ここで一連の処理を終了する。
【0055】
ステップ1217では、変数PFの値が1か否か判定する。位置調整が有効となっている場合、判定はYESとなり、次にステップ1218において、左右(X)方向移動用のオフセット値から例えば所定値を減算することで更新し、更新後のオフセット値を各位置データのX座標値に加算した後、上記ステップ1204に移行する。そうでない場合には、判定はNOとなり、ここで一連の処理を終了する。
【0056】
左右スイッチ11c、11dへの操作に着目した処理では、変数ZFの値の判定を行わない。これは、ズーム調整は、左右スイッチ11c、11dを操作して行わせるようにしていないためである。
図14は、図10に示すスイッチ処理内でステップ1004として実行されるデータ取込スイッチ処理のフローチャートである。次に図14を参照して、その取込スイッチ処理について詳細に説明する。
【0057】
先ず、ステップ1401では、データ取込スイッチ14が操作されたか否か判定する。スイッチ部206からの操作情報が、そのスイッチ14に対して操作が行われたことを示していた場合、判定はYESとなってステップ1402に移行し、そうでない場合には、判定はNOとなり、ここで一連の処理が終了する。
【0058】
ステップ1402では、変数MFに0を代入する。その変数MFは、データ取込の有無判定用の変数であり、代入される0はその取り込みが行われていないことを示し、1はその取り込みが行われたことを示している。ステップ1402で変数MFに0を代入するのは、その後のデータ取り込みが行われない可能性があるためである。
【0059】
ステップ1402に続くステップ1403では、変数ADに、演奏データエリアの先頭アドレスを指定する値を代入する。その次のステップ1404では、データ入力が行われるのを待つ。MIDI入出力部207がデータを受信すると、ステップ1405に移行して、それが受信したデータが最後であることを示すENDデータか否か判定する。そのデータがENDデータであった場合、判定はYESとなってステップ1408に移行する。そうでない場合には、判定はNOとなり、受信したデータを変数ADの値で指定されるアドレスにストアし(ステップ1406)、変数ADの値をインクリメントしてその値を進めてから(ステップ1407)、上記ステップ1404に戻る。
【0060】
一方、ステップ1408では、受信したENDデータを変数ADの値で指定されるアドレスにストアする。次のステップ1409では、変数MFに1を代入する。一連の処理はその後に終了する。
このようにして、演奏データエリアに電子楽器40から送信された演奏データがストアされる。後述する曲データ変換処理は、その演奏データを処理対象にして実行される。
【0061】
図15は、図10に示すスイッチ処理内でステップ1005として実行される撮影スイッチ処理のフローチャートである。次に図15を参照して、その撮影スイッチ処理について詳細に説明する。その処理で注目する撮影スイッチ16では、撮影の開始、或いはその終了を指示できるようにさせている。
【0062】
先ず、ステップ1501では、撮影スイッチ16が操作されたか否か判定する。スイッチ部206からの操作情報が、そのスイッチ16に対して操作が行われたことを示していた場合、判定はYESとなってステップ1502に移行し、そうでない場合には、判定はNOとなり、ここで一連の処理が終了する。
【0063】
ステップ1502では、変数CFの値を反転、つまりそれまでの値が1であれば0、それまでの値が0であれば1を新たに代入する。その変数CFは、撮影中か否か判定用の変数であり、代入される0は撮影中でないことを示し、1は撮影中であることを示している。
【0064】
ステップ1502に続くステップ1503では、変数CFの値が1か否か判定する。ユーザが撮影を開始させるために撮影スイッチ16を操作した場合、ステップ1502の処理の実行によって変数CFに1が代入されることから判定はYESとなり、次にステップ1506に移行する。そうでない場合には、つまりユーザが撮影を終了させるために撮影スイッチ16を操作した場合には、判定はNOとなり、タイマインタラプト処理の実行を禁止し(ステップ1504)、撮影装置20のカメラ部22をオフさせてから(ステップ1505)、一連の処理を終了する。
【0065】
上述したように、本実施の形態では、予め定めた周期で撮影を行うようにしている。上記タイマインタラプト処理は、その周期(以降「最小単位時間」と呼ぶ)で撮影を行うための時間計時用の処理である。その実行禁止は、その周期で発生する割り込む信号を無効にして、その割り込み信号の発生により実行させないようにすることである。
【0066】
ステップ1506では、変数CADに、カメラ制御データエリア(図3参照)の先頭に位置するデータエリア(以降、「アドレス」と呼ぶ)を指定する値を代入する。続くステップ1507では、変数GADに、撮像エリアの先頭に位置するデータエリア(以降、「アドレス」と呼ぶ)を指定する値を代入する。その後は、変数CADの値で指定されるアドレスからタイムデータを読み出して変数Tに代入し(ステップ1508)、撮影装置20の駆動部21への指示を行って、それをガイド部材50の中央に移動させ(ステップ1509)、撮影装置20のカメラ部22に指示するズーム(ZOOM)を最小に設定し(ステップ1510)、そのカメラ部22をオンさせ、設定したズームの設定を指示し(ステップ1511)、タイマインタラプト処理の実行禁止を解除させてから(ステップ1512)、一連の処理を終了する。
【0067】
このようにして、撮影スイッチ処理では、撮影装置20による撮影を開始するうえでの準備が行われる。実際の撮影は、後述する撮影処理を実行することで行われる。
図16は、図10に示すスイッチ処理内でステップ1006として実行される再生スイッチ処理のフローチャートである。スイッチ処理で実行されるサブルーチン処理の最後に図16を参照して、その再生スイッチ処理について詳細に説明する。その処理で注目する再生スイッチ15では、再生の開始、或いはその終了を指示できるようにさせている。
【0068】
先ず、ステップ1601では、再生スイッチ15が操作されたか否か判定する。スイッチ部206からの操作情報が、そのスイッチ15に対して操作が行われたことを示していた場合、判定はYESとなってステップ1602に移行し、そうでない場合には、判定はNOとなり、ここで一連の処理が終了する。
【0069】
ステップ1602では、変数STFの値を反転、つまりそれまでの値が1であれば0、それまでの値が0であれば1を新たに代入する。その変数STFは、再生中か否か判定用の変数であり、代入される0は再生中でないことを示し、1は再生中であることを示している。
【0070】
ステップ1602に続くステップ1603では、変数STFの値が1か否か判定する。ユーザが再生を開始させるために再生スイッチ15を操作した場合、ステップ1602の処理の実行により変数STFに1が代入されることから判定はYESとなり、次にステップ1606に移行する。そうでない場合には、つまりユーザが再生を終了させるために再生スイッチ15を操作した場合には、判定はNOとなり、タイマインタラプト処理の実行を禁止し(ステップ1604)、表示装置30をオフさせてから(ステップ1605)、一連の処理を終了する。
【0071】
ステップ1606では、変数GADに、撮像エリアの先頭アドレスを指定する値を代入する。その後は、変数GADの値で指定されるアドレスから撮像画像のデータを読み出し(ステップ1607)、ディスプレイコントローラ208にデータを送出するとともに、表示装置30のオンを指示し(ステップ1608)、タイマインタラプト処理の実行禁止を解除させてから(ステップ1609)、一連の処理を終了する。
【0072】
このようにして、再生スイッチ処理では、表示装置30に最初に撮像した画像を表示させる。それに続く画像の表示(再生)は、後述する再生処理を実行することで行われる。
図9に示す全体処理内で実行されるサブルーチン処理の説明に戻る。
【0073】
図17〜図19は、その全体処理内でステップ903として実行される曲データ変換処理のフローチャートである。次に図17〜図19を参照して、その変換処理について詳細に説明する。
先ず、ステップ1701では、変数MFの値が1か否か判定する。変数MFには、演奏データを取り込むことで1が代入される。このことから、その取り込みが行われた場合、判定はYESとなってステップ1702に移行し、そうでない場合には、判定はNOとなり、ここで一連の処理を終了する。
【0074】
ステップ1702では、変数HADに、RAM203に確保し制御用データエリアの先頭アドレスを指定する値を代入する。次のステップ1703では、変数ADに、演奏データエリアの先頭アドレスを指定する値を代入する。その後は、ステップ1704において、変数ADの値で指定されるアドレスからデータを読み出した後、ステップ1705に移行する。
【0075】
ステップ1705では、読み出したデータの種類を判定する。そのデータがタイムデータであった場合、その旨が判定されてステップ1706に移行し、変数HADの値で指定されるアドレスにそのタイムデータをストアし、次のステップ1707で変数AD、及びHADの値をそれぞれインクリメントして進めてから上記ステップ1704に戻る。読み出したデータがENDデータであった場合には、その旨が判定されてステップ1708に移行し、変数MFに0、変数HFに1を代入した後、一連の処理を終了する。その読み出したデータがイベント(MIDI)データであった場合には、その旨が判定されてステップ1709に移行する。
【0076】
上記変数MFに0を代入することにより、新たに演奏データの取り込みが行われるまで、取り込まれた演奏データは存在しないと判定されることになる。変数HFは、カメラ制御データエリア(図3参照)にストアするカメラ制御データの生成を行う状況か否か判定用の変数であり、代入される1はその状況であることを示している。その状況でなければ0が代入される。
【0077】
鍵盤41を対する演奏では、複数の鍵を同時に押鍵している場合がある。例えば左手でコードを発音させる演奏操作を行い、右手でメロディを発音させる演奏操作を行うのであれば、通常、演奏中の大部分、複数の鍵を同時に押鍵している。その左右の手を確実、且つより大きく撮影するためには、鍵盤41上のそれらの位置に応じて、撮影位置、或いはズームを適切に制御しなければならない。ステップ1709以降では、その制御を適切に行うカメラ制御データを生成するうえで必要なデータを抽出するための処理が行われる。
【0078】
本実施の形態では、同時に押鍵されているべき鍵の音高を示す鍵番号の保持用に配列変数NOTEを用意し、その要素のなかで鍵番号を保持させている要素の判定用に配列変数ONを用意している。変数CHは、それら配列変数を構成する要素の指定用として用意している。
【0079】
先ず、ステップ1709では、変数CHに0を代入する。続くステップ1710では、読み出したイベントデータが示すイベントがノートオン(押鍵)か否か判定する。そのイベントが押鍵であった場合、判定はYESとなってステップ1711に移行し、そうでない場合には、判定はNOとなって図18に示すステップ1716に移行する。
【0080】
ステップ1711では、配列変数ONのなかで変数CFの値により指定される要素ON(CH)の値が0か否か判定する。配列変数NOTEのなかで変数CFの値により指定される要素NOTE(CH)に鍵番号が保持されていない場合、要素ON(CH)には0を保持させることから、判定はYESとなり、ステップ1715で要素NOTE(CH)にイベントデータが示す押鍵すべき鍵の鍵番号を代入して保持させ、その次のステップ1716で要素ON(CH)に1を代入して保持させた後、図18のステップ1722に移行する。一方、そうでない場合には、判定はNOとなってステップ1712に移行する。
【0081】
ステップ1712では、変数CHの値をインクリメントする。その次に移行するステップ1713では、変数CHの値が配列要素NOTEの全要素数より大きいか否か判定する。配列変数NOTEで要素を指定できる最大数より変数CHの値が大きい場合、つまり配列変数NOTEの全要素に鍵番号が保持されている場合、判定はYESとなって図18のステップ1722に移行し、そうでない場合には、判定はNOとなって上記ステップ1711に戻る。それにより、鍵番号が保持されていない要素を探し出すか、或いはその要素が存在しないことを確認するまで、ステップ1711〜1713で形成される処理ループを繰り返し実行する。
【0082】
上記ステップ1710の判定がNOとなって移行する図18のステップ1716では、要素ON(CH)の値が1か否か判定する。要素NOTE(CH)に鍵番号が保持されている場合、要素ON(CH)の値は1であることから判定はYESとなってステップ1719に移行し、そうでない場合には、判定はNOとなってステップ1717に移行する。
【0083】
ステップ1717では、変数CHの値をインクリメントする。その次に移行するステップ1718では、変数CHの値が配列要素NOTEの全要素数より大きいか否か判定する。配列変数NOTEで要素を指定できる最大数より変数CHの値が大きい場合(ここではイベントデータが示す離鍵すべき鍵の鍵番号が配列変数NOTEの何れの要素にも保持されていない場合を意味する)、判定はYESとなってステップ1722に移行し、そうでない場合には、判定はNOとなって上記ステップ1716に戻る。それにより、イベントデータが示す鍵番号が保持されている要素を探し出すか、或いはその要素が存在しないことを確認するまで、ステップ1716〜1718で形成される処理ループを繰り返し実行する。
【0084】
ステップ1719では、要素NOTE(CH)の鍵番号が、イベントデータが示す鍵番号と等しいか否か判定する。それらが等しくない場合、判定はNOとなって上記ステップ1717に移行し、そうでない場合には、判定はYESとなってステップ1720に移行する。
【0085】
ステップ1720では、要素NOTE(CH)に0を代入することでクリアを行う。次のステップ1721では、要素ON(CH)に0を代入することでそのクリアを行う。その後は、変数CHに0を代入し(ステップ1722)、変数MAXに最低の鍵番号、変数MINに最高の鍵番号をそれぞれ代入してから(ステップ1723)、ステップ1724に移行する。
【0086】
ステップ1724では、要素ON(CH)の値が1か否か判定する。要素NOTE(CH)に鍵番号が保持されている場合、判定はYESとなってステップ1727に移行し、そうでない場合には、判定はNOとなってステップ1725に移行する。
【0087】
ステップ1725では、変数CHの値をインクリメントする。その次に移行するステップ1726では、変数CHの値が配列要素NOTEの全要素数より大きいか否か判定する。配列変数NOTEで要素を指定できる最大数より変数CHの値が大きい場合(ここでは配列変数NOTEの要素に保持されている鍵番号を全て参照した場合を意味する)、判定はYESとなって図19のステップ1731に移行し、そうでない場合には、判定はNOとなって上記ステップ1724に戻る。
【0088】
一方、ステップ1727では、要素NOTE(CH)の鍵番号が、変数MAXの鍵番号より大きいか否か判定する。前者が後者より大きい場合、判定はYESとなり、ステップ1728で変数MAXに、要素NOTE(CH)の鍵番号を代入した後、図19のステップ1729に移行する。そうでない場合には、他のステップの処理を実行することなく、そのステップ1729に移行する。
【0089】
そのステップ1729では、要素NOTE(CH)の鍵番号が、変数MINの鍵番号より小さいか否か判定する。前者が後者より小さい場合、判定はYESとなり、ステップ1730で変数MINに、要素NOTE(CH)の鍵番号を代入した後、図18のステップ1725に移行する。そうでない場合には、他のステップの処理を実行することなく、そのステップ1725に移行する。
【0090】
上記ステップ1722〜1730の処理により、配列変数NOTEの要素に保持されている鍵番号を全て参照して、そのなかで鍵番号が最低(最小)の鍵番号が変数MINに、最高(最大)の鍵番号が変数MAXにそれぞれ代入されることになる。
【0091】
上記ステップ1726の判定がYESとなって移行する図19のステップ1731では、変数ZOOMに、変数MAXの値から変数MINの値を引いた値を代入する。続くステップ1732では、変数POSに、変数ZOOMの値を2で割った値に変数MINの値を加算して得られる値(=ZOOM/2+MIN)を代入する。その後は、変数HADの値で指定されるアドレスに変数POS、及びZOOMの値をそれぞれストアし(ステップ1733)、変数AD、HADの値をインクリメントしてから(ステップ1734)、図17のステップ1704に戻る。
【0092】
変数POSに代入される値は、同時に押鍵される鍵のなかで音高が最低の鍵と最高の鍵の音高差を示している。その値を抽出するのは、演奏を適切に行うためには、それらの鍵を同時に押鍵するようにユーザは手を配置させなければならないからである。変数ZOOMに代入される値は、それらの鍵の中間となる鍵の位置を示している。本実施の形態では、それらのデータを抽出し、撮影を行うえで発生させるべきイベントを示すイベントデータとして扱い、そのイベントデータが示すイベントを発生させるようにカメラ制御データを生成することにより、左右の手を確実に、且つより大きなズーム(撮影倍率)で撮影できるようにさせている。抽出したデータを撮影用のイベントデータとして扱うことから、演奏データの演奏操作を示すイベントデータは撮影用のイベントデータに変換された形となる。以降、変数POSに代入された値は「位置イベントデータ」、変数ZOOMに代入された値は「ズームイベントデータ」とそれぞれ呼ぶことにする。
【0093】
次に、図9に示す全体処理内でステップ904として実行される平均化処理について、図20、及び図21に示すそのフローチャートを参照して詳細に説明する。
上記曲データ変換処理の実行により制御用データエリアに保存したデータから単にカメラ制御データを生成すると、撮影位置、或いはズームを急激に大きく変更させてしまう可能性がある。そのような変更は、画像の再生時に人に違和感を与えてしまう恐れがあるだけでなく、その変更の実現を困難にしてしまう恐れがある。例えば方向を変えて比較的に大きな距離を移動させるような場合、その移動を短時間で完了させるのは非常に困難である。このようなことから、本実施の形態では、急激に大きな変更を行わせないように考慮してカメラ制御データを生成している。
【0094】
先ず、ステップ2001では、変数HFの値が1か否か判定する。上記曲データ変換処理を実行して制御用データエリアにデータをストアした場合、変数HFに1が代入されることから、判定はYESとなってステップ2002に移行し、そうでない場合には、判定はNOとなり、ここで一連の処理を終了する。
【0095】
ステップ2002では、変数t、FPOS、及びFZOOMにそれぞれ0を代入する。次のステップ2003では、変数HADの値で指定されるアドレスからデータを読み出す。その後に実行するステップ2004では、そのデータの種類を判定する。そのデータがタイムデータであった場合、その旨が判定されてステップ2005に移行し、そのタイムデータを変数TIMEに代入した後、ステップ2011に移行する。
【0096】
撮影を行う周期(最小単位時間)としては、演奏データを構成するタイムデータが示す時間よりも通常、短い時間を設定している。本実施の形態では、その周期を撮影条件の変更を行ううえでの単位時間としている。
そのような時間を単位時間とすると、タイムデータが示す時間を複数の期間に分割し、分割した各期間で行わせるべき内容を設定しなければならない。上記変数t、FPOS、及びFZOOMはその設定用として用意した変数である。その設定内容の保存用としては、配列変数POS、ZOOMを用意している。
【0097】
ステップ2003で読み出したデータがイベントデータであった場合、ステップ2004でその旨が判定されてステップ2006に移行する。そのステップ2006では、変数DPOS、及びDZOOMに、読み出したイベントデータを構成する位置イベントデータ、及びズームイベントデータをそれぞれ代入する。その代入後は、ステップ2007で変数Sに0を代入してからステップ2008に移行する。
【0098】
ステップ2008では、配列変数POS、及びZOOMの変数tの値で指定される要素POS(t)、ZOOM(t)に、それぞれ代入すべき値を算出して代入する。より具体的には、変数DPOSの値から変数FPOSの値を引いて得られる減算値に変数Sの値を乗算し、その乗算結果を変数TIMEの値で除算し、その除算結果を変数FPOSの値に加算した値(=FPOS+(DPOS−FPOS)×S/TIME)を算出して要素POS(t)に代入する。他方の要素ZOOM(t)には、変数DZOOMの値から変数FZOOMの値を引いて得られる減算値に変数Sの値を乗算し、その乗算結果を変数TIMEの値で除算した値を変数FZOOMの値に加算した値(=FZOOM+(DZOOM−FZOOM)×S/TIME)を算出して要素ZOOM(t)に代入する。
【0099】
上記変数Sの値は、最小単位時間を単位として時間を表現している。変数FPOSは初期値として0が代入されるが、それ以降は次のタイムデータを読み出す直前に、配列変数POSの要素に最後に代入した値を代入する。それにより、タイムデータを最小単位時間で分割し、各最小単位時間で設定すべき値を直線補間により求めてその要素に代入するようにしている。これは配列変数ZOOMの要素においても同様である。
【0100】
ステップ2008に続くステップ2009では、変数S、tの各値をインクリメントする。次に実行するステップ2010では、変数Sの値が変数TIMEの値より大きいか否か判定する。変数TIMEの値が示す時間内を対象にして、直線補間により求めた値の配列変数POS、ZOOMの各要素への代入が終了した場合、変数Sの値は変数TIMEの値より大きくなることから判定はYESとなり、変数HADの値をインクリメントし、変数FPOS、FZOOMに、それぞれ変数tの値から1を引いた値で指定される要素POS(t−1)、ZOOM(t−1)の値を代入してから(ステップ2011)、上記ステップ2003に戻る。そうでない場合には、判定はNOとなって上記ステップ2008に戻る。
【0101】
本実施の形態では、急激に大きな変更を行わせないようにするために、配列変数POS、ZOOMの各要素に代入した、複数の連続する値をグループと仮想的に見なし、そのグループとする範囲を順次、移動させながら、そのグループを構成する値を全て考慮する形でカメラ制御データを構成する位置イベントデータ、及びズームイベントデータを生成している。
【0102】
ステップ2003で読み出したデータが最後のデータであるENDデータであった場合、ステップ2004でその旨が判定されてステップ2012に移行する。そのステップ2012以降では、上述したようにしてカメラ制御データを生成するための処理が行われる。
【0103】
先ず、ステップ2012では、変数tに0を代入する。次のステップ2013では、変数ΣPOS、及びΣZOOMにそれぞれ0を代入する。その代入後に実行するステップ2014では、変数nに4、変数x、mにそれぞれ0を代入する。ステップ2015にはその後に移行する。
【0104】
上記変数ΣPOS、ΣZOOM、及びxは、イベントデータとする値の算出用として用意した変数である。変数nに代入した4は、グループを構成する値の数として実際に設定した値である。変数mは、グループ分けを行うために用意した変数である。
【0105】
ステップ2015では、変数tの値から変数nの値を減算し、その減算結果に変数mの値を加算して算出される値(=t−n+m)が0以上か否か判定する。その算出値が0以上であった場合、判定はYESとなってステップ2016に移行し、そうでない場合には、判定はNOとなってステップ2019に移行する。そのYESの判定は、先頭からグループ分の値が存在するのを確認するまでの間、継続する。
【0106】
ステップ2016では、変数ΣPOSのそれまでの値に要素POS(t−n+m)の値を加算し、その加算結果を変数ΣPOSに代入する。続くステップ2017では、同様に、変数ΣZOOMのそれまでの値に要素ZOOM(t−n+m)の値を加算し、その加算結果を変数ΣZOOMに代入する。その後は、ステップ2018で変数xの値をインクリメントし、ステップ2019で変数mの値をインクリメントした後、図21のステップ2020に移行する。
【0107】
そのステップ2020では、変数mの値が変数nの値より大きいか否か判定する。変数mの値が変数nの値より大きい場合、判定はYESとなってステップ2021に移行し、そうでない場合には、判定はNOとなって図20のステップ2015に戻る。
【0108】
ステップ2020でのYESの判定は、変数ΣPOS、ΣZOOMに、それぞれ変数nの値(グループ)分の値の累算値が代入されたことを意味する。本実施の形態では、その累算値から平均値を求めることにより、最小単位時間で変更する量を平滑化して、急激に大きな変更を行うようなことを回避させている。
【0109】
ステップ2021では、配列変数HPOSの変数tの値で指定される要素HPOS(t)に、変数ΣPOSの値を変数xで割った値を代入する。次に実行するステップ2022では、配列変数HZOOMの変数tの値で指定される要素HZOOM(t)に、変数ΣZOOMの値を変数xで割った値を代入する。その後はステップ2023で変数tの値をインクリメントしてからステップ2024に移行する。
【0110】
ステップ2024では、変数tの値が、配列変数HPOS、HZOOMの要素に値を代入する最後の要素を指定する値より大きいか否か判定する。配列変数HPOS、HZOOMを構成する各要素への値の代入が完了した場合、変数tの値は最後の要素を指定する値より大きくなることから判定はYESとなってステップ2025に移行し、そうでない場合には、判定はNOとなって図20のステップ2013に戻る。
【0111】
ステップ2025以降では、カメラ制御データエリア(図3参照)にカメラ制御データをストアするための処理が行われる。
先ず、ステップ2025では、変数Tに0を代入し、変数Δtに所定値αを代入する。その所定値αは、撮影スイッチ16への操作により撮影開始が指示されてから実際に撮影を開始するまでの時間に対応する値である。
【0112】
ステップ2025に続くステップ2026では、変数CADに、カメラ制御データエリア内の先頭アドレスを指定する値を代入する。その代入後はステップ2027に移行して、変数CADの値で指定されるアドレスに変数Δtの値をストアする。それ以降は、ステップ2028では変数CADの値をインクリメントし、ステップ2029では変数CADの値で指定されるアドレスに要素HPOS(T)、HZOOM(T)をイベントデータとしてストアし、ステップ2030では変数Tの値をインクリメントするとともに、変数Δtに1を代入してから変数2031に移行する。
【0113】
ステップ2031では、変数Tの値が、配列変数HPOSの要素のなかで最後に値を代入した要素を指定する値より大きいか否か判定する。変数Tの値がその値よりも大きい場合、判定はYESとなり、次にステップ2032で変数CADの値をインクリメントするとともに、変数HFに0を代入し、その次にステップ2033で変数CADの値により指定されるアドレスにエンドデータをストアした後、一連の処理を終了する。そうでない場合には、判定はNOとなって上記ステップ2027に戻る。
【0114】
図22は、図9に示す全体処理内でステップ905として実行される撮影処理のフローチャートである。次に図22を参照して、その撮影処理について詳細に説明する。
先ず、ステップ2201では、変数CFの値が1か否か判定する。撮影中の場合、それには1が代入されていることから判定はYESとなってステップ2202に移行する。そうでない場合には、判定はNOとなり、ここで一連の処理を終了する。
【0115】
ステップ2202では、最小単位時間が経過したか否か判定する。その時間を計時するために実行するタイマインタラプト処理から引数として渡された変数の値がその経過を示していなかった場合、判定はNOとなり、ここで一連の処理を終了する。そうでない場合には、判定はYESとなってステップ2203に移行する。
【0116】
ステップ2203では、カメラコントローラ205を介して撮影装置20のカメラ部22に撮影を指示し、それによってカメラ部22が送信することでコントローラ205が受信する画像データを、変数GADの値で指定されるアドレスエリアにストアする。その後は、ステップ2204で変数GADの値をインクリメントし、次にステップ2205で変数Tの値をデクリメントしてからステップ2206に移行する。
【0117】
ステップ2206では、変数Tの値が0か否か判定する。その値が0であった場合、判定はYESとなり、ステップ2207で変数CADの値をインクリメントし、次のステップ2208において、カメラ制御データエリア内で変数CADの値により指定されるアドレスからデータを読み出してからステップ2209に移行する。そうでない場合には、判定はNOとなり、ここで一連の処理を終了する。
【0118】
ステップ2209では、読み出したデータの種類を判定する。そのデータがタイムデータであった場合、その旨が判定されてステップ2210に移行し、読み出したデータを変数Tに代入した後、一連の処理を終了する。
ステップ2208で読み出したデータがENDデータであった場合には、その旨が判定されてステップそ2211に移行する。そのステップ2211では、撮影の終了により変数CFに0を代入する。その後は、ステップ2212で撮影装置20のカメラ部22にカメラコントローラ205を介してオフを指示し、ステップ2213でタイマインタラプト処理の実行を禁止し、ステップ2214で変数GADの値をインクリメントし、ステップ2215において、撮像エリア(図4参照)内で変数GADの値により指定されるアドレスにENDデータをストアしてから、一連の処理を終了する。
【0119】
ステップ2208で読み出したデータがイベントデータであった場合には、その旨が判定されてステップ2216に移行する。そのステップ2216では、例えば読み出したイベントデータを構成する位置イベントデータ(図中「位置データPOS」と表記)を用いて撮影装置20の駆動部21に出力するデータを生成し、駆動コントローラ204を介して、生成したデータをその駆動部21に送信することにより、その位置イベントデータに応じて撮影装置20の位置を移動させる。
【0120】
ステップ2216に続くステップ2217では、例えば読み出したイベントデータを構成するズームイベントデータ(図中「データデータZOOM」と表記)を用いて撮影装置20のカメラ部22に出力するデータを生成し、カメラコントローラ205を介して、生成したデータをそのカメラ部22に送信することにより、そのズームイベントデータに応じてズームを変更させる。その後は上記ステップ2207に移行する。
【0121】
上記ステップ2216、及び2217の処理を実行することにより、撮影装置20は、演奏を行う手をより大きく撮影するうえで適切な位置に移動され、より大きく撮影するようにズームが適切に調整されることになる。このため、撮影した画像を表示装置30に表示させた場合には、行われた演奏操作をより容易に把握できることとなる。
【0122】
図23は、図9に示す全体処理内でステップ906として実行される再生処理のフローチャートである。最後に図23を参照して、その再生処理について詳細に説明する。
先ず、ステップ2301では、変数STFの値が1か否か判定する。再生中の場合、それには1が代入されていることから判定はYESとなってステップ2302に移行する。そうでない場合には、判定はNOとなり、ここで一連の処理を終了する。
【0123】
ステップ2302では、最小単位時間が経過したか否か判定する。タイマインタラプト処理から引数として渡された変数の値がその時間の経過を示していなかった場合、判定はNOとなり、ここで一連の処理を終了する。そうでない場合には、判定はYESとなってステップ2303に移行する。
【0124】
ステップ2303では、変数GADの値をインクリメントする。続くステップ2304では、撮像エリア内の変数GADの値で指定されるアドレスから画像データの読み出しを行う。その後に移行するステップ2305では、読み出したデータがエンドデータでないか否か判定する。読み出したデータがENDデータでなかった場合、判定はYESとなってステップ2306に移行し、読み出した画像データを、ディスプレイコントローラ208を介して表示装置30に送信させることで表示させてから一連の処理を終了する。そうでない場合には、判定はNOとなり、ステップ2307で変数STFに0を代入し、次のステップ2308でタイマインタラプト処理の実行を禁止してから一連の処理を終了する。
【0125】
なお、本実施の形態では、ユーザが2つの手を使って演奏を行うことを前提としているが、必ずしもそのようなことを前提としなくとも良い。例えばメロディのみ、或いはコードのみの演奏を行うことをユーザが望んでいることもありうることから、ユーザに所望のパートを選択させて、そのパートに合ったカメラ制御データを生成するようにしても良い。
【0126】
撮影条件としては、撮影位置、及びズーム(撮影倍率)の両方を自動的に変更させるようにしているが、それらのうちの一方のみを対象にその変更を行うようにしても良い。例えばユーザが片手だけの演奏を行う場合であれば、その手の予想される動きに応じて撮影位置を移動させても良く、その撮影位置を固定にし、その予想される動きに応じてズームを調整させるようにしても良い。
【0127】
撮影位置の移動については、撮影装置20を移動させるための機構を別に用意し、その機構を用いて撮影装置20の撮影位置を移動させるようにしても良い。撮影位置を移動させる代わりに、撮影方向を変化させるようにしても良い。演奏データについては、演奏者が行う演奏の内容を特定できれば良いことから、楽譜データなどであっても良い。
【0128】
本実施の形態は、演奏撮影装置、及びシーケンス制御データ生成装置を一つの装置10に搭載した場合のものであるが、それらは別の装置として実現させても良い。そのようにした場合には、生成したシーケンス制御データは記録媒体、或いは通信ネットワークを介してやりとりさせれば良い。カメラ等の撮影装置は演奏撮影装置に搭載させても良い。
【0129】
上述したような演奏撮影装置、或いはシーケンス制御データ生成装置の動作を実現させるようなプログラムは、CD−ROM、DVD、或いは光磁気ディスク等の記録媒体に記録させて配布しても良い。或いは、公衆網等で用いられる伝送媒体を介して、そのプログラムの一部、若しくは全部を配信するようにしても良い。そのようにした場合には、ユーザーはプログラムを取得してコンピュータなどのデータ処理装置にロードすることにより、そのデータ処理装置に本発明を適用させることができる。このことから、記録媒体は、プログラムを配信する装置がアクセスできるものであっても良い。
【0130】
【発明の効果】
以上、説明したように本発明は、演奏者が行う演奏の内容を表す演奏データを取得し、それを解析して、撮影装置に撮影させる際の撮影条件を決定し、その決定した撮影条件で楽器を演奏中の演奏者を撮影装置に撮影させるためのシーケンス制御データを生成する。
【0131】
演奏データを解析することにより、演奏を行う演奏者の動きを高精度に予想することができるようになる。このため、実際の動きに合った撮影条件で撮影を行えるようになる。それにより、行った演奏操作を撮影された画像から判りやすいように撮影することができることとなる。
【図面の簡単な説明】
【図1】本実施の形態による演奏撮影装置、及びシーケンス制御データ生成装置を用いて構築された演奏撮影システムの構成を示す図である。
【図2】本実施の形態による演奏撮影装置、及びシーケンス制御データ生成装置を搭載した演奏記録・再生装置の回路構成を示す図である。
【図3】RAMに格納されるデータを説明する図である(その1)。
【図4】RAMに格納されるデータを説明する図である(その2)。
【図5】RAMに確保された位置データエリアに格納される位置データの内容を説明する図である。
【図6】実際に撮影された鍵盤に応じて行われる調整内容を説明する図である(その1)。
【図7】実際に撮影された鍵盤に応じて行われる調整内容を説明する図である(その2)。
【図8】撮影装置で実際に撮影される画像を説明する図である。
【図9】全体処理のフローチャートである。
【図10】スイッチ処理のフローチャートである。
【図11】POSスイッチ処理のフローチャートである。
【図12】カーソルスイッチ処理のフローチャートである。
【図13】カーソルスイッチ処理のフローチャートである(続き)。
【図14】データ取込スイッチ処理のフローチャートである。
【図15】撮影スイッチ処理のフローチャートである。
【図16】再生スイッチ処理のフローチャートである。
【図17】曲データ変換処理のフローチャートである。
【図18】曲データ変換処理のフローチャートである(続き1)。
【図19】曲データ変換処理のフローチャートである(続き2)。
【図20】平均化処理のフローチャートである。
【図21】平均化処理のフローチャートである(続き)。
【図22】撮影処理のフローチャートである。
【図23】再生処理のフローチャートである。
【符号の説明】
10 演奏撮影・再生装置
11 カーソルスイッチ
12 POSスイッチ
13 ZOOMスイッチ
14 データ取込スイッチ
15 再生スイッチ
16 撮影スイッチ
20 撮影装置
21 駆動部
22 カメラ部
30 表示装置
40 電子楽器
41 鍵盤
50 ガイド部材
201 CPU
202 ROM
203 RAM
204 駆動コントローラ
205 カメラコントローラ
206 スイッチ部
207 MIDI入出力部
208 ディスプレイコントローラ
Claims (4)
- 撮影装置に撮影させる際の撮影条件を順次、変更させながら、該撮影装置により鍵盤を備えた楽器を演奏中の演奏者を撮影させるためのシーケンス制御データを生成する装置であって、
演奏者が行う演奏の内容を表す演奏データを取得するデータ取得手段と、
前記データ取得手段が取得した演奏データを解析して、演奏者の二つの手が存在する該鍵盤上の位置をそれぞれ予想し、該予想した2つの手の位置に応じて前記撮影装置が撮影を行う際の撮影倍率を前記撮影条件として決定する撮影条件決定手段と、
前記撮影条件決定手段が決定した撮影倍率で前記鍵盤を備えた楽器を演奏中の演奏者を前記撮影装置に撮影させるためのシーケンス制御データを生成する制御データ生成手段と、
を具備することを特徴とするシーケンス制御データ生成装置。 - 撮影装置に撮影させる際の撮影条件を順次、変更させながら、該撮影装置により楽器を演奏中の演奏者を撮影させるためのシーケンス制御データを生成する装置であって、
演奏者が行う演奏の内容を表す演奏データを取得するデータ取得手段と、
前記データ取得手段が取得した演奏データを解析して、演奏者の手が存在する該鍵盤上の位置を予想し、該予想した手の位置に応じて前記撮影装置が撮影を行う際の撮影位置を前記撮影条件として決定する撮影条件決定手段と、
前記撮影条件決定手段が決定した撮影位置で前記鍵盤を備えた楽器を演奏中の演奏者を前記撮影装置に撮影させるためのシーケンス制御データを生成する制御データ生成手段と、
を具備することを特徴とするシーケンス制御データ生成装置。 - 撮影装置に撮影させる際の撮影条件を順次、変更させながら、該撮影装置により鍵盤を備えた楽器を演奏中の演奏者を撮影させるためのシーケンス制御データを生成する装置として用いられるコンピュータに、
演奏者が行う演奏の内容を表す演奏データを取得するデータ取得機能と、
前記取得した演奏データを解析して、演奏者の二つの手が存在する該鍵盤上の位置をそれぞれ予想し、該予想した2つの手の位置に応じて前記撮影装置が撮影を行う際の撮影倍率を前記撮影条件として決定する撮影条件決定機能と、
前記決定した撮影倍率で前記鍵盤を備えた楽器を演奏中の演奏者を前記撮影装置に撮影させるためのシーケンス制御データを生成する制御データ生成機能と、
を実現させるためのプログラム。 - 撮影装置に撮影させる際の撮影条件を順次、変更させながら、該撮影装置により楽器を演奏中の演奏者を撮影させるためのシーケンス制御データを生成する装置として用いられるコンピュータに、
演奏者が行う演奏の内容を表す演奏データを取得するデータ取得機能と、
前記取得した演奏データを解析して、演奏者の手が存在する該鍵盤上の位置を予想し、該予想した手の位置に応じて前記撮影装置が撮影を行う際の撮影位置を前記撮影条件として決定する撮影条件決定機能と、
前記決定した撮影位置で前記鍵盤を備えた楽器を演奏中の演奏者を前記撮影装置に撮影させるためのシーケンス制御データを生成する制御データ生成機能と、
を実現させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003188968A JP4311099B2 (ja) | 2003-06-30 | 2003-06-30 | シーケンス制御データ生成装置及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003188968A JP4311099B2 (ja) | 2003-06-30 | 2003-06-30 | シーケンス制御データ生成装置及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005026927A JP2005026927A (ja) | 2005-01-27 |
JP4311099B2 true JP4311099B2 (ja) | 2009-08-12 |
Family
ID=34187336
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003188968A Expired - Fee Related JP4311099B2 (ja) | 2003-06-30 | 2003-06-30 | シーケンス制御データ生成装置及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4311099B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112011101961T5 (de) | 2010-06-08 | 2013-03-21 | Dic Corporation | Dichtungsmaterial, Solarzellenmodul und Leuchtdiode |
US20160133243A1 (en) * | 2013-06-17 | 2016-05-12 | Yamaha Corporation | Musical performance system, musical performance method and musical performance program |
-
2003
- 2003-06-30 JP JP2003188968A patent/JP4311099B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2005026927A (ja) | 2005-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3601350B2 (ja) | 演奏画像情報作成装置および再生装置 | |
JP2705568B2 (ja) | 自動演奏装置 | |
EP0829847B1 (en) | Conduct-along system | |
JPH09204163A (ja) | カラオケの表示装置 | |
US20210335331A1 (en) | Image control system and method for controlling image | |
JP4311099B2 (ja) | シーケンス制御データ生成装置及びプログラム | |
JP2007264026A (ja) | 演奏装置 | |
JP3843735B2 (ja) | 演奏ガイド方法、演奏ガイド装置および記録媒体 | |
JP5574268B2 (ja) | 楽譜表示装置および楽譜表示方法を実現するためのプログラム | |
JP2007322683A (ja) | 楽音制御装置およびプログラム | |
JP2004198761A (ja) | 演奏教習装置および演奏教習処理のプログラム | |
JP4765705B2 (ja) | 楽音制御装置 | |
JP3931603B2 (ja) | 演奏教習装置及び演奏教習処理のプログラム | |
JP4127088B2 (ja) | 音楽再生と動画表示の制御装置およびそのプログラム | |
JP2008008946A (ja) | 楽音制御装置およびプログラム | |
JP2010008893A (ja) | 電子音楽装置 | |
KR101198083B1 (ko) | 게임장치, 다이제스트 표시방법 및 정보기록매체 | |
JP2000276139A (ja) | 楽音生成方法および電子機器の制御方法 | |
JP2006064973A (ja) | 制御システム | |
JP2007264025A (ja) | 演奏装置 | |
JP3799711B2 (ja) | 楽音発生方法および楽音発生装置 | |
JP4337288B2 (ja) | 演奏動作表示装置、及びプログラム | |
JP3528051B2 (ja) | 演奏動作表示装置、及び記録媒体 | |
JP4720564B2 (ja) | 楽音制御装置 | |
JP4944371B2 (ja) | 映像編集装置およびその方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060427 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090310 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090317 |
|
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: 20090421 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090504 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120522 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120522 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130522 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130522 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |