[LAD] Writing a library?

Joshua Boyd jdboyd at jdboyd.net
Wed Jul 23 12:41:20 UTC 2008


On Jul 22, 2008, at 10:26 PM, Darren Landrum wrote:

> I've been looking around for a library to read and write SFZ files,
> which is an open sampler format released by Cakewalk:
>
> http://www.cakewalk.com/DevXchange/sfz.asp
>
> Finding none, I thought I might try my hand at writing a library for
> this myself, as there is no embedded wave information like with Gig
> files. SFZ is simply a text file to be parsed.
>
> Now, I know about writing a good header file, and its associated  
> class,
> and all that, but I have no knowledge of how to write it as a dynamic
> library. Google searches on every possible permutation have been
> worthless to me as well.
>
> I would prefer to write it in C++, as that's what I know, and even  
> then,
> not too well, hence why I thought I'd start with something simple like
> parsing a text file. If anyone has any advice, recommendations, or
> ideas, I'll happily listen and learn. I have yet to think too much  
> about
> how the data will be stored in the class, and what methods to make
> available to access it, so if anyone knows any best practices  
> there, I'd
> really like to know. Consider this a feeler post.

I'd strongly suggest you consider learning C if you want to maximize  
other people using your library.  If you write the library in C++ it  
will be hard for anyone but C++ users to use it.  If you write it in  
straight C, or at least expose a plain C interface, it will be  
trivial to use for C users, C++ users, Objective C users, Python  
users, Smalltalk users and some scheme and lisp users, and I'm sure  
I'm missing other languages that can interface with C easily.

Also, I suggest that you learn how to use a lex program like Flex.   
You could also possibly use a parser generator, something like yacc/ 
bison on top of that.  The time spent learning flex will be time very  
well spent and the time spent learning it will probably pay itself  
back immediately as your write your tokenizer.  There are quite a few  
good free lex and/or yacc guides available, often on university web  
sites.



More information about the Linux-audio-dev mailing list