Devel/Annotator TODO's
From Clam
Contents |
[edit]
Annotator extractor merger (Jun GSoC)
- Native windows compilation
-
Compiling the libraries
-
Compiling NetworkEditor
-
Compiling Annotator/vmqt
-
Compiling Annotator
-
Compiling the plugins (not required)
-
Compiling Voice2Midi (not required)
- Update the native mingw compile wiki
-
- Training tasks:
- Take a look to the Pool related classes
- Build a simple extractor (c++)
- Build a pool to lab converter (python)
[edit]
Widget related tasks
- Make always visible playhead an option
- Option to display the playhead always on the center while playing (piano roll mode)
- Draggable handle for play position on the rulers
- Shared time ruler and time scrollbar for all views
- NetEditor scrolling segmentation view for Roman's chord extraction
- Spectrogram view on the Annotator
- Improve segmentEditor usability (better key bindings)
- complete the segmenteditor modes
- overlapping: not even implemented
- unsized: added but not really tested
- continuous/discontinuous: check adding at the end bug
- Adding attributes to the segments on the segment editor
- Labels
- Heights
- Colors
- Fill Patterns
- Investigate factoring plugins out of InstantViewPlugin.cxx or adding helper methods to reduce code repetition
[edit]
Scheduled tasks
- When no pool can be loaded do something. What?
- Allow starting a pool from scratch
- When a song is deleted, go to no-song state: unselect songs and clear its descriptors
- Check schema loading when editing it on project properties
- Dump back the edited segmentation on the proper way depending on the kind of segmentation
- Initialize to the first segmentation after new schema
- Handle no segmentation after new schema
- Initialize to no song after project loading
- Allow not selecting any song.
- (?) Initialize to the first frame attribute after new schema
- (?) When no frame attributes, hide the frame level attribute pannel
- (?) When no segmentation, hide the segmentation pannel
- Bug: Source Aggregator should rename the child scopes accordingly
- Bug: Display message instead of crashing when incorrect segmentation points read
- Bug: Display message instead of crashing when an attribute is missing
- Bug: Ignore (not crashing) an unsupported attribute
- Option: Playhead always visible
- Feature: Key bindings for segment edition
- Feature: Current segment always visible
- The vertical rulers on the bpf editor are not displayed until a vertical resize
- Syncronize zooms and scrolling among plot widgets
- Support for <List> tag inside multiple item attributes (currently xoliver's annotations have to be checked to avoid the usage of this tag)
[edit]
Unscheduled tasks
- (Low priority) Strong dragging a bound (next and previous bounds are also moved)
- Reproduce the previous behaviour but the limitation on previous and end bound
- Dragging beyond next bounds move them
- Dragging beyond next bounds move them limit lenght
- Dragging beyond previous bounds move them
- Dragging beyond previous bounds move them limits to 0
- (low priority) Body dragging
- (low priority) Body strong dragging
- (low priority) Fix: ContinuousPolicy: When more than two onsets gets colapsed, you can't drag them. Solution: When picking when several onsets have the same value, the nearest one depends on the side you are clicking by index order.
- Make Pool XML related errors being exceptions instead failed assertions
- Change Onsets/Offsets into Beginnings Endings
- Handling of attributes pending of annotation (have no data)
- Error conditions on inserting and deleting on pools:
- Error inserting outside range
- Error inserting on non instanciated
- Error remove outside range
- Error remove on non instanciated
- Test XML still works fine
- Dealing with zero size scopes
- TDD Implementation of SizelessSegmentation
- TDD Implementation of OverlapingSegmentation
- Corrections on XML dumping
- [DONE] Simplify the RestrictedString XML
- [DONE] Rename RestrictedString to Enumerated
- Make the Enumerated be a CLAM Enum
- Bound Text elements to allow using them on multielement scopes, not just the song one.
- Updating changes on the annotation
- Dump old data on the pool when changing the annotation
- When segmentation moved change the underlying pool attribute
- Option 1: Whenever it changes?
- Option 2: On leave semgentation?
- What to do with half edited attributes
- Review that every edit marks the descriptors as changed.
- Error/Warning message on segmentation errors when loading it
- [Done] Not crashing so miserably when the click fails loading
- (high priority) Reliable application flow
- Viable project from scratch
- 'New project' action choses a path for the project
- [DONE] 'New project' action choses an schema
- What to do when adding a file that has no pool?
- [david] Reliable project file content
- Make the file paths relative to the project dir location instead of the working dir
- [DONE] Change the song files
- [DONE] Change the schema files
- [DONE] Fix: Not adding project path to absolute paths
- Refactor the code to centralize path related operations
- Convert filenames to backslashes in windows. Needed??
- Consider independent pool and wave filenames.
- Viable project from scratch
- Documentation into the Schema Browser
- Adding an attribute on the description schema with the url or the xml
- Make this documentation available to the schema browser
- Heights
- Clarify some aspects:
- How to choose the attribute that is height controlled
- How to feed the attribute to the editor
- Which pool update policy
- Mapping units and limits
- Pick function (just in segmentation)
- Drag function (just in segmentation)
- Visual height hovering
- Highlight
- Tooltip 'Attribute: X units', pe. 'MaxFreq: 240Hz'
- Visual height dragging
- Add state for dragging heights
- Entering and exiting the state
- Comunicate drags
- Cross updating table attributes and heights
- Clarify some aspects:
- (low priority) Colors by value
- Clarify some aspects:
- How to map attributes to colors?
- Can the choosing method for height be used also for colors?
- Should we force to be the same attribute for color and height?
- Adding a thicker lower bar will illustrate better the color?
- Clarify some aspects:
[edit]
Global Goals for Simac
- Numeric attributes does not get changed until you exit the cell
- Descriptor Table Plugin for Chords
- Frame view: Spectrum, Peaks
- Segment modes: Unsized, Continuous... (Cal decidir prioritaris)
- [Done] Segment display: Semitransparent box with opaque borders
- Mapping segment pool attributes to segment colors
- Mapping segment pool attributes to segment height
- Tooltip: Height handle, Time handles & Body
- Current Segment and keyboard segment navigation
- Changing enums attributes with keys maps
- Changing enums attributes with contextual menus
- Defining the (keyboard, mouse) user interaction as a whole to be coherent
[edit]
Done Tasks
- [Done] Rework the validation of segmentations
- [Done] Assure that the segmentations are well generated by the ClamExtractorExample
- [Done] When no current audio set the plot range into positive
- [Done] Implementation of Unsized segmentation
- [Done] Encapsulate BPF's, limits, units, intervals inside EquidistantPointsFunction
- [Done] Fix: Continuous segmentation fails loading. -> Due to zero onset being implicit
- [Done] Format for saved segmentations depending on the kind of segmentation
- [Done] Fix: Inserted segment attributes need to be initialized
- [Done] Delete/Insert/Move segment -> Mark song as modified
- [Done] Explicit descriptors save
- [Done] Behave ok when no song selected
- [Done] New project dialog
- [Done] Editing project properties
- [Done] Initialize the bpf if any lld was selected before song load.
- [Done] Initialize the segmentation if any was selected before song load.
- [Done] Bug: double free of project properties when edited
- [Done] Fix: Clearing the song list after new project
- [Done] Edit extractor on the lineedit affects the project
- [Done] Opening boca files
- [Done] Downloading/Uploading descriptors from services
- [Done] Schema browser (or editor), and integrated descriptors documentation (or annotation instructions)
[edit]
Done (Bennet GSoC)
(All being addressed as part of Bennett's GSoC work unless otherwise noted)
-
Add Properties to Attributes
-
update ClamExtractorExample
-
On BuildSchema, add a call to add 'Frame::SpectrumMagnitude', guess or invent the bin gap and offset.
-
On MFCC2Pool get the write pool for such attribute and fill it.
-
Regenerate the example pool data
-
add properties to the FloatArray type on the schema
-
use such properties to fill the FloatArrayDataSource interface
-
PFADS::nBins() should be taken from the new attribute property NBins if available, if not, from the labels size as it is done now.
-
PFADS::getLabel should return:
-
-
Add Scrolling Spectrogram View to NetworkEditor
- tweaks:
remove var duplication on value and colorindex- the real colorindex is cidx
remove duped lines
make QT Designer plugin
-
provide option to turn scrolling on or off similar to smoothing
-
investigate texture limit problem- connect Spectrogram to chordCorrelation port
-
Make the widget work on the Prototyper
- Time accurate scrolling spectrogram
