User:James/AU14TrackPanelDemo
Some notes on the TrackPanel plug-in developed by James, and shown at AU14.
The new TrackPanel is likely to be an optional plug-in for Audacity for some considerable time, as we make decisions as to how to fully migrate over to using it. It will be positioned as a loop-editor to start with. It will edit audio data in memory, and have a limit of about 15 mins (300Mb Stereo 32bit float at CD rate, 44.1KHz). It will use an edit list rather than baking in the changes, and will simply complain and ask you to save, if you stack too many effects up for Audacity to keep up. That's not the longer term plan, but allows us to postpone some coding.
Contents
Likely Progression
(Revised in view of current release plans for 2.0.6 onwards)
- First Released Version: Provides only the multiscroller, used (a) for theming of Audacity itself and (b) as an optional alternative to a menu for when the menus are very long. Track panel and block editor not released at this stage. Rearrangement of the menu tree can be done using a text editor and YAML file format.
- Second Released Version: 'An optional preview for the adventurous'. Works on 15 mins of stereo audio, in memory. Slightly clunky transfer-to-and-from Audacity project window (e.g. select a range and copy to clipboard, or save to a wav file and load from that). Main advantages are (a) in fine tuning loops, with fluid zoom in/out and ability to set the loop region as you listen to it. (b) cut and paste without clicks, as Audacity heals all the blends. This is particularly useful when cleaning audio. The plug-in must be enabled in preferences to use it. It is mainly for use by early adopters.
- Third released version: 15 minute audio limit removed. Undo/Redo supported. Full complement of real time effects available. Customisation of menus and display. Main remaining limitations are the fixed sample rate (44.1KHz) and absence of spectrogram.
I will likely be working intensively on the block editor from November 2014. The block editor is central to user customisation of the interface, i.e. menus, number of rulers, arrangement and functionality of buttons including simple scripts attached to buttons, whether we overlay information or have separate tracks, which tracks are grouped and mixed together, tracks derived from other tracks, pre-configured effects where some values are already set. It is also the basis for the music editor, as you will drag musical notation from a palette and click it together. It is also central to programmatic use, as scripts can be viewed both as blocks and as text.
Projects
- Proposal Unitary Project : Intention is to add load/save of Wav files, using additional streams within Wav for things like labels. Eventually will work by extending a file with new data and cached changes being added on the end - i.e. a unitary project format, that also happens to be playable as a Wav file (one that has extra baggage in it at the end, and raw recording at the start).
Menus
- Proposal Effect Menu Categorization : Use MultiScroller for large number of effects in tree. Use Block-Editor so that user can rearrange/organise.
- Proposal Menu Reorganisation : Features like Multi-select will make some compound (and confusing) commands disappear. The plug-in structure implies a very logical organisation, and that is the basics that is then tweaked with a few common sense changes to give more prominence to a few heavily used items. The user will also be able to customise and simplify the menus using the same system as for effect categorisation.
- Proposal File Menu Reorganization : One detail is that you will be able to open a wav file, and save it back to a wav file, so the confusing distinction between save and export largely goes away.
GUI
- Proposal Improvement of Meter Toolbar UI : Default meter is most of the width of the screen. Metering becomes active the first time you click play or record. This is when we first ask portaudio to open the device. Staying open prevents a click each time we start/stop playback or record, and it also means we're metering even when not recording. It's also good for Linux/Jack users, as it means the port stays visible when we aren't playing or recording audio. Clipping is shown in the recording rather than elaborate embellishments to the meter.
- Proposal Improvement of Transport Toolbar: No 'armed' state at all. Recording and playback continues from wherever the cursor is.
- Proposal Vertical Scale GUI Improvements : Plug in doesn't have the vertical ruler. Instead you will select a region and ask for stats. It will then give peak, rms, and other info. The existing vertical ruler is using space for very little value, as there are no horizontal rules to match the waveform up with the scale.
- Proposal Cursor Behaviour Improvements : The cursor is already significantly different. There is a play cursor and a record cursor and a cursor in a label. The general idea is to think in terms of 'multiple cursors' and 'multiple selections' as this proves very powerful in text editing - see for example Sublime text editor. When you play a mix, this is really a shortcut for placing several play cursors and starting them all.
- Proposal New Logo :
- Proposal New Skins : Theming already much improved.
- Proposal Preferences Reorganisation : The new preferences system uses a multi-scroller, and that solves the problems of space constraints. The preferences are organised in terms of the plug-ins that provide the preferences.
- Proposal Smart Help : Preferences already (now) have help text interleaved with the groups of related parameters. The info button will provide extended tool-tip information when down. So there will be short tool tips with each item to hover over, and longer tooltips (if you want) in the info panel.
- Proposal Smoother Playback Scrolling : Already set up for smooth scrolling. The main to-do is to adjust the ruler for oscilloscope display mode, as done simply we get the wagon-wheel-effect (wagon wheel goes in reverse). The solution is almost certainly to use the scale to measure (only) and have a counter at a fixed position that gives the time.
- Proposal Space Savers : Many space savers already. The tracks support track groups and overlays, so we can put labels on the same track as the wave, and (still to-do) at a click separate the overlaid tracks. Showing overlaid waveforms on the same track, slightly offset, is likely to give better results for clarity and space saving than the proposal.
- Proposal TrackPanel Evolution : Well, this is the TrackPanel Evolution.
- Proposal Woozle's Interface Tweaks : Zooming is very much changed/improved with the draggable zoom-ruler. Many of the details here are about right click and key assignments and so are preferences. The new interface uses Multi-tool mode only.
Effects, Generators and Analyzers
- Proposal Binding Particular Parameters of Effects to Hot-Keys: Planned. Will actually go further, and you can get a custom effects dialog that gives a different view on a simpler effect.
- Proposal: Reserved keys for custom key bindings: Easily done.
- Proposal Crossfade : Microfades are an automatic (option) for clip joining. True Cross fades not part of the current plan.
- Proposal Import/Export Eq Curves : Import and export of automation curves of all kinds (so including strength vs frequency) planned.
- Proposal Noise Removal : Improvements not part of the plan.
- Proposal Normalize & Amplify Consolidation : Not part of the plan (but see ability to customise / cut down more complex effects).
- Proposal Change Speed Enhancements : Plan to have change speed and change pitch automatable. So for example we can play at speed and vary the speed as we play.
- Proposal Plot Spectrum Enhancements : Not part of the plan.
- Proposal Select Then Act : Used in the new track panel.
Usability
- Proposal Real Time Adjustment : RT adjustment for looping already there. RT for effects plans to use Leland's additions.
- Proposal Timer Record Improvements : Not part of the plan.
- Proposal Easy cfg Reset : Not part of the plan.
- Proposal Clip Navigation : Multi-range view may help. Ability to build custom displays easily may help. For VI users and users using scripting ability to iterate through the tracks and clips will be easy. So should be easy to build a 3rd party clip navigator.
- Proposal Envelope Tool : A major alternative way to do this. Instead of mostly modifying envelope control points, we now select ranges of the envelope and select the shape we would like. This solves the problem of pile-up of control points as we only place as many points as needed for that shape.
- Proposal Easy Avoid Clipping on many tracks : A non essential part of the development is to make the wave form shapes respond to gain and pan changes, and highlight regions which may clip.
- Proposal Label Enhancements : Already improved. Will introduce a new kind of label which spans from its start to the next point label.
- Proposal Nyquist process effects in Chains : Already in R11752.
- Proposal Transcription Editor : Not directly being addressed.
Tools
- Proposal Audio Diff : Yes, but far future. Multiscrollers have it in mind.
- Proposal Beat Finder : Yes but far future. Will be connected to Audio-Diff.
- Proposal Source Separation : Already have colour coding of waveform. Plan to add filter bank as a poor man's version. Also sound segmentation (studio vs phone) to prove the sound separation interface.
DC offset
- Proposal DC Offset removal : Not part of the plan.
- Proposal DC Management : Not part of the plan.
Language Learning
- Proposal Languages Ecosystem : All in good time.
- Proposal Structured Audio : All in good time.
Unclassifed
- Proposal Update Checking : Not part of the plan.
- Proposal General Scripting or Python Integration: The 'Registrar' should make this a lot easier to implement as the different types of resource are already collected and organised. The TrackPanel plug-in is also about designing the API for plug-ins and hence for scripting too.