FIXMES:
- add demo song
- fix plugins in bsesh
- fix engine deinitialization assertions in bseserver.c
- default saving (SFI_PARAM_SKIP_DEFAULT)
- match enum names on word boundaries only
- master tune slider in preferences (kammer ton)
- bst_gmask should use typedef struct _BstGMask BstGMask; instead of gpointer
- bsemididevice-oss throws warnings when compiled without midi support
- MidiEvent (serialization)
- make bst_catalog_get_action() always return an action, so callers don't need to check
- gxk_toolbar_append_stock() and bst_radio_tools_add_stock_tool() need context help id
- open() may return -EINVAL (e.g. for non-readable cards),
  we shouldn't map that onto BSE_ERROR_INTERNAL
- fix piano roll [VH]PANEL_BG_GC() usage and GDK_Escape (ala trackroll)
- add IDs to part links in tracks
- alow snet flagging as aggregate
- add project_get_wave_snet
- show aggregates with BST_DEVEL
- allow .bse files to start out with #bsesh ?
- update /Help index to cover new docs
- insensitive gmasks should keep xframes sensitive for tooltips and rackeditor
- export item seqid as readonly property (doesn't need its own notification signal then)
- fix name of BSE_SNET_FLAG_USER_SYNTH
- merge snet specifics down to super
- registering the same script function twice triggers GType assertion
- fix procbrowser
- fix uses of gsl_engine_tick_stamp_from_systime() in bstwaveeditor.c
- handle non-validated sequences and records in generation code (things
  can be demarshalled in non-validated form after incompatible changes)
- cleanup helper/util code in sfitype.h
- choice type should have validation function
- does BseMidiIController need a MIDI channel property?
- use procedure storage for undo or nuke the code
- (bsw-script-set-msg 'e "huhu") BSE-Message: while executing "bse-script-set-msg": Procedure execution failed
- song->master volume doesn't affect anything
- fix and canonify decibell naming everywhere
- need volume properties per track
- pressing browsing hotkeys in release-notes dialog does stuff
- don't generate .markup files for NEWS and gsl-mplan.txt
- sample chunk display should show note names not only midi notes
- bstusermessage.c:user_message() signal handler takes choice argument, fix connections
- support [-- Raw --- (big/little) (c=2) (mix=44100) (8/12/16/32) ---] box in wave loader dialog
- RackEditor covers are broken for rack-items close to right table boundary
- delay class destruction and plugin unloading through async handlers (slight timeout)
- replace Balance settings with 3d room position?
- check for non-xref object links which should be turned into xrefs
* eliminate everything that fgrep -i fixme/hack reveals

DOCS:
- try implementing some kind of table layout for tsmview [timj]
- add QuickStart-Samples docs once we support sample editing [timj]
- turn off word-wrapping for normal files (e.g. /etc/profile) in
  tsmview. then, gsl-mplan.txt and NEWS don't need anymore markup. [timj]
- report mising underline to havoc, alper has a tsmview example in
  Re: uref macro, document font Date: Thu, 5 Dec 2002 00:23:38 +0200
- adjust overall brightness of the site [alper]
- in development docs, make function names in descriptions links to
  apropriate functions [alper]
- the beast site is unusable under IE [alper]
- nroff files need another build step to get final page numbers [alper]

General BSE:
- level-o-meter visualizer at links (adjustable?)
  needs linear (red >1) and logarithmic display
- frequency shifter/multiplier (*2 etc.)
- fix fine-tune settings (from gsl)
- fix snet property changes in sub synth and instrument
- replace gsl_signal_exp2() with gsl_approx_exp2() and audio test result
- provide proper dB functions in GSL
- adjust stepping and type for all percentage settings
- alive keeping for waves which are removed, but whose index is in use?
- loading (restore) may only work when not playing (to keep consistency
  and avoid lock contentions during playback)
- during playback the instrument set needs to be fixed on a song  
- BSE_SOURCE_GET_CLASS (source)->remove_input() add GslTrans* so clear_input removes really in batches
- add pre-amplification (0..1) to freeverb for clip prevention
- fix scanner error messages for deferred channel resolution to include the *correct* line number
- fix update_suspension_state() recursion for ordinary cycles
- BseSubinstrument contains pixel artefact
BseWaveChunk:
  if (pos > wchunk->tail.end)                                   /* outside wave boundaries */
    {
      iter->lbound = 0;
      iter->rel_pos = wchunk->n_pad_values;
      iter->ubound = iter->rel_pos + MIN (STATIC_ZERO_SIZE - 2 * wchunk->n_pad_values, pos - wchunk->tail.end);
      if (PRINT_DEBUG_INFO)
        g_print ("PHASE_UNDEF, post-tail %ld %ld %ld\n", iter->lbound, iter->rel_pos, iter->ubound);
      return PHASE_UNDEF (wchunk);
    }
  the "pos - wchunk->tail.end" is wrong for direction=+1, should be checked only for direction=-1 and
  then affect lbound
* wavechunk, fill-block:
  wpos.loop_count = loop_count;
  dnode = gsl_data_cache_ref_node (wchunk->dcache, 0, TRUE);
  s/0/wpos.pos/ or offset
- notifier wakeup is disabled in bsemidireceiver.c
  ('cause gsl_thread_main needs to be replaced by bse_main_thred() or somesuch)

GSL:
* sample loader currently hard codes 440.0 for osc_freq
  Person        S T
- [stw]         2 9 LP -> LP transforms or zero/poles
- [stw]         1 8 3-stage joining FFT code
- [stw]         4   /usr/share/doc/sfftw-dev/README.hacks
- [stw]         1 7 FFT L-case optimiaztions
- [stw]         5 1 .PAT loader (move)
- [stw/timj]      9 port plugins listed in plugins/Makefile.am:UNPORTED
- [stw/timj]    6 3 1) OscTableEntry sizes (wave_table_size ())
- [stw/timj]    7 3 2) development of gsl_osc_table_create() frequencies
- [stw/timj]    4 4 3) PWM scaling
- [stw/timj]    6 6 Filter boundary conditions?
                    Also, need 2stage filters with way smaller errors
                    Filter: Oppenheim Schaefer page.441 2stage filters implementation
                        (2stage pair finding by single (zero, pole) pair plus
                        conj. complex pair)
- [timj]        9   Buffered data handles for coarse seek
- [timj]        8   WaveOsc: prop for stereo channel
- [timj]        2 9 API for lp/hp/bp/bs generation from array of roots and poles
                    (requires zero and poles with ->im != 0 to occour in
                    conjugated complex pairs)
- [timj]        6   in API and docs, s/roots/zeros/
- [timj]        4   gsltests: change freq input, so that [0..1] => [0..pi]
- [timj]        5   gsltest: swap epsilon and steepness params for t2* filters
- [timj]        7 6 Async DCache read-ahead thread creation
- [stw/timj]    6 5 filter evaluate function (to draw graph)

Snet Router:
- ctrl+move should clone objects (DND style modifier) 
- support selections for group moves
- add property editor dialog which contains intersection of properties from selected objects
- middle mouse button on canvas background should scroll

TrackView:
- resizable scrollbar
- context menu with delete, move, insert (double click inserts?)

PianoRoll:
- add to piano roll dialog:
  part-link properties:
  - loop-count
  - length (tact-entry)
  - part coment
  this fixes tact-kind queries for piano roll editing
  and song position pointer placement
- hotkey in piano roll to replay project
- piano roll: pasting doesn't quantize (without later movement)
- hscrollbar resizable (like cubase) or last-tick + 1 tact
- ctrl+move should copy (DND style modifier)
- draw ces and fes with red lines
- tooltip follows mouse and shows current note/tact
- hotkey fuer play song
- play notes upon insert (click on piano roll window)
- two notes from 0..15 and 16..32 look like one
- ctrl/shift modifiers for selection
- quantize upon paste
- fix hscrollbar  (BsePart end position implementation)
- select loop for playback during editing

GUI features:
- entry focus watcher: for property editing entries, do:
  ::focus_in   - set changed_flag=0
  ::changed    - set changed_flag=1
  _apply_value - set changed_flag=0
  ::focus_out  - only re-apply value if changed_flag!=0
- XFrames should highlight like buttons in EDIT mode?
- Module Menu: add EDIT
- part editor needs play position
- track editor needs play position
- Modul BseTranspose, inputs: frequency, outputs: frequency, property: semitones
- part-view: double click on list items should fire up editor
- BstToolbar, drop-down selections work only after button release
- support GUI info about what PCM device is opened r/w and about midi devices (some have just PCM)
- fix data cache seeks to skip the -64 byte offset at block boundaries

General BEAST:
* BLIT, band-limited impulse train oscillator
* object clippboard
* fade in/out of samples (sample editor)
- device monitor delay should be persistent in .beastrc
* get File/Save to work
* quit/close needs to feature mod-time vs. creation-time handling
* wave editor: provide transpose spinner for wave preview

sfidl:
  fixes:
  - support N/A choice values, currently hardcoded for BseErrorType
  - syntax for neutral values in choices
  extensions:
  - choices need support for icons per value
  - choices need support for tooltips per value
  - signals should be specified in idl files (and have to be documentable)
  - procedure skeletons should be specified in idl files
  parsing:
    - plural generator
  code generation:
    - namespace substitution that works for both, C and C++
    - restructure name generation to example-based output:
      foo-bar, foo_bar, fooBar, FOO_BAR, FooBar
  C language binding:
    - review ParamSpec/Record primitive types
    - new enum syntax for value; nick
      YES,
      YES = 1,
      YES = "Yes",
      YES = (1, "Yes"),
      YES = Neutral,
      YES = (Neutral, "Yes"),
  Qt language binding:
    - everything

LEGAL:
- email RMS about plugins covered by patents

vim:set ts=8 sts=2 sw=2:
