20090516 rubyist九州

9
RubyWAVEファイルを いじってみた。 11 231 451 671 891 1111 1331 1551 1771 1991 2211 2431 2651 2871 3091 3311 3531 3751 3971 4191 4411 4631 4851 -80000000 -60000000 -40000000 -20000000 0 20000000 40000000 60000000 80000000

Upload: kokih

Post on 04-Jul-2015

867 views

Category:

Technology


0 download

DESCRIPTION

RubyでWaveファイルをいじってみた。

TRANSCRIPT

Page 1: 20090516 Rubyist九州

RubyでWAVEファイルをいじってみた。

行 11 行 231

行 451 行 671

行 891 行 1111

行 1331 行 1551

行 1771 行 1991

行 2211 行 2431

行 2651 行 2871

行 3091 行 3311

行 3531 行 3751

行 3971 行 4191

行 4411 行 4631

行 4851

-80000000

-60000000

-40000000

-20000000

0

20000000

40000000

60000000

80000000

Page 2: 20090516 Rubyist九州

自己紹介● 橋本幸樹● ネットではkoki-h、koki_hと言う名前で活動

– はてな:id:koki-h

– Twitter httpd://www.twitter.com/koki_h

– Github http://github.com/koki-h● 出生地は愛知県● 中学・高校時代は宮崎県西臼杵郡高千穂町で過ごす

● →大学生 去年まで福岡在住● 色々あって今は実家のある高千穂で暮らしています。

Page 3: 20090516 Rubyist九州

ruby-soundwave

● http://github.com/koki-h/ruby-soundwave● Wave形式の音声ファイルを操作するためのクラス

Page 4: 20090516 Rubyist九州

WAVEファイルのフォーマット● http://www.kk.iij4u.or.jp/~kondo/wave/

Page 5: 20090516 Rubyist九州

ruby-soundwaveの機能● →読み込み ダンプ

– グラフツールなどに貼り付けると波形が見える● コピー

– WAVEファイルの複製● 合成

– 2つのWAVEファイルから合成波形を作る● 同時に2つの音が聞こえるようになる

Page 6: 20090516 Rubyist九州

ruby-soundwaveの機能(2)

● 減算– 2つのWAVEファイルをとり、減算処理をする

● ボーカル曲からインストバージョンを減算すればボーカルだけを抜き出せる?

● →だめでした(オフセットがずれる?)● 結合

– 2つのWAVEファイルを時系列でくっつける– 一方を再生したあと、もう一方が再生されるファイルが出来る

Page 7: 20090516 Rubyist九州

ruby-soundwaveの機能(3)

● 波形の生成– サイン波– 矩形波– ノコギリ波

Page 8: 20090516 Rubyist九州

ruby-soundwaveの実装● Array#pack / String#unppack を使ってバイナリファイルを読み書き

● 波形作成のときのlambdaとか

Page 9: 20090516 Rubyist九州

今後● 波形にフィルタ(強調・歪み・エコー等)を掛けられるようにする

● 作成したサウンドドライバに直接出力できるようにする

● Rubyで作曲や演奏が出来るようになる。かも。