Read & write .wav sound files with Ruby
Let’s say you have these three Wave files:
The program below will concatenate them into one file:
require "wavefile"
include WaveFile # To avoid prefixing classes with "WaveFile::"
FILES_TO_APPEND = ["one.wav", "two.wav", "three.wav"]
OUTPUT_FORMAT = Format.new(:stereo, :pcm_16, 44100)
Writer.new("one_two_three.wav", OUTPUT_FORMAT) do |writer|
FILES_TO_APPEND.each do |file_name|
Reader.new(file_name).each_buffer do |buffer|
writer.write(buffer)
end
end
end
Intrigued? Check out more examples.
Or, check out the tutorial for a getting started guide.
First, install the WaveFile gem from rubygems.org:
gem install wavefile
…and include it in your Ruby program:
require "wavefile"
…or Gemfile:
gem "wavefile"
Note: It’s recommended that you use a Ruby version manager such as rvm or rbenv. But if using the system Ruby that comes pre-installed on macOS, you should used sudo gem install wavefile
. Otherwise you might run into a file permission error.
View the source on GitHub
Copyright © Joel Strait 2009-20