Post 1482 wavetable discussion
Posted: Sun May 05, 2013 9:56 pm
Ok, so we fixed a bunch of bugs and normalized a lot of the code underneath, which means its time to go on to new bugs and features. Feel free to ask for things I've missed.
HIGH PRIORITY
HIGH PRIORITY
- Refactor Code to remove WaveformVM.cs entirely, according to discussion with oskari (see personal notes)
- snap to zero crossings doesn't work if selection start == 0 or selection end == samplecount
- snap to zero crossings sometimes only adjusts the start but not the end
- (COMMITED TO SVN but not understood) when you scroll back the waveform there are drawing artefacts at the end of the waveform (especially when zoomed in)
- actually find out why the above fix works..
- set loop command resets the zoom, why ? (because of invalidatedata, all commands that need to use this have this problem because we now re-set the layerindex after they executed)
- strange behaviour of the scrollpane, scrolling with the middle grip scrolls the waveform, clicking the left and right parts scrolls the cursor. this is a bit inconsistent.
- waveLayerVM doesn't exist on an empty slot so clicks on the layer buttons do nothing
- (NOFIX) copy paste to clipboard for 32bit float wavs doesn't work (this seems to be a waveosaurus limitation, can somebody test other editors ?)
- If you edit a .mp3 sample by either deleting / trimming or silencing a portion of the sample, the name of the sample gets blanked out in the wavetable. The sample is still available and accessible however.
- Optimization: make restorlayer take a selection (for trim and so on) ? only back up this selection ?
- NOTE FOR ABOVE FEATURE: the names and path of layers don't seem to be saves in the bmx sadly
- layers seem to get ordered by root note when the drop down is rebuilt, this is just confusing. we should also disable the reordering of the layergrid entirely imho as its very confusing. it also possibly interferes with our new logic to select a layer after editing.
- the wav path being displayed as text somewhere (if available)
- rethink if we need so many DrawVisuals calls
- load layer: this should really replace the selected layer and then add (or rather insert) subsequent layers and push layer beyond the inserted ones down ?
- add new layer
- rename/edit layer names
- rename/edit slot names
- right arrow key in slot should play the sample like in the browser (just play layer 0)
- Position Text in Wave Editor should also show time not just samples
- smooth loop command
- applying gain command to wave can cause them to clip if they are not 32bit floats, should probaly convert the layer to that prior to gaining. (note that you must convert the whole slot!)
- play selection/layer/loop
- additional command version of snap to 0 crossings that is able to select half-wavecycles instead of whole wave cycles
- Option to Ignore Root Note when loading wav (like sticky)
- don't use reflection to get the layer index in GetLayerIndex(IWaveformBase layer), there must be a better way
- "Del" key should delete the selected audio (same as the "Delete" context menu). Other hotkeys?
- The black area in the envelope editor should represent the entire length of the sample, so that the left edge is "sample beginning" and the right edge is "sample end".
- When replacing a sample with a new .wav file, the envelope should stay. Same with sample edits.
- drag waveslot off screen to clear
- drag other waveslot to current waveslot-layer to add
- right click on sample length (wavelayer pane, bottom left) should switch to mm:ss:ms
- show both waveforms if the wav is stereo
- allow multiple draw modes for waveform, so we can show left and right overlayed, because this takes up less space.
- each slot and layer should have its own selection and cursor
- CopySelection and PasteSelection Commands. (pasting a at the cursor position, moving other samples forward or mix-paste-with-original or replace-original-paste etc). Should work across slots and layers too.
- per sample drawing tool
- timeline above wave (for showing loop points and markers, for setting the cursor without loosing selection
- loop and selection markers for timeline
- reset the zoom level to a proper value after delete and trim (it changes to max zoom now which is irritating)
- fix up envelop viewer/editor
- .wav marker support (see Stream CreateSubSection(string name); to save more stuff into the bmx: http://svn.jeskola.net/buzzgui/BuzzGUI. ... aveSong.cs)
- undo/redo on wave edit commands
- bitdepth and samplerate conversion of waveslots/layers
- multiselect slots and layers for operations
- recycle instrument (rex/rx2) support
- load options to ignore data (ie: midinote, loop points)
- toolbar/menu for wave edit commands
- export selected slots (or layers) to a template, make it importable
- Drag a Wave onto the editor to load it but without loading it into a slot/layer
- zoom in further then one-pixel-per-sample
- record directly in the wave editor
- multi-select in the left-hand pane to delete multiple slots at one etc (probably not so easy since everything in the code expects a single selected item)
- looptype and volume should also be saved/restored on destructive commands / copy paste etc. The problem is that looptype, volume are per-SLOT and not per-LAYER. There's certainly occasions where you want one layer to loop but not the other, this is currently not possible.