(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0011】
以下、本発明の実施形態について、図面を用いて説明する。
【0012】
[演奏装置1の概要]
初めに、
図1を参照して、本発明の一実施形態としての演奏装置1の概要について説明する。
図1(1)に示すように、本実施形態の演奏装置1は、スティック部10A,10Bと、カメラユニット部20と、センターユニット部30と、を含んで構成される。本実施形態の演奏装置1は、2本のスティックを用いた仮想的なドラム演奏を実現するため、2つのスティック部10A,10Bを備えることとしているが、スティック部の数は、これに限られない。例えば、スティック部の数を1つとしたり、3つ以上としてもよい。なお、以下では、スティック部10A,10Bを個々に区別する必要がない場合には、両者を総称して「スティック部10」と呼ぶ。
【0013】
スティック部10は、長手方向に延びるスティック状の演奏部材である。演奏者は、スティック部10の一端(根元側)を手に持ち、手首などを中心として振り上げたり振り下ろす動作を、演奏動作として行う。このような演奏者の演奏動作を検知するため、スティック部10の他端(先端側)には、加速度センサ及び角速度センサなどの各種センサが設けられている(後述のモーションセンサ部14)。スティック部10は、これらの各種センサにより検知された演奏動作に基づいて、センターユニット部30にノートオンイベントを送信する。
また、スティック部10の先端側には、後述するマーカー部15(
図2参照)が設けられており、撮像時にカメラユニット部20がスティック部10の先端を判別可能に構成されている。
【0014】
カメラユニット部20は、光学式の撮像装置として構成され、スティック部10を保持して演奏動作を行う演奏者を被写体として含む空間(以下、「撮像空間」と呼ぶ)を、所定のフレームレートで撮像し、動画像のデータとして出力する。カメラユニット部20は、撮像空間内における発光中のマーカー部15の位置座標を特定し、当該位置座標を示すデータ(以下、「位置座標データ」と呼ぶ)をセンターユニット部30に送信する。
【0015】
センターユニット部30は、スティック部10からノートオンイベントを受信すると、受信時のマーカー部15の位置座標データに応じて、所定の楽音を発音する。具体的には、センターユニット部30は、カメラユニット部20の撮像空間に対応付けて、
図1(2)に示す仮想ドラムセットDの位置座標データを記憶しており、当該仮想ドラムセットDの位置座標データと、ノートオンイベント受信時のマーカー部15の位置座標データとに基づいて、スティック部10が仮想的に打撃した楽器を特定し、当該楽器に対応する楽音を発音する。
【0016】
次に、このような本実施形態の演奏装置1の構成について具体的に説明する。
【0017】
[演奏装置1の構成]
初めに、
図2〜
図5を参照して、本実施形態の演奏装置1の各構成要素、具体的には、スティック部10、カメラユニット部20及びセンターユニット部30の構成について説明する。
【0018】
[スティック部10の構成]
図2は、スティック部10のハードウェア構成を示すブロック図である。
図2に示すように、スティック部10は、CPU11(Central Processing Unit)と、ROM(Read Only Memory)12と、RAM(Random Access Memory)13と、モーションセンサ部14と、マーカー部15と、データ通信部16と、スイッチ操作検出回路17と、を含んで構成される。
【0019】
CPU11は、スティック部10全体の制御を実行し、例えば、モーションセンサ部14から出力されるセンサ値に基づいて、スティック部10の姿勢の検知、ショット検出及びアクション検出に加え、マーカー部15の発光・消灯などの制御を実行する。このとき、CPU11は、マーカー特徴情報をROM12から読み出し、当該マーカー特徴情報に従い、マーカー部15の発光制御を実行する。また、CPU11は、データ通信部16を介して、センターユニット部30との間の通信制御を実行する。
【0020】
ROM12は、CPU11により各種処理が実行されるための処理プログラムを格納する。また、ROM12は、マーカー部15の発光制御に用いるマーカー特徴情報を格納する。マーカー特徴情報とは、スティック部10Aのマーカー部15(以下、「第1マーカー」と適宜呼ぶ)と、スティック部10Bのマーカー部15(以下、「第2マーカー」と適宜呼ぶ)とを区別するための情報である。マーカー特徴情報には、例えば、発光時の形状、大きさ、色相、彩度、あるいは輝度に加え、発光時の点滅スピードなどを用いることができる。
ここで、スティック部10AのCPU11及びスティック部10BのCPU11は、スティック部10A、10Bに夫々設けられたROM12から、夫々異なるマーカー特徴情報を読み出し、夫々のマーカーの発光制御を実行する。
【0021】
RAM13は、モーションセンサ部14が出力した各種センサ値など、処理において取得され又は生成された値を格納する。
【0022】
モーションセンサ部14は、スティック部10の状態を検知、すなわち、演奏者によりスティック部10で仮想的な楽器を打撃する等の所定の操作が行われたことを検出するための各種センサであり、所定のセンサ値を出力する。ここで、モーションセンサ部14を構成するセンサとしては、例えば、加速度センサ、角速度センサ及び磁気センサなどを用いることができる。
【0023】
図3は、スティック部10の斜視図であり、外部にはスイッチ部171とマーカー部15が配置されている。
演奏者は、スティック部10の一端(根元側)を保持し、手首などを中心とした振り上げ振り下ろし動作を行うことで、スティック部10に対して運動を生じさせる。その際にこの運動に応じたセンサ値がモーションセンサ部14から出力されるようになっている。
【0024】
モーションセンサ部14からのセンサ値を受け付けたCPU11は、演奏者が持っているスティック部10の状態を検知する。一例としては、CPU11は、スティック部10による仮想的な楽器の打撃タイミング(以下、「ショットタイミング」とも呼ぶ)を検知する。ショットタイミングは、スティック部10が振り下ろされてから停止される直前のタイミングであり、スティック部10にかかる振り下ろし方向とは逆向きの加速度の大きさがある閾値を超えたタイミングである。
【0025】
図2に戻り、マーカー部15は、スティック部10の先端側に設けられた発光体であり、例えばLEDなどで構成される。マーカー部15は、CPU11からの制御に応じて発光及び消灯する。具体的には、マーカー部15は、CPU11によってROM12から読み出されたマーカー特徴情報に基づいて発光する。このとき、スティック部10Aのマーカー特徴情報と、スティック部10Bのマーカー特徴情報とは異なるため、カメラユニット部20は、スティック部10Aのマーカー部15(第1マーカー)の位置座標と、スティック部10Bのマーカー部15(第2マーカー)の位置座標とを個々に区別し取得することができる。
【0026】
データ通信部16は、少なくともセンターユニット部30との間で所定の無線通信を行う。データ通信部16は、任意の方法で所定の無線通信を行うこととしてよく、本実施形態では、赤外線通信によりセンターユニット部30との間での無線通信を行う。なお、データ通信部16は、カメラユニット部20との間で無線通信を行うこととしてもよい。また、スティック部10Aのデータ通信部16と、スティック部10Bのデータ通信部16との間で無線通信を行うこととしてもよい。
【0027】
スイッチ操作検出回路17は、スイッチ171と接続され、当該スイッチ171を介した入力情報を受け付ける。入力情報としては、例えば、後述するセットレイアウト情報を直接指定するためのトリガーとなる信号情報などが含まれる。
【0028】
[カメラユニット部20の構成]
スティック部10の構成についての説明は、以上である。続いて、図を参照して、カメラユニット部20の構成について説明する。
図4は、カメラユニット部20のハードウェア構成を示すブロック図である。
カメラユニット部20は、CPU21と、ROM22と、RAM23と、イメージセンサ部24と、データ通信部25と、を含んで構成される。
【0029】
CPU21は、カメラユニット部20全体の制御を実行する。CPU21は、例えば、イメージセンサ部24が検出したマーカー部15の位置座標データ及びマーカー特徴情報に基づいて、スティック部10A、10Bのマーカー部15(第1マーカー及び第2マーカー)の夫々の位置座標(Mxa,Mya)、(Mxb,Myb)を算出し、夫々の算出結果を示す位置座標データを出力する制御を実行する。また、CPU21は、データ通信部25を介して、算出した位置座標データなどをセンターユニット部30に送信する通信制御を実行する。
【0030】
ROM22は、CPU21により各種処理が実行されるための処理プログラムを格納する。RAM23は、イメージセンサ部24が検出したマーカー部15の位置座標データなど、処理において取得され又は生成された値を格納する。また、RAM23は、センターユニット部30から受信したスティック部10A、10Bの夫々のマーカー特徴情報も併せて格納する。
【0031】
イメージセンサ部24は、例えば、光学式のカメラであり、スティック部10を持って演奏動作を行う演奏者の動画を所定のフレームレートで撮像する。また、イメージセンサ部24は、フレームごとの撮像データをCPU21に出力する。なお、イメージセンサ部24は、撮像画像内におけるスティック部10のマーカー部15の位置座標の特定を、CPU21に代わって行うこととしてもよい。また、イメージセンサ部24は、撮像したマーカー特徴情報に基づくスティック部10A、10Bのマーカー部15(第1マーカー及び第2マーカー)の夫々の位置座標を算出についても、CPU21に代わって行うこととしてもよい。
【0032】
データ通信部25は、少なくともセンターユニット部30との間で所定の無線通信(例えば、赤外線通信)を行う。なお、データ通信部16は、スティック部10との間で無線通信を行うこととしてもよい。
【0033】
[センターユニット部30の構成]
カメラユニット部20の構成についての説明は、以上である。続いて、
図5を参照して、センターユニット部30の構成について説明する。
図5は、センターユニット部30のハードウェア構成を示すブロック図である。
センターユニット部30は、CPU31と、ROM32と、RAM33と、スイッチ操作検出回路34と、表示回路35と、音源装置36と、データ通信部37と、を含んで構成される。
【0034】
CPU31は、センターユニット部30全体の制御を実行する。CPU31は、例えば、スティック部10から受信したショット検出及びカメラユニット部20から受信したマーカー部15の位置座標と、複数の仮想的な楽器夫々の中心位置座標との距離に基づいて、発音対象の仮想的な楽器を特定し、当該楽器の楽音を発音する制御などを実行する。また、CPU31は、データ通信部37を介して、スティック部10及びカメラユニット部20との間の通信制御を実行する。
【0035】
ROM32は、CPU31の実行する各種処理の処理プログラムを格納する。また、ROM32は、仮想平面上に設けられる複数の仮想的な楽器夫々について、当該仮想的な楽器の中心位置座標と、サイズと、音色とを関連付けたセットレイアウト情報を記憶する。仮想的な楽器としては、例えば、フルート、サックス、トランペットなどの管楽器、ピアノなどの鍵盤楽器、ギターなどの弦楽器、バスドラム、ハイハット、スネア、シンバル、タムなどの打楽器等があげられる。
【0036】
例えば、
図6にセットレイアウト情報として示すように、1つのセットレイアウト情報に、仮想的な楽器の情報として、第1パッド〜第nパッドまでのn個のパッド情報が関連付けられている。各パッド情報には、パッドの中心位置座標(後述する仮想平面における位置座標(Cx,Cy))、パッドのサイズデータ(仮想パッドの形状、径、縦方向の長さ、横方向の長さなど)、及びパッドに対応する音色(波形データ)などが対応付けられて格納されている。パッドに対応する音色は、パッドの中心位置からの距離に応じて複数格納されている。例えば、
図6に示される音色には、パッドの中心位置からの距離に応じた音色が複数格納されている。なお、セットレイアウト情報は、複数種類存在していてもよい。
【0037】
ここで、
図7を参照して、具体的なセットレイアウトについて説明する。
図7は、センターユニット部30のROM32に格納されたセットレイアウト情報が示す概念を仮想平面上で可視化した図である。
【0038】
図7は、6個の仮想パッド81が仮想平面上に配置されている様子を示しており、各仮想パッド81として、6つのパッドが配置されている。これら6つの仮想パッド81は、パッドに関連付けられている位置座標(Cx,Cy)とサイズデータとに基づいて配置されている。さらにまた、各仮想パッド81には、各仮想パッド81の中心位置からの距離に応じた音色が対応付けられている。
【0039】
図5に戻って、RAM33は、スティック部10から受信したスティック部10の状態(ショット検出など)、カメラユニット部20から受信したマーカー部15の位置座標など、処理において取得され又は生成された値を格納する。
これにより、CPU31は、ショット検出時(すなわち、ノートオンイベント受信時)にマーカー部15の位置座標に対応する仮想パッド81に関連付けられている音色(波形データ)を、ROM32に格納されたセットレイアウト情報から読み出して、演奏者の演奏動作に応じた楽音の発音を制御する。
【0040】
具体的には、CPU31は、複数の仮想パッド81夫々について、当該仮想パッド81の中心位置座標と、マーカー部15の位置座標との距離を、仮想パッドに関連付けられたサイズ(縦方向の長さ、横方向の長さ)が大きいほど短くなるように調整を行って算出する。続いて、CPU31は、算出された距離のうち、最も短い距離に対応する仮想パッド81を出音対象の仮想パッド81に特定する。続いて、CPU31は、セットレイアウト情報を参照して、出音対象の仮想パッド81に対応する音色を、当該仮想パッド81の中心位置座標とマーカー部15の位置座標との距離に基づいて特定する。
【0041】
なお、CPU31は、最も短い距離が、RAM33に記憶され、予め定められている所定の閾値より大きい場合、出音対象を特定しない。すなわち、CPU31は、最も短い距離が、予め定められている所定の閾値以下である場合に、出音対象の仮想パッド81を特定する。なお、所定の閾値は、ROM32に記憶されており、演奏時にCPU31によってROM32から読み出されてRAM33に格納されるものとする。
【0042】
スイッチ操作検出回路34は、スイッチ341と接続され、当該スイッチ341を介した入力情報を受け付ける。入力情報としては、例えば、発音する楽音の音量や発音する楽音の音色の変更、表示装置351の表示の切り替え、所定の閾値の調整、仮想パッド81の中心位置座標の変更などが含まれる。
また、表示回路35は、表示装置351と接続され、表示装置351の表示制御を実行する。
【0043】
音源装置36は、CPU31からの指示にしたがって、ROM32から波形データを読み出して、楽音データを生成すると共に、楽音データをアナログ信号に変換し、図示しないスピーカから楽音を発音する。
また、データ通信部37は、スティック部10及びカメラユニット部20との間で所定の無線通信(例えば、赤外線通信)を行う。
【0044】
[演奏装置1の処理]
以上、演奏装置1を構成するスティック部10、カメラユニット部20及びセンターユニット部30の構成について説明した。続いて、
図8〜
図11を参照して、演奏装置1の処理について説明する。
【0045】
[スティック部10の処理]
図8は、スティック部10が実行する処理(以下、「スティック部処理」と呼ぶ)の流れを示すフローチャートである。
図8を参照して、スティック部10のCPU11は、モーションセンサ部14からモーションセンサ情報としてのセンサ値を読み出すと共に、センサ値をRAM13に格納する(ステップS1)。その後、CPU11は、読み出したモーションセンサ情報に基づいて、スティック部10の姿勢検知処理を実行する(ステップS2)。姿勢検知処理では、CPU11は、モーションセンサ情報に基づいて、スティック部10の姿勢、例えば、スティック部10のロール角及びピッチ角などを算出する。
【0046】
続いて、CPU11は、モーションセンサ情報に基づいて、ショット検出処理を実行する(ステップS3)。演奏者は、スティック部10を用いて演奏を行う場合において、仮想的な楽器(例えば、仮想的なドラム)があるとして、現実の楽器(例えば、ドラム)がある場合の演奏動作と同様の演奏動作を行う。演奏者は、このような演奏動作として、まずスティック部10を振り上げ、それから仮想的な楽器に向かって振り下ろす。そして、演奏者は、仮想的な楽器にスティック部10を打撃した瞬間に楽音が発生することを想定し、スティック部10を仮想的な楽器に打撃する寸前にスティック部10の動作を止めようとする力を働かせる。これに対して、CPU11は、モーションセンサ情報(例えば、加速度センサのセンサ合成値)に基づいて、スティック部10の動作を止めようとする動作を検出する。
【0047】
すなわち、本実施形態においては、ショット検出のタイミングは、スティック部10が振り下ろされてから停止される直前のタイミングであり、スティック部10にかかる振り下ろし方向とは逆向きの加速度の大きさがある閾値を超えたタイミングである。本実施形態では、このショット検出のタイミングを発音タイミングとする。
スティック部10のCPU11は、スティック部10の動作を止めようとする動作を検出して発音タイミングが到来したと判断すると、ノートオンイベントを生成し、センターユニット部30に送信する。ここで、CPU11は、ノートオンイベントを生成する場合に、モーションセンサ情報(例えば、加速度センサのセンサ合成値の最大値)に基づいて、発音する楽音の音量を決定し、ノートオンイベントに含ませるようにしてもよい。
【0048】
続いて、CPU11は、ステップS2及びステップS3の処理で検出した情報、すなわち、姿勢情報及びショット情報を、データ通信部16を介してセンターユニット部30に送信する(ステップS4)。このとき、CPU11は、スティック識別情報と対応付けて、姿勢情報及びショット情報をセンターユニット部30に送信する。
続いて、CPU11は、処理をステップS1に戻す。これにより、ステップS1からステップS4の処理が繰り返される。
【0049】
[カメラユニット部20の処理]
図9は、カメラユニット部20が実行する処理(以下、「カメラユニット部処理」と呼ぶ)の流れを示すフローチャートである。
図9を参照して、カメラユニット部20のCPU21は、イメージデータ取得処理を実行する(ステップS11)。この処理では、CPU21は、イメージセンサ部24からイメージデータを取得する。
【0050】
続いて、CPU21は、第1マーカー検出処理(ステップS12)及び第2マーカー検出処理(ステップS13)を実行する。これらの処理では、CPU21は、イメージセンサ部24が検出した、スティック部10Aのマーカー部15(第1マーカー)及びスティック部10Bのマーカー部15(第2マーカー)の位置座標、サイズ、角度などのマーカー検出情報を取得し、RAM23に格納する。このとき、イメージセンサ部24は、発光中のマーカー部15について、マーカー検出情報を検出する。
【0051】
続いて、CPU21は、ステップS12及びステップS13で取得したマーカー検出情報を、データ通信部25を介してセンターユニット部30に送信し(ステップS14)、ステップS11に処理を移行させる。これにより、ステップS11からステップS14の処理が繰り返される。
【0052】
[センターユニット部30の処理]
図10は、センターユニット部30が実行する処理(以下、「センターユニット部処理」と呼ぶ)の流れを示すフローチャートである。
図10を参照して、センターユニット部30のCPU31は、カメラユニット部20から、第1マーカー及び第2マーカー夫々のマーカー検出情報を受信し、RAM33に格納する(ステップS21)。また、CPU31は、スティック部10A、10Bの夫々から、スティック識別情報と対応付けられた姿勢情報及びショット情報を受信し、RAM33に格納する(ステップS22)。さらに、CPU31は、スイッチ341の操作により入力された情報を取得する(ステップS23)。
【0053】
続いて、CPU31は、ショットありか否かを判断する(ステップS24)。この処理では、CPU31は、スティック部10からノートオンイベントを受信したか否かにより、ショットの有無を判断する。このとき、ショットありと判断した場合には、CPU31は、ショット情報処理を実行し(ステップS25)、その後ステップS21に処理を移行させる。ショット情報処理については、
図11を参照しながら詳述する。他方、ショットなしと判断した場合には、CPU31は、ステップS21に処理を移行する。
【0054】
図11は、センターユニット部30のショット情報処理の流れを示すフローチャートである。
図11を参照して、センターユニット部30のCPU31は、各スティック部10の処理が終了したか判断する(ステップS251)。この処理では、CPU31は、スティック部10A及びスティック部10Bの双方からノートオンイベントを同時に受信している場合に、双方のノートオンイベントに対応する処理が完了しているか判断する。このとき、CPU31は、各ノートオンイベントに対応する処理が終了したと判断した場合には、リターン処理を行い、各マーカーの処理が終了していないと判断した場合には、ステップS252に処理を移行する。双方のノートオンイベントを受信している場合、CPU31は、スティック部10Aに対応する処理から順に行うものとするが、これに限られず、スティック部10Bに対応する処理から順に行うようにしてもよい。
【0055】
続いて、CPU31は、RAM33に読み出されたセットレイアウト情報に含まれている複数の仮想パッド81の中心位置座標夫々と、マーカー検出情報に含まれるスティック部10のマーカー部15の位置座標との距離Li(ただし、1≦i≦n)を算出する(ステップS252)。
【0056】
セットレイアウト情報に関連付けられているn個のパッドのうち、i番目(ただし、1≦i≦n)のパッドの中心位置座標を(Cxi,Cyi)、横サイズをSxi、縦サイズをSyi、マーカー部15の位置座標を(Mxa,Mya)、中心位置座標とマーカー部15の位置座標との横方向の距離をLxi、縦方向の距離をLyiとすると、CPU31は、Lxiを、以下に示される式(1)によって算出し、Lyiを、以下に示される式(2)によって算出する。
【0057】
Lxi=(Cxi−Mxa)*(K/Sxi)・・・(1)
Lyi=(Cyi−Mya)*(K/Syi)・・・(2)
ここで、Kは、サイズの重み付け係数であり、各パーツの計算において共通の定数である。なお、この重み付け係数Kは、横方向の距離Lxiを算出する場合と、縦方向Lyiの距離を算出する場合とで異なるように設定してもよい。
【0058】
すなわち、CPU31は、横方向の距離Lxi、縦方向の距離Lyiを算出した後、算出された夫々の距離に対して、Sxi,Syiで除算することにより、仮想パッド81のサイズが大きいほど距離が小さくなるように調整を行う。
【0059】
続いて、CPU31は、算出した横方向の距離Lxi及び縦方向の距離Lyiを用いて、以下に示される式(3)によって距離Liを算出する。
【0060】
Li=((Lxi*Lxi)+(Lyi*Lyi))^(1/2)・・・(3)
ここで、演算記号「^」は、指数乗を行うものである。すなわち、式(3)における「^1/2」は、1/2乗を示すものである。
【0061】
続いて、CPU31は、ステップS252において算出された、複数の距離Liに基づいて、最も距離が短いパッドを特定する(ステップS253)。続いて、CPU31は、特定された仮想パッド81に対応する距離が、予め定められている所定の閾値以下か否かを判断する(ステップS254)。CPU31は、予め定められている所定の閾値以下と判断した場合には、ステップS255に処理を移行し、予め定められている所定の閾値より長いと判断した場合には、ステップS251に処理を移行する。
【0062】
続いて、CPU31は、特定された仮想パッド81に対応する距離Liが、予め定められている閾値より短い場合に、当該距離Liに対応する仮想パッド81の音色(波形データ)を特定する(ステップS255)。すなわち、CPU31は、RAM33に読み出されたセットレイアウト情報を参照して、特定された仮想パッド81の音色(波形データ)のうち、算出された距離に対応する音色(波形データ)を選択し、ノートオンイベントに含まれる音量データと共に音源装置36に出力する。例えば、特定された仮想パッド81がシンバルに対応付けられている場合、CPU31は、距離Liが第1の距離の場合、シンバルのカップエリア(中心部)に対応する音色を選択する。また、CPU31は、距離Liが第1の距離より長い第2の距離の場合、ライドエリアに対応する音色を選択する。また、CPU31は、距離Liが第2の距離より長い第3の距離の場合、クラッシュエリア(エッジ部)に対応する音色を選択する。音源装置36は、受け取った波形データに基づいて該当する楽音を発音する(ステップS256)。
【0063】
以上、本実施形態の演奏装置1の構成及び処理について説明した。
本実施形態においては、演奏装置1のCPU31は、複数の仮想パッド81夫々の中心位置座標と、検出された位置座標との距離を、仮想パッド81のサイズが大きいほど距離が短くなるように調整を行って算出する。そして、CPU31は、算出された距離のうち、最も短い距離に対応する仮想パッド81を出音対象の仮想的な楽器に特定し、セットレイアウト情報を参照して、出音対象の仮想パッド81に対応する音色を特定する。
したがって、演奏装置1は、演奏者が操作したスティック部10のマーカー部15が、仮想パッド81のサイズに収まらない範囲に含まれない場合であっても、マーカー部15の位置に近い仮想パッド81を選択し、発音することができる。よって、演奏装置1は、操作に不慣れな演奏者であっても、演奏者が意図した演奏動作を検出して発音することができる。
【0064】
また、本実施形態においては、演奏装置1のCPU31は、複数の仮想パッド81夫々の中心位置座標と、検出された位置座標との、仮想平面における横方向の距離及び縦方向の距離を算出し、算出された横方向の距離及び縦方向の距離について、仮想パッド81のサイズが大きいほど夫々の距離が短くなるように調整を行い、調整された横方向の距離及び縦方向の距離に基づいて中心位置座標とCPU21により検出された位置座標との距離とを算出する。
したがって、演奏装置1は、横方向の距離及び縦方向の距離夫々の調整を行うことができるので、単に距離そのものを調整する場合に比べて細かく調整を行うことができる。
【0065】
また、本実施形態においては、ROM32は、複数の仮想パッド81夫々について、中心位置座標からの距離と、当該距離に対応する音色とを関連付けた情報をセットレイアウト情報として記憶し、CPU31は、ROM32に記憶されたセットレイアウト情報を参照して、発音対象に特定された仮想パッド81に対応する距離に関連付けられた音色を発音する音色として特定する。
したがって、演奏装置1は、仮想パッド81の中心位置からの距離に応じて異なる音色を発音することができるので、例えば、楽器中心部の音と外縁の音とに違いを出してよりリアリティのある音を発音することができる。
【0066】
また、本実施形態においては、CPU31は、算出された距離のうち、最も短い距離が所定の閾値以下である場合、当該最も短い距離に対応する仮想パッド81を出音対象の仮想パッド81に特定する。
したがって、演奏装置1は、演奏者のスティック部10の操作位置が、仮想パッド81の位置から著しく外れた場合に発音しないように制御することができる。
【0067】
また、本実施形態においては、演奏装置1のスイッチ操作検出回路34は、演奏者の操作に応じて所定の閾値の調整を設定する。
したがって、演奏装置1は、例えば、演奏者の操作に応じて、所定の閾値を設定して、発音するか否かの精度を変更することができる。例えば、演奏者が初級者の場合に発音するか否かの精度を低く設定したり、演奏者が上級者の場合に発音するか否かの精度を高く設定したりすることができる。
【0068】
また、本実施形態においては、演奏装置1のスイッチ操作検出回路34は、演奏者の操作に応じて仮想パッド81の中心位置座標を設定する。
したがって、演奏装置1は、演奏者から、中心位置座標の調整を設定するだけで、仮想パッド81の位置を変更することができる。よって、演奏装置1は、仮想平面上に格子を設け、各格子に対して仮想パッド81を発音する位置を定義する場合に比べて簡易的に仮想パッド81の位置を設定することができる。
【0069】
以上、本発明の実施形態について説明したが、実施形態は例示に過ぎず、本発明の技術的範囲を限定するものではない。本発明はその他の様々な実施形態を取ることが可能であり、さらに、本発明の要旨を逸脱しない範囲で、省略や置換など種々の変更を行うことができる。これら実施形態やその変形は、本明細書などに記載された発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【0070】
上記実施形態では、仮想的な打楽器として仮想ドラムセットD(
図1参照)を例にとって説明したが、これに限られるものではなく、本発明は、スティック部10の振り下ろし動作で楽音を発音する木琴など他の楽器に適用することができる。
【0071】
また、上記実施形態でスティック部10、カメラユニット部20及びセンターユニット部30で実行することとしている処理のうちの任意の処理は、他のユニット(スティック部10、カメラユニット部20及びセンターユニット部30)で実行することとしてもよい。例えば、スティック部10のCPU11が実行することとしているショット検出及びロール角の算出などの処理を、センターユニット部30が実行することとしてもよい。
【0072】
例えば、CPU31は、最も短い距離に対応した仮想パッド81の特定状況に応じて、所定の閾値を自動的に調整するようにしてもよい。例えば、最も短い距離に対応した仮想パッド81の特定率が高い演奏者については、所定の閾値を小さく設定し、特定率が低い演奏者については、所定の閾値を大きく設定するようにしてもよい。
【0073】
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。
換言すると、
図2〜5の構成は例示に過ぎず、特に限定されない。すなわち、上述した一連の処理を全体として実行できる機能が演奏装置1に備えられていれば足り、この機能を実現するためにどのような構成を構築するのかは特に
図2〜5の例に限定されない。
【0074】
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、コンピュータ等にネットワークや記録媒体からインストールされる。
このコンピュータは、専用のハードウェアに組み込まれているコンピュータであってもよい。また、コンピュータは、各種のプログラムをインストールすることで、各種の機能を実行することが可能なコンピュータであってもよい。
【0075】
以下に、本願の出願当初の特許請求の範囲に記載された発明を付記する。
(付記)
[請求項1]
演奏者に保持される演奏部材と、
前記演奏部材で所定の操作が行われたことを検出する操作検出手段と、
前記演奏部材を被写体とする撮像画像を撮像する撮像手段と、
撮像された前記撮像画像平面上における前記演奏部材の位置座標を検出する位置検出手段と、
前記撮像画像平面上に設けられる複数の仮想的な楽器夫々について、当該仮想的な楽器の中心位置座標及びサイズを含むレイアウト情報を記憶する記憶手段と、
前記操作検出手段により前記所定の操作が行われたことが検出された場合に、前記位置検出手段により検出された位置座標と前記各仮想的な楽器の中心位置座標との間の距離の夫々を、対応する前記各仮想的な楽器のサイズに基づいて算出する距離算出手段と、
前記距離算出手段により算出された各距離のうち最も短い距離に対応する仮想的な楽器を特定する楽器特定手段と、
前記楽器特定手段により特定された仮想的な楽器に対応する楽音の発音を指示する発音指示手段と、
を備える演奏装置。
[請求項2]
前記距離算出手段は、前記対応する各仮想的な楽器のサイズが大きいほど、前記算出される距離が短くなるように調整する、請求項1に記載の演奏装置。
[請求項3]
前記発音指示手段は、前記楽器特定手段により特定される仮想的な楽器及び前記最も短い距離に基づいて決定される音色の楽音の発音を指示する、請求項1又は2に記載の演奏装置。
[請求項4]
前記楽器特定手段は、前記距離算出手段により算出された距離のうち、最も短い距離が所定の閾値以下である場合のみ、対応する仮想的な楽器を特定する、請求項1から3のいずれか1項に記載の演奏装置。
[請求項5]
前記所定の閾値を設定する閾値設定手段をさらに備える、請求項4に記載の演奏装置。
[請求項6]
前記仮想的な楽器夫々の中心位置座標を設定する中心位置設定手段をさらに備える、請求項1に記載の演奏装置。
[請求項7]
演奏者に保持され、所定の操作が行われたことを検出する演奏部材と、前記演奏部材を被写体とする撮像画像を撮像すると共に、前記撮像画像平面上における前記演奏部材の位置座標を検出する撮像装置と、前記撮像画像平面上に設けられる複数の仮想的な楽器夫々について、当該仮想的な楽器の中心位置座標及びサイズを含むレイアウト情報を備える発音装置と、を備える演奏装置として用いられるコンピュータに、
前記演奏部材で所定の操作が行われたことが検出された場合に、前記複数の仮想的な楽器夫々の中心位置座標と、検出された前記演奏部材の位置座標との間の距離夫々を、対応する各仮想的な楽器のサイズに基づいて算出する距離算出ステップと、
前記距離算出ステップにおいて算出された各距離のうち最も短い距離に対応する仮想的な楽器を特定する楽器特定ステップと、
前記特定された仮想的な楽器に対応する楽音の発音を指示する発音指示ステップと、
を実行させるプログラム。