• Stars
    star
    144
  • Rank 246,650 (Top 5 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created over 7 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Generic Go package designed to define a common interface to analyze and/or process audio data

audio

GoDoc

audio is a generic Go package designed to define a common interface to analyze and/or process audio data.

At the heart of the package is the Buffer interface and its implementations:

  • FloatBuffer
  • Float32Buffer
  • IntBuffer

Decoders, encoders, processors, analyzers and transformers can be written to accept or return these types and share a common interface.

The idea is that audio libraries can define this interface or its implementations as input and return an audio.Buffer interface allowing all audio libraries to be chainable.

Performance

The buffer implementations are designed so a buffer can be reused and mutated avoiding allocation penalties.

It is recommended to avoid using Float32Buffer unless performance is critical. The major drawback of using float32s is that the Go stdlib was designed to work with float64 and therefore the access to standard packages is limited.

Usage

Examples of how to use this interface is available under the go-audio organization.