Ecasound 32-Bit and 64-Bit Float Audio Support

This article examines whether the command-line multitrack audio processor Ecasound supports 32-bit and 64-bit floating-point audio formats. It details Ecasound's format handling capabilities, its reliance on underlying audio libraries for high-precision file I/O, how internal processing precision operates, and the exact syntax used to configure floating-point audio streams.

Support for Floating-Point Formats

Ecasound fully supports both 32-bit and 64-bit floating-point audio formats for input and output operations. Users working with high-dynamic-range audio, intermediate mastering files, or scientific signal processing can read, process, and write files encoded in both single-precision (32-bit) and double-precision (64-bit) floating-point representations.

Support for these formats in file I/O is primarily provided through Ecasound’s integration with libsndfile, which handles container formats such as WAV, AIFF, and CAF that commonly wrap floating-point PCM data.

Specifying Float Formats in Ecasound

Ecasound specifies audio formats using the -f parameter flag. The format signature follows the structure:

-f:sample_format,channels,sampling_rate,interleaving

To use floating-point formats, you supply the appropriate format identifiers for endianness and bit depth:

For example, to configure a stereo stream at 96 kHz using 32-bit floating-point samples, use:

-f:f32_le,2,96000

To configure the same stream using 64-bit floating-point samples, use:

-f:f64_le,2,96000

Internal Processing Precision

While Ecasound can read and write both 32-bit and 64-bit float files:

  1. Internal Engine Buffers: By default, Ecasound processes audio internally using 32-bit single-precision floating-point numbers (ECA_SAMPLERATE and sample_t types).
  2. 64-bit Conversion: When reading a 64-bit float input, Ecasound downconverts the samples to 32-bit float for its internal effect chains, routing, and mixing. If the target output format is set to f64_le or f64_be, it converts the processed 32-bit stream back into a 64-bit floating-point representation upon writing to disk.

This architecture ensures virtually unlimited headroom during routing and effects processing, preventing digital clipping between stages while maintaining full compatibility with modern 32-bit and 64-bit float digital audio workstations.