Re: [Audacity-devel] libaudacity
A free multi-track audio editor and recorder
Brought to you by:
aosiniao
From: Anthony A. O. <Ant...@ep...> - 2002-06-24 21:19:23
|
On Sat, 22 Jun 2002 20:30:31 -0700, Augustus Saunders wrote: [... snip] >I have noticed a few things about Audacity's popularity: 1) it is cross >platform, 2) it looks nice, 3) it's simple, simple, simple, 4) and yet >it does many useful things. My personal long term goals involve >competing with Logic Audio, Cubase and the likes. However, a lot of >Audacity's current popularity stems in part from the fact that it's NOT >like those pro audio programs (which are, admitedly, very hard to >learn). But when you think about it, the difference is really GUI--the >simple GUI should still have pro quality (ie, 24@96K etc), good effects >and a tight engine. But you can spare busses, inserts, automation, >virtual wiring etc etc. I want to see various interfaces duke it out, >especially since I think that all the commercially available ones suck. > I don't think there's a one size fits all interface, either. So I >would like to see libaudacity go for a very sophisticated model, even if >the Audacity program doesn't expose a lot of it. The question is, what does the core audio engine of this library need ? Here's a feature set I would like to see. It is an almost direct clone of Protools. Protools is IT for efficiency and has a complete feature set that everyone from the beginner to professional needs. AUDIO TRACKS contain: --------------------- REGIONS of references to audio files on a disk. attributes : time code start & stop(samples - translated to other formats for display purposes) audio file offset length (optional: volume per region as in Vegas fade in/out handles as in Vegas) AUTOMATION data for volume, panning, send volume and all VST & LADSPA parameters automation resolution is 2^10 = 1024 points minimum for VOLUME -63 to 64 for panning interpolation between these on a 24 bit level for volume and panning parameters for plugins probably 2^8 automation tracks are created with messages from the UI for example, Logic AUdio 5 creates automation tracks simply by moving an interface element, when WRITE mode for automation is activated. -> AUTOMATION modes (setting for each track, global for track->not per parameter) read write - overwrites data) touch - write while fader/knob is held, return to reading previous automation data when not held any longer ( HOLDING by mouse button or external MIDI controller(later version?)) latch (same as touch, except it keeps writing the value after the controller is no longer held) trim (delta current data - good for keeping details of automation) INSERTS for all plugins that can take at least one channel of data or that can produce data -> VST plugins, LADSPA plugins and generators, analyzers BUSSES THE quintissential feature. These busses stand there all by themselves. 16, 32 or more busses should be provided by the engine. SENDS equivalent to an AUX SEND of a mixing deck. stereo or mono sends audio to another OUTPUT or BUS switch for PRE-FADER send and POST-FADER send INPUT setting choosable input - soundcard INPUT, any BUS number of channels as in the track. OUTPUT settings choosable output - soundcard OUTPUT, any BUS mono, stereo (BUS) for now mono, stereo, x.x (soundcard OUTPUT) later versions should be able to work with OUTPUT profiles, which are sort of output aliases, so you can prepare an OUTPUT set of say six channels, give it a name, and pick this name for the output setting of the TRACK. The engine keeps track of these profiles and provides an the internal interface to the MIXER parameters. (5.1 mixing requires six volume settings) AUX'illary tracks (AUX SENDS in Protools) ----------------- these track types do NOT contain audio, they are live processing tracks that can take input from BUSSES or normal INPUTS -> at least two types - mono & stereo AUX inputs contains the same number of inserts and SENDS as AUDIO TRACKS CANNOT RECORD audio. only AUDIO TRACKS can. these are the FX send tracks. it is paramount that these contain SENDS in addition to INSERTS. these tracks function SUBMIX PATHS, FX tracks, routing machines(choose a different OUTPUT profile) PARAMETERS FOR TRACKS : NAME - number of alphanumerics(max.16?) - identifier of track INPUT ( dependant on number of channels on this track ) OUTPUT ( >= number of channels in this track ) SENDS (default : 5) INSERTS (default : 5) VOLUME (minimum 1024 steps -> .05 dB steps from 0 to PAN AUTOMATION AUDIO TRACK --> regions referencing AUDIO on a fast volume (HD & RAM) AUX TRACK --> except for regions, identical to AUDIO TRACK I've included a small signal-flow diagram (very simple) of a track. This is pretty much everything a core mixing engine should do. You can construct almost any usable audio session from this. Therefore something like this should be part of libaudacity. Did I forget something ? Take care Tony |