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

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

Info

Publication number
JP2009103930A
JP2009103930A JP2007275752A JP2007275752A JP2009103930A JP 2009103930 A JP2009103930 A JP 2009103930A JP 2007275752 A JP2007275752 A JP 2007275752A JP 2007275752 A JP2007275752 A JP 2007275752A JP 2009103930 A JP2009103930 A JP 2009103930A
Authority
JP
Japan
Prior art keywords
virtual
accompanying
string
sound data
sounding body
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
JP2007275752A
Other languages
English (en)
Other versions
JP5011563B2 (ja
Inventor
Koichiro Eto
浩一郎 江渡
Noriaki Watanabe
訓章 渡辺
Akihiko Taniguchi
暁彦 谷口
Kiyohisa Sugii
清久 杉井
Atsushi Togi
温 東儀
Yasushi Kamiya
泰史 神谷
Osamu Oshima
治 大島
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 JP2007275752A priority Critical patent/JP5011563B2/ja
Publication of JP2009103930A publication Critical patent/JP2009103930A/ja
Application granted granted Critical
Publication of JP5011563B2 publication Critical patent/JP5011563B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

【課題】一定の法則下における多数の粒子の挙動と対応付けられた自然な音を生成する音データ生成装置およびプログラムを提供すること。
【解決手段】仮想空間100には、仮想の重力場など仮想粒子200の運動に影響を与える各種の条件が設定されている。一列に配置されたスプリンクラ150により多数の仮想粒子200が仮想空間100内に放出される。ユーザにより操作弦120が移動されると、仮想粒子200との衝突で発音する付随弦125が該移動経路をなぞるように繰り返し移動する。仮想粒子200と付随弦125の相互作用は、操作弦120単独の操作により実現される相互作用と比較して多様性を増しており、付随弦125と仮想粒子200との相互作用によりランダムで多様な音の生成が可能となる。
【選択図】図13

Description

本発明は、音データ生成装置およびプログラムに関する。
近年、ますますリアリティーの増した音がコンピュータにより生成されるようになっている。例えばコンピュータで「雨降りの音」や「そよ風の音」など自然現象に伴う音を非常に巧妙に再現することができる(特許文献1参照)。
例えば、「雨降りの音」ならば、「ザーザー」、「そよ風の音」ならば「ヒューヒュー」など、自然現象ごとに特徴的な波形の音があるが、上記特許文献1などにおいては、自然現象における音の特徴を模した波形データを繰り返し音声へ変換することにより自然現象の音を再現している。
特開平07−140973号公報
ところで、上述の雨降りの音は多数の雨粒と地面の衝突から生じるものであり、そよ風の音は空気中に存在する多数の気体分子の流れや振動から生じるものであるとの例からも明らかなように、自然界において発生する音の多くは小さなスケールで見れば多数の粒子が高頻度で相互作用を繰り返すことにより生じている。
例えば、一つの雨粒が地面と衝突する際には、「ポトッ」「ぺチ」「パチ」などの音が、各雨粒と地面との衝突状況や、雨粒間での相互作用に応じて発生する。そして、無数の雨粒が連続して地面に衝突すると、それらの相互に異なる音が重ねあわされた音が発生する。そのように、各雨粒に由来する多様な音が多数重ねあわされることにより、結果的には、雨(多数の雨粒)の降る音である「ザー、ザー」という音として人間に知覚される。
そのように、自然界において発生している音は、総体として聴いた場合には個々の相互作用に由来する音の成分が区別されて聴取されることは無いが、実際は毎回異なる音から構成される2度と再現できない音が発生しているのである。そのような音の「ランダム性」や「非再現性」が自然界の音に「自然らしさ」を与えていると考えられる。
しかし、上記特許文献1を含め、従来のコンピュータにより生成される音は、予め決められた波形データが繰り返し読み出されるだけの音であったため、その音には上述した「ランダム性」や「非再現性」が欠如しており、所謂「自然らしさ」が感じられないといった問題があった。
本発明は上述の課題に鑑みてなされたものであり、一定の法則下における多数の粒子の挙動と対応付けられた自然な音を生成する音データ生成装置およびプログラムを提供することを目的とする。
本発明に係る音データ生成装置は、仮想空間を設定する仮想空間設定手段と、仮想粒子を前記仮想空間に対して連続的に放出する演算を行う仮想粒子放出手段と、前記仮想粒子放出手段の演算により放出された各仮想粒子の軌道を、前記各仮想粒子同士の衝突を含めて演算する軌道演算手段と、前記仮想空間に仮想発音体を設定する仮想発音体設定手段と、前記仮想発音体の移動を制御する制御手段と、前記制御手段によって前記仮想発音体が移動されると、該移動に基づいて付随発音体を生成すると共に該付随発音体を移動させる付随発音体制御手段と、前記仮想発音体または前記付随発音体の少なくともいずれか一方と前記仮想粒子の相互作用を演算し、該相互作用に基づいて音データを生成する音データ生成手段とを具備することを特徴とする。上記の構成において、前記付随発音体制御手段は、前記付随発音体を、前記仮想発音体の移動経路に沿って移動させても良い。
なお、上記の構成において、前記付随発音体制御手段は、前記付随発音体を複数生成すると共に、該付随発音体を移動させ、前記音データ生成手段は、前記複数出現した付随発音体の特性を互いに異ならせることにより、各付随発音体と前記仮想粒子との相互作用を演算した際に、各付随発音体ごとに異なる特性の音を生成しても良い。
本発明に係るプログラムは、コンピュータを、仮想空間を設定する仮想空間設定手段と、仮想粒子を前記仮想空間に対して連続的に放出する演算を行う仮想粒子放出手段と、前記仮想粒子放出手段の演算により放出された各仮想粒子の軌道を、前記各仮想粒子同士の衝突を含めて演算する軌道演算手段と、前記仮想空間に仮想発音体を設定する仮想発音体設定手段と、前記仮想発音体の移動を制御する制御手段と、前記制御手段によって前記仮想発音体が移動されると、該移動に基づいて付随発音体を生成すると共に該付随発音体を移動させる付随発音体制御手段と、前記仮想発音体または前記付随発音体の少なくともいずれか一方と前記仮想粒子の相互作用を演算し、該相互作用に基づいて音データを生成する音データ生成手段として機能させることを特徴とする。
本発明に係る音データ生成装置またはプログラムによれば、一定の法則下における多数の粒子の挙動と対応付けられた自然な音を生成することができる。
(本発明の概略説明)
本発明に係る音データ生成装置は、コンピュータの演算によって形成される仮想空間の中に多数の仮想粒子を放出させるとともに、振動体(弦など)を仮想空間の中で移動させる。そして、仮想粒子と振動体との相互作用(衝突など)の状況を演算し、その演算結果による振動体の振動状態に基づいて音データを生成するものである。
図1は、音データ生成処理におけるモニタ表示の一例である。仮想粒子200は、スプリンクラ150の先端部分より仮想空間100内に放出される。そして、仮想粒子200は、仮想空間100内に設定された重力に従って画面の下方向に向けて「落下」すると共に、仮想空間100の壁面などで跳ね返ったり、仮想粒子200同士で衝突したりする。そのように多数の仮想粒子200がランダムに運動している仮想空間100には、振動体(発音体)として「弦」が設けられる。弦は、ユーザによる操作内容に応じて生成されると共に、仮想空間100内を移動する。そして、個々の仮想粒子200が弦の領域を通過して弦を「はじく」と弦は振動し、該弦の振動状態に基づいて音データが生成される。
(A;構成)
以下、図面を参照しつつ、本発明を実施する際の最良の形態について説明する。
(A−1;全体構成)
図2は、本発明に係る音データ生成システム1の全体構成を示す図である。音データ生成システム1は、プログラム実行装置としての音データ生成装置10と、マウス20と、モニタ30と、多点コントローラ40とを有する。
(A−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から読み出された各種制御プログラムを実行することにより、音および映像の信号処理や各部の制御を行う。
光ディスク再生部102は、CD−ROM・DVD−ROM等の光ディスクからデータを読取る。
ROM103は、制御部101が実行する各種制御プログラムを格納している。
RAM104は、制御部101によってワークエリアとして利用される。
I/O部105は、音データ生成装置10と接続された機器との信号の送受信を仲介する。具体的には、マウス20および多点コントローラ40から操作内容を示す信号を受取り制御部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の構成について図5を用いて説明する。モニタ30は、音データ生成装置10から受取った映像データに基づいて映像を表示する。モニタ画面の各点には、同図に示されるように画面左上を座標(0,0)、右下を座標(756,1024)とする座標が設定されている。
また、図5に示すように、モニタ画面の下方には音データ再生部30aが設けられ、音データ生成装置10から受取った音データに基づいて音が放音される。
次に、多点コントローラ40の構成について、図6を用いて説明する。図6(a)に示すように、多点コントローラ40は、タッチパネル42を有する。タッチパネル42には、図に示すように画面左上を座標(0,0)、右下を座標(756,1024)とする座標が設定されている。タッチパネル42は、タッチパネル上の特定の点が押下されたことを感知する感知手段を有し、該感知手段がパネル上の特定の点が押下されたことを感知すると、押下された点の位置を示す座標を含む押下位置情報を、通信ケーブル41を介して音データ生成装置10に出力する。複数の点が同時に押下されている場合には、該押下されている複数の点それぞれについて並行して押下位置情報を生成・出力する。
音データ生成装置10の制御部101は、押下位置情報を多点コントローラ40から受取ると、該押下位置情報に含まれる座標を読み出し、モニタ30画面上において該座標に相当する点が選択されたと判断する。図6(b)は、モニタ30の画面表示を示した図である。例えば、手Aおよび手Bが、図6(a)で示されるようにタッチパネル42を押下した場合、手Aで押下された位置を示す座標、または手Bで押下された位置を示す座標が書き込まれた押下位置情報が、それぞれの点が押下されている間継続して制御部101へ出力される。制御部101は、該押下位置情報を受取ると、図6(b)で示されるモニタ画面上の点Aおよび点Bが選択されたと判定する。
(A−3;プログラムの構成)
次に、ROM103に格納された制御プログラムについて説明する。なお、制御プログラムには、音データ生成装置10の制御部101が音データを生成するために実行する各種プログラムが含まれ、以下では主要なもののみ取り上げて説明する。
制御プログラムは、空間特性制御プログラム、オブジェクト制御プログラム、粒子運動制御プログラム、弦振動制御プログラム、映像制御プログラム、音データ生成プログラムなどからなる。
空間特性制御プログラムは、重力などの仮想空間100に設定され仮想粒子200の運動に影響を及ぼす各種特性を制御する。オブジェクト制御プログラムは、仮想空間100内に仮想粒子200を出現させるオブジェクト(スプリンクラ150)や、上記弦の配置などを制御する。粒子運動制御プログラムは、仮想空間100内における仮想粒子200の運動を計算する。弦振動制御プログラムは、仮想空間100に設けられる振動体(例えば弦)の振動状況を演算する。映像制御プログラムは、演算結果として与えられる仮想空間100内の仮想粒子200の運動や振動体の振動などの挙動をテレビジョンモニタ画面上へ表示させる。音データ生成プログラムは、振動体の振動状態に基づいて音データを生成する。
(A−4;仮想空間の制御)
以下では、空間特性制御プログラムによる仮想空間100の制御について説明する。
図7は、モニタ30の画面の一例を示した図である。画面には、仮想空間100の枠組みが表示されている。また、仮想空間100の右側には、制御パネル400が表示されている。仮想空間100は、ユーザによる制御パネル400に対する操作に基づき、以下のように制御される。
仮想空間100には、以下に例示するような「空間特性」が設定される。制御パネル400の下部の空間特性アイコン404が押下されると、制御部101は、所定の選択肢をモニタ30の画面上に表示する。図8は、該表示の一例を示した図である。ユーザは、画面上に表示された重力の方向に関する選択肢を選択し、重力加速度の大きさを書き込む。また、仮想粒子200の移動の際に働く抵抗力は、仮想粒子200の速度に比例するとし、その速度に応じた抵抗力を決定するための比例定数を書き込む。制御部101は、入力された内容を粒子運動制御プログラムにおける粒子運動の挙動の算出に反映させる。
なお、これら仮想空間100に関する設定は、予め制御プログラムなどにテンプレートとして書き込んでおいても良い。例えば、あるテンプレートにおいては、重力場は画面下方に設定され、仮想空間100内を移動する仮想粒子200には移動の方向とは逆にその速度に比例した抵抗力が働き、その比例定数が「水中」に相当するような大きな値に設定されているようにすれば、ユーザは該テンプレートを選択するだけで、仮想空間100がまるで重力のある空間に設置された水が満たされた容器であるかのような設定を簡易に行うことができる。
(A−5;仮想粒子の運動)
以下では、粒子運動制御プログラムによる仮想粒子200の運動の制御方法について説明する。
(1)仮想粒子200の出現
まず、仮想粒子200の出現について図9を用いて説明する。本実施形態における仮想空間100には、仮想粒子200を仮想空間100に発生させるための装置として、スプリンクラ150が設けられる。
スプリンクラ150は、図9に示す制御パネル400の初速度402、頻度403の値が書き込まれてからスプリンクラアイコン401がクリックされ、仮想空間100内においてドラッグがなされることにより設定される。
スプリンクラ150は、放出口150aを有し、個々の仮想粒子200は、初速度402に書き込まれた初速度、および頻度403に書き込まれた頻度で放出口150aから放出される。仮想粒子200は、時間平均して単位時間あたり頻度403に書き込まれた数となるようにランダムに放出される。
(2)仮想粒子200の運動
ROM103に格納された粒子運動制御プログラムは、仮想空間100内での仮想粒子200の運動を以下に説明するルール(a)〜(c)に従って制御する。なお、以下のルールは、地球上の物体の力学的性質および力学的法則を模したものである。
(a)仮想粒子200は、所定の体積(v)および質量(m)を有している。
(b)仮想粒子200に働く力Fと仮想粒子200の質量mと加速度αとの間にはF=mαの関係がある。たとえば本実施形態においては、仮想空間100の下向きに重力場が存在するため、仮想粒子200には常にmg(gは重力加速度)の大きさの力が仮想空間100の下向きに働く。
(c)仮想粒子200同士、および仮想粒子200と仮想空間100の枠組みが衝突した場合には、跳ね返り係数1で完全弾性衝突をする。
(3)仮想粒子200の消滅
仮想空間100の枠組みの底辺に達した仮想粒子200は消滅するよう設定されている。
(A−6;音データの生成)
音データ生成装置10は、ROM103に格納された音データ生成プログラムにより、以下に説明するように音データを生成する。
振動体(弦)の振動は、ROM103に格納された弦振動制御プログラムにより演算される。具体的には、弦の弾性(材質)、弦の断面積、弦の張力、弦がはじかれた変位量などに基づいて、物理的なシミュレーションが行われる。シミュレーションの結果、各時刻における弦の各部分の変位量が演算され、該演算結果から、弦から発生する音の振幅、周波数、減衰態様などが導き出される。
なお、音データ生成装置10は、MAX/MSPを用いて音データを生成する。なお、MAX/MSPとは、音楽プログラミング言語MAXと音響信号処理用エクステンションMSPとからなる。MAX/MSPによれば、様々なモジュールをつなぎ合わせて、シンセサイザー、エフェクター、シーケンサーなどが作れるほか、パッチングによって音楽の自動生成なども可能であり、ビジュアル的なプログラミング環境によって、直感的なプログラミング・操作ができる。
(B;動作)
以下では、音データ生成装置10が音データを生成する際の各部の動作について説明する。
まず、音データ生成装置10の電源が投入されると、制御部101はROM103から各種制御プログラムを読み出し、RAM104にロードする。
(B−1;初期設定処理)
まず、制御部101は、初期設定処理を行う。図10は、初期設定処理の流れを示したフローチャートである。
ステップSA100においては、仮想空間100の空間特性の設定がなされる。音データ生成システム1のユーザは、図9に示す制御パネル400の空間特性アイコン404を押下し、モニタ30に図8に示すパラメータ設定のための画面を表示させる。そして制御部101は、入力された内容に応じて仮想空間100の空間特性、すなわち仮想空間100における重力場および抵抗力の設定を行う。
本実施形態においては、重力場の設定において、重力の方向として図面下方向が選択されその重力加速度の値が書き込まれる。その結果、仮想粒子200に対して画面下方向に設定された値の重力が働き、仮想空間100はあたかも鉛直方向に設けられた空間であるかのように設定される。
また、抵抗力の設定において、比例定数の値が書き込まれると、仮想粒子200の移動速度に比例した抵抗力が移動と逆方向に働く。そして、その比例定数に対応してまるで空気や水が仮想空間100に満たされているような環境に設定される。
ステップSA110では、仮想粒子200を仮想空間100に出現させる手段(スプリンクラ150)の設定を行う。ユーザにより制御パネル400にパラメータが書き込まれた後、スプリンクラアイコン401がクリックされ、仮想空間100内の領域が指定されると、スプリンクラ150が設定される。
(B−2;振動体設定処理)
仮想粒子200を仮想空間100に放出させる処理の説明に入る前に、仮想粒子200との相互作用により発音を行う振動体を仮想空間100に設定する振動体設定処理について図12を参照して説明する。なお、振動体設定処理は、後述する音データ生成処理の最中に割り込み処理として随時行われる。
ステップSC100において、制御部101は、多点コントローラ40から押下位置情報を受信したか否かを判定する。ステップSC100の判定結果が“NO”の場合は、ステップSC100の処理が繰り返される。ステップSC100の判定結果が“YES”である場合は、ステップSC110の処理が行われる。
制御部101は、多点コントローラ40から受取った押下位置情報に含まれる座標を読取り、該座標をRAM104に一旦記憶する。そして、押下位置情報に含まれる2つの位置(座標)を両端とするように、仮想空間100内に操作弦120(振動体)が設けられる(ステップSC110)。このように、本実施形態において、ユーザにより直接制御される振動体は、操作弦120である。
このようにして設けられた操作弦120は、タッチパネル42が押下されている間、継続して設けられている。ここで、操作弦120は、仮想空間100中で、移動させることが可能である。ステップSC120において、制御部101は、押下位置情報に含まれる座標が変更されたか否かを判定する。ステップSC120の判定結果が“NO”である場合、ステップSC120の処理が繰り返され、操作弦120は継続して同じ位置に設けられる。一方、ユーザにより押下されたタッチパネル42の位置がスライドされた場合、ステップSC120の判定結果は“YES”となり、操作弦120の設置位置を移動する処理がなされる。すなわち、刻々と変化する押下位置に対応させて操作弦120の設置位置を変更する処理が行われる(ステップSC130)。
ここで、ステップSC130の処理が実行されると、続けてステップSC140において付随振動体が設定される。付随振動体とは、ユーザによって直接操作される振動体(操作弦120)の移動に応じて、新たに操作弦120とは別の振動体(付随弦125)を設け、該付随弦125を、ユーザによって移動される操作弦120の後を付随して移動させる処理である。
図9および図13を参照して処理の詳細を説明する。ユーザにより、多点コントローラ40のタッチパネル42が押下された直後の仮想空間100の状態を図9とする。その段階で、操作弦120は図示した位置で静止している。
そこで、ユーザがタッチパネル42を押下したまま押下点をずらすと、図13に示すように、操作弦120は移動する(図中矢印参照)。移動が終了し、移動先で操作弦120が静止したと判断されると、上記操作弦120の移動が開始された点に、付随弦125が生成される。該生成された付随弦125は、操作弦120と同じ経路を操作弦120の3倍の速度で移動し、操作弦120が移動に要した時間の3分の1の時間で移動後の操作弦120の位置に到達する。付随弦125は、操作弦120の位置に到達すると同時に、移動の開始位置に戻り再び同じ態様での移動を開始する。付随弦125は、このような操作弦120の移動を3倍の速さで繰り返す処理を3度行う。
図14は、上述した操作弦120および付随弦125の移動のタイムスケジュールを示した図である。同図からも明らかであるように、操作弦120が移動に要した時間と同じ長さの時間(T)に、付随弦125が3回移動する。図13に示した仮想空間100において、付随弦125は、該3回の移動の各回において仮想粒子200の軌道を横切ることから、付随弦125と仮想粒子200は複数回相互作用する。なお、図13は、例えば時刻t1またはt2またはt3の時点での仮想空間100の状態に相当する。
ステップSC150において、制御部101は、操作弦120の設置を指示する押下位置情報の供給が停止されたか否かを判定する。ユーザがタッチパネル42の押下を停止すると、押下位置情報は制御部101に供給されなくなり、ステップSC150の判定結果は“YES”となり、該押下が停止された位置に対応する操作弦120が消滅する(ステップSC160)。一方、継続して押下されている場合(ステップSC150;“NO”)は、ステップSC120以降の処理が繰り返される。
ステップSC170において、制御部101は、振動体設定処理が終了したか否かを判定する。ステップSC170の判定結果が“YES”である場合は、本振動体設定処理を終了する。ステップSC170の判定結果が“NO”である場合は、再びステップSC100以降の処理を行う。以上が振動体設定処理の流れである。
(B−3;音データ生成処理)
初期設定処理がなされると、制御部101は音データ生成処理を開始する。図11は、音データ生成処理の流れを示したフローチャートである。
ステップSB110において、スプリンクラ150は、仮想粒子200を仮想空間100に放出する。そして、出現した仮想粒子200のそれぞれについて、ステップSB120以下の処理が並行して行われる。
ステップSB120において、微小単位時間後の仮想粒子200の運動が演算される。仮想粒子200が仮想空間100の壁または他の仮想粒子200に衝突した場合には、完全弾性衝突で跳ね返り、該仮想粒子200には新たな速度が設定される。また、衝突が起こっていない場合には、仮想粒子200の速度に微小時間を乗算することにより、仮想粒子200は新たな位置に移動する。
なお、ステップSB120においては、ステップSB110にて仮想空間100に出現した仮想粒子200の全てについて同時にその軌道の算出が行われるため、ランダムに出現した多数の仮想粒子200が互いに相互作用を高頻度で繰り返すこととなる。従って、仮に仮想空間100の各種設定が同一であっても、毎回異なった仮想粒子200の挙動が引き起こされる。
ステップSB130において、ステップSB120の処理により、仮想空間100の底面に達して消滅するか否かが判定される。ステップSB130の判定結果が“YES”である場合には該仮想粒子200を画面上から消去し、該仮想粒子200に関しての処理を終了する。ステップSB130の判定結果が“NO”である場合には、ステップSB140以降の処理が行われる。
ステップSB140において、仮想粒子200が付随弦125と衝突したか否かが判定される。上述した振動体設定処理(割り込み処理)において、操作弦120の移動に伴って生成された付随弦125と仮想粒子200が相互作用した場合、ステップSB140の判定結果は“YES”となり、ステップSB150の処理が行われる。一方、ステップSB140の判定結果が“NO”である場合は、ステップSB120以降の処理が再び行われる。
ステップSB150において、ステップSB140において仮想粒子200と相互作用した付随弦125の振動状態がシミュレーション演算される。そして、該シミュレーション演算の結果から、付随弦125において生成される音の振幅、周波数、音色などが解析され、該音を表す音データが生成される。なお、その場合、付随弦125が仮想空間100中を移動している際に仮想粒子200と相互作用した場合にも、静止している時に仮想粒子200と相互作用した場合と同様に付随弦125を振動させる。
ステップSB160において、付随弦125の振動状態に基づいて音データが生成される。
上述のように、ユーザにより操作弦120が操作されると、該操作と時間をずらして付随弦125が設けられ、付随弦125は操作弦120の移動経路をなぞるように複数回仮想空間100内を移動する。従って、ユーザは、操作弦120の移動を指定するだけで、複数の付随弦125をも制御し、多様な音を生成することができる。更には、付随弦125の移動態様は、操作弦120の操作から一義的に定められるものの、ユーザは操作弦120の操作に注目していることから、ユーザが予期しない態様で付随弦125が移動することとなり、生成される音のランダム性・意外性が増すとの効果を奏する。
ステップSB160が終わると、付随弦125と相互作用した仮想粒子200について、ステップSB120以降の処理が再び実行される。
以上の音データ生成処理と並行して、モニタ30には仮想空間100における仮想粒子200の運動が表示される。また、操作弦120および付随弦125の生成・移動、および付随弦125の振動状態がモニタ30に表示される。生成される音データは該表示に基づくものであるから、ユーザは放音された音とそのまま対応する画面表示を見ることが出来る。
上記ステップSB160において生成された音データは音データ再生部30aへ出力され、音データ再生部30aは該音データを再生する。また、制御部101は、スプリンクラ150の配置態様、操作弦120の設置・移動態様、および仮想空間100に設定された空間特性など、音データの生成に係る各種パラメータの情報(以下、設定情報)を、試行ごとにRAM104に書き込む。
制御部101は、RAM104に書き込まれた設定情報を読み出すことにより、再度同じ条件設定下で音データの生成処理を行うことができる。なお、そのように同様の条件設定で再び音データを生成したとしても、各仮想粒子200の挙動は毎回異なるため、微視的には異なる音データが生成される。
(C;変形例)
以上、本発明の実施形態について説明したが、本発明は以下のように種々の態様で実施することができる。
(1)上記実施形態においては、操作弦120および付随弦125を共にモニタ30に表示する場合について説明した。しかし、操作弦120または付随弦125のいずれか一方のみを表示するとしても良い。その場合、表示されない弦は仮想空間100に存在するものとして音データが生成される、とすれば良い。
(2)上記実施形態においては、付随弦125が仮想粒子200と相互作用した場合に音データが生成される場合について説明したが、操作弦120または付随弦125のいずれが仮想粒子200と相互作用した場合にも発音するとしても良い。
(3)上記実施形態においては、操作弦120が多点コントローラ40の操作により移動された場合に、その移動開始から終了までの期間に基づいて、複数の付随弦125が設けられるタイミングが決定される場合について説明した。しかし、付随弦125が設けられるタイミングは、上記に限られるものではない。例えば、付随弦125は継続的に1つだけ設けられ、該付随弦125は、所定時間前に操作弦120が存在していた位置に配置されるようにしても良い。すなわち、操作弦120が移動していない場合には操作弦120と付随弦125は同じ位置に設けられ、操作弦120が移動された場合には、操作弦120を追いかけるように付随弦125が移動するようにしても良い。
(4)上記実施形態においては、付随弦125と仮想粒子200との間で相互作用があったときのみ発音されるとしたが、操作弦120と仮想粒子200の相互作用においても発音がなされるようにしても良い。なおその場合、操作弦120と付随弦125とで、物理シミュレーションにおける各種パラメータの値(弦の材質、弦の長さ、張力など)を異ならせたり、生成される音データに各種エフェクト(ボリューム調整、エコー処理など)を施すことで操作弦120と付随弦125との間で異なる音が生成させたりしても良い。
また、上記実施形態においては、付随弦125を3回繰り返し出現させたが、その場合、該出現の度に付随弦125の発音態様を上述のように変えて、連続して異なる音が生成されるようにしても良い。例えば、付随弦125により生成される音の振幅を1回ごと小さくすれば、エコー効果に類似した効果を付与することができる。
また、上記のように、操作弦120と付随弦125とで異なる特性を設定する場合、または、複数設けられる付随弦125の間で異なる特性を設定する場合、操作弦120や付随弦125を互いに異なる態様でモニタ30に表示しても良い。例えば、操作弦120および付随弦125の弦の長さや弓の形状などを上記物理シミュレーションにおける各種パラメータと対応させるように表示しても良い。
(5)上記実施形態においては、操作弦120の軌跡を付随弦125が3倍の速度でなぞるように移動する旨説明した。しかし、付随弦125の移動の態様は、上記説明した態様に限定されるものではなく、操作弦120の移動に応じて移動する態様であればよい。例えば以下に例示する態様で付随弦125を設けても良い。
(A)1つの操作弦120に対して複数の付随弦125が同時に設けられるようにしても良い。複数の付随弦125が設けられるようにすれば、操作弦120の操作により更に多様な音(和音など)を発音させることができる。
(B)付随弦125の移動の繰り返し回数は3回に限られず、1、2、4以上の回数でも良い。
(C)付随弦125の移動の軌跡は、操作弦120の軌跡と同様ではなくても良い。例えば、操作弦120の移動前と移動後の位置をつなぐ直線上を移動するようにしても良い。(D)操作弦120の移動後の位置から移動前の位置に戻るように付随弦125を移動させても良い。
(E)付随弦125の移動を繰り返す際の速度は、3倍ではなくその他のいずれの速度で繰り返しても良い。速度の制御方法は、上記実施形態のように、操作弦120の移動速度の所定数倍で移動するとしても良いし、加速度をつけて操作弦120を追尾するようにしても良い。
(6)仮想粒子200に、操作弦120との相互作用で発音がなされる粒子と、付随弦125との相互作用で発音がなされる粒子と、操作弦120と付随弦125いずれとの相互作用においても発音がなされる粒子などを含ませ、操作弦120と付随弦125との間で異なる態様で発音がなされるようにしても良い。例えば、仮想粒子200の9割は操作弦120との相互作用で発音し、残り1割の仮想粒子200は付随弦125との相互作用で発音するようにするなどとした場合に、操作弦120が仮想粒子200を横切ると、まず操作弦120が大多数の仮想粒子200との衝突に基づく多数の音成分が密につまった音を生じ、続いて付随弦125が少数の仮想粒子200との衝突に基づくまばらな音を生じる、などのように、特徴的な音を生成させることができる。
(7)上記実施形態においては、振動体として操作弦120および付随弦125などの弦状の振動体が設けられる場合について説明した。しかし、振動体は弦に限定されず、例えば太鼓やシンバルなどを模した振動面を有する振動体(以下、面と呼ぶ)を設けても良い。以下、「面」の構成およびその振動の制御について説明する。
面を仮想空間100に設ける場合には、面と仮想粒子200との相互作用の際に、振動面に関する物理的シミュレーションを行い、面特有の音データを生成するようにすれば良い。なお、仮想空間100の表示は2次元であるため、面を面の断面図で表示されるようにしても良い。すなわち、例えば仮想空間100内で始点と終点とが指定された場合には、指定された始点と終点とを結ぶ直線が面の断面となるように、そして面と仮想空間100の表示画面が直交するように面が設けられるとすれば良い。
また、上記実施形態においては、仮想粒子200は付随弦125と相互作用した場合に、反発せずそのまま付随弦125を通過する場合について説明したが、面との相互作用においては、仮想粒子200は跳ね返るとの条件を設けても良い。
(8)上記実施形態においては、操作弦120に対して弦が付随して設けられる場合について説明した。しかし、弦とは異なるオブジェクトが設けられるようにしても良い。例えば、付随弦125に代えて、上記変形例(7)に説明した「面」と同様の特徴を有する付随面が付随弦125と同様にして設けられるようにしても良い。
(9)上記実施形態においては、付随弦125の振動を、物理モデルのシミュレーションにより演算する場合について説明した。しかし、弦特有の音を表す波形データを予めROM103に記憶しておき、仮想粒子200と付随弦125との衝突の度に、該波形データを読み出すようにしても良い。その場合、波形データを複数種類格納しておき、弦の特徴(弦の太さ、長さなど)に応じて、弦ごとに異なる波形データが選択的に読み出されるようにしたり、振幅やピッチなどを変換して発音されるようにしても良い。
(10)上記実施形態においては、仮想粒子200が付随弦125に接近しても、そのまま通り抜ける場合について説明したが、付随弦125と仮想粒子200との相互作用においても、仮想粒子200同士の相互作用と同様に衝突および跳ね返りが発生するようにしても良い。
(11)上記実施形態において、仮想粒子200は、仮想空間100に設定された重力に従って自由落下する場合について説明した。しかし、仮想粒子200の運動に影響を及ぼす構造体(規制体)を仮想空間100に設けても良い。
図15は、規制体の一例であるウォール160の配置に際するモニタ30の画面表示の一例である。ユーザにより制御パネル400下部のウォールアイコン405がクリックされた後ドラッグ操作がなされると、制御部101は該ドラッグ操作の始点と終点を対角線とする長方形の領域をウォール160として画面上に表示させる。例えば、カーソル170が図中170(a)から170(b)の位置までドラッグされると、ウォール160(a)が設定される。
また、カーソル170を、一旦設定されたウォール160の頂点に合わせてボタン22を押下し、押下したままマウス20を移動する操作がなされると、ウォール160の重心を中心としてカーソル170の移動に伴ってウォール160が回転される。例えば、ウォール160(c)の頂点(カーソル170(c)の位置)にカーソル170を合わせ、ボタン22を押下したままカーソル170(d)で示される位置まで移動されると、ウォール160はウォール160(d)で示される位置に回転される。
また、カーソル170をウォール160の内側領域にあわせて同様の操作がなされると、ウォール160はカーソル170の移動に伴って移動される。例えば、ウォール160(e)の内部領域(カーソル170(e)の位置)にカーソル170を合わせ、ボタン22を押下したままカーソル170(f)で示される位置まで移動されると、ウォール160はウォール160(f)で示される位置に移動される。
また、音データ生成処理中にウォール160がダブルクリックされると、選択されたウォール160は消滅するようにしても良い。
このように規制体を設けることにより、仮想粒子200の軌道・存在位置を更に多様に制御することができ、規制体の配置態様に基づく多様な音データを生成することができる。
(12)上記実施形態においては、仮想粒子200同士、および仮想粒子200と仮想空間100の枠組みが衝突した場合には、跳ね返り係数1で完全弾性衝突をする場合について説明したが、跳ね返り係数は、1以外の値でも良い。すなわち、跳ね返り係数が0から1までの非弾性衝突を行うとしても良い。また、自然法則には反するが、衝突後の各オブジェクトの速度を演算する際に、1を越える値を跳ね返り係数として用いても良い。
(13)上記実施形態においては、本発明に係る音データ生成装置10に特徴的な機能を実現するためのプログラムを、ROM103に予め書き込んでおく場合について説明したが、磁気テープ、磁気ディスク、フレキシブルディスク、光記録媒体、光磁気記録媒体、RAM、ROMなどのコンピュータ読取り可能な記録媒体に上記プログラムを記録して配布するとしても良く、インターネット網などの電気通信回線経由のダウンロードにより上記プログラムを配布するようにしても良い。
音データ生成処理におけるモニタ30の画面表示の一例を示した図である。 音データ生成システム1の全体構成を示した図である。 音データ生成装置10の構成を示した図である。 マウス20の外観を示した図である。 モニタ30の画面を示した図である。 多点コントローラ40の機能を説明するための図である。 モニタ30の画面表示の一例を示した図である。 空間特性の設定をするための画面表示を示した図である。 音データ生成処理におけるモニタ30の画面表示の一例を示した図である。 初期設定処理の流れを示したフローチャートである。 音データ生成処理の流れを示したフローチャートである。 振動体設定処理の流れを示したフローチャートである。 操作弦120と付随弦125の移動を説明するための図である。 操作弦120と付随弦125の移動のタイムスケジュールの一例を示した図である。 規制体の設置方法を示した図である。
符号の説明
1…音データ生成システム、10…音データ生成装置、20…マウス、21…本体、22…ボタン、23…通信ケーブル、24…移動検知手段、30…モニタ、40…多点コントローラ、41…通信ケーブル、42…タッチパネル、100…仮想空間、101…制御部、102…光ディスク再生部、103…ROM、104…RAM、105…I/O部、109…バス、120…弦、125…付随弦、150…スプリンクラ、160…ウォール、170…カーソル、200…仮想粒子、400…制御パネル

Claims (4)

  1. 仮想空間を設定する仮想空間設定手段と、
    仮想粒子を前記仮想空間に対して連続的に放出する演算を行う仮想粒子放出手段と、
    前記仮想粒子放出手段の演算により放出された各仮想粒子の軌道を、前記各仮想粒子同士の衝突を含めて演算する軌道演算手段と、
    前記仮想空間に仮想発音体を設定する仮想発音体設定手段と、
    前記仮想発音体の移動を制御する制御手段と、
    前記制御手段によって前記仮想発音体が移動されると、該移動に基づいて付随発音体を生成すると共に該付随発音体を移動させる付随発音体制御手段と、
    前記仮想発音体または前記付随発音体の少なくともいずれか一方と前記仮想粒子の相互作用を演算し、該相互作用に基づいて音データを生成する音データ生成手段と
    を具備することを特徴とする音データ生成装置。
  2. 前記付随発音体制御手段は、前記付随発音体を、前記仮想発音体の移動経路に沿って移動させることを特徴とする請求項1に記載の音データ生成装置。
  3. 前記付随発音体制御手段は、前記付随発音体を複数生成すると共に、該付随発音体を移動させ、
    前記音データ生成手段は、前記複数出現した付随発音体の特性を互いに異ならせることにより、各付随発音体と前記仮想粒子との相互作用を演算した際に、各付随発音体ごとに異なる特性の音を生成することを特徴とする請求項1または2に記載の音データ生成装置。
  4. コンピュータを、
    仮想空間を設定する仮想空間設定手段と、
    仮想粒子を前記仮想空間に対して連続的に放出する演算を行う仮想粒子放出手段と、
    前記仮想粒子放出手段の演算により放出された各仮想粒子の軌道を、前記各仮想粒子同士の衝突を含めて演算する軌道演算手段と、
    前記仮想空間に仮想発音体を設定する仮想発音体設定手段と、
    前記仮想発音体の移動を制御する制御手段と、
    前記制御手段によって前記仮想発音体が移動されると、該移動に基づいて付随発音体を生成すると共に該付随発音体を移動させる付随発音体制御手段と、
    前記仮想発音体または前記付随発音体の少なくともいずれか一方と前記仮想粒子の相互作用を演算し、該相互作用に基づいて音データを生成する音データ生成手段
    として機能させるためのプログラム。
JP2007275752A 2007-10-23 2007-10-23 音データ生成装置およびプログラム Expired - Fee Related JP5011563B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007275752A JP5011563B2 (ja) 2007-10-23 2007-10-23 音データ生成装置およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007275752A JP5011563B2 (ja) 2007-10-23 2007-10-23 音データ生成装置およびプログラム

Publications (2)

Publication Number Publication Date
JP2009103930A true JP2009103930A (ja) 2009-05-14
JP5011563B2 JP5011563B2 (ja) 2012-08-29

Family

ID=40705666

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007275752A Expired - Fee Related JP5011563B2 (ja) 2007-10-23 2007-10-23 音データ生成装置およびプログラム

Country Status (1)

Country Link
JP (1) JP5011563B2 (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5353450A (en) * 1976-10-22 1978-05-15 Sofuia Kk Picture type pachinko game machine
JPH10143155A (ja) * 1996-11-08 1998-05-29 Hitachi Ltd 仮想楽器作成方法
JP2000020058A (ja) * 1998-06-30 2000-01-21 Sony Corp 情報処理装置および方法、並びに提供媒体
JP2004286917A (ja) * 2003-03-20 2004-10-14 Yamaha Corp 楽音形成装置
JP2005329126A (ja) * 2004-05-21 2005-12-02 Heiwa Corp 映像式遊技機
JP2006051078A (ja) * 2004-08-10 2006-02-23 Heiwa Corp 映像式遊技機
JP2007212635A (ja) * 2006-02-08 2007-08-23 Copcom Co Ltd 効果音発生装置、この効果音発生装置を備えたビデオゲーム装置、この効果音発生装置を実現するためのプログラム及び記録媒体

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5353450A (en) * 1976-10-22 1978-05-15 Sofuia Kk Picture type pachinko game machine
JPH10143155A (ja) * 1996-11-08 1998-05-29 Hitachi Ltd 仮想楽器作成方法
JP2000020058A (ja) * 1998-06-30 2000-01-21 Sony Corp 情報処理装置および方法、並びに提供媒体
JP2004286917A (ja) * 2003-03-20 2004-10-14 Yamaha Corp 楽音形成装置
JP2005329126A (ja) * 2004-05-21 2005-12-02 Heiwa Corp 映像式遊技機
JP2006051078A (ja) * 2004-08-10 2006-02-23 Heiwa Corp 映像式遊技機
JP2007212635A (ja) * 2006-02-08 2007-08-23 Copcom Co Ltd 効果音発生装置、この効果音発生装置を備えたビデオゲーム装置、この効果音発生装置を実現するためのプログラム及び記録媒体

Also Published As

Publication number Publication date
JP5011563B2 (ja) 2012-08-29

Similar Documents

Publication Publication Date Title
US8858330B2 (en) Music video game with virtual drums
Winkler Making motion musical: Gesture mapping strategies for interactive computer music
JP4675324B2 (ja) 力覚提示装置、力覚提示方法および力覚提示プログラム
JP6007476B2 (ja) 演奏装置および電子楽器
Marshall et al. Gesture control of sound spatialization for live musical performance
Papetti et al. Interactive vibrotactile feedback enhances the perceived quality of a surface for musical expression and the playing experience
JP4953085B2 (ja) 音データ生成装置およびプログラム
JP5011563B2 (ja) 音データ生成装置およびプログラム
JP4736094B2 (ja) 音データ生成装置およびプログラム
JP5099335B2 (ja) 音データ生成装置およびプログラム
JP4953084B2 (ja) 音データ生成装置およびプログラム
JP4858777B2 (ja) 音データ生成装置およびプログラム
JP2009103931A (ja) 音データ生成装置およびプログラム
JP5267905B2 (ja) 音データ生成装置およびプログラム
Young et al. HyperPuja: A Tibetan Singing Bowl Controller.
JP5051838B2 (ja) 音データ生成装置およびプログラム
Fischman A manual actions expressive system (MAES)
Gadd et al. Metamuse: a novel control metaphor for granular synthesis
JP2009103933A (ja) 音データ生成装置およびプログラム
Keenan A theatre wind machine as interactive sounding object
Howard et al. Force Feedback Gesture Controlled Physical Modelling Synthesis.
Johnston et al. Designing for conversational interaction
Gobin et al. Designing musical interfaces with composition in mind
Havryliv et al. Haptic carillon: Sensing and control in musical instruments
Hoadley Implementation and development of sculptural interfaces for digital performance of music through embodied expression

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100805

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100809

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120426

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

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

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150615

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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