Pure Ruby audio toolkit v0.2.0

Shape sound.
Stay in Ruby.

Read, transform, process, and write audio with immutable APIs, streaming pipelines, production DSP, and a sequencing DSL.

Explore on GitHub gem install wavify

Ruby 3.1+ · MIT licensed · Core codecs in pure Ruby

tone.wav 44.1 kHz / stereo / 16-bit
01 sine · 440 Hz 02 fade · exp/log 03 dither · 16-bit

The signal chain

One toolkit, from first sample to final file.

01

Generate

Tones, silence, samples, and arrangements from a compact Ruby DSL.

02

Transform

Trim, fade, mix, resample, and convert with immutable operations.

03

Process

Filters, dynamics, delay, reverb, modulation, and mastering chains.

04

Stream

Process long recordings chunk by chunk with stateful DSP tails intact.

05

Encode

Write production-ready audio without leaving your Ruby process.

Readable by design

Audio work that reads like Ruby.

Start with a tone, shape its edges, convert the bit depth, and write a WAV. Each transform returns a new audio value, so chains stay predictable and easy to test.

Read the quick start
quick_start.rb Ruby
require "wavify"

format = Wavify::Core::Format::CD_QUALITY

Wavify::Audio
  .tone(
    frequency: 440.0,
    duration: 1.0,
    waveform: :sine,
    format: format
  )
  .fade_in(0.02, curve: :exp)
  .fade_out(0.05, curve: :log)
  .with_bit_depth(16, dither: true)
  .write("tone.wav")

Codec I/O

The formats you need. No shell-out required.

WAV, AIFF, FLAC, and raw PCM are implemented in Ruby. OGG Vorbis support is available through optional native gems.

  • WAVread / write
  • AIFFread / write
  • FLACread / write
  • RAWread / write
  • OGGoptional

Ready on RubyGems

Put audio in your Ruby stack.

gem install wavify View on RubyGems