savannah-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Savannah-hackers] submission of Kiosk MusicViz - savannah.nongnu.org


From: pthisis
Subject: [Savannah-hackers] submission of Kiosk MusicViz - savannah.nongnu.org
Date: Mon, 09 Aug 2004 19:54:35 -0400
User-agent: Links (0.96; Unix)

A package was submitted to savannah.nongnu.org
This mail was sent to address@hidden, address@hidden


Gerry Sumner Hayes <address@hidden> described the package as follows:
License: other
Other License: I selected "other" because there is no multi-license option; the 
majority of the backend system is LGPL, but certain of the visualizations are 
GPL.  Everything is under one of those two licenses.
Package: Kiosk MusicViz
System name: kioskmv
Type: non-GNU

Description:
Kiosk musicviz (KMV) is an implementation of several music visualizations for a 
GNU/Linux platform.  It displays various interesting screen hacks based on the 
music that it is playing.  KMV runs as a full-screen application (I use it via 
tvout on a large-screen TV at parties as a neat background effect).  Both 
standard and widescreen aspect ratios are supported.





The majority of the code should be easily portable to other POSIX-compatible 
platforms but that has not been tested.  KMV consists of several daemons and UI 
components designed to work together:





* A low-level sound-daemon, which handles playback of specified files .  This 
is a minimal playback daemon which forks off decoder processes (Ogg Vorbis is 
included, MP3 is trivially implemented via any third-party decoder which can 
write to stdout), optionally with soft realtime scheduler status and locked 
memory.  Data is decoded into a shared memory segment which is written to the 
sound device and shared with any visualization processes.



* A playlist manager, which keeps track of which songs are to be played next.  
This component also optionally handles hard disk spindown, caching  the next 
several songs in RAM and keeping the disks spun down as much as possible (to 
avoid drive noise).



* A command-line playlist constructor and manager which can both build up 
playlists and move forward/back, pause, unpause, etc.



* Several visualization plugins.  These are mainly new (ground-up) 
implementations, but one is based on the existing GPL'd Synaesthesia 
visualization program.  It is possible to run more than one visualization at 
once, and it is also possible to overlay additional information (visualizations 
for Artist/Album/Track name and for special events triggered based on lyrics or 
other user-specified timing events are included).  These visualization 
components also have access to UI features (pausing, skipping tracks, etc).



* A ratings database (based around gdbm and glib) which allows free-form 
queries to construct playlists.  This uses Bison and Flex.  Queries of the form 
"rating > 5 AND (Genre = Rock or Genre = Punk) AND (MomHatesSong = 0)" are 
allowed.  Users can define arbitrary attributes and combine playlists on the 
fly.



* A client for the ratings database which the command-line playlist constructor 
can easily call.





The majority of the code is POSIX C, with some extensions (all compiled with 
GCC).  A handful of external libraries (including glib, libvorbis, gdbm, and 
gtk) are used, all of which are free software under GPL-compatible licenses.  
There are several administrative shell scripts (which are tested under bash1, 
but should work with a fairly minimal sh) and some Python scripts which are 
completely optional.





Most of the code is pretty rough around the edges in terms of documentation and 
advanced features, but it runs well enough to keep going for hours at a party 
with plenty of inebriated people bashing on the playlists.





I do not currently have a public web/FTP server, so I will need to submit the 
code via email for your review.

Other Software Required:
gtk



gdbm



libvorbis



glib



python2 (optional)

Other Comments:



_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/







reply via email to

[Prev in Thread] Current Thread [Next in Thread]