Skip to content
Chong Kai Xiong edited this page Jan 14, 2023 · 11 revisions

Upcoming (0.5.0)

  • Ongoing: Streamline API and implementation for (conceptual) simplicity and robustness
  • Ongoing: Porting code to use updated libraries.
  • Nearly complete: New parameter system for adjusting plugin options during runtime
  • Nearly complete: New commandline tool (lv-tool) to query, run and test visualizations
  • TODO: Revamp plugin interface to more naturally support OOP
  • TODO: Improve event handling for plugins
  • TODO: Re-implement LV::Bin (VisBin) as LV::Sequence (VisSequence)
  • TODO: Complete basic examples of using LV (both C and C++)
  • Ongoing: New website

Maintenance (0.4.x)

  • Ongoing: Backporting of lv-tool.
  • Ongoing: Stability and memory leak fixes.
  • Ongoing: Porting code to use updated libraries.

Future

  • Beat detection system
  • Multi-channel (> 2 channel) audio input
  • Comprehensive profiling system
  • More test waveforms for input_debug
  • Fully DAG pipelines
  • Unify actors and morphs
  • Scripting capabilities using Lua or JavaScript
  • Allow mixing of OpenGL and software-rendered visualisations
  • Multi-core CPU+GPU rendering
  • Optimisation with better use of vectorised CPU instructions, and better cache friendliness
  • GUI for lv-tool
  • GUI for visually graphing and configuring pipelines
  • Port more plugins (ProjectM, Milkdrop, AVS, etc.)
  • Shadertoy like plugin for enabling GLSL scripted visualizations
  • WebAssembly build for in-browser visualizations
  • Android and iOS apps
  • Libvisual plugins for all major media apps and frameworks.

Old Roadmap

Copied and pasted for reference from the old roadmap drawn up by Dennis (synap)

0.5.0

System Summary Detail Author
VisParamCollection implement A new parameter-type that holds a list of possible-options. (Like menu-entries in a drop-down menu) starlon
VisBeat implement Beat-detection API starlon
VisParam refactoring Parameter boundaries are currently stored within VisUI, this should be placed within VisParam. Introduce new list-type. starlon
VisAudio fix Fix crashes that occur with some alsa-drivers. rigid
plugins/input/alsa implement Implement parameters for better tuning of alsa-options rigid
plugins/input/alsa fix Change "ALSA Buffer Overrun" Message from "critical" to "warning" rigid
VisParam implement Callbacks for parameter checking starlon
plugins/actor/lv_analyzer implement Implement parameters (bars/scale/color...) rigid

0.6.0

The goal of the 0.6.0 release is to give application developers a easier to support framework. Part of the strategy is to make displaying plugins easy and also give application developers a good API to access plugin configuration.

Features / TODO

System Summary Detail Author
VisPipeline Implement Design and implement a system for maintaining pipelines of visualisation plugins, transformation and morphing.
VisBin rewrite Reimplement VisBin from scratch and make use of VisPipeline for all it's pipeline management.
VisMem mem_copy additions Create a mem copy that is rowstride aware.
VisVideo and libvisual-display on the fly depth change Add support to schedule video depth change requests to the display layer.
VisVideo and libvisual-display on the fly preferred FPS set Add support to schedule a preferred FPS on the fly and propagate this to the display layer.
VisVideo and libvisual-display update by rectangle Add support for rectangle updates in VisVideo and the underlaying display layer.
VisVideo and libvisual-display pBuffer support Add pBuffer support to libvisual and it's displaying stack so plugins like projectM can use it.
VisVideo and libvisual-display GL support Research what is missing from our GL support stack.
VisSongInfo final touches Finish up the VisSongInfo framework and allow clients like amaroK to display cover art overlayed in visualisations.
VisParam and VisUI refactoring Parameter boundaries are currently stored within VisUI, this should be placed within VisParam. Also both systems need some serious love to fight bitrot.
libvisual-display implement / refactor Create the library and setup the environment.
libvisual-display implement / refactor X11 driver.
libvisual-display implement / refactor X11 fullscreen driver.
libvisual-display implement / refactor GLX drivers.
libvisual-widgets implement Qt VisUI driver.
libvisual-widgets implement / refactor gtk1 VisUI driver.
libvisual-widgets implement / refactor gtk2 VisUI driver.

0.8.0

System Summary Detail Author
All Review Do a big overall code review Everyone
All Review Do a big overall API review Everyone
VisScript New module New module for super fast evaluation of mathematical expressions Sepp Wijnands and Dennis Smit
VisMem Buffer pools and Object pools to improve the memory model Dennis Smit
All Optimalization Find more hot spots for SIMD optimization, do this as generic as possible Dennis Smit
VisFourier Enhancements SIMD optimization Dennis Smit
VisFourier Enhancements 2D FFT Chong Kai Xiong
All Refactoring Make a generic macro system that can compile our assembly both with gcc and intel syntax style inline assembly compilers. Also we've observed many blocks of instructions that are everywhere the same, we could create a small meta language of macros to make this nicer