Re: ExtAudioFile 4GB file size limitation on WAV files
Re: ExtAudioFile 4GB file size limitation on WAV files
- Subject: Re: ExtAudioFile 4GB file size limitation on WAV files
- From: Brian Willoughby <email@hidden>
- Date: Tue, 03 May 2011 14:11:33 -0700
On May 3, 2011, at 04:10, Paul Davis wrote:
I don't disagree Ross, but I'd also insist that the intricacies of all
the audio file formats are sufficient, even with the ones that are
well specified, that believing that it makes sense to create your own
implementation is nearly always going to be a mistake. there's also
the efficiency argument behind my focus on an implementation - my
addition of BWF support to libsndfile benefits dozens, perhaps
hundreds of programs, whereas a better specification of standard "foo"
really ends up helping almost no-one in the real world. This is *not*
an argument against better formal specifications, naturally.
Since you said "nearly always going to be a mistake," I cannot
disagree with an open-ended statement. But I got started with audio
file formats before the AudioFile and ExtAudioFile classes were
written, and even before libsndfile was written. At the time, only
sox existed, and it had many misinterpreted file format
implementations. Under such conditions, creating your own
implementation was quicker than code reviewing a mess. Also, I
preferred an object oriented framework in Objective C rather than the
typical standard C library. Sometimes it's quicker to write your own
code and know its limitations than to reuse public code that could
just as easily be broken, but in unknown ways. Also at the time I
refer to, many huge DAW programs like Logic had serious flaws in
their AIFF implementation (the infamous odd-length block comes to
mind). So, I reported the bugs in others' code, contributed to a few
open source projects, and kept rolling with my own.
In other words, just because an implementation is popular and used by
many people does not necessarily guarantee that it is correct. These
days, Logic has fixed the AIFF bugs, AudioFile and ExtAudioFile seem
to have been fixed (at least in the newer OSX releases, if not the
updates to older OSX versions), and there seems to be fewer reasons
to favor a private implementation. However, I still use my own audio
file repair utilities to detect common format errors and correct them
using my own file framework.
Further, without
multiple interoperating implementations it is difficult to reach
agreement
on what a standard really means.
My use of the plural form above was entirely deliberate. I would love
to know that there are equivalents in the proprietary world for what
libsndfile represents (in the sense that its an always improving,
always expanding, reliable, documented, well designed library for
audio file i/o). I'm not aware of one, are you?
I take issue with a few of those adjectives, particularly "always
improving" and "well designed." Because libsndfile comes from a
single source, ego interferes with actual improvements to one
developer's design. In this respect, libsndfile does not seem as
open as it could be. The implementation in libsndfile differs from
certain aspects of CoreAudio, and where CoreAudio is in agreement
with the large audio engineering industry, libsndfile implements a
minority view that is destructive to audio quality.
I totally understand the lure of the potential of a totally open
implementation that avoids the pitfalls of proprietary approaches.
In fact, I was almost ready to embrace libsndfile and leave behind
the ongoing task of maintaining my own sound file format framework.
However, I quickly found mistakes in the thinking behind libsndfile's
design, and met with resistance towards bringing those aspects in
line with the CoreAudio implementation, the latter of which happens
to be correct. I'm talking about the dreaded float-to-int conversion
that has been debated many times in the history of this mailing list.
In response to your challenge to find a proprietary equivalent that
delivers an always improving, always expanding, reliable, documented,
and well-designed library, I add the challenge to find an open source
library that actually delivers on that list. Is there anything in
the open world that does not suffer from the single-developer
limitations of libsndfile?
Brian Willoughby
Sound Consulting
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden