My team is going to start a project to replace the present storage with SQLite. We would like to know the requirements and the features to be inculcated in it.
The Audacity project DTD is available here: https://github.com/audacity/audacity/blob/master/src/xml/audacityproject.dtd
Please note that this has not been updated in a long while and is not quite complete. For example, the “label” tag now supports “selLow” and “selHigh” elements (for “Spectral Selections” https://manual.audacityteam.org/man/spectral_selection.html).
The blockfiles (“.au” data files) should also be stored in the database.
yashaswath - this sounds exciting.
Please could one of your team join the audacity-devel mailing list https://sourceforge.net/projects/audacity/lists/audacity-devel and outline what you have in mind. There are more active developers on that mailing list than here. This forum is (mostly) for people looking for help with using Audacity.
As we discuss it, we may ask you to produce a wiki page with plans as you update them. How big is your team? Where is it located, and what timescale (deadline) do you have? Do you have a plan for what happens if you are not able to complete in the time you have?
As I am sure you already know, we work on GitHub. We need to build on windows, linux and mac. Are you already compiling successfully on all three platforms? If not, and you’d like help, please ask on the email list with details of where building gets stuck. We have a doxygen ‘map’ of the code at https://doxy.audacityteam.org/annotated.html and plan in time to do better than that.
Our existing scripting feature may be of some use to you in creating tests that you can use to check that the SQLite option is not breaking anything and checking performance.
My personal preference is that SQLite support arrives as a plug-in module just as mod-script-pipe is. This will require new ‘hooks’ in Audacity to connect it in. The advantage is that it becomes a much safer addition. Users who want to try the advantages of SQLite can use the plug-in, and if it reaches sufficient reliability standards, we can easily then make it the default. All this can be discussed and negotiated on audacity-devel.
Thanks for getting in contact, and I’m excited by the prospect of work to get us an a ‘unitary project’ (everything in one SQLite file, rather than in multiple files).
Surely, We’ll get back to you on the mailing list.