johne53 at tiscali.co.uk
Sat May 10 04:13:45 PDT 2008
I need to do some work to 'harmonize' 24-bit audio between AAF and Ardour
(prior to releasing an AAF importer for Ardour). One problem is that AAF
implements a special 24-bit data type (i.e. 3 bytes per sample) whereas
libsndfile internalizes 24-bit audio to 32-bit floats.
One way that I'm considering is to treat the imported audio as raw data and
use libsndfile's 'raw' reading and writing functions. Because sound files
are often 'endian' I need to know whether or not to byte swap the data.
libsndfile includes a new SF_COMMAND called SFC_RAW_NEEDS_ENDSWAP
to serve this purpose. Unfortunately, it was only introduced a few months
ago and (whilst my copy of Ardour isn't the most recent) I think it's recent
enough to see that this new command isn't included in the version of
libsndfile that we use in Ardour.
A temporary kludge might be for me to assume that Ardour is only ever run on
little-endian platforms but is that a dangerous assumption? If there's
anyone out there running Ardour on a big-endian platform (e.g. some Motorola
processors) please speak up now.... :-)
More information about the Ardour-Dev