The MySQL database has been eliminated. Mr. Voice now runs an embedded database, SQLite. This means that you do not need to install, run, or configure MySQL in order to use Mr. Voice from the 2.0 release forward.
Why the change? Several reasons.
Complexity: Mr. Voice uses a very simple database backend - only two tables, and no complex queries. Running an entire relational database engine to manage those two tables was overkill, bbut it was the best solution I had when I started the project. SQLite looks like a much simpler solution, while still being able to do what the software needs.
Ease of Installation: Over the years, MySQL was the biggest cause of problems for users. Getting the database installed, the processes running, and the usernames and passwords straight were indeed a pain. SQLite has one configuration option - the path to a single file. That's it.
Resources: MySQL was a fairly heavyweight installation - several gigs of disk space, as well as needing to run an extra process to handle the database. On older or smaller systems, that could be a strain. SQLite doesn't need any extra processes running, and on my 1300-song database, it takes up 125Kb of disk space.
From my observation, it looks like SQLite will be a solid, reliable database engine. I certainly welcome feedback from users as to how well it works for them.
See Section 1.2.1 ("Upgrading to Mr. Voice 2.0") for details on how to upgrade a Mr. Voice 0.x or 1.x (MySQL) installation to a Mr. Voice 2.x (SQLite) setup.
There are two options that you can pass to the Mr. Voice executable. --config CONFIGFILENAME allows you to specify an alternate configuration file, useful if you can't write to the C: drive in Windows or if you want to run two different databases off of the same Mr. Voice installation. --logfile allows you to specify a logfile that will capture information generated by the Mr. Voice executable, which can be useful for debugging. You can specify a logfile name or, if you just do --logfile, it will be sent to C:\MRVOICE.LOG or ~/mrvoice.log.
"Invalid" songs (songs where there is an entry in the database, but no corresponding file on disk) now show up in red in the search box, instead of being hidden. This should solve problems where you were unable to delete a category because there were still songs in it, but a search of the category revealed nothing.
AAC (Advanced Audio Codec) files, also known as .mp4 or .m4a files, are now supported (playing them requires the proper plugin for your audio player of choice). Encrypted songs purchased from the iTunes Music Store (.m4p) apparently do not work.
Mr. Voice itself will offer to perform a default configuration the first time it's run on a new system. The defaults should be good enough for most people, but you always have the option of doing things manually. This replaces the old quicksetup.pl utility, which has been removed.
The look-and-feel of the main search box and the holding tank have changed, hopefully for the better. One visible change is that the song ID number is no longer displayed at the beginning of each line.
Mr. Voice now compiles under "use strict" in Perl. Ha! And they said it couldn't be done . . .