i know design by committee can be horrible but these situations usually utilize
vastly similar yet incompatible formats, so its sort of biting off something
small, i hope.. :)
(1) Peak Files
some of my favorite wav files have 10 metafiles each. peaks generated for peak,
spark, wavelab, soundforge, cubase, ableton live, samplitude, rezound, sweep,
ardour, plus a dir for "Apple Loops" data etc.
it would be great if each time an audio file enters a new app, the user wasnt
greeted with a 30 second burst of disk activity as peak files were generated
yet again..what exactly is needed? here are some thoughts
- average amplitude per time-slice to generate the waveform overview
* what granularity is useful? peak files seem to run a few %
of filesize..
- spectral centroid for comparisonics/freesound style colorization
- annotations (OPML etc)
- timing (tempo, cue points, beat markers)
rather than invent some new arbitrary plaintext (or XML) format, i'm interested
in using OSC (as described at
http://www.cnmat.berkeley.edu/OpenSoundControl/OSC-spec-examples.html ) to
encapsulate this data, at which point this is simply an exercise in selecting a
schema/namespace...
beside faster load-times (eg one could pregenerate this data before a
performance or composition session via a recursive shell command and 'sox'), a
commonly understood format would enable easier sharing of CC-licensed material
among a variety of users and apps without useful metadata being 'lost in
translation'. additionally web and other interfaces could be developed using
the metadata hints (see archive.org, NI's KORE)
(2) Instruments
compatibility and reuse of sample-based instruments between chionic, specimen,
DSSI samplers, PD samplers, LinuxSampler, and seperation between editor and
engine allowing more highly specialized apps - the 'nix way.
- get rid of arbitrary region / bank / instrument boundaries
which seem derived from MIDI (the amount of times you see 1-16 and 0-127 in
modern software instruments is appalling)
- sample regions pointing to audio files or groups
- grouping (nesting / tags)
- volume / filter / lfo stuff
once again i am thinking OSC could be suited to this..
(3) 'project' components
monolithic binary files still seem to remain the norm, eliminating all hope
of reuse without tedious exporting of settings or components, things like:
- pointers to regions (audio files, control streams, other projects)
- note and controller-data streams
- instrument / filter settings
ive thought about this a bit and am leaning towards using a directory on disk,
with a format for each of the above, which would enable revision tracking via
SVN or darcs.. note/control data will likely be OSC (and MIDI encapsulated in
OSC where necessary), instrument/filter settings would be closely aligned with
what is fed to LADSPA/DSSI modules, and the pointer 'glue' file linking others
and assigning filter and routing data to tracks, channels, regions..\\\