changes from version 2.0 to 2.1 - added tamaint script. This script can be used to do minor database maintenance and the functionality of the taalbumimages and taverify script will most likely be rolled into this script in the future. Currently, it only allows you to completely delete an album from the database - the default poll time for wav files to convert to ogg was increased significantly - changed the default number of sectors value (-n) on dagrab to 8. It was 64, in an attempt to speed up ripping. 64 caused some pretty serious defects on some newer discs on my production machine. If you want to try speeding up your ripping speed using dagrab, experiment on the command line by invoking dagrab with different values for -n to find out what works for you. The default of 8 should be safe for most combinations of discs and drives. - fixed warnings output by taripdisc when used with the --infofile option and there is no cover art images found - taripdisc now uses the original filename extension when moving the audio files around. this was causing a problem when mp3 files were imported with the tapersonalarchive script - file extensions could be in either case, don't assume, and thus match, just lowercase - added an alphabet slider to the albums screen, to make navigating albums easier and faster - allow hiding of the mouse cursor again -- somehow this functionality was removed. change value of $show_mouse_cursor in taclient-touchscreen changes from version 1.7 to 2.0 - new directory structure, moving all the programs out of client/ and server/ and into the package root. the scripts were also renamed to start with the prefix "ta" (for _T_hund_A_ural). All perl modules are moved into the lib/ directory. - client has been completely rewritten to be more modular. - new client code supports different themes. The interface is still closely tied to the (theme's) code, so it's not trivial to create a new theme, but different themes can be created without interfering with the base, original theme. The only theme currently included is named "Original" and is based on the original thundaural theme (with some slight enhancements). - the contents of the startup/ directory have been updated to match the new directory structure - added notes about console permissions with X to the startup/README.startup file - server detects inaccessiblity of the various devices it interacts with and will refuse to start up if it they are not accessible, rather than going into a state where it looks like it's working but doesn't - fixed default -w option to aumix in the conf file checkdeps generates - code should be self-contained now -- that is, no longer need to copy things (like the php libs) to elsewhere in the filesystem to get it to work - the xscreensaver integration has been disabled/removed until I can work out a better system to get it integrated properly with jukebox statistics changes from version 1.6 to version 1.7 - either rerun checkdeps and generate a new .conf file or edit your conf file and change the line: cmd ripcdrom:ripdisc.pl --dbfile ${DBFILE} --device ${DEVICEFILE} --storagedir ${STORAGEDIR} ${PROGOPTS} to cmd ripcdrom:ripdisc.pl --dbfile ${DBFILE} --cddevice ${DEVICEFILE} --storagedir ${STORAGEDIR} ${PROGOPTS} note that the --device argument changed to --cddevice. This is because the ripdisc script now uses the same command line parsing code that the server script uses. - 'devices' command was including private entries (those that had a type that began with an underscore) - fixed up database creation/upgrade code to work with SQLite3 don't create functions while in a transaction ->prepare now fails on critical errors that used to happen in ->execute - will now rip to WAV, which is faster, and encode to ogg in the background if there is at least 700 meg of free space on the filesystem that contains the storage dir. - album-images.pl is included in the server directory - See the file server/ADDING_PERSONAL_ARCHIVE.txt for information on using the personal-archive-load.pl script and the new features of ripdisc.pl to populate the thundaural database with tracks you obtained without having physical media, such as purchasing online. Includes a preconfigured mode for loading tracks purchased from popular on-line music retailers, with more to come in the future. changes from version 1.5.1 to version 1.6 - added copyright notices to files, included GPL in the file COPYING - server code has been better organized into perl modules - the server now supports a 'flush ' command, to remove all queued songs from that device - automaticly upgrade the database to version 5. the only change to the database is to expand the size of tracks.filename. Then we search for file names that were short and try to find matching entries on the filename and update the database to be correct - added new option, --convert, which invokes code to perform optional or risky updates manually. - bah, I stupidly wasn't storing the tracknumber in either the filenames or the vorbis comments. ripdisc.pl now does that, and a new optional converter can be run (tracknumtags) to rename all the song files and add the tracknumber tag to them. See the --convert-help option to the server.pl script for more info. Additional tags are also added, like RIPPER, CDINDEXID and CDDBID, for the sake of completeness. Performing the tracknumtags conversion is entirely optional. - the format of the track filenames has changed to use double colons (::) to divide the components, rather than using a dash. double colon seems to have fewer conflicts with actual track content. - created an abstracted audio file reader to unify the interfaces between Audio::Mad and Ogg::Vorbis::Decoder. New audio formats can be added in the future using this interface. The server will now play MP3s (although this is currently of limited use because Thundaural does not support MP3s in any other way -- you can put MP3s in the system by editing the database manually). - now uses Audio::DSP to play audio data. No longer requires the patched ogg123 (using ogg123 was a nightmare) - because of the last two changes above, the server now has much greater control of audio playback. This allowed me to add a customized pause between songs, which is four seconds by default. If two songs are from sequential tracks on the same album, they will play with no pause between them. This will allow seamless full-album playing. - changed to use Getopt::Long to parse server command line args - now all options can be specified in a configuration file rather than perl code -- /etc/thundaural/server.conf replaces TAProgramLocations.pm and Settings.pm. Multiple configuration files can be used, and they can be nested. - removed --syslog and --stderr options, replaced with --log, which can take either 'syslog', 'stderr', or a filename to log to - added --dumpconf option, which displays the configuration to stdout and exits - fixed problem with LookupMusicBrainzRemote that was causing the performer field for the entire album to be set to which ever artist was listed last in the XML changes from version 1.5 to version 1.5.1 - disabled the edit command, which has not been updated for the database schema changes. I missed checking this change in for the 1.5 release. changes from version 1.4 to version 1.5 - completely new ripdisc.pl script that supports modular album lookup methods. First it will try MusicBrainz, and failing that it will try FreeDB. Additional modules can be added easily. Now requires XML::Ximple perl module (for MusicBrainz). The new ripper does not support different agressiveness levels, which were required when using cdparanoia. cdda2wav is required for cdindexid and cddbid calculation. - checkdeps script generates a TAProgramLocations.pm perl module that is used by the server. After running checkdeps, be sure to move this file into the server directory. - perfers dagrab over cdda2wav over cdparanoia for audio extraction Get dagrab from http://vertigo.fme.vutbr.cz/~stibor/dagrab.html Since we require cdda2wav elsewhere, we'll never actually try to use cdparaonia -- I know this, and maybe I'll get around to fixing it. Or maybe not, I'm not too happy with the output of cdparanoia - don't try to backup an empty database - don't make it look like we support playing MP3s when we don't. had references to it in code that did execute, but I never tested it. - added checksum command to server (clients should be better able to manage/reduce bandwidth with intelligent use) - "coverart ripping" returns the cover art image for the current ripping process - client now takes --host and --port options to designate the server to connect to - database gets upgraded to version 3: albums.source to store source of album information albums.cdindexid column to store musicbrainz CDindex albums can have more than one image performers abstracted to another table support for individual track attributes (for future expansion) - rank numbering fixed. If the top two tracks have the same popularity, they'll both be ranked first. The next possible ranking is third (because there are two tracks before it), and there is no track ranked second - new server command 'version', which reports the client/server protocol version number (currently at 4) - client verifies it's talking to a compatible server before continuing - removed printing of the genres in the client, since protocol v4 doesn't support them (they were moved to the trackattributes table) - verified that ripping speed is correct (vorbis encoding seems to be the limiter (can't get faster than ~5x on my test machine, but dagrab will rip to a file at around 12x. Rip to a file and then encode to vorbis takes roughly the same amount of time as doing it in a pipeline)) - trying out a new background image from the excellent legacy Propaganda collection (ich bin ein good looking desktop whore) to hold me over until the interface gets ravamped. To revert the old brushed-metal-like one, change the lines that are commented out in the load_images function in client/interface.pl - included startup script for the server in the startup/ directory, and for the client in the client/ directory. See startup/README.startup or the installation page on the website for instructions on use. - added --dontfork option to the server, which keeps it from daemonizing itself (which it does by default now) - fixed bug that was keeping the albums page from being updated if there were less than 6 albums in the database and new album was ripped - other cleanups of both minor and major natures changes from version 1.3 to version 1.4 - renamed Statistics.pm to Periodic.pm, since it will now handle things we want to do periodicly - removed bogus dependency on DBI in the client - checkdeps script now checks for other SDL libraries needed for SDL_perl - server supports random play using the randomize command - beginnings for the client interface for randomized play (showing the current status is kind of buggy) - minor visual changes to the popularity display in the track listing - server returns response code 202 when a block of binary data is being sent - 'coverart ' command added to server, which dumps the cover art file to the client. - client doesn't know about local storage of cover art files anymore it uses the new coverart command to download them from the server and locally caches them in /tmp - server now builds the database if it doesn't exist, no need to manually create it using the SQLite command line client (which might not exist if you installed DBI::SQLite) - server can now automaticly upgrade the database if the database format changes - removed dependency on the Microsoft Webfonts Arial and Georgia. the freely available Bitstream Vera fonts look better (and can be freely redistributed) changes from version 1.2 to version 1.3 - bah, tell Data::Dumper to dump hashes sorted, so comparsions work and we only update when we need to - Ripping page has been updated to be more user friendly and use less CPU when updating - Ripping page shows the ripping speed as a function of the length of the track, as reported by server/ripdisc.pl - Added Stats page - Removed a lot of debugging messages - Converted to use Sys::Syslog rather than /usr/bin/logger - added a simple script checkdeps which verifies that you have everything you need installed - fixed track listing drawing overflow when different font is used on the tracks page - if the server only reports one output, don't give the option to select output on the tracks page - some minor layout changes to the tracks page - restricted font use to two fonts, both of which are in the msfonts rpm on the website changes from version 1.1 to version 1.2 - tested the whole thing with the provided empty database to ensure that you can bootstrap the system to usability by ripping discs. I had originally imported the data from my pre-1.0 MySQL database, so I never worked on this codebase with an empty database. Some of the fixes below are due to this testing. - client now actually recovers gracefully from errors from the server, the abstraction code returns empty values rather than the error codes. - client now handles no albums in the database correctly by showing a message to that effect. - client handles less than 6 albums in the database correctly, previously, it would display some blank album covers oddly. - additional server thread dedicated to updating track rankings (will be used in the future to update other statistics also). Also, removed the undocumented 'rankupdate' command that manually invoked the update function. - more verification that player and reader thread re-spawning works when they die (new undocumented server command 'exit ' to test this). - main server threads yields after notifying worker threads to exit to avoid threads-still-running-on-exit race condition changes from version 1.0 to version 1.1 - database change: new colum tracks.riperrors which ripdisc.pl will record how many corrections cdparanoia claims it had to make. In the future this will be used to help determine if any tracks need to be re-ripped or replaced. cdparanoia is excellent at error correction, but sometimes leaves pops and skip noises in the audio. You'll need to modify the tracks table by hand to add this colum: in SQLite (which doesn't have alter or rename statements): create table oldtracks as select * from tracks; .schema tracks drop tracks; CREATE TABLE tracks ( trackid integer, albumid int(11) NOT NULL default '0', performer varchar(128) NOT NULL default '', length int(11) default NULL, name varchar(128) NOT NULL default '', albumorder int(11) NOT NULL default '0', genreid int(11) default NULL, popularity float default NULL, rank int(11) default NULL, filename varchar(128) NOT NULL default '', riperrors varchar(24) default NULL, PRIMARY KEY (trackid) ); insert into tracks select *, NULL from oldtracks; drop table oldtracks; - added a --aggressive option to ripdisc.pl, which takes an argument from 0 to 9. The higher the aggressiveness, the greater tolerance of error corrections per sector it will be. Based on the agressive value, it will eventually give up the error correction and just tell cdparanoia to rip it without any error correction. The default is maximum agressiveness (9). The server doesn't support taking an agressiveness argument from the client and the client doesn't offer the user an option for aggressiveness (yet). - more status information is generated for ripping - the client and server now support aborting a rip in progress. - a bunch of strange bugs were fixed in the client, mostly related to odd crashes when using SDL::Timer and how it interacts with perl. I've gotten rid of using SDL::Timer objects all together. The client is a lot stabler now. - I removed some of the larger, unused files from the client/images directory that were left over from my testing. - Fixed some bugs with the slider on the albums page, it was being positioned all the way to the left when it should have been all the way to the right - Client now uses Data::Dumper to determine if the screen needs to be updated This cuts down on memory usage, as there appears to be a bug in the TTF libs I'm using, or SDL::TTFont code such that memory gets leaked everytime lots of text is drawn to a surface. $Header: /home/cvs/thundaural/CHANGELOG,v 1.17 2004/06/06 01:18:57 jukebox Exp $