AudioDB Meeting, Goldsmiths Dec 2011¶
MC, CR, CC, LF
Current state
- Library
- Mainline code in trunk works OK
- Library API is "quite good"
- Error handling is a very weak point
- Indexing
- LSH should be in a separate library, but it has no clear interface yet
- There are contortions between e.g. query.c and query-indexed.c
- There is no introspection, e.g. no way to say "is there an index that satisfies this query?" -- only to say "satisfy this query" and fail
- Tools
- Currently we have a library, and a command-line binary which does not use the library API but instead uses some of the same .o files directly
- Some functions are not properly library-ized, for example the command-line tool is the only way to create an index at the moment
- Old fftExtract binary is still in use in some places with a new latent feature separation front-end
- Bindings
- Lisp, Python: Quite good
- pd: broken-ish
- Some additional interfaces e.g. SOAP that predate the stable API and are pretty horrible now
- Bindings are not built automatically
- Documentation
- Essentially none
- Public header has some rather cryptic stuff
- Licence
- Currently all GPL
Actions
- Philosophy: Project should be a set of modules -- not so much a database, as libraries with tools that make use of them
- Discard broken / ancient interfaces e.g. SOAP
- Refactor API so that the (existing) "world object" concept is carried through in order to retain error condition state
- Document API
- Rebuild command-line utility in either C C++ or Python using the API only, and augment API if there are things it needs that don't exist there yet
- Document command-line utility
- (Keep bindings in same repo, don't spin them out)
- Try to build module API for LSH so that alternative implementations could be introduced
- Licence: LGPL for library, BSD for bindings