Skip to content
Find file
Fetching contributors…
Cannot retrieve contributors at this time
253 lines (145 sloc) 7.75 KB
==============================================================================
[P]hase [H]armonic [A]dvanced [S]ynthesis [EX]permient
TODO LIST:
==============================================================================
------------------------------------------------------------------------------
Architectural changes:
------------------------------------------------------------------------------
* Eliminate memory leak in ALSA restart / shutdown. Find and
eliminate remaining memory leaks.
* Move GUI, phasex synth engine, audio and MIDI support, and
application framework into separate shared libraries.
* Add thread-safe signal handlers for SIGQUIT and SIGTERM for saving
patches, SIGUSR1 for LADISH, and SIGSTOP and SIGCONT for suspending
workloads.
* Handle misconfigured / missing audio or MIDI driver gracefully.
* Use a table and loop to speed up init_params().
* Add CPU affinity and cgroup configuration support.
------------------------------------------------------------------------------
Build system:
------------------------------------------------------------------------------
* Add build / packaging options to exclude MIDI clock code.
* Add build rules to render knob and icon images from .svg files.
* Use tagged version from git for version referenced from build system.
* Create dev logo to use as main icon/logo in dev builds.
* Add --disable-inputs as a build option to configure.ac.
------------------------------------------------------------------------------
API support:
------------------------------------------------------------------------------
* Support DSSI/OSC for DSSI plugin build. (low priority)
* Support LV2 for LV2 plugin build. (low priority)
* LV2 plugin support in input/output signal chain.
* Support LV2 and DSSI instrument plugin hosting.
* LADSPA plugin support in signal chain.
* PortAudio / PortMIDI support. (low priority)
* Better integration between LASH and native session management.
* Add LADISH support.
* Add Non Session Manager (NSM) support.
------------------------------------------------------------------------------
GUI improvements:
------------------------------------------------------------------------------
* Enable re-routing of JACK/ALSA audio connections in GUI.
* Create an improved ComboKnob widget that consists of a knob, an
editable MIDI cc value w/ up & down arrows, and a non-editable
display value in real units (like note value, freq in hz, dB, etc.)
* Add standard menus and menuitems where applicable.
* Add mouseover hints to show that param labels are clickable.
* Add BPM controller offset to the preferences.
* Add per-channel (per-part?) MIDI status indicators.
* Implement knob color switching (or even alpha-channel glowing rings)
to indicate status (locked, mapped, etc.)
* Add proper finalization for GtkKnob and GtkKnobAnim, possibly
turning GtkKnobAnim into a properl GTK class in the process.
* Finish alternate color themes.
* Add support for color coded knobs.
* Standardize config options with generic config item data structure.
* Add support and graphics to gtkknob for sliders.
* New layouts with parameters in horizontally arranged groups.
* New multi-tab layout (multiple pages of param groups).
* Add sensitivity_parent, sensitivity_parent_value_min,
sensitivity_parent_value_max, visibility_parent,
visibility_parent_value_min, and visibility_parent_value_max to
PARAM struct for improved sensitivity tracking and added visibility
tracking for auto-show / auto-hide parameters.
* Proper detection of desktop size for configuring theme on first launch.
* Add fixed-layout and skin support.
* New compact design for navigator bar.
* Error / Warning dialog popups and message log. Currently, there is
no mechanism in place to pass error, warning, or debug messages back
up to the GUI. This is a key step in eliminating the dependency of
the command line.
* Standardize naming and use of callback arguments.
* Add user-verification for Reset Patch.
* Add laptop mode to gtkknob button handling: Click once to grab a
knob. Once knob is grabbed, all touchpad L-R (or up-down) movements
are translated into relative knob movements. Any button events
received while the knob is grabbed release the grab.
------------------------------------------------------------------------------
Synth improvements / new parameters:
------------------------------------------------------------------------------
* Mono multichannel mode. Optionally map oscillators to different
MIDI channels.
* Optimize DSP algorithms. Use vectorization where possible. Replace
conditionals with the use of function pointers in key places
(starting with run_lfo() and run_osc()).
* Add fine tune and one-shot parameters for LFOs.
* Add Filter Cutoff Mod Amount to oscillators.
* Add modulations for Pan.
* Add pan flipping option to alternate pan between new notes.
* Implement generic parameter smoothing.
* Find a faster way than lookup tables for wave generation, that still
works with current phase accumulator algorithms.
* Fine tune input follower a little better.
* Compressor section that integrates with input follower.
* Add option to play filter cutoff frequencies as MIDI notes on
another MIDI channel.
* Add support for user loaded oscillator samples.
* Add support for full length sample playback.
* White / Pink noise generator w/ ability to modulate filter.
* Add a second filter with linking controls.
* Implement Hermite interpolation for under/over-sampling.
* Implement internal parameter smoothing for Chours Time.
* Add support for alternate tuning systems.
* More thorough support for velocity and aftertouch.
* Add a somewhat flexible modulation matrix.
* Implement an N-pole filter.
------------------------------------------------------------------------------
MIDI improvements:
------------------------------------------------------------------------------
* Add MIDI clock event handling and integrate with new MIDI clock.
* Implement handling of MIDI song position pointer messages for LFO
resync.
* Implement MMC and MTC.
* Add support for modwheel and generic high-res controllers.
* Add MIDI Program Change option to select sessions with values >= 64;
------------------------------------------------------------------------------
JACK improvements:
------------------------------------------------------------------------------
* Fix JACK Transport Tempo and LFO sync.
* Add JACK Freewheel mode.
* Add JACK audio connection tracking / routing.
* Add JACK connection tracking to save session state.
* Add JACK server selection support.
------------------------------------------------------------------------------
ALSA improvements:
------------------------------------------------------------------------------
* Allow connection to multiple (>2) outputs.
* Add ALSA persistent connection handling.
* Fix crash on changing ALSA PCM device when device is not ready.
* Implement retry on busy opening.
* Implement buffer size detection for no-config startup.
* Fix alsa_pcm_mix_parts() for 64-bit sample_t.
------------------------------------------------------------------------------
New major features:
------------------------------------------------------------------------------
* Create a programmable arpeggiator.
* Command line / console interface.
------------------------------------------------------------------------------
New minor features:
------------------------------------------------------------------------------
* Add configuration state to saved sessions.
* Print useful comments in patch output, like the real values that
correspond to the MIDI cc values.
------------------------------------------------------------------------------
Other:
------------------------------------------------------------------------------
Something went wrong with that request. Please try again.