wav

package module
v0.0.0-...-eff95ce Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 22, 2019 License: GPL-2.0 Imports: 8 Imported by: 0

README

go.mindeco.de/wav

GoDoc builds.sr.ht status

golang .wav reader and writer

Todo

  • Use type WavFile for Reader
  • Implement Stereo interleaving

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrInputToLarge error
	ErrInputToLarge = errors.New("Input too large")
	// ErrNotRiff error
	ErrNotRiff = errors.New("Not a RIFF file")
	// ErrNotWave error
	ErrNotWave = errors.New("Not a WAVE file")
	// ErrBrokenChunkFmt error
	ErrBrokenChunkFmt = errors.New("could not decode chunkFmt")
	// ErrNoBitsPerSample error
	ErrNoBitsPerSample = errors.New("could not decode chunkFmt")
	// ErrFormatNotSupported error
	ErrFormatNotSupported = errors.New("Format not supported - Only uncompressed PCM currently")
)

Functions

This section is empty.

Types

type ErrIncorrectChunkSize

type ErrIncorrectChunkSize struct {
	Got, Wanted uint32
}

ErrIncorrectChunkSize struct

func (ErrIncorrectChunkSize) Error

func (e ErrIncorrectChunkSize) Error() string

type File

type File struct {
	SampleRate      uint32
	SignificantBits uint16
	Channels        uint16
	NumberOfSamples uint32
	Duration        time.Duration
	AudioFormat     uint16
	SoundSize       uint32
	Canonical       bool
	BytesPerSecond  uint32
}

File describes the WAV file

func (File) NewWriter

func (file File) NewWriter(out output) (wr *Writer, err error)

NewWriter creates a new WaveWriter and writes the header to it

type Reader

type Reader struct {
	// contains filtered or unexported fields
}

Reader wraps WAV stream

func NewReader

func NewReader(rd io.ReadSeeker, size int64) (wav *Reader, err error)

NewReader returns a new WAV reader wrapper

func (Reader) FirstSampleOffset

func (wav Reader) FirstSampleOffset() uint32

FirstSampleOffset in the WAV stream

func (*Reader) GetAudioFormat

func (wav *Reader) GetAudioFormat() uint16

GetAudioFormat returns the audio format. A value of 1 indicates uncompressed PCM. Any other value indicates a compressed format

func (*Reader) GetBitsPerSample

func (wav *Reader) GetBitsPerSample() uint16

GetBitsPerSample returns the number of bits per sample

func (*Reader) GetBytesPerSec

func (wav *Reader) GetBytesPerSec() uint32

GetBytesPerSec returns the number of bytes per second of audio. ie: byte rate

func (Reader) GetDumbReader

func (wav Reader) GetDumbReader() (r io.Reader, err error)

GetDumbReader gives you a std io.Reader, starting from the first sample. usefull for piping data.

func (*Reader) GetDuration

func (wav *Reader) GetDuration() time.Duration

GetDuration returns the length of audio

func (Reader) GetFile

func (wav Reader) GetFile() File

GetFile returns File

func (*Reader) GetNumChannels

func (wav *Reader) GetNumChannels() uint16

GetNumChannels returns the number of audio channels

func (*Reader) GetSampleCount

func (wav *Reader) GetSampleCount() uint32

GetSampleCount returns the number of samples

func (*Reader) GetSampleRate

func (wav *Reader) GetSampleRate() uint32

GetSampleRate returns the sample rate

func (*Reader) ReadRawSample

func (wav *Reader) ReadRawSample() ([]byte, error)

ReadRawSample returns the raw []byte slice

func (*Reader) ReadSample

func (wav *Reader) ReadSample() (n int32, err error)

ReadSample returns the parsed sample bytes as integers

func (*Reader) ReadSampleEvery

func (wav *Reader) ReadSampleEvery(every uint32, average int) (samples []int32, err error)

ReadSampleEvery returns the parsed sample bytes as integers every X samples

func (*Reader) Reset

func (wav *Reader) Reset() (err error)

Reset the wavReader

func (Reader) String

func (wav Reader) String() string

type Writer

type Writer struct {
	// contains filtered or unexported fields
}

Writer encapsulates a io.WriteSeeker and supplies Functions for writing samples

func (*Writer) Close

func (w *Writer) Close() error

Close corrects the filesize information in the header

func (*Writer) Write

func (w *Writer) Write(data []byte) (int, error)

func (*Writer) WriteInt32

func (w *Writer) WriteInt32(sample int32) error

WriteInt32 writes the sample to the file using the binary package

func (*Writer) WriteSample

func (w *Writer) WriteSample(sample []byte) error

WriteSample writes a []byte array to file without conversion

Directories

Path Synopsis
examples

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL