Native Uncompressed Audio Formats in Ecasound
Ecasound is a versatile command-line multitrack audio processing tool capable of reading, processing, and writing several uncompressed audio formats natively. Without requiring external translation tools or lossy decoders, Ecasound provides built-in read and write support for standard linear PCM data encapsulated in containers like WAV, AIFF, AU, and pure raw streams.
Supported Formats
RIFF WAVE (
.wav)
WAV is the most commonly used uncompressed format in Ecasound and acts as its primary audio container. Ecasound supports reading and writing linear PCM audio in standard integer bit depths (16-bit, 24-bit, 32-bit) and 32-bit floating-point samples across varying sample rates and channel counts.Raw PCM (
.raw)
Ecasound natively reads and writes raw, headerless PCM audio data. Because.rawfiles contain no header information regarding channel count, sampling rate, or sample format, these parameters must be specified manually using Ecasound’s format parameter (-f) when opening or saving the file.AIFF / AIFF-C (
.aiff,.aif)
The Audio Interchange File Format, traditionally prevalent in macOS and legacy Apple systems, is fully supported natively for both input and output operations. Ecasound handles standard uncompressed linear PCM streams encapsulated within this container.Sun / NeXT Audio (
.au,.snd)
A classic Unix audio format that Ecasound natively parses and outputs. While.aufiles historically supported logarithmic encoding like µ-law, Ecasound natively works with both linear PCM and basic compressed variants supported by internal audio libraries.
Specifying Formats and Parameters
When writing to or reading from uncompressed formats, Ecasound allows
full control over audio parameters using the -f flag:
-f:sample_format,channels,sample_rate
- sample_format: Designates the bit layout, such as
s16_le(signed 16-bit little-endian),s24_le,s32_le, orf32_le(32-bit float). - channels: The number of audio channels (e.g.,
1for mono,2for stereo). - sample_rate: The frequency in Hertz (e.g.,
44100,48000,96000).
For standard containers with valid headers like .wav or
.aiff, Ecasound automatically detects these parameters when
reading, but explicit flags can be used to set desired output parameters
during writing. Headerless .raw files require this flag for
both reading and writing to ensure correct byte interpretation.