• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: ExtAudioFile 4GB file size limitation on WAV files
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


  • Follow-Ups:
    • Re: ExtAudioFile 4GB file size limitation on WAV files
      • From: Paul Davis <email@hidden>
References: 
 >Re: ExtAudioFile 4GB file size limitation on WAV files (From: Paul Davis <email@hidden>)

  • Prev by Date: Re: Manually mixing audio on iOS
  • Next by Date: Re: Has nobody used CoreAudio Clock?
  • Previous by thread: Re: ExtAudioFile 4GB file size limitation on WAV files
  • Next by thread: Re: ExtAudioFile 4GB file size limitation on WAV files
  • Index(es):
    • Date
    • Thread