- To: coders@xxxxxxxxxxx
- Subject: [coders] Re: coders Digest, Vol 6, Issue 2
- From: "Silvia Pfeiffer" <silviapfeiffer1@xxxxxxxxx>
- Date: Wed, 11 Oct 2006 22:19:14 +1000
- Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=oloHOAEx5n9Ff4OPeJhsb8O2tG6QSe7o8Fnn6bnn40RtAdVKbWYDUIsn60j9DSRIMnhc62hjYUyfZjivXvguvAd3P+VXkeg2OEuKo+bmL/PgKLfMc3Y1+6MNvv54qcdKOWezFoe59ndFnSKfj3IUBv5TmXMmZUKDXO/tKc1cKKI=
Hi Erik,
I personally still think that the API of Maaate that Conrad and I
designed was pretty good
http://www.cmis.csiro.au/maaate/docs/API.html. It took Conrad only a
day or two to make C bindings for it, if that accounts for anything.
:-)
Maaate was created as a framework for analysing mp3 files in the
compressed domain.
The challenge with Maaate was that the tasks involved in audio
analysis are inherently functional, but the selected language was
object-oriented. And still we were keen to find the best possible way
to marry these two ideas.
I started by collating all the soundfile-related functions into a
SOUNDfile class, which - because they are mp3 files - includes all the
compressed domain information such as used window sizes, subbands and
frequencies etc.
Then, we created a Module class which provided a means to write
analysis algorithms. The parameters that the analysis functions could
take were described through a ModuleParam class. The allowed data
types were char, double, int, bool, SegmentData and SegmentTable.
SegmentData could contain a matrix of values relating to a specific
segment of an audio file, and SegmentTable could contain several
SegmentData elements.
Finally we created a Plugins class which would allow the creation of
libraries of analysis modules and their inclusion into a system
through dynamic linking. The intention was to have people create their
own analysis libraries externally - possibly under a non-free license
- and then link it to the core, which was GPL.
Not sure if this helps your current problem...
Cheers,
Silvia.
On 10/11/06, coders-request@xxxxxxxxxxx <coders-request@xxxxxxxxxxx> wrote:
Hi all,
Can anybody point me to FOXX library with a well designed C++
API? Whereever I look I find the most abysmal crap imaginable.
I'll admit that for C, API design ranges from poor (libogg,
libvorbis etc) to great (libcairo, libsndfile) but I have
yet to see a well designed C++ API.
Pointers anyone?
Erik