JP2008191240A - 音データ生成装置およびプログラム - Google Patents

音データ生成装置およびプログラム Download PDF

Info

Publication number
JP2008191240A
JP2008191240A JP2007023102A JP2007023102A JP2008191240A JP 2008191240 A JP2008191240 A JP 2008191240A JP 2007023102 A JP2007023102 A JP 2007023102A JP 2007023102 A JP2007023102 A JP 2007023102A JP 2008191240 A JP2008191240 A JP 2008191240A
Authority
JP
Japan
Prior art keywords
virtual
sound data
virtual space
force
particles
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.)
Granted
Application number
JP2007023102A
Other languages
English (en)
Other versions
JP4858777B2 (ja
Inventor
Koichiro Eto
浩一郎 江渡
Noriaki Watanabe
訓章 渡辺
Akihiko Taniguchi
暁彦 谷口
Migaku Nagai
琢 永井
Kiyohisa Sugii
清久 杉井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
Yamaha Corp
National Institute of Advanced Industrial Science and Technology AIST
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yamaha Corp, National Institute of Advanced Industrial Science and Technology AIST filed Critical Yamaha Corp
Priority to JP2007023102A priority Critical patent/JP4858777B2/ja
Publication of JP2008191240A publication Critical patent/JP2008191240A/ja
Application granted granted Critical
Publication of JP4858777B2 publication Critical patent/JP4858777B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

【課題】コンピュータを用いて、一定の法則に従いながらもランダム性を有する自然な音を生成する。
【解決手段】仮想空間100には、障害物であるサウンドウォール160が設定されている。また、傾きを検知する角度センサから受信した情報に従って、仮想空間100における重力の向きや大きさはリアルタイムに制御される。放り込みエリア110により多数の仮想粒子200がランダムに仮想空間100内に放出されると、放出された各粒子は上述した各種条件および仮想粒子200同士の相互作用(衝突)に従って運動する。その結果、設定された条件に従いながらも試行ごとに異なる仮想粒子200の運動が引き起こされる。仮想粒子200とサウンドウォール160が衝突すると、その衝突状況やサウンドウォール160の音響特性などに従って音データが生成される。
【選択図】図1

Description

本発明は、音データ生成装置およびプログラムに関する。
近年、ますますリアリティーの増した音がコンピュータにより生成されるようになっている。例えばコンピュータで「川のせせらぎ音」や「そよ風の音」など自然現象に伴う音を非常に巧妙に再現することができる(特許文献1参照)。
特開平07−140973号公報
ところで、音という自然現象を大きなスケールで見たときには、自然法則に則ったおよそ一定の現象として把握される。上記特許文献1においても、自然現象における音を模した波形データを繰り返し音声へ変換することにより音を再現している。
しかし、上述の川のせせらぎ音は多数の水分子の運動から生じるものであり、そよ風の音は空気中に存在する多数の気体分子の流れや振動から生じるものであるとの例からも明らかなように、自然界において発生する音の多くは小さなスケールで見れば多数の粒子が高頻度で相互作用を繰り返すことにより生じている。従って、その結果生成される音には「ランダム性」や「非再現性」が生まれ、それらが音に「自然らしさ」を与えていると考えられる。
一方、コンピュータにより生成される音には、上述した「ランダム性」や「非再現性」が欠如しており、例えば特許文献1に記載された技術を用いたとしても、所謂「自然らしさ」が感じられないといった問題が生じていた。
本発明は上述の課題に鑑みてなされたものであり、多数の粒子の挙動を巧みにコントロールして自然な音を生成する音データ生成装置およびプログラムを提供することを目的とする。
本発明に係る音データ生成装置は、仮想空間を設定する仮想空間設定手段と、前記仮想空間内で移動可能な複数の仮想粒子を設定する仮想粒子設定手段と、前記仮想空間内において、前記仮想粒子の移動に影響を与える規制要素を生成する規制要素生成手段と、操作者によって操作される操作手段と、前記操作手段の操作内容に応じて操作信号を生成する操作信号生成手段と、前記操作信号生成手段が生成した操作信号に基づいて前記仮想空間に働く力を設定する力設定手段と、前記各仮想粒子の軌道を、前記力設定手段が設定した力および前記規制要素による前記仮想粒子の移動への影響および前記各仮想粒子同士の衝突を含めて演算する軌道演算手段と、前記軌道演算手段の演算に、前記仮想粒子と前記規制要素の相互作用の状態に基づいて音データを生成する音データ生成手段とを具備することを特徴とする。
なお、前記操作信号生成手段は、前記操作手段の基準姿勢に対する傾きに対応する検出信号を出力する角度センサと、前記角度センサの検出信号に応じて力の向きと大きさを示す力指示信号を生成する信号生成手段を有し、前記力設定手段は、前記力指示信号に基づいて前記仮想空間に働く力を設定しても良い。その場合、前記力は、重力、静電気力、磁力および流体抵抗の少なくともいずれか一つであっても良い。
また、前記音データ生成手段は、前記仮想粒子と前記規制要素の相互作用状態に基づく音データ生成に代えて、または前記仮想粒子と前記規制要素の相互作用状態に基づく音データ生成と併せて、前記軌道演算手段の演算に従い前記仮想粒子同士の相互作用に基づいて音データを生成しても良い。
本発明に係るプログラムは、コンピュータに、仮想空間を設定する仮想空間設定段階と、前記仮想空間内で移動可能な複数の仮想粒子を設定する仮想粒子設定段階と、前記仮想空間内において、前記仮想粒子の移動に影響を与える規制要素を生成する規制要素生成段階と、操作者による操作内容に応じて操作信号を生成する操作信号生成段階と、前記操作信号生成段階において生成された操作信号に基づいて前記仮想空間に働く力を設定する力設定段階と、前記各仮想粒子の軌道を、前記力設定段階において設定された力および前記規制要素による前記仮想粒子の移動への影響および前記各仮想粒子同士の衝突を含めて演算する軌道演算段階と、前記軌道演算段階の演算に、前記仮想粒子と前記規制要素の相互作用の状態に基づいて音データを生成する音データ生成段階とを実行させる。
本発明に係る音データ生成装置またはプログラムによれば、多数の粒子の挙動を巧みにコントロールして自然な音を生成することができる。
(A;本発明の概略説明)
本発明に係る音データ生成装置は、コンピュータの演算によって形成される仮想空間の中に多数の仮想粒子を放出させるとともに、仮想粒子の運動を規制する規制要素を仮想空間内に配置し、仮想粒子と規制要素の相互作用(衝突状況など)や仮想粒子同士の相互作用を演算し、その演算結果に基づいて音データを生成するものである。
図1は、音データ生成処理におけるモニタ表示の一例である。仮想空間100には、仮想の障害物(規制要素)であるサウンドウォール160など、仮想粒子200の運動に影響を与える条件が設定されている。また、音データ生成装置には角度センサが接続されており、該角度センサの傾きに関する情報に従って、仮想粒子200が受ける加速度などの空間特性が設定される。
仮想粒子200は放り込みエリア110より仮想空間100内に放出される。放出された仮想粒子200の各々は、上述した規制要素や仮想粒子200同士の相互作用(衝突など)、および設定された空間特性などに従って運動する。その結果、仮想空間100内で仮想粒子200の複雑な運動が引き起こされる。そして、運動する個々の仮想粒子200がサウンドウォール160と相互作用すると、該相互作用に基づいて音データが生成される。
(B;構成)
以下、図面を参照しつつ、本発明を実施する際の最良の形態について説明する。
(B−1;全体構成)
図2は、本発明に係る音データ生成システム1の全体構成を示す図である。音データ生成システム1は、プログラム実行装置としての音データ生成装置10と、マウス20と、角度センサ50と、モニタ30とを有する。
(B−2;各装置の構成)
まず、音データ生成装置10のハードウェア構成について図3を参照して説明する。
音データ生成装置10は、制御部101、光ディスク再生部102、ROM(Read Only Memory)103、RAM(Random Access Memory)104、I/O部105を有する。それら各部はバス109を介して互いに接続されている。
図に示す制御部101は、例えばCPU(Central Processing Unit)であり、ROM103やCD−ROM・DVD−ROM等の光ディスクから読み出された各種制御プログラムを実行することにより、音声および映像の信号処理や各部の制御を行う。
光ディスク再生部102は、CD−ROM・DVD−ROM等の光ディスクからデータを読み取る。
ROM103は、制御部101が実行する制御プログラムを格納している。
RAM104は、制御部101によってワークエリアとして利用される。
I/O部105は、音データ生成装置10と接続された機器との信号の送受信を仲介する。具体的には、マウス20および角度センサ50から操作内容を示す信号を受取り制御部101に出力すると共に、制御部101から受取った音声データおよび映像データをモニタ30に出力する。
以上が音データ生成装置10の構成である。
次に、マウス20の構成について図4を用いて説明する。マウス20は、本体21の上面(図中(a)参照)にはボタン22を、下面(図中(b)参照)には移動検知手段24を有する。また、マウス20は、音データ生成装置10に通信ケーブル23にて接続されており、操作内容を示すデータが通信ケーブル23を介して音データ生成装置10に送信される。
マウス20は、本体21が移動されると移動検知手段24が移動方向と移動量を示す操作信号を生成し、生成した操作信号を通信ケーブル23を介して出力する。該信号を受取った制御部101は、操作信号に基づいてモニタ30の画面上のカーソルを移動する処理を行う。
また、ボタン22が押下(以下、クリック)されると、マウス20はクリック操作がなされたことを示すクリック操作信号を生成し、通信ケーブル23を介して出力する。クリック操作信号を受取った制御部101は、クリック時にカーソルが位置していた座標を認識し、当該座標に表示されているアイコンなどに対して選択処理が行われたと認識する。
また、ボタン22を押下した状態で本体21が移動され、その後ボタン22の押下を解除する操作(以下、ドラッグ)がなされると、ボタン22が押下されていた間の本体21の移動方向と移動量、およびドラッグ操作がなされたことを示す信号を生成し、通信ケーブル23を介して出力する。該信号を受取った制御部101は、ドラッグ操作により選択された画面上の領域や該領域に含まれるアイコンなどに対して選択処理が行われたと認識する。
次に、モニタ30の構成について説明する。モニタ30は、音データ生成装置10から受取った映像データに基づいて映像を表示する。また、モニタ30は、図2に示すように、音データ再生部30aを有し(図2参照)、音データ生成装置10から受取った音データに基づいて音声を放音する。
次に、角度センサ50の構成について、図5を用いて説明する。図5(a)に示すように、角度センサ50は、本体51とセンサ部52と信号生成部53と通信ケーブル54とを有する。センサ部52は、2軸の角度センサであり、本体51の傾きを検出して、その傾きの角度を示す角度情報を生成する。信号生成部53は、センサ部52により生成された角度情報を元にして傾きベクトルを算出し、該傾きベクトルを含む傾き情報を生成し通信ケーブル54から出力する。
図5(b)および(c)は、水平なテーブルZの上で、本体51の頂点C、Dが持ち上げられ面ABCDがテーブルZとなす角がθとなった場合の角度センサ50を、図5(a)における図面手前および左側から見た図である。また、図5(d)および(e)は、水平なテーブルZの上で、本体51の頂点A、Dが持ち上げられ面ABCDがテーブルZとなす角がΦとなった場合の角度センサ50を、それぞれ図5(a)における図面手前および左側から見た図である。
センサ部52は、面ABCDが水平に置かれている状態を基本姿勢として面ABCDの傾きを検出する。すなわち、センサ部52は、図5(b)のように面ABCDが面BCGFの面と平行に回転した角度θ、および、図5(e)のように面ABCDが面ABFEと平行に回転した角度Φを検出する。本説明においては、簡略化のため、角度θおよびΦについてそれぞれ独立して説明したが、実際の角度センサ50の動作において、面ABCDの回転には面BCGFと平行な成分と面ABFEと平行な成分の両方が含まれることから、センサ部52は、(θ、Φ)を組にした角度情報を生成し、信号生成部53に出力する。
信号生成部53は、センサ部52から受取った角度情報を元にして「傾きベクトル」を生成する。傾きベクトルとは、テーブルZを基準とした場合の鉛直下向きのベクトル(ただし、大きさ1の単位ベクトル)において、角度センサ50の頂点AからBの方向と頂点AからDの方向の成分を抽出することで生成する。例えば、図5(b)および(c)の例では、生成される傾きベクトルは(0、−sinθ)となる。また、図5(d)および(e)の例では、生成される傾きベクトルは(cosΦ、0)となる。算出された傾きベクトルを含む「傾き情報」は、通信ケーブル54を介して音データ生成装置10へ出力される。
(B−3;制御プログラムの構成)
次に、ROM103に格納された制御プログラムの構成について図6を用いて説明する。なお、制御プログラムは、音データ生成装置10の制御部101が音データを生成するために実行するオブジェクト制御プログラム、粒子運動制御プログラム、映像制御プログラム、音データ生成プログラムなどが含まれる。
オブジェクト制御プログラムは、仮想空間100内において仮想粒子200の運動に影響を与える規制要素(サウンドウォール160など)の配置などを制御する。粒子運動制御プログラムは、仮想空間100内における仮想粒子200の運動を計算する。映像制御プログラムは、演算結果として与えられる仮想空間100内の仮想粒子200の挙動などをモニタ30の画面上へ表示させる。音データ生成プログラムは、規制要素と仮想粒子200との相互作用に基づいて音データを生成する。
(B−4;仮想空間の制御)
以下では、オブジェクト制御プログラムによる仮想空間100の制御について説明する。
図7は、モニタ30の画面の一例を示した図である。画面には、仮想空間100の枠組みが表示されている。また、仮想空間100の右側には、各種のアイコンを有する制御パネル400が表示されている。仮想空間100は、ユーザによる制御パネル400に対する操作に基づき、以下のように制御される。
(1)規制要素の配置
図8は、サウンドウォール160の配置に際するモニタ30の画面表示の一例である。ユーザにより制御パネル400下部の「サウンドウォール」アイコン400Cがクリックされた後ドラッグ操作がなされると、制御部101は該ドラッグ操作の始点と終点を対角線とする長方形の領域をサウンドウォール160として画面上に表示させる。例えば、カーソルが図中40(a)から40(b)の位置までドラッグされると、サウンドウォール160(a)が設定される。
また、カーソル40を、一旦設定されたサウンドウォール160の頂点に合わせてボタン22が押下され、そのままマウス20を移動する操作がなされると、サウンドウォール160はその重心を中心としてカーソル40の移動に伴って回転する。例えば、サウンドウォール160(c)の頂点(カーソル40(c)の位置)にカーソル40を合わせ、ボタン22を押下したままカーソル40がカーソル40(d)で示される位置まで移動する処理がなされると、サウンドウォール160(c)はサウンドウォール160(d)で示される位置に回転する。
また、カーソル40をサウンドウォール160の内側領域にあわせて同様の操作がなされると、サウンドウォール160はカーソル40の移動に伴って移動する。例えば、サウンドウォール160(e)の内部領域(カーソル40(e)の位置)にカーソル40を合わせ、ボタン22を押下したままカーソル40がカーソル40(f)で示される位置まで移動されると、サウンドウォール160はサウンドウォール160(f)で示される位置に移動する。
また、後述する音データ生成処理中にサウンドウォール160がダブルクリックされると、選択されたサウンドウォール160は消滅する。
(2)空間特性の制御
仮想空間100には、以下に例示するように仮想空間100に働く加速度が設定される。音データ生成装置10の制御部101は、傾き情報を角度センサ50から受取ると、該傾き情報に含まれる傾きベクトルを読み出す。そして、該傾きベクトルにおけるベクトルAB方向およびベクトルAD方向の成分を、モニタ30の画面における左上から左下および左上から右上の成分に対応させることにより、仮想空間100に加速度を設定する。
具体的には、制御部101が受取った傾きベクトルが(k、k)であった場合、仮想粒子200には、モニタ30に表示された仮想空間100において下向きにgk、右向きにgkの加速度が働くように制御される。例えば、図5(b)に示すように角度センサ50が保持された場合は、(0、−sinθ)との傾き情報が生成される。制御部101は、該傾き情報を受取り、仮想空間100においては画面左向きにgsinθの大きさの加速度を設ける。その結果、仮想粒子200に対しては画面左方向にmgsinθ(m;仮想粒子200の質量)の大きさの力が常時働く。
(B−5;仮想粒子の運動)
以下では、粒子運動制御プログラムによる仮想粒子200の運動制御について説明する。
(1)仮想粒子200の出現
まず、仮想粒子200の出現について図9を用いて説明する。本実施形態にける仮想空間100には、仮想粒子200を仮想空間100に発生させるための装置として、放り込みエリア110が設けられる。
放り込みエリア110は、画面右端に示された制御パネル400の初速度400A−2および頻度400A−3の値が書き込まれてから「放り込みエリア」アイコン400A−1がクリックされ、その後仮想空間100の枠組みがドラッグされることにより設定される。例えば、図中(a)から(b)の位置までドラッグされると、放り込みエリア110が図のように設定される。以上の操作が複数行われることにより、複数の放り込みエリア110が設けられる
放り込みエリア110は、個々の仮想粒子200を設定された初速度で仮想空間100内に放り込む。その放り込みの頻度は、放り込みエリア110の単位長さおよび単位時間あたり、頻度400A−3に書き込まれた値となるようにする。ただし、放り込みエリア110のいずれの箇所から仮想粒子200が放出されるかに関してはランダムに選択される。
なお、放り込みエリア110は、仮想粒子200の単位面積あたりの存在数(以下、圧力)に上限を設けて仮想粒子200を出現させる。すなわち、図9の仮想空間100の右側に示すように、サウンドウォール160で囲まれた放り込みエリア110−2を含む領域の圧力が所定の閾値に達すると、放り込みエリア110は仮想粒子200の更なる放出を行わない。
(2)仮想粒子200の運動
ROM103に格納された粒子運動制御プログラムは、仮想空間100内での仮想粒子200の運動を以下に説明するルール(a)〜(c)に従って制御する。なお、以下のルールは、地球上の物体の力学的性質および力学的法則を模したものである。
(a)仮想粒子200は、所定の体積(v)および質量(m)を有している。
(b)仮想粒子200に働く力ベクトルFと仮想粒子200の質量mと加速度ベクトルαとの間にはF=mαの関係がある。
(c)仮想粒子200同士、および仮想粒子200と仮想空間100の枠組み、および仮想粒子200とサウンドウォール160が衝突した場合には、跳ね返り係数1で完全弾性衝突をする。
(3)仮想粒子200の消滅
仮想空間100の枠組みには、図9に示すように仮想粒子200を消滅させる「ホール」130が設定される。設定されたホール130の領域を仮想粒子200が横切った場合には、該仮想粒子200が消滅する(ホールに吸い込まれる)。ホール130は、画面右端に示された制御パネル400の「ホール」アイコン400Bがクリックされ、仮想空間100の枠組みがドラッグされることにより設定される。例えば、図9において「ホール」アイコン400Bがクリックされた後、(c)から(d)の位置までドラッグされると、ホール130が図のように設定される。複数のホール130が設けられる場合には、以上の操作が複数のホール130についてそれぞれ行われる。
なお、ホール130を、仮想空間100の枠組みの内側に設けることができるように設定しても良い。その場合、サウンドウォール160を設定したのと同様の手順でドラッグ操作によりホール130の領域が設定される。
(B−6;音データの生成)
音データ生成装置10は、ROM103に格納された音データ生成プログラムにより、以下に説明するように音データを生成する。
制御部101は、仮想粒子200とサウンドウォール160との相互作用に基づいて音データを生成する。このとき、仮想粒子200がサウンドウォール160に衝突する速度が速いほど高い音量レベルの音データを生成する。また、サウンドウォール160の面積が小さいほど高いピッチの音データを生成する。これらの条件は、打楽器一般に見られる音響特性を模したものである。例えば木琴において、ピッチは音板が大きいほど低く、音板が小さくなるにつれて高くなり、音板とバチの衝突速度が大きいほど音量レベルは大きくなるのに対応する。そのようにサウンドウォール160の音響特性を設定しておくことで、モニタ30に表示されるサウンドウォール160の形態や仮想粒子200との衝突状況と生成される音データとの対応関係をユーザにとって自然なものにする効果がある。
音データ生成装置10は、以上のルールに従い、MAX/MSPを用いて音データを生成する。なお、MAX/MSPとは、音楽プログラミング言語MAXと音響信号処理用エクステンションMSPとからなる。MAX/MSPによれば、様々なモジュールをつなぎ合わせて、シンセサイザー、エフェクター、シーケンサーなどが作れるほか、パッチングによって音楽の自動生成なども可能であり、ビジュアル的なプログラミング環境によって、直感的なプログラミング・操作ができる。
(C;動作)
以下では、音データ生成装置10が音データを生成する際の各部の動作について説明する。まず、音データ生成装置10の電源が投入されると、制御部101はROM103から各種制御プログラムを読み出し、RAM104にロードする。続いて制御部101は、マウス20からユーザの指示を受け付け、初期設定処理を行う。
(C−1;初期設定処理)
図10は、初期設定処理の流れを示したフローチャートである。まず、ステップSA100においては、仮想空間100にサウンドウォール160が設定される。ユーザにより制御パネル400の「サウンドウォール」アイコン400Cが押下され、仮想空間100内の領域が指定されると、制御部101は入力された内容に応じてサウンドウォール160を設ける。
ステップSA110では、制御部101は、仮想粒子200を仮想空間100に出現させる手段の設定を行う。ユーザにより制御パネル400にパラメータが書き込まれた後、「放り込みエリア」アイコン400A−1がクリックされ、仮想空間100内の領域が指定されると、放り込みエリア110が設定される。
(C−2;音データ生成処理)
以上の初期設定処理がなされると、制御部101は音データ生成処理を開始する。図11は、音データ生成処理の流れを示したフローチャートである。なお、仮想空間100には複数の仮想粒子200が存在し、該仮想粒子200の一つ一つについて音データ生成処理が実行される。
音データ生成処理の説明の前に、角度センサ50の制御による仮想空間100内における空間特性設定処理について説明する。空間特性設定処理は、音データ生成処理と並行してリアルタイムに実行され、常に新たな空間特性が更新される。
図12は、空間特性設定処理の流れを示したフローチャートである。ユーザにより角度センサ50の本体51がある角度に保持されると、センサ部52により角度センサ50の傾きを示す角度情報が生成される(ステップSC100)。次に、信号生成部53により、ステップSC100において生成された角度情報から傾きベクトルが生成され(ステップSC110)、傾き情報として音データ生成装置10に出力される。制御部101は、該傾き情報に含まれる傾きベクトルを参照して仮想空間100に加速度を設定する(ステップSC120)。例えば制御部101が受取った傾きベクトルが図5(b)および(c)の状況において生成された(0、−sinθ)であった場合、仮想空間100の「左」方向にgsinθの加速度が設定される。
ところで、仮に図5(b)および(c)のように保持された角度センサ50の面ABCDの上に実際に質量mの物体が乗っていると想定した場合に該物体に働く力は、仮想空間100の左方向にmgsinθの大きさとなる。そのように、角度センサ50をある角度で保持した場合に仮想空間100内で仮想粒子200に働く力と、仮に該角度センサ50の面ABCDの上に質量mの物体が乗っていると想定した場合に該物体に働く力とが、その大きさや向きにおいて一致するため、ユーザは、あたかも面ABCDの上に仮想粒子200が乗っており該仮想粒子200の移動を角度センサ50の傾きを変えることで操るように角度センサ50を操作すれば良い。
再び図11において、ステップSB100において、放り込みエリア110の放出箇所の粒子密度(圧力)が閾値以下であるか否かを判定する。ステップSB100の判定結果が“Yes”である場合には、ステップSB110の処理を行う。ステップSB100の判定結果が“No”である場合は、ステップSB100の判定結果が“Yes”となるまでステップSB100を繰り返し行う。
ステップSB110において、放り込みエリア110は、仮想粒子200を仮想空間100に出現させる。そして、出現した仮想粒子200のそれぞれについて、ステップSB120以下の処理が行われる。
ステップSB120において、微小単位時間後の仮想粒子200の位置および速度を演算する。その際、角度センサ50の制御により設定された加速度および他のオブジェクトとの相互作用が演算に用いられる。仮想空間100の壁、サウンドウォール160、または他の仮想粒子200に衝突した場合には、完全弾性衝突で跳ね返り、該仮想粒子200には新たな速度が設定される。また、衝突が起こっていない場合には、仮想粒子200の速度に微小時間を乗算することにより、仮想粒子200は新たな位置に移動する。
なお、仮想粒子200は、放り込みエリア110からランダムに放出されるだけでなく、角度センサ50の状態に応じて刻々と変化する加速度条件の下で運動する。また、放り込みエリア110からは多数の仮想粒子200が放出されており、それらの仮想粒子200は互いに高頻度で相互作用を繰り返している。従って、仮に仮想空間100の各種設定が同一である場合でも毎回異なった仮想粒子200の挙動が引き起こされる。
ステップSB130において、ステップSB120の処理により、仮想粒子200がホール130に進入するなどして消滅するか否かを判定する。ステップSB130の判定結果が“Yes”である場合には該仮想粒子200を画面上から消去し、該仮想粒子200に関しての処理を終了する。ステップSB130の判定結果が“No”である場合には、制御部101は、ステップSB140以降の処理を行う。
ステップSB140において、制御部101は、仮想粒子200がサウンドウォール160と衝突したか否かを判定する。ステップSB140の判定結果が“Yes”である場合は、ステップSB150の処理が実行される。ステップSB140の判定結果が“No”である場合は、ステップSB120以降の処理が再び実行される。
ステップSB150において、制御部101は、サウンドウォール160と仮想粒子200との衝突状態に基づいて音データを生成する。
ステップSB150が終わると、サウンドウォール160と相互作用した仮想粒子200について、ステップSB120以降の処理が再び実行される。
以上の音データ生成処理と並行して、モニタ30には仮想空間100における仮想粒子200の運動が表示される。生成される音データは該表示に基づくものであるから、ユーザは放音された音とそのまま対応する画面表示を見ることが出来る。
以上の音データ生成処理が終了すると、制御部101は、生成した音データを音データ再生部30aへ出力し、音データ再生部30aは該音データを再生する。また、制御部101は、仮想粒子200の放出手段やサウンドウォール160などの各種オブジェクトの形態と配置、および仮想空間100に設定された空間特性(仮想空間100に設定された加速度ベクトルの時間変化)など、音データの生成に係る各種パラメータの情報(以下、設定情報)を、試行ごとにRAM104に書き込む。
従って、制御部101は、RAM104に書き込まれた設定情報を読み出すことにより、再度同じ条件設定下で音データの生成処理を行うことができる。なお、そのように同様の条件設定で再び音データを生成したとしても、各仮想粒子200の挙動は毎回異なるため、微視的には異なる音データが生成される。
(D;変形例)
以上、本発明の実施形態について説明したが、本発明は以下のように種々の態様で実施することができる。
(1)上記実施形態においては、音データの生成に係るプログラムを実行するコンピュータについて記載したが、本発明には、該プログラムおよび該プログラムを記録した記録媒体も含まれる。
(2)上記実施形態における音響処理において、サウンドウォール160の発する音に、その音が一定のディレイを伴って繰り返し生じるエコーの効果を付与しても良い。その場合、サウンドウォール160が設けられた空間の面積(3次元では体積に相当)が大きいほど、その衝突により生じる音データにエコーが大きく生じるようにしても良い。
また、エコーのほかに音が空間の反射で響く残響効果、音の位相やピッチや音質などが僅かにずらされて複合されるコーラス効果、音を歪ませるディストーション効果など各種音響エフェクトを付与することにより、サウンドウォール160の振動が種々の空間で起こっているかのような音データを生成させても良い。例えば、水中のような響き、コンサートホールのような響きなどを生成することが可能である。これらの音響効果のいずれを選択するか、あるいは、選択した音響効果の量(音データに効果を付与する割合)についてもサウンドウォール160などの規制要素の形状に応じて設定することができる。
(3)上記実施形態においては、仮想粒子200を特定の質量および体積を有する球であるとして説明したが、その形状や大きさなどをユーザが自由に設定することができるようにしても良い。また、各仮想粒子200はその特性が均一である場合について説明した。しかし、その特性を仮想粒子200ごとに変えてもよい。例えば、放り込みエリア110を複数設ける場合には、仮想粒子200を放出した放り込みエリア110ごとに仮想粒子200の特性を変えても良い。その場合、仮想粒子200の色など表示を変えるなどすれば良い。
(4)上記実施形態においては、仮想粒子200同士の衝突では音を出さない場合について説明したが、仮想粒子200同士の衝突によっても音データを生成してもよい。
(5)上記実施形態においては、サウンドウォール160や放り込みエリア110などがユーザにより設定される場合について説明したが、予め記憶されたデータに基づいてそれらのオブジェクトが設定されるようにしても良い。その場合でも、角度センサ50はユーザにより様々に制御されるため、その結果生成される音は毎回異なったものとなる。
(6)上記実施形態においては、初期設定処理において設けられた放り込みエリア110およびサウンドウォール160のみを音データ生成処理において利用する場合について説明したが、音データ生成処理の最中に追加しても良い。その場合、音データ生成処理の最中に、初期設定処理においてそれらのオブジェクトを設定した場合と同様の処理を行うことで設定されるようにすれば良い。
(7)上記実施形態においては、仮想粒子200を出現させるための手段として、放り込みエリア110について説明した。しかし、仮想粒子200を出現させるための手段はそれらの手段に限定されない。例えば、先端から一方向に向けて連続して仮想粒子200を放出する手段や、一点から仮想粒子200が湧き出すように出現し、周囲に放射されるような手段を設けても良い。それらの手段を設ける場合、仮想粒子200の放出速度、放出頻度などにランダム性を持たせておいても良い。
(8)上記実施形態においては、放り込みエリア110から出現する仮想粒子200の出現パターンは、ランダムである場合について説明した。しかし、その出現パターンの頻度・出現箇所は一定でも良いし、一定の周期性があっても良い。また、仮想粒子200ごとに初速度は均一である場合について説明したが、仮想粒子200間でばらつきを持たせても良い。要は、仮想粒子200の出現パターンにランダム性を持たせるように、仮想粒子200の出現に係るいずれかのパラメータにランダム性が付与されるようにすれば良い。
(9)上記実施形態においては、主に加速度(重力場)の制御による仮想粒子200の運動制御について説明した。しかし、仮想空間100に設定可能な空間特性は加速度に限定されない。例えば仮想粒子200に電荷を持たせると共に、仮想空間100に電場を設けるようにコンピュータプログラムを作っておいてもよい。その場合、以下のような実施形態が可能である。初期設定処理において、荷電量および形態が指定された電荷を仮想空間100内に設ける。そして、該電荷と同符号または異符号の電荷を帯びた仮想粒子200を、放り込みエリア110から放出する。仮想粒子200は、設けられた電荷に近づくと、反発力または引力を受けて複雑な運動が引き起こされる。また、仮想粒子200に磁性を持たせ、仮想空間100に磁場を設けるようにしても良い。
また、仮想空間100の枠組みの形状を変更する手段や、仮想空間100にゆがみを持たせる手段を設けても良い。例えば、仮想空間100内の特定の位置に、空間にゆがみを生じさせる「くぼみ」を設け、該くぼみと仮想粒子200に引力が働き、仮想粒子200がくぼみに「転がり込む」ようにしても良い。また、仮想粒子200の移動に伴い仮想粒子200に移動の向きとは逆の抵抗力がはたらくようにしても良い。なお、それらの処理を初期設定処理の中で行うようにしても良いし、音データ生成処理の中で行うようにしても良い。
(10)上記実施形態においては、仮想空間100の空間特性(加速度)を、角度センサ50の傾きを制御することにより制御する場合について説明した。しかし、それらの空間特性を制御する手段は角度センサ50に限定されない。また、上記変形例(9)においては、電場、磁場、くぼみ、抵抗力などの空間特性について記載したが、それらの空間特性の制御手段には様々な態様が可能である。その例として、図13に示す圧力センサ60や、図14に示す操作盤70について説明する。
まず、圧力センサ60による制御方法について説明する。図13に示すように、圧力センサ60は、本体61と、タッチパネル62と、通信ケーブル63と、タッチペン64とを有する。ユーザによりタッチペン64の先端でタッチパネル62の表面が押下されると、タッチパネル62は押下された位置を検出し、該位置を示す押下位置情報を音データ生成装置10に出力する。制御部101は、タッチパネル62の表面における位置と仮想空間100内の位置とを対応づける手段を有しており、押下位置情報を受取ると仮想空間100内の対応する位置を選択する。以上のようにして選択された仮想空間100内の位置や範囲に変形例(9)に示された電荷や磁性体やくぼみを設けるなどしても良い。
次に、操作盤70による制御方法について説明する。図14に示すように、操作盤70は、本体71と、ボタン72と、スライダ73と、スティック74と、通信ケーブル75とを有する。ユーザによりボタン72が押下されたり、スライダ73がスライドされたり、スティック74が傾けられたりすると、該操作内容を示す操作信号は、音データ生成装置10に出力される。制御部101は、受取った操作信号に含まれるボタン72の押下回数やタイミング、スライダ73の数値、スティック74の傾きの方向や角度などを読み出し、仮想空間100における空間特性の設定に反映させる。
例えば、仮想空間100には予め特定の方向(例えば画面下方向)に加速度が設定されており、その加速度が様々に設定可能であるとの設定がなされている場合に、スライダ73をスライドすることにより、その加速度の大きさをリアルタイムに調整することが出来るようにしても良い。また、そのような加速度の大きさや方向が、スティック74の傾きの大きさや方向により制御されるようにしても良い。また、ボタン72が押下される度に仮想空間100内を移動する仮想粒子200に働く抵抗力が3段階で変化し、あたかも仮想空間100を満たす媒質の種類が変化しているようにしても良い。
以上に説明したように、空間特性を制御する手段は、角度センサ50に限定されるものではなく、様々な態様が可能である。変形例(9)に説明したように、仮想空間100においては様々な種類の空間特性を制御することが考えられるから、制御する空間特性に合わせて該空間特性を制御する手段を用いれば良い。
(11)上記実施形態においては、放り込みエリア110から仮想粒子200が仮想空間100内に連続的に放出される場合について説明した。しかし、仮想粒子200を音データ生成処理の開始時に予め適切な数だけ出現させておき、それら限られた数の仮想粒子200の運動を角度センサ50で制御して音データを生成するようにしても良い。
(12)上記実施形態および変形例においては、加速度(重力)、電気力、磁力、流体による抵抗力などについてそれぞれ独立して記載したが、仮想空間100にそれらのうち複数の要素が同時に設けられるとしても良い。
(13)上記実施形態における仮想空間100を満たしている媒質は気体に限定されず、液体や固体であっても良いし、真空であっても良い。例えば仮想空間100を満たしている媒質が液体である場合、移動する仮想粒子200にはたらく抵抗力を気体の場合よりも大きく設定し、音が水中を伝わっているかのような音響効果を音データに付与するなどしても良い。また、それと同時に仮想粒子200の体積と仮想空間100を満たす液体の密度に応じて算出される「浮力」を仮想粒子200の軌道演算に反映させるようにしても良い。
(14)上記実施形態においては、仮想粒子200とサウンドウォール160の「相互作用」および仮想粒子200同士の「相互作用」の一態様として、衝突について説明した。しかし、それらオブジェクト同士の相互作用は、衝突に限定されるものではない。例えば、仮想粒子200同士の距離に応じてはたらく力(引力・斥力など)を設定し、制御部101は該力に基づいて音データを生成するようにしてもよい。例えば仮想粒子200同士が相互に近接した場合には、距離に反比例した斥力が働くとの設定がなされた場合、仮想粒子200の近傍を他の仮想粒子200が通り過ぎると、通り過ぎた仮想粒子200の軌道は斥力により曲げられるが、その際に働いた斥力を表す音データを斥力の大きさに応じて生成するなどしても良い。
(15)上記実施形態においては、仮想空間100内に設けられたオブジェクト同士の相互作用に応じて音データが生成される場合について説明した。しかし、オブジェクト同士の相互作用が生じていない場合においても音データを生成するようにしても良い。例えば、仮想空間100を満たす媒質やサウンドウォール160が、上記実施形態における仮想粒子200のような粒子の集合体であるとした場合に、該粒子が例えば定常状態において振動しており、該振動状況に応じて音データを生成するようにしても良い。また別の例では、それら粒子が存在するだけでその粒子の総数に応じて音データが生成されるようにしてもよい。
(16)上記実施形態においては、センサ部52は、その面ABCDが水平である状態を基本姿勢とし、その基本姿勢からの傾きを検出する場合について説明したが、基本姿勢は水平である状態に限られない。例えば、角度センサ50の面BCGFを下面として面ABCDを鉛直に保持された状態を基本姿勢とするなどしても良い。
(17)上記実施形態においては、仮想粒子200同士、および仮想粒子200と仮想空間100の壁、および仮想粒子200とサウンドウォール160との衝突において、その跳ね返り係数が1である場合について説明したが、係数の値は1に限定されず、ユーザにより所望の値に設定されていれば良い。
(18)上記実施形態においては、マウス20および角度センサ50の両方を設ける場合について説明したが、上記実施形態に記載の処理を行うことができれば、どちらか一方のみを設けるようにしても良い。
音データ生成処理の最中のモニタ30の画面表示の一例を示した図である。 音データ生成システム1の全体構成を示した図である。 音データ生成装置10の構成を示した図である。 マウス20の外観を示した図である。 角度センサ50の機能を説明するための図である。 制御プログラムの構成を示した図である。 モニタ30の画面を示した図である。 規制要素の配置方法を説明するための図である。 仮想粒子200の出現手段の設置方法を説明するための図である。 初期設定処理の流れを示したフローチャートである。 音データ生成処理の流れを示したフローチャートである。 空間特性設定処理の流れを示したフローチャートである。 圧力センサ60の構成を示した図である。 操作盤70の構成を示した図である。
符号の説明
1…音データ生成システム、10…音データ生成装置、20…マウス、21…本体、22…ボタン、23…通信ケーブル、24…移動検知手段、30…モニタ、40…カーソル、50…角度センサ、51…本体、52…センサ部、53…信号生成部、54…通信ケーブル、60…圧力センサ、61…本体、62…タッチパネル、63…通信ケーブル、64…タッチペン、70…操作盤、71…本体、72…ボタン、73…スライダ、74…スティック、75…通信ケーブル、100…仮想空間、101…制御部、102…光ディスク再生部、103…ROM、104…RAM、105…I/O部、109…バス、110…放り込みエリア、130…ホール、160…サウンドウォール、200…仮想粒子、400…制御パネル

Claims (5)

  1. 仮想空間を設定する仮想空間設定手段と、
    前記仮想空間内で移動可能な複数の仮想粒子を設定する仮想粒子設定手段と、
    前記仮想空間内において、前記仮想粒子の移動に影響を与える規制要素を生成する規制要素生成手段と、
    操作者によって操作される操作手段と、
    前記操作手段の操作内容に応じて操作信号を生成する操作信号生成手段と、
    前記操作信号生成手段が生成した操作信号に基づいて前記仮想空間に働く力を設定する力設定手段と、
    前記各仮想粒子の軌道を、前記力設定手段が設定した力および前記規制要素による前記仮想粒子の移動への影響および前記各仮想粒子同士の衝突を含めて演算する軌道演算手段と、
    前記軌道演算手段の演算に、前記仮想粒子と前記規制要素の相互作用の状態に基づいて音データを生成する音データ生成手段と
    を具備することを特徴とする音データ生成装置。
  2. 前記操作信号生成手段は、前記操作手段の基準姿勢に対する傾きに対応する検出信号を出力する角度センサと、前記角度センサの出力した検出信号に応じて力の向きと大きさを示す力指示信号を生成する信号生成手段を有し、前記力設定手段は、前記力指示信号に基づいて前記仮想空間に働く力を設定することを特徴とする請求項1に記載の音データ生成装置。
  3. 前記力は、重力、静電気力、磁力および流体抵抗の少なくともいずれか一つであることを特徴とする請求項2に記載の音データ生成装置。
  4. 前記音データ生成手段は、前記仮想粒子と前記規制要素の相互作用状態に基づく音データ生成に代えて、または前記仮想粒子と前記規制要素の相互作用状態に基づく音データ生成と併せて、前記軌道演算手段の演算に従い前記仮想粒子同士の相互作用に基づいて音データを生成することを特徴とする請求項1ないし3いずれかに記載の音データ生成装置。
  5. コンピュータに、
    仮想空間を設定する仮想空間設定段階と、
    前記仮想空間内で移動可能な複数の仮想粒子を設定する仮想粒子設定段階と、
    前記仮想空間内において、前記仮想粒子の移動に影響を与える規制要素を生成する規制要素生成段階と、
    操作者による操作内容に応じて操作信号を生成する操作信号生成段階と、
    前記操作信号生成段階において生成された操作信号に基づいて前記仮想空間に働く力を設定する力設定段階と、
    前記各仮想粒子の軌道を、前記力設定段階において設定された力および前記規制要素による前記仮想粒子の移動への影響および前記各仮想粒子同士の衝突を含めて演算する軌道演算段階と、
    前記軌道演算段階の演算に、前記仮想粒子と前記規制要素の相互作用の状態に基づいて音データを生成する音データ生成段階と
    を実行させるプログラム。
JP2007023102A 2007-02-01 2007-02-01 音データ生成装置およびプログラム Expired - Fee Related JP4858777B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007023102A JP4858777B2 (ja) 2007-02-01 2007-02-01 音データ生成装置およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007023102A JP4858777B2 (ja) 2007-02-01 2007-02-01 音データ生成装置およびプログラム

Publications (2)

Publication Number Publication Date
JP2008191240A true JP2008191240A (ja) 2008-08-21
JP4858777B2 JP4858777B2 (ja) 2012-01-18

Family

ID=39751434

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007023102A Expired - Fee Related JP4858777B2 (ja) 2007-02-01 2007-02-01 音データ生成装置およびプログラム

Country Status (1)

Country Link
JP (1) JP4858777B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010066655A (ja) * 2008-09-12 2010-03-25 Yamaha Corp 電子音楽装置及びプログラム
JP2010066656A (ja) * 2008-09-12 2010-03-25 Yamaha Corp 電子音楽装置及びプログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11288211A (ja) * 1998-03-31 1999-10-19 Nec Corp 実時間運動シミュレーション表示装置及びプログラムを記録した機械読み取り可能な記録媒体
JP2001170358A (ja) * 1999-10-04 2001-06-26 Nintendo Co Ltd ゲームシステム及びそれに用いられるゲーム情報記憶媒体
JP2003062341A (ja) * 2001-08-22 2003-03-04 Nintendo Co Ltd ゲームシステム、パズルゲームプログラムおよびプログラムを記憶した記憶媒体
JP2005329126A (ja) * 2004-05-21 2005-12-02 Heiwa Corp 映像式遊技機
JP2006204888A (ja) * 2004-12-28 2006-08-10 Aruze Corp シミュレーションプログラムおよびシミュレータ

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11288211A (ja) * 1998-03-31 1999-10-19 Nec Corp 実時間運動シミュレーション表示装置及びプログラムを記録した機械読み取り可能な記録媒体
JP2001170358A (ja) * 1999-10-04 2001-06-26 Nintendo Co Ltd ゲームシステム及びそれに用いられるゲーム情報記憶媒体
JP2003062341A (ja) * 2001-08-22 2003-03-04 Nintendo Co Ltd ゲームシステム、パズルゲームプログラムおよびプログラムを記憶した記憶媒体
JP2005329126A (ja) * 2004-05-21 2005-12-02 Heiwa Corp 映像式遊技機
JP2006204888A (ja) * 2004-12-28 2006-08-10 Aruze Corp シミュレーションプログラムおよびシミュレータ

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010066655A (ja) * 2008-09-12 2010-03-25 Yamaha Corp 電子音楽装置及びプログラム
JP2010066656A (ja) * 2008-09-12 2010-03-25 Yamaha Corp 電子音楽装置及びプログラム

Also Published As

Publication number Publication date
JP4858777B2 (ja) 2012-01-18

Similar Documents

Publication Publication Date Title
US7091948B2 (en) Design of force sensations for haptic feedback computer interfaces
US6169540B1 (en) Method and apparatus for designing force sensations in force feedback applications
US7027032B2 (en) Designing force sensations for force feedback computer applications
JP4932500B2 (ja) 多点接触の触知スクリーン上の仮想オブジェクトの操作によるコントローラー
CN104571336B (zh) 用于在无源和有源模式之间变换触觉反馈功能的系统和方法
US6285351B1 (en) Designing force sensations for computer applications including sounds
WO2000055839A1 (en) Designing compound force sensations for computer applications
Santini Augmented Piano in Augmented Reality.
JP4858777B2 (ja) 音データ生成装置およびプログラム
JP4953085B2 (ja) 音データ生成装置およびプログラム
JP4736094B2 (ja) 音データ生成装置およびプログラム
JP5051838B2 (ja) 音データ生成装置およびプログラム
JP5099335B2 (ja) 音データ生成装置およびプログラム
JP5267905B2 (ja) 音データ生成装置およびプログラム
Passalenti et al. Haptic interaction with guitar and bass virtual strings
JP5011563B2 (ja) 音データ生成装置およびプログラム
JP4953084B2 (ja) 音データ生成装置およびプログラム
Arterbury et al. 3D Positional Movement Interaction with User-Defined, Virtual Interface for Music Software: MoveMIDI
JP2009103931A (ja) 音データ生成装置およびプログラム
Dolhansky et al. Designing an expressive virtual percussion instrument
Gadd et al. Metamuse: a novel control metaphor for granular synthesis
JP2009175525A (ja) 音データ生成装置、音データ生成方法およびプログラム
Hirano et al. MoPH: a media performance system with a multi-touch interface
JP2009175526A (ja) 音データ生成装置、音データ生成方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090706

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090707

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110301

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110308

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110405

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: 20110927

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: 20111019

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: 20141111

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees