vovoid / vsxu Goto Github PK
View Code? Open in Web Editor NEWVisual programming language; Real-time OpenGL graphics; Embeddable; GPL/LGPL Licensed; Audio/Music Visualizer; Animation tool
Home Page: http://vsxu.com
License: Other
Visual programming language; Real-time OpenGL graphics; Embeddable; GPL/LGPL Licensed; Audio/Music Visualizer; Animation tool
Home Page: http://vsxu.com
License: Other
bezier curves?
showing keyboard keys - sdfe to move around, w zoom in, r zoom out
these can be a bunch of PNGs fading in and out.
If it doesn't complete its run it crashes on pthread_join.
Maybe it's due to not being a valid thread handle?
also requires updates to the statelist/manager
Default visuals won't load due to this, from artiste's hypertree browser
due to trying to join a non-created pthread
See title.
When double-clicking the numbers in a knob, vsxu_artiste crashes with the error: Segmentation Fault.
"The reqquested Fullscreen mode is not supportet by Your Video Card"
possible solution: make the ends of connectors (above anchors) not clickable when the anchor is "closed" ?
Should be available for engine_graphics, modules. Maybe possible to pass some of these options to the engine in a constructor as well.
When left clicking to open the console, it usually is alright. When you close it with right-click it's alright.
But if you do this a couple of times (doesn't seem to be a constant number, it happens on different numbers of tries), or just wait for the timer to stop (when the console is empty), you crash vsxu_artiste by writing something in it and pressing enter.
Results in Segmentation Fault.
some keyboard double-event?
We need to:
for engine and engine_graphics,
So that other programs can use libVSXu for their own development.
It should be noted that the current constructor of vsx_manager might have to be more friendlier: (how would a developer know where vsxu_visuals are installed??).
Code from VSXu Player:
manager = manager_factory();
std::string path = PLATFORM_SHARED_FILES_STLSTRING;
// init manager with the shared path and sound input type.
// manual sound injection: manager->init( path.c_str() , "media_player");
#if PLATFORM_FAMILY == PLATFORM_FAMILY_WINDOWS
manager->init( path.c_str(), "fmod");
#else
manager->init( path.c_str(), "pulseaudio");
#endif
To recreate:
==2128== Invalid read of size 8
==2128== at 0x5C35F41: vsx_module_param<1, float, 4, 1>::set_internal(float, int) (vsx_param.h:222)
==2128== by 0x5C4D62D: vsx_param_sequence::execute(float) (vsx_param_sequence.cpp:180)
==2128== by 0x5C564FE: vsx_param_sequence_list::run(float, bool) (vsx_param_sequence_list.cpp:236)
==2128== by 0x5BFEE60: vsx_engine::render() (vsx_engine.cpp:765)
==2128== by 0x4A8D73: vsx_window_texture_viewer::draw_2d() (vsx_widget_preview.cpp:117)
==2128== by 0x44F4F1: vsx_widget::draw_children_2d() (vsx_widget_base.h:329)
==2128== by 0x44E050: vsx_widget::draw_2d() (vsx_widget_base.cpp:1239)
==2128== by 0x4F54DE: vsx_widget_desktop::draw_2d() (vsx_widget_desktop.cpp:409)
==2128== by 0x4F8E5D: vsxu_draw::draw() (application.cpp:177)
==2128== by 0x4F7C77: app_draw(int) (application.cpp:451)
==2128== by 0x4FAE81: main (main.cpp:318)
==2128== Address 0xada5560 is 80 bytes inside a block of size 112 free'd
==2128== at 0x4C27FF2: operator delete(void_) (vg_replace_malloc.c:387)
==2128== by 0x5C5E29D: vsx_module_param<0, float, 1, 1>::~vsx_module_param() (vsx_param.h:276)
==2128== by 0x5C5CF24: vsx_module_param_list::~vsx_module_param_list() (vsx_param.cpp:139)
==2128== by 0x5C45708: vsx_comp::re_init_in_params() (vsx_comp.cpp:167)
==2128== by 0x5BFF4F1: vsx_engine::redeclare_in_params(vsx_comp_, vsx_command_list_) (vsx_engine.cpp:839)
==2128== by 0x5C0820F: vsx_engine::process_message_queue(vsx_command_list_, vsx_command_list_, bool) (vsx_parameters.h:85)
==2128== by 0x4F8E89: vsxu_draw::draw() (application.cpp:182)
==2128== by 0x4F7C77: app_draw(int) (application.cpp:451)
==2128== by 0x4FAE81: main (main.cpp:318)
==2128==
==2128== Invalid write of size 4
==2128== at 0x5C35F55: vsx_module_param<1, float, 4, 1>::set_internal(float, int) (vsx_param.h:222)
==2128== by 0x5C4D62D: vsx_param_sequence::execute(float) (vsx_param_sequence.cpp:180)
==2128== by 0x5C564FE: vsx_param_sequence_list::run(float, bool) (vsx_param_sequence_list.cpp:236)
==2128== by 0x5BFEE60: vsx_engine::render() (vsx_engine.cpp:765)
==2128== by 0x4A8D73: vsx_window_texture_viewer::draw_2d() (vsx_widget_preview.cpp:117)
==2128== by 0x44F4F1: vsx_widget::draw_children_2d() (vsx_widget_base.h:329)
==2128== by 0x44E050: vsx_widget::draw_2d() (vsx_widget_base.cpp:1239)
==2128== by 0x4F54DE: vsx_widget_desktop::draw_2d() (vsx_widget_desktop.cpp:409)
==2128== by 0x4F8E5D: vsxu_draw::draw() (application.cpp:177)
==2128== by 0x4F7C77: app_draw(int) (application.cpp:451)
==2128== by 0x4FAE81: main (main.cpp:318)
==2128== Address 0x1e7254e0 is 0 bytes inside a block of size 4 free'd
==2128== at 0x4C27C6E: operator delete (vg_replace_malloc.c:409)
==2128== by 0x5C5E253: vsx_module_param<0, float, 1, 1>::~vsx_module_param() (vsx_param.h:275)
==2128== by 0x5C5E291: vsx_module_param<0, float, 1, 1>::~vsx_module_param() (vsx_param.h:276)
==2128== by 0x5C5CF24: vsx_module_param_list::~vsx_module_param_list() (vsx_param.cpp:139)
==2128== by 0x5C45708: vsx_comp::re_init_in_params() (vsx_comp.cpp:167)
==2128== by 0x5BFF4F1: vsx_engine::redeclare_in_params(vsx_comp_, vsx_command_list_) (vsx_engine.cpp:839)
==2128== by 0x5C0820F: vsx_engine::process_message_queue(vsx_command_list_, vsx_command_list*, bool) (vsx_parameters.h:85)
==2128== by 0x4F8E89: vsxu_draw::draw() (application.cpp:182)
==2128== by 0x4F7C77: app_draw(int) (application.cpp:451)
==2128== by 0x4FAE81: main (main.cpp:318)
I.e. hide everything behind when you doubleclick
Currently this code is only written for GNU/Linux, so we'll need to implement it on windows as well.
In vsx_statelist.cpp
A couple of regressions have been found. Use Luna to test these.
RtMidi is a cross platform (OSX, Linux (Alsa and Jack), Windows) Midi API
http://www.music.mcgill.ca/~gary/rtmidi/
Figure out how to use Midi input from a module and implement it.
The compression has been improved a bit.
We need to look at backwards compatibility, how to solve that.
Possibly with adding a Version number for this new .vsx format. It's quite easy to check for that.
.vsx files those are compiled in 32 bit dont work in 64 bit OSes. This needs to be looked into.
Issue priority: really high!
Here's some interresting flags to test and see what happens:
http://www.debian-administration.org/article/Optimizing_code_via_compiler_flags
When dragging out a new connector, check what is getting focus. It should not be the connector itself (I suspect this is the case) but rather the anchor where it's landing.
This line is causing a problem for those who install VSXu to */lib64 instead of lib
engine/src/core/vsx_engine.cpp: get_files_recursive(vsx_string(CMAKE_INSTALL_PREFIX)+"/lib/vsxu/plugins",&mfiles,".so","");
https://github.com/saidinesh5/tomahawk/blob/master/CMakeModules/GNUInstallDirs.cmake is a good start for this cleanup.
Keep only sources in that one, with the exception of fmod.
There has been several updates to FTGL.
See here: http://sourceforge.net/projects/ftgl/develop
We need to integrate the code again. I believe there was a few hacks needed, but not sure.
When hitting Ctrl+doubleclick on a module input/output
Ideally the module should be able to stream VSXu render output over the network in an appropriate video format. This way one powerful server can stream to multiple thin clients.
An interesting addition for the module would be to support DLNA. Needs more research on how everything fits together.
Go through all the .vsx files and rename them properly
arrow keys to move, pgup/pgdn to zoom.
Currently the destructor of the class does nothing useful,
it should stop all the engines,
delete them.
The same goes for the faders.
With this in place, the app can simply delete vsx_manager when going to fullscreen mode.
For media players, one needs to be able to list and select a visual he/she wants to use....
Engine should be updated to add the querying capabilities.
There are a lot of warnings in the plugin builds.
you would get black when drawing 10 planes with color 1,1,1.0.1.
Solution: make alpha channel in FBO's optional.
Debian:
If we want to create our own ppa, use using a version like 0-0ubuntu0~ppa1 to not mess up users packaging system.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.