第14回 Yokohama.rbに行ってきた

毎月恒例です。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かな。

USTREAM

当日の様子をUSTを録画してみました。音声小さめですが、よろしければどうぞ。

後半はモクモク

後半は、黙々とRefactoring Ruby Editionの写経を。

Refactoring: Ruby Edition (Addison-Wesley Professional Ruby Series)

Refactoring: Ruby Edition (Addison-Wesley Professional Ruby Series)

これ、月一でしかやってないから進みが遅い^^;

もっと本腰入れないと。

Togetter

いつものように、Togetterです。