Waveファイルを作る
44100Hz、8bit、モノラルで2秒間、ノコギリウェーブを鳴らします。
ノコギリウェーブって言葉の響きが面白い。
音程は適当。えーと周期が256サンプルだから(44100/256)Hzになるのかな。
しかしWaveファイルって結構簡単に作れるのね。
open("b.wav", 'w'){|f| rate = 44100 #Hz sample = 8 #bit ch = 1 sec = 2 speed = rate*sample*ch/8 #bytes per sec size = speed * sec fileSize = size + 36 fmtSize = 16 f.print("RIFF", [fileSize].pack('V'), "WAVE", "fmt ", [fmtSize].pack('V'), [1].pack('v'), #pcm [ch].pack('v'), [rate].pack('V'), [speed].pack('V'), [sample*ch/8].pack('v'),#block(byte) [sample].pack('v'), #sample(bit) "data"); wave = [] size.to_i.times{|i| wave[i] = i % 256 } f.print([wave.size].pack('V'), wave.pack("C*")); }