Hi PyToners!
Taking the chance of the Swiss national holiday, I finally managed to build a new major release of PyTone. As usual, it can be found under
http://www.luga.de/pytone/download/PyTone-3.0.0.tar.gz
It contains a completely new database code based on the SQLite database. I thus recommend using the latest Python version with a corresponding built-in binding.
Note that the migration of old databases will not be supported. The same holds true (at least currently) for setups with more than one database. Remote database are completely untested, and currently not supported, as well.
The new database code should be much more performant and already allows a couple of nice things which had been impossible before. Furthermore, I used the opportunity to include more metadata in the database. The preferred (read: most tested) ID3 decoder is now the mutagen module
http://www.sacredchao.net/quodlibet/wiki/Development/Mutagen
I'm sure there will be a couple of loose ends with this release. Since I cannot spend too much time on PyTone, it's sometimes hard to keep the overview, especially if there are that many changes like in this release. So please be graceful with me!
Have fun,
Jörg
Joerg Lehmann schrieb am Mittwoch, den 01. August 2007:
Hi PyToners!
Taking the chance of the Swiss national holiday, I finally managed to build a new major release of PyTone. As usual, it can be found under
http://www.luga.de/pytone/download/PyTone-3.0.0.tar.gz
And in a few hours in debian unstable too. I uploaded the package a few minutes ago. Lets say that I'm very impressed about the sqlite DB. Indexing took a few hours (we talk about 280Gb via 100mbit NFS with round about 30.000 songs), but after that (and one 17Mb DB later) it worked like a charm.
Thank you very much!
Alex
Hi Alex,
On 06.08.07, Alexander Wirt wrote:
Taking the chance of the Swiss national holiday, I finally managed to build a new major release of PyTone. As usual, it can be found under
http://www.luga.de/pytone/download/PyTone-3.0.0.tar.gz
And in a few hours in debian unstable too. I uploaded the package a few minutes ago. Lets say that I'm very impressed about the sqlite DB. Indexing took a few hours (we talk about 280Gb via 100mbit NFS with round about 30.000 songs), but after that (and one 17Mb DB later) it worked like a charm.
Just out of curiosity: which metadata reader did you use? This information is shown in the message log. For the Debian package, it would be nice to at least recommend the python-mutagen package.
In general, I'm also very happy with the new database code. It's really much faster, especially for large databases, where the old code was nearly unusable. And besides, it really offers much more functionality than before. In particular, the song tagging is really cool. With a simple plugin registering a self-written metadata postprocessor, you can easily add tag to your songs (like all songs played at least once/twice, non-classical music from 1967 to 1979, etc.) and filter according to them.
Cheers,
Jörg
PS: There's a pretty stupid bug in the tag handling. The fix is a two-liner and contained in the latest SVN version as the only change wrt to the 3.0.0 version. Maybe you want to grab this fix.
What provisions are there for handling metadata in FLAC format files? When I last tried Pytone, I had to access FLAC files by browsing the file system directly.
Also, what is the collation order of the song browser? In 2.3, the capital "A" with an accent shows up at the bottom instead of inline with all the other directories starting with a capital "A".
Christopher
Hi Christopher,
On 06.08.07, ceverett@ceverett.com wrote:
What provisions are there for handling metadata in FLAC format files? When I last tried Pytone, I had to access FLAC files by browsing the file system directly.
There is some rudimentary support for FLAC metadata, but it's really totally untested (especially in the new version). Since I don't use FLAC by myself, I would rather leaves the FLAC implementation to others. It should be all fairly obvious.
Also, what is the collation order of the song browser? In 2.3, the capital "A" with an accent shows up at the bottom instead of inline with all the other directories starting with a capital "A".
I also didn't check that, but that's a good point. In principle, it should depend on the locale (at least LC_COLLATE), but I'm not sure whether pysqlite does everything correctly in this regard. I'll put this question on my TODO list.
Cheers,
Jörg
Hi,
On my system at least, pytone goes into deadlock when I try to play songs in random mode.
Tracking it down, I think that in songdb.py, line 335, it should be
return resulthash.keys()
instead of
return resulthash.values()
This solves the problem for me.
Thank you once more for that piece of great software,
-kurt
PS: Sorry, should have gone to the ML
Hi Kurt,
On 15.08.07, K G wrote:
On my system at least, pytone goes into deadlock when I try to play songs in random mode.
Thanks for reporting that issue.
Tracking it down, I think that in songdb.py, line 335, it should be
return resulthash.keys()
instead of
return resulthash.values()
This solves the problem for me.
I'm not totally sure why this works ;-) Anyway, I checked in a different fix which prevents the corresponding code path, which yet has to be ported to the new playlist code, from being called in the first place.
Thank you once more for that piece of great software,
Bitte!
Cheers,
Jörg
Hi again
Tracking it down, I think that in songdb.py, line 335, it should be
return resulthash.keys()
instead of
return resulthash.values()
This solves the problem for me.
I'm not totally sure why this works ;-)
Because like that it returns references to the songs instead of the database id? I just copied the approach from the function below that after seeing that I just got a list of strings here...
Anyway, I checked in a different fix which prevents the corresponding code path, which yet has to be ported to the new playlist code, from being called in the first place.
Updated, and the current revision works for me.
Thanks
-kurt