複雑そうだけど意外と簡単
最近プログラミング関連の話題ばかりですみません。それだけ色々行き詰まっているのだと察してください←
今回は、PureDataという言語を用いてサイン波を生成し、それにカエルの歌を歌わせてみました。
詳しい挙動は以下の動画を参照ください。
[adsense]
軽く解説
動画の字幕のほうにもふんわりとした説明を書きましたが、こちらにも書いておきます。
方法としては、
- [counter]オブジェクトで 32個(0~31)の数字を順に出力
- 32個の8分音符(8*4)と捉え、8分音符からなる4小節のかたまりを作る
- [select]オブジェクトで出力された数字に応じて0~6までの数字を出力
- ここがいわゆる楽譜に当たる部分
- 1をド、2をレ、…6をラと仮定している。なお、0は休符
- そしてそれぞれに対応したヘルツ(440Hzを基本とした平均律)を出力
といったところです。
動画0:33~でも紹介していますが、BPMに関してはmsに単位を直し、counterへ出力しています。なんて書くと仰々しく感じますが、やっていることは至極単純です。
BPMとは1分間に刻む回数の事を指しますので、
60000(ms) / [入力されたBPM値] = 1刻みあたりにかかる時間(ms)
をしているだけです。
上記式で算出された値を[metro]オブジェクトにぶち込んでいます。それだけの話です。
インタラクティブデザインの一環として(こう言うとかっこいいね)もともとある曲のBPMやボリュームを自在に操ることが出来る仕組みを作る一歩として作成しました。また進捗がありましたら報告致します。