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:
- 32-bit Float (Little Endian):
f32_le - 32-bit Float (Big Endian):
f32_be - 64-bit Float (Little Endian):
f64_le - 64-bit Float (Big Endian):
f64_be
For example, to configure a stereo stream at 96 kHz using 32-bit floating-point samples, use:
-f:f32_le,2,96000To configure the same stream using 64-bit floating-point samples, use:
-f:f64_le,2,96000Internal Processing Precision
While Ecasound can read and write both 32-bit and 64-bit float files:
- Internal Engine Buffers: By default, Ecasound
processes audio internally using 32-bit single-precision floating-point
numbers (
ECA_SAMPLERATEandsample_ttypes). - 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_leorf64_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.