毎月恒例です。Yokohama.rbに行ってきました。
CoreAudioをRubyで触ってみる
Mac OS Xは、オーディオを扱う機能としてCoreAudioというものを持っています。
今回のYokohama.rbでは、そのCoreAudioをRubyで操作するラッパーgem「coreaudio」を@nagachika さんがリリース、ハンズオンセミナーを開催していただきました。
インストール
gemのインストールは簡単です。
gem install coreaudio
でgemのインストールが出来ます。
例
「coreaudio」gemにはサンプルが付いています。
GEM_HOME/gems/coreaudio-0.0.6/examples
にインストールされます。
例えば、record_to_wave.rbというRubyスクリプトは音声を録音して、sample.wavというファイル名で出力します。
スクリプトを見ると、
dev = CoreAudio.default_input_device
で、標準の入力装置(マイク)を選択し、
wav = CoreAudio::AudioFile.new("sample.wav", :write, :format => :wav, :rate => dev.nominal_rate, :channels => dev.input_stream.channels)
で出力形式や出力ファイルを指定。
wav.write(w)
でファイル出力します。
ヘリウムガス
実装として、音はNArrayによる2次元配列の値として取得しているので、これに対して数値変換すると面白い音も作ることができるとのこと。
ハンズオンでは、FFT3Wというgemを使ってフーリエ変換をかけたときのデモを実施されました。ヘリウムガスを吸ったときにでる声に!
examplesのソースで言うとfft_shift_pitch.rbかな。
後半はモクモク
後半は、黙々とRefactoring Ruby Editionの写経を。
Refactoring: Ruby Edition (Addison-Wesley Professional Ruby Series)
- 作者: Jay Harvie, Shane Fowler, Martin Beck, Kent Fields
- 出版社/メーカー: Addison-Wesley Professional
- 発売日: 2009/10/15
- メディア: ハードカバー
- 購入: 2人 クリック: 7回
- この商品を含むブログ (3件) を見る
これ、月一でしかやってないから進みが遅い^^;
もっと本腰入れないと。
Togetter
いつものように、Togetterです。