Skip to content

Repository files navigation

audio_waveform-ruby

Gem VersionBuild Status

The audio_waveform-ruby gem provides a Ruby API for access to audio waveform data files generated by the audiowaveform program.

Refer to the audiowaveform documentation for more information and this page for file format details.

Installation

To install:

$ gem install audio_waveform-ruby

or, if using bundler, add this line to your application's Gemfile:

gem'audio_waveform-ruby',:require=>'audio_waveform'

or, to use the latest code from the GitHub repository:

gem'audio_waveform-ruby',:require=>'audio_waveform',:git=>'https://github.com/bbc/audio_waveform-ruby.git'

and run

$ bundle install

Usage

To use this Gem in your program, add:

require'audio_waveform'

Then, to load and use data from an existing waveform data file:

waveform=AudioWaveform::WaveformDataFile.new(filename: "test.dat")putswaveform.sample_rate# Returns audio sample rate, in Hzputswaveform.bits# Returns resolution of waveform data pointsputswaveform.samples_per_pixel# Returns waveform zoom level, in samples per pixelputswaveform.size# Returns number of waveform data points(0...waveform.size).eachdo |i|
putswaveform.min_sample(i)# Returns waveform minimum at index iputswaveform.max_sample(i)# Returns waveform maximum at index iend

To generate a binary representation of a waveform data file:

waveform=AudioWaveform::WaveformDataFile.new(filename: "test.dat")data=waveform.to_binary

To save waveform data as a file in binary format:

waveform=AudioWaveform::WaveformDataFile.new(filename: "test.dat")waveform.save_as_binary("output.dat")

To generate a JSON representation of a waveform data file:

waveform=AudioWaveform::WaveformDataFile.new(filename: "test.dat")waveform.to_json

To save waveform data as a file in JSON format:

waveform=AudioWaveform::WaveformDataFile.new(filename: "test.dat")waveform.save_as_json("output.json")

To create a new waveform data file:

waveform=AudioWaveform::WaveformDataFile.new(sample_rate: 44100,samples_per_pixel: 512,bits: 8)waveform.append(-10,10).append(-11,11).append(-3,3)# etc

License

See COPYING for details.

Contributing

If you have a feature request or want to report a bug, we'd be happy to hear from you. Please either raise an issue, or fork the project and send us a pull request.

Authors

This software was written by Chris Needham, chris.needham at bbc.co.uk.

Copyright

Copyright 2020 British Broadcasting Corporation

About

Ruby gem that provides access to audio waveform data files generated by audiowaveform

Resources

Security policy

Stars

84 stars

Watchers

18 watching

Forks

Releases

Packages

Used by

Contributors

Languages