Orginally written to work with amaroks libvisual socket however due to some limitations I just made the input default to alsa.
So any app piping sound through alsa will make the visuals dance.
I was going to change the name but meh, not a big deal.
Requirements:
libvisual
KDE with openGL capable widgets
Usage:
Just add it to a panel and watch the fun. If you click the visualization it'll bring up a popup box to select from available plugins.
Pretty simple and straightforward.
Beware though some plugins(actors) tend to be buggy and are likely to crash your kicker.
If that happens just restart your kicker and choose another plugin that doesn't.

Ratings & Comments
17 Comments
Thanks very much for this applet. I was not aware that external applications other than Amarok were able to do visualisation of what Amarok is playing. Visualisation is a highly requested feature for Kirocker Music Display. So I want to make your applet work to be able to use the code for Kirocker Music Display. I've somewhat succedded. Here are informations on how to make it compile on KUbuntu: As root, execute those two commands: ln -s /usr/include/libvisual-0.4/libvisual /usr/include/libvisual ln /usr/lib/libvisual-0.4.so /usr/lib/libvisual.so Modify those two files: src/libvisual.cpp line 94: Replace "video->pixels" by "video->pixel_rows" src/Makefile.am line 8 : amarokvis_panelapplet_la_LIBADD = $(LIB_KDEUI) -lGL (add "-lGL" at the end of the line) Configure the applet with the following line: LIBVISUAL_CFLAGS=/usr/include/libvisual LIBVISUAL_LIBS="-lpthread -lm -ldl -lvisual" ./configure Then compile and install it like normally: make sudo make install I said it "somewhat" work because there are a lot of random pixels and it often crash when resizing the panel or changing visualisation. If it crashes, press Alt+F2 and type "kicker" followed by a click on "Execute". I will try to fix the source to make it work seamlessly.
Here is a correction to what I said earlier: src/libvisual.cpp line 94: Replace "video->pixels" by "video->buffer->data" and NOT "video->pixel_rows"
Forgot to say: The visualisation now works without any random pixels, and no shift. But it still crash quite randomly when playing too much with the different plugins, even if less often.
I still forgot this: So now, it works. But there is another problem: the visualisation cannot detect any sound, so it play in the void! Yes: it's very useless! I get two different error messages: libvisual INFO: amarokVis: The rate 44100 Hz is not supported by your hardware. And the second one, I can't reproduce it anymore. But it said alsa connexion cannot be openned (I'm using KUbuntu, which is using alsa!). Does somebody have a clue to solve one or both of the errors?
Maybe you should try libvisual-0.2.0 ... the api is inconsistent iirc and could be the issue.
Making all in src make[2]: Entering directory `/sparr/app/amarokVis/src' if /bin/sh ../libtool --silent --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I. -I.. -I/opt/kde3/include -I/usr/lib/qt3/include -I. -I/usr/include/libvisual-0.4 -DQT_THREAD_SUPPORT -D_REENTRANT -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -O2 -Wformat-security -Wmissing-format-attribute -Wno-non-virtual-dtor -fno-exceptions -fno-check-new -fno-common -MT libvisual.lo -MD -MP -MF ".deps/libvisual.Tpo" -c -o libvisual.lo libvisual.cpp; \ then mv -f ".deps/libvisual.Tpo" ".deps/libvisual.Plo"; else rm -f ".deps/libvisual.Tpo"; exit 1; fi libvisual.cpp:234:2: warning: no newline at end of file libvisual.cpp: In member function 'void Vis::render()': libvisual.cpp:94: error: 'struct _VisVideo' has no member named 'pixels' make[2]: *** [libvisual.lo] Error 1 make[2]: Leaving directory `/sparr/app/amarokVis/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/sparr/app/amarokVis' make: *** [all] Error 2 it fails plz help me i really want this kde improvement to work around i use opensuse 10.2 kde 3.5.6 qt 3.3.7 amarok 1.4.4 libvisual 0.4.0
I made it compile and run with libvisual 0.4. Look at the end of the comments part of this project.
if /bin/bash ../libtool --silent --tag=CXX --mode=compile i486-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I. -I.. -I/usr/include/kde -I/usr/share/qt3/include -I. -I/usr/include/libvisual-0.4 -DQT_THREAD_SUPPORT -D_REENTRANT -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -O2 -Wformat-security -Wmissing-format-attribute -Wno-non-virtual-dtor -fno-exceptions -fno-check-new -fno-common -MT libvisual.lo -MD -MP -MF ".deps/libvisual.Tpo" -c -o libvisual.lo libvisual.cpp; \ then mv -f ".deps/libvisual.Tpo" ".deps/libvisual.Plo"; else rm -f ".deps/libvisual.Tpo"; exit 1; fi libvisual.cpp:234:2: warning: no newline at end of file libvisual.cpp: In member function 'void Vis::render()': libvisual.cpp:94: error: 'struct _VisVideo' has no member named 'pixels' I am using Ubuntu 6.10 i386 and libvisual-0.4. I looked into the headers and indeed, there is no such member. The closest match I could find was: VisBuffer *buffer; /**< The video buffer. */ void **pixel_rows; /**< Pixel row start pointer table. */ Which version of libvisual are you using? Can you help me somehow? Thank you.
I replyed at the end of the comments part of this project. I made it compile and run on KUbuntu (tought it doesn't detect any sound for me :-/ ).
great! would you mind if I use your code in my project? http://www.kde-apps.org/content/show.php?content=52641 it will stay under GPL of course.
great! would you mind if I use your code in my project? http://www.kde-apps.org/content/show.php?content=52641 it will stay under GPL of course.
Yeah no problem, it is of course GPL. Though you might want to take a look at my reply to the first comment, as there is a link to the example I based this plugin off of which probably would do you more justice than my plugin. :)
any tips on compiling in opensuse? It fails in the config to find libvisual. It is located in /usr/lib/libvisual
Hmm could be that your system doesn't use pkg-config? This is how I set it up for testing for libvisual. You can try this: In configure.in.in comment out: PKG_CHECK_MODULES([LIBVISUAL], [libvisual]) AC_SUBST(LIBVISUAL_LIBS) AC_SUBST(LIBVISUAL_CFLAGS) and in src/Makefile.am add to the very top of the file: LIBVISUAL_CFLAGS=/usr/include/libvisual LIBVISUAL_LIBS="-lpthread -lm -ldl -lvisual" Hopefully that helps you compile, let me know if that doesn't work.
way cool ;-) the fact it just uses alsa is a plus, imho, as most sound engines use that anyway, and now it 'just works' with all music and sound... Maybe you can add a 'fullscreen mode' if you (double) click it?
I thought about that, but then I wouldn't be able to use a QGLWidget for that, thus wouldn't be embeddable in the applet. Amarok, xmms and some other apps use SDL or some other lib for their own libvisual plugins which can do that. If you want to make your own I based mine off this simple and neat tutorial which can probably be easily adopted for any other system here: http://www.arcknowledge.com/gmane.comp.audio.libvisual.devel/2005-03/msg00021.html
The link lead to a 404 error. Do you have an offline version of it? Or example sources or... whatever?