presets: add radial blob preset
presets: qt 5.9 safe
context: add debug
LVis is a project which implements a programmable audio visualizer. It is capable of generating high quality, high frame rate visuals using only software compositing. Presets are written in JavaScript, are fully turing-complete and have full access to rendering primitives.
LVis is built using Qt. Qt already includes a JavaScript
implementation built on libv8 that integrates well with QObject
.
So, by using QJSEngine
, we don't have to worry about the
scripting details. It just works, and just working is a very
compelling argument verses using something like Lua where we
would have to build it all from scratch anyway.
LVis does not depend on any other Qt components other than
QObject
and QJSEngine
. LVis visuals can be included into
applications written with other toolkits, like Gtk.
Software rendering allows for much simpler control over the render pipeline. More "advanced" projects, like projectM allow for preset authors to write custom pixel shaders, but the same effects can be accomplished by using the primitives built into the lvis renderer. Writing pixel shaders, while powerful, has a significant learning curve.
Also, software rendered images tend to have a certain aesthetic to them that the stuff generated by OpenGL pixel shaders simply don't.