Features:

- docs.
- cuepoint repeater.
- better resampling algorithm. (done, SRC is great, needs testing)
- pencil tool for sample drawing.
- multiple clipboards. (maybe) 
- (simple) soundfile browser.
- guile scriptability (maybe).

Cosmetic/UI:

- buttons in playbar are gone now that gnusound.glade is in same 
  directory. (done)
- strange behavior when windows are overlapping and dragging 
  something out of one window on to another
- optimize redrawing, blit new data only, other optimizations. 
  (always, really)
- better display algorithm for low magnification. (actually it is fine)
- error handling + reporting (e.g. word wrap).

Functional bugs:

- sometimes playback becomes impossible, pthread_create return error?
- paste mix behaves weird sometimes?
- paste fit broken: pasted clipboard must *exactly* match selection
  length. (fixed, still needs better resampler) (use libsamplerate) 
  (done, needs testing)
- tonegen frequency envelope inverts below -.5.
- ladspa plugins buffers discontiguous (chebysev pops?) (maybe fixed)
- record_discard should not discard before record start point.

Technical/Other:

- make shell less dependant on GUI
- maybe division by zero is possible somewhere in resample code 
- factor out player code from shell and make it more
  modular so that support for SDL/ALSA/jack becomes
  at least possible (but only if we don't lose the 
  simple 'it-just-works' quality in the process)
- keep track of expected/actually read frames so we can
  alert user in status bar or something. need general way 
  of unobtrusively alerting user other than the console
- check + sanitize envelope behaviour across modules.
- make selection independant per track (ui is problematic) (maybe).
- fix block_join and use it. (maybe) (nah)
- correctly "blend" graph data on element boundaries.
- selection control & undo is fragile. (not very important)
- more efficient replace operation (currently delete/insert, maybe
  hard to make more efficient).
- clean up actions and stuff. (think this through)
- redo after undo. (see above)
- disk store for clipboard and undo buffers at least.
- sample format conversion on output. 
- start play while loading yields incorrect (too low) frame_count
  so that playing stops prematurely. (not a bug, just inconvenient)
- reentrancy issues when nesting actions. (mostly done)
- disable certain functions on save, clipboard, etcetera.
  (i.e. reentrancy above) (mostly done)
- proper locking between player and gui threads particularly
  wrt. to recording. (basically done, maybe bugs) (fixed up, 
  pretty confident now) (still buggy, hopefully fixed now!)
- show clipboard. (sort of done, still problems, i.e. markers/selection
  are lost when opening/closing clipboard) (better now, maybe 
  needs more)
- undo in rapid succession recurses and crashes. (done?) (done)

Debugging data:

- crash (while dragging marker at very small hres factor,
  probably marker_being_dragged was never set to NULL or something) 
  (cannot reproduce):

    #6  marker_list_marker_delete (ml=0x810d230, m=0x41cfff98) at marker.c:156

m points at nonsense!

    #7  0x8061dce in shell_canvas_button_press_event (widget=0x80fdf98, event=0x810e028, shl=0x80b4470) at shell.c:475
    #8  0x40289fbc in gtk_marshal_BOOL__POINTER () at eval.c:41
    #9  0x402bd916 in gtk_handlers_run () at eval.c:41
    #10 0x402bcc3d in gtk_signal_real_emit () at eval.c:41
    #11 0x402ba9f5 in gtk_signal_emit () at eval.c:41
    #12 0x402f50e9 in gtk_widget_event () at eval.c:41
    #13 0x40289f15 in gtk_propagate_event () at eval.c:41
    #14 0x40288f3f in gtk_main_do_event () at eval.c:41
    #15 0x40340e4f in gdk_event_dispatch () at eval.c:41
    #16 0x404d47f3 in g_main_dispatch () from /usr/lib/libglib-1.2.so.0
    #17 0x404d4dd9 in g_main_iterate () from /usr/lib/libglib-1.2.so.0
    #18 0x404d4f8c in g_main_run () from /usr/lib/libglib-1.2.so.0
    #19 0x40288803 in gtk_main () at eval.c:41
    #20 0x805cef5 in gui_run (argc=1, argv=0xbffff904) at gui.c:204
    #21 0x8067d6a in main (argc=1, argv=0xbffff904) at main.c:66
    #22 0x4051d617 in __libc_start_main (main=0x8067d04 <main>, argc=1, 
        ubp_av=0xbffff904, init=0x804f784 <_init>, fini=0x8067dd0
<_fini>, 
    rtld_fini=0x4000dcc4 <_dl_fini>, stack_end=0xbffff8fc)
        at ../sysdeps/generic/libc-start.c:129
	