Cue Points 2.0

Registered by Ferran Pujol

This is the project I proposed for GSOC that couldn't be. Now I want to implement it.

Superseeds https://blueprints.launchpad.net/mixxx/+spec/cuepoints-2.0

Blueprint information

Status:
Started
Approver:
None
Priority:
Undefined
Drafter:
Ferran Pujol
Direction:
Needs approval
Assignee:
Ferran Pujol
Definition:
Pending Approval
Series goal:
None
Implementation:
Good progress
Milestone target:
None
Started by
Ferran Pujol

Whiteboard

See attached specification.

I'll start laying out the cue list as a list (like drafted in the specification). Later I'll add a grid layout. The idea is to have both layouts and let the user choose (via skin option).

Notes to myself:

* For loop and loop cues: left click jump&loop, right click loop only. What new CO must be created?

* Predefined set of colors vs custom colors:
    It is not practical (and nearly impossible to midi map) to let users choose cue colors from the main UI with a color picker.
    The best we can do is let the user predefine up to N colors in preferences and then let they choose among these colors when editing cues.
    I'm only implementing coloring with a fixed set of colors, but I'll leave everything prepared for the above scenario as much as possible.
   This means that for cue color display and selection we can't relay on a widget stack. For the design I proposed, I only need the color combobox to both display and edit cue colors. This solution does not allow to display cue color in skins anywhere else, thus restricting what skin designers can do. However, the CO + property bond solution can be done later.
    For the color combobox, at first I'll try to make it not render the cue number and add it on top with a label widget and its <Pos> property.

* Shall we get rid of skin custom waveform marks?
    * Pro: we guarantee cue colors are rendered the same way in every skin (not only our skins)
    * Con: Skin artists can't choose colors that better suit their design.

(?)

Work Items

Work items:
(Cue colors) Modify the data model: DONE
(Cue colors) Modify the database schema: DONE
(Cue colors) Modify the DAO: DONE
(Cue colors) Make new cue points get a default cue color: DONE
(Cue colors) Color waveform marks according to cue color: DONE
(Cue colors) Per cue type default cue colors: TODO
(Cue list) Add cue points edit mode and cue list pages COs: TODO
(Cue list) Make cue point data accessible to skins: TODO
(Cue list) Make cue point colors accessible to skins: INPROGRESS
(Cue list) Make a cue point type accessible to skins: TODO
(Cue list) Add COs for hot cues reordering: TODO
(Cue list) Make a new widget to allow text input: TODO
(Cue list) Make a new widget to allow time input: TODO
(Cue list) Make a combo box widget: DONE
(Cue list) Make a combo box widget to choose colors: INPROGRESS
(Cue list) Add the cue list to Deere and LateNight: TODO
(Cue list) Add the cue list to Shade: TODO
(Cue list) Draggable waveform handles: POSTPONED
(Loop cues) Should samplers support loop controls?: TODO
(Loop cues) Make loops savable: INPROGRESS
(Loop cues) Improve Cue::setType: TODO
(Loop cues) Add CO to support second hot cue activation mode: TODO
(Section cues) Add new section cue type: TODO
(Section cues) Create section bar widget: TODO
(Section cues) Renderer modifications: TODO
(Meta) Gather and file to launchpad all ideas from the mailing list and the proposal that are not here: TODO

This blueprint contains Public information 
Everyone can see this information.