[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Gap-dev-discuss] Cynthiune -- MusicBrainz support
From: |
Sebastian Reitenbach |
Subject: |
Re: [Gap-dev-discuss] Cynthiune -- MusicBrainz support |
Date: |
Sat, 09 Jun 2012 11:34:07 +0200 |
Hi Yavor,
Yavor Doganov <address@hidden> wrote:
> Please find the patch attached. I'm not happy with it, but I guess
> it's better to submit it as it is for discussion.
Thanks for the patch. I just tested on OpenBSD i386 against
libmusicbrainz-3.0.2. It compiles and works just fine.
>
> Caveats:
>
> * MusicBrainz support is demoted to optional (detected
> automatically). I think this is good, as it not essential
> functionality for a music player.
> * The test to detect the libmusicbrainz version is very weak, but I
> guess that's as best as we can do without resorting to Autoconf.
> It should work in most cases.
I'd put a
ifneq ($(disable-musicbrainz), yes)
...
endif
around the stuff added to the GNUmakefile.preamble. Just in case someone has
musicbrainz installed, but doesn't want to link against it.
> * I get occasional crashes that are extremely hard to debug and end
> up often in GNUstep Back and glibc's low level memory allocation
> routines. I tested only on Debian GNU/Linux with a fairly old
> GNUstep installation (GUI 0.18.0), so it might be that some GUI
> classes are not entirely thread-safe, or an NSLock is needed
> somewhere.
> * With libmusicbrainz3, the album title always coincides with the
> song title, which is utterly wrong. There's no equivalent C
> function to obtain the release from the track so I don't have any
> clues how to fix this. mb_track_get_id and mb_release_get_id
> return the same string, so quite clearly something is not right.
> * I couldn't find a way to extract the release year with
> libmusicbrainz3; most probably this is related with the problem
> above.
> * No track number extraction with both versions of the library.
At least, when I look at the console, I can see the following when retrieving
info about a Song, for example:
MusicBrainz: Connecting to http://musicbrainz.org:80
MusicBrainz: GET /ws/1/track/?type=xml&title=Ghost&artist=Unsane
MusicBrainz: Result: 0 (200 OK)
MusicBrainz: Status: 200
MusicBrainz: Response:
<?xml version="1.0" standalone="yes"?><metadata
xmlns="http://musicbrainz.org/ns/mmd-1.0#"
xmlns:ext="http://musicbrainz.org/ns/ext-1.0#"><track-list offset="0"
count="1"><track id="d392ad45-e2a6-46ee-a126-7b242f7d6b4e" ext:score="100"
><title>Ghost</title><duration>225000</duration><artist
id="db9cbc9e-65b6-4221-a847-75981feb1c6b"><name>Unsane</name><sort-name>Unsane</sort-name></artist><release-list><release
type="Album"
id="f93fbcb4-1b3e-456b-b404-0a87a1781cdb"><title>Wreck</title><track-list
offset="5" count="10"/></release></release-list></track></track-list></metadata>
So the title and the album name are given back from the server correctly. Also
the track number too. The offset="5" count="10" seems to mean: track 6 from 10
tracks. The offset seems to start counting with 0.
The year doesn't seem to be returned from the server.
I did not yet looked much at the code, but I'll install other apps that work
with MusicBrainz, and will look into their code, what they are doing.
Another glitch I recognized: When for example a song has the year set in its
tags, and I update the info from MusicBrainz, then the info in the year field
vanishes. I think for The MB button should only update fields, where it got
values back. If it didn't got info about the year, it should not update the
year.
Sebastian
>
> Comments welcome.
>