Song sequence editing

From Buzztard

Jump to: navigation, search

Contents

sequence length (song length)

In buzz the sequence is of infinite length.

The good thing is that one can just move the end-of-song marker a bit down.

The bad thing is that the song has no scrollbar.

Due to our model-view concept, it is not so simple to realize an infinite sequence view, but we have a scrollbar. So the question is - what is the most user-friendly way to extend the sequence?

  • A toolbar button that opens a dialog, when one can enter a new length (or just add/remove a few rows).
  • Always having n extra rows at the end, so that it looks and feels like in buzz. So when you come close to the end with the cursor, it adds more rows (and maybeen remove some, when shortening the song, or mving up without extending the song).

extra columns

We currently have two extra columns (time and label). The time column is in a separate view, that shares the vertical srolling with the main view. This keeps it visible on the left.

Would be nice to do that also for the labels, but then we need to get the cursor from one view into the other (to edit labels of the sequence).

tracks

Buzz uses a context menu to add/remove new tracks (columns). Alternatively we could use a drop-down menu button on the toolbar.

markers

  1. derive from GtkTreeView and override the expose_event handler; then in your own handler call the parent classe's expose_event, after which you draw your line on top where you want it
  2. use a GtkLayout and put widgets one over the other (i've tried that, but the treeview always gets to top)
  3. use a gnome-canvas and put the treeview in as a canvas item (tried that too, but again the treeview is always rendered on top
sequence view with hand-draw play-pos

annotated scrollbar

Once gtk supports markers on the scrollbar (e.g. for searches) we could use that to show e.g. labels. Another idea would be to subclass scrollbars and draw the background our-self. Then we could have a song overview there.

Support Us

Collaboration

SourceForge Logo
GStreamer Logo
Become a Friend of GNOME
Linux Sound Logo
MediaWiki
Valgrind
GNU Library Public Licence
GNU Free Documentation License 1.2