Release 2.04a (12-Sep-04): * Added the new "Contexts" tab to the Configure page, which allows specialization of commands and file paths for different OS's and/or machines on the network. This allows, for instance, a Windows machine to access a Paloma database stored on a Linux server, even though the file path on the Windows machine to the volume store will be different from the path on the Linux machine to the same volume store, and even though a different set of commands may be needed on the Windows machine to play and/or verify these soundfiles. * Added "AudioTron TOC file" to the list of supported playlist types. This allows you to export a "playlist" file to the top of your volume store that is really just a complete list of files for a connected AudioTron device (see http://www.turtlebeach.com/site/products/audiotron/producthome.asp) to scan. * Added "AudioTron play" to the list of supported playlist types. This is a special "playlist" that actually communicates directly to a connected AudionTron device and starts playing the songs immediately. Specify password@hostname as the playlist filename. * Added prompts to switch disks if necessary when exporting a playlist, allowing you once more to store your collection of song files on a stack of CD's, which you can rotate in as necessary to play songs. * Added support for Python 2.3.4. Release 2.03a (02-Jun-04): * Added support for external jukebox programs, with one-key access from a playlist. * Fixed a problem causing the time meter not to update, and the song not to advance to the next song, when the user is not actively interacting with the Paloma window. * Fixed a bug in which closing the main window didn't necessary stop the application. Release 2.02a (27-May-04): * Added support for cut/copy/paste clipboard operation in playlists, as well as drag & drop between playlists, and dragging an item to a new position within the same playlist. * Playlists can now be exported to .m3u files via the export dialog. * Fixed a bug causing a lockup when exporting from a playlist. * Fixed accidental reversal of "Title (Performer)" and "Performer (Title)" formatting options. * Fixed display of international characters loaded from tags in import dialog. * Quietly ignore a reported track number of 0 on import dialog. * New artist names are now automatically saved when you click "OK" to accept a track form (missed this case last time). * The current track number is now displayed in the title bar of the track form. * Updates in the track form are now reflected immediately on the CD form. * Prevented a crash caused by the Postgres error 'could not serialize access due to concurrent update'. * Added several hotkeys to menu options. * Added "fix capitalization" to the CD menu for track titles. * Fixed dialogs not repainting while certain complex tasks are being processed. Release 2.01a (21-May-04): * Added fields to the Configure dialog to enter the shell command for opening and ejecting a CD. Now the CD can be closed automatically, and the eject command is used to respect the setting of the "automatically eject CD after loading" check box. * Finished decoupling the loading dialog from the CD form--now it is possible to close the CD window while the load continues. It is also possible to close the query list from which a CD was selected without also closing the CD window. * Cancelling or closing the "Loading Tracks" dialog now stops the external command. * Report play commands in the sfserver.log file (that is, the output from "sfserver --sflog", for when the sfserver is run as a standalone process). * New artist names are automatically saved when you advance the page on the track form, or save the CD form. * Added additional CD-Rom drives to the main menu if they have names like /dev/cdrom1 or /dev/cdrom2. * Added support for pyPgSQL as an additional way to connect to PostgreSQL databases (in addition to PoPy). * Fixed a bug when the mx.DateTime module is installed. * Added support for the predict_length_expr to display a smooth scrolling progress meter while ripping tracks. * Fixed a bug causing the loading tracks dialog to occasionally hang, and subsequently, all dialogs to fail to close properly. * Fixed a bug causing the background task window to reflect stale data on PostgreSQL. Release 2.0c (13-May-04): * Fixed outstanding bug from 2.0b in which the CD drive remains locked closed after scanning one CD. * Fixed outstanding bug from 2.0b in which the ecserver sometimes gets locked up. * Ensured output is unbuffered in standalone ecserver and sfserver programs. * Fixed a deadlock case in the import dialog. Release 2.0b (13-May-04): The first of probably several bugfix releases on 2.0. * Fixed bug in which files loaded from CD (or, indeed, from any source) could not be converted by the background encode server (It reported "No command to convert xxx to yyy" even if there was such a command.) * Added id3ed -i to the default read tag command created with a new database so that tags can be read on import. * Fixed typo causing a crash in the warning dialog when an ecserver specified with --echost could not be contacted. * Still outstanding: when there are no songs to convert initially, the ecserver seems to get confused and do nothing at all. * Also still outstanding: CDDB.py seems to lock the CD drive closed and not allow it to be ejected until Paloma is exited. This makes scanning in more than one CD in a session troublesome. Release 2.0a (13-May-04): This release represents a complete rewrite of all of the Paloma source code. Prior to this, the C++ code had been growing increasingly difficult to compile as it suffered from bit rot and the libraries it depended on had changed their API's. The new version is written in Python with wxWidgets. Although I endeavored to keep the feature set primarily the same, I also took advantage of the opportunity to clean up some of the things that had most been bugging me. Specifically: * Artist name fields now support typeahead and have sensible lookup buttons. * Add support for reading existing tags from files on import. In addition to respecting these tags, the import dialog is also more robust in other ways. * Add the ability to query CDDB at some point after a CD had been loaded, even if it is no longer in the drive. This is now possible with the new CDDB interface, CDDB.py; the old libcdaudio interface couldn't do this. * ecserver and sfserver still exist as separate executables, but they are now optional. If the user chooses not to start these services, Paloma can achieve similar functionality using copies of the server code built into the main executable. * The ecserver now listens for client communications on port 8728, similar to the sfserver on port 8727. This allows Paloma to show a little window showing the current background task being worked on by the ecserver. * Unloaded songs are now colored in red in the playlist. * CD's can now be played directly in the playlist; doing so will play through each song on the CD in sequence. * The 'Ok'/'Build' button confusion on the query windows has been cleaned up. Now there is just an 'Ok' button which closes the query window, but you can go back to fine-tune the query if you want to by picking 'Re-edit query' from the Playlist's menu. * The 'remove accents' check marks on the export dialog and tag configuration have been removed in favor of explicit control over the encoding system used for international characters. * Added the long-needed 'Manage Background Tasks' option to the main menu. Release 0.86a (31-Dec-01): * Add the columns failed_time and failed_reason to the table songs_convert_failed. These were supposed to be added some time ago, but got inadvertently omitted. * Slightly changed default settings for mpg123 verify and play commands, to allow for possible missing trailing newlines and work around an occasional failure of mpg123 to display the frame number on verify. * Fixed a crash when importing songs. Oops! Release 0.85a (29-Dec-01): * Add "Artists by Num Songs" and "Artists by Total Time" lookups, to show a list of artists in descending order by number of songs, or the total time of all songs, for which the artist is listed as performer. * Add "CD's by Performer" lookup, to show a list of all CD's in alphabetical order by performer. * Add support for storing id3 tags in song files (or other kinds of tags; whatever the file format supports). Release 0.84b (22-Jul-01): * Updated README file to indicate the best location for the current version of libcdaudio. * Updated my mailing address. * Fixed the mislabeling of a menu item in the CD dialog, so that "Make a playlist" seemed to appear twice on the menu. * Eliminated the "idb" subdirectory from the makefiles (and, consequently, from the tarballs--it remains in the CVS repository). This is a work-in-progress and doesn't need to be built by the whole world. * Added the -vsf command-line option to help debug communications and configuration errors with the sfserver. Release 0.84a (17-Jul-00): * Updated to use Gtk-- 1.2.0. This unfortunately rules out compilation with Gtk-- 1.0.0, but the library has changed far too much to support both. * Fixed a typo in inputWaveFile.C that broke the loading of AIFF files in resplice and vplaysf. * Made vplaysf somewhat more robust with different kinds of sound file parameters. Release 0.83c (never released) * Added "Adjust breaks for CD" option to resplice. * Fixed a problem with importing songs: the new is_loaded column was not getting set to true, so imported songs were not completely recognized by Paloma. Release 0.83b (26-Aug-99): * Added a workaround for a bug in Gtk-- 1.0.2 that caused widgets not to be destructed properly in certain cases. (Symptom: the program doesn't terminate when you exit the main window.) * More changes to compile better for gcc 2.95, and for NetBSD. Release 0.83a (23-Aug-99): * Should now compile out-of-the-box on RedHat 6.0 and NetBSD (as well as all the other Linux distro's and other unices that worked before). * Refined the configure script again to better check for database backends automatically. It is no longer necessary to specify either --with-pgsql or --with-mysql explicitly; the configure script will look around for them and compile in support for them if they are found. * It is now possible to export to relative symlinks as well as to absolute symlinks. * Added three check buttons to the export dialog to control the degree of filename cleaning that is done: you can choose to remove or preserve spaces, punctuation marks, and/or iso8859-style accent marks. Previously, it always removed spaces and accent marks without asking. * Implicit track numbers are now assigned when songs are imported onto a CD via the import dialog but not given an explicit track number. * The progress bar can now be configured to update incrementally while loading tracks, instead of only at the end of each track. This requires filling in the new "Predict-length expression" field on the configure dialog to tell Paloma how large to expect a WAV file to grow. See the INSTALL document. * Made "Clean spaces" and "Fix capitalization" on the import dialog behave like toggles, instead of destructive updates. "Clean spaces" defaults to on if a column has a lot of underscores or hyphens compared to spaces. * Added the concept of a "template" to the import and export dialog. A template is a particular set of default values for all the fields on the dialog. You can have any number of different templates, and the values you enter persist between sessions. * Leading and trailing spaces are automatically stripped from song and CD titles obtained from CDDB. * Made eject after rip an option. * Added the ability to disable the automatic CDDB query at CD load. The second part of this, a batch CDDB query when the CD's are not in the drive, requires additional support not yet provided by libcdaudio. * Fixed logic in ArtistParser so that a name like "X in the Y" doesn't get treated as an individual plus a group. * "Open CD" will now open up a CD dialog for the song's CD if the song is only on one CD, instead of opening a playlist with one CD in it. * Minor changes to compile better under NetBSD. * ecserver will now wake up and look for work to do in response to kill -HUP. * Killing ecserver will also kill its currently encoding process. * Using "Batch convert songs" to convert a song to a format it is already in now correctly does nothing (as opposed to deleting the song file! Yow!) * Fixed play button getting "stuck" in the enabled state. * On the import dialog, setting only "CD performer" or "Performer" now implicitly sets the other to the same. * Cancelling a ripping track now removes the aborted wav file. * Default values for non-null columns are now indicated in the database, as well as internally. * Added column is_loaded to table songs, a boolean field that indicates whether the song has been loaded (ripped). (Previously, Paloma used loaded_time=NULL to indicate this, but MySQL cannot store a NULL in a timestamp column.) * Added column and_word to table artists, which records the word used to associate an individual and a group, e.g. "Billy *and* the Turncoats". (Previously, this word was extracted out and thrown away, and just assumed to be "and".) * Added support for several European languages in parsing artist names (English, French, Spanish, German). Hopefully this won't lead to confusion between words like the German "die" and the English "die". * Fixed file-descriptor leak in import dialog. Release 0.82b (13-Jul-99): * Fixed occasional "zombie windows" that sometimes pop up and cannot be closed. * Hitting the cancel button while ripping now correctly kills the ripping process. * Renamed columns in database from 'sequence' to 'seqno' to support Postgres 6.3.2. Added support for automatic database upgrade. * Several compile bug fixes to support RedHat 5.2 systems and Postgres 6.3.2. Release 0.82a (8-Jul-99): * Wrote "resplice", a utility for editing and subdividing possibly very large sound clips. * Wrote "sf_autochop", a command-line utility for recording from analog media (or reading from a pre-recorded soundfile) and automatically dividing the output into a separate soundfile for each track, based on silence between tracks. * Built in a lightweight WAV reader/writer for little-endian architectures (like Intel). This allows low-overhead support for simple WAV files without actually having the libaudiofile package installed, although for full, more robust soundfile support the package may still be utilized. * Import Dialog now opens up a separate import list window for each different number of columns for import data. * Added "Remove original" check button to Import dialog. * Added "Make a virtual CD" menu option to Playlist dialog. * Added "Remove CD" menu option to CD Dialog. * Added "Batch convert songs" menu option to Playlist dialog. * Added "Delete previous contents of directory" option to Export dialog. * Fixed accidental omission of $track variable from Export dialog. * Added several features to support storing song files on swappable media, and generating playlists that can play them: - Added "Show volumes" option to the Playlist dialog. This lists all the different volumes and buckets that the various songs in the playlist are members of. - Extended the Export dialog to prompt the user to switch media when some of the songs' volumes and/or buckets are not visible, until all songs have been exported. - Added "update playlist" check button to the Export dialog. If checked, this means to change the playlist to refer each song to the newly exported filename, instead of the song's actual filename as stored in the database. This effect only lasts for the lifetime of the playlist. The above three new features (particularly the last two) are intended to support having a playlist whose songs are distributed across several different media (e.g. CD-R's). Once your playlist is selected, you can export (copy) its songs to a temporary directory on your hard disk, updating the playlist to point to the new locations, and Paloma will prompt you to enter each disk in turn until all the songs are copied. Then you can play the playlist directly. For convenience, all of this functionality has been bundled up into a new menu option from the playlist: - Added "Cache music locally" menu option to Playlist dialog. This is a simpler variation on the full-featured export dialog, specialized for doing the above operations: you just fill in the name of a temporary local directory and go. * Added existence-only test to Verify Songs Dialog. * Changed int type loaded from database to a long long int, to handle potentially very large ints. * Made sfserver/sfclient communications more robust. There used to be a tendency to lock up in a spin-lock when things went wrong. * Changed initial default mpg123 play command to: Frame# $current_frame [$frames_remaining] This better supports variable-bit-rate mp3 files (even though mpg123 doesn't really support them yet) by constantly updating the length of the song as mpg123 changes its mind about it, which makes the slider move more sensibly. * Changed the semantics slightly for hiding columns in playlist queries. Now _only_ column names beginning with an underscore will be hidden; the initial song_id, cd_id, artist_id etc. is no longer implicitly hidden. The default queries have been adjusted to account for this change; re-run define_ext. * Added query for recently-loaded CD's (in addition to the recently-loaded songs query added last release). * Made the autoconf configure script more robust. Added the ability to compile-in default command-line options. * Successfully ported to SGI IRIX. * Added support for command-line selection of SQL backend (if multiple backends are compiled in). Renamed command-line option -db to -dbname, removed -pgsql and -mysql and replaced them with -dbtype and -dbextra. Release 0.81g (18-May-99): * Fixed problem with repeated artist names on a compilation CD getting added to the database separately. * Changes to support spaces in filenames. Arbitrary shell-unfriendly filenames should now be completely supported. * Defined the convention that a leading underscore in a SQL query result column name means not to show the column in the query dialog, so we can hide things like the sort_artists column in the queries by artist. * Added queries by CD performer and CD writer, and for recently-loaded songs. Re-run define_ext to get these queries in your database. * Fixed a logic error in vplaycd that caused it to refuse to play CD's! (Oops.) * Fixed a few problems with compilation against early versions of libcdaudio, and with various different flavors of EGCS. * Fixed a file-descriptor leak in sfserver. * Added 'Verify songs' menu option to Playlist and CD dialogs. * Changed initial default mpg123 verify command to: Frame# $current_frame [$frames_remaining], Time: $current_time [$time_remaining] This allows detection of length of song for mpg123-0.59q (although mpg123 still returns an incorrect answer for variable-bit-rate MP3's). * Better playback support for songs of unknown length. * Various improvements to the import dialog. * Corrected the track number on the CD dialog to show the actual track number from the database instead of simply the row index. Release 0.81f (13-May-99): Initial release.