Wav File Sink

Write stream to a Microsoft PCM (pulse code modulated) (.wav) file (all versions of GNU Radio) and some other file formats that libsndfile supports (GNU Radio 3.9.0.0 and later):

Values must be floats within [-1;1].

Parameters
(R): Run-time adjustable


 * File (R)
 * Path to the file to write to


 * N Channels
 * Number of audio channels


 * Sample Rate
 * Sample rate of the recording


 * Output Format (GNU Radio 3.9 and later)
 * choice of possible container/audio formats:


 * WAV (old-school windows RIFF sound files)
 * FLAC (lossless audio codec – probably a good choice for storage of actual audio data)
 * Ogg file (Container for lossy compression – allows for choice of vorbis, or OPUS, as audio codec. Prefer OPUS. Very good quality.)
 * 64-bit WAV (RF64, used in broadcasting standards, to support massive multichannel files, and files > 4 GB)


 * Bits per Samples (only WAV, FLAC, 64-bit WAV)
 * Bit-depth of the recording.
 * Rule of thumb: you don't need more than 2 + (audio SNR in dB)·2 bits of integer bitdepth to keep quantization noise below signal noise.
 * "Float" always suffices, but is wasteful on size, if you're using "Double" without having written down a calculation why, you're doing it wrong

Example Flowgraph


Non-GUI flow graph. Records a microphone to an OPUS-compressed .ogg file. Very handy.

Source Files

 * C++ files
 * wavfile_sink_impl.cc
 * wavfile_sink_impl.h


 * Header files
 * TODO


 * Public header files
 * wavfile_sink.h


 * Block definition
 * blocks_wavfile_sink.block.yml