Erst mal Gratullation zu diesem guten Programm, ich nutze es seit langem unter Windows. Bin aber vor kurzem auf Linux umgestiegen, und habe es versucht mit Wine zum laufen zu bekommen. Dies ging aber nur bedingt.
Nun habe ich angefangen ein ähnliches Programm in JAVA zu schreiben, und wollte nun die Suche in der FreeDB Datenbank anhand von ausgewählten Dateien implementieren.
So wie ich das Sehe unterstützt das Protokoll nur eine Suche anhand der DiskID, ich habe nun versucht diese anhand des Algorithmuses zu generieren. Aber so richtig funktioniert das nicht, MP3Tag findet die CD aber richtig heraus.
Nun wollte ich fragen wie die suche in der Datenbank implementiert ist.
ich berechne aus der Länge der Dateien die Anzahl der Frames (Sekunden * 75) und baue daraus dann die DiscID wie es im DiscID-Howto beschrieben ist. Beim Query wird dann ja auch noch die Anzahl der Tracks und die Frame-Positionen übermittelt.
Aber mußt du dazu nicht die Reihenfolge der tracks wissen ? Man kann doch die Infos auch direct (nicht mit Query) anhand der Disk ID abfragen. (Da is nur das problem das man alle Kategorien durchsuchen muß)
Doch natürlich - die Reihenfolge der Tracks ist zwingend notwendig! Wenn man direkt per DiscID abfrägt, wird die "fuzzy-matching" Tabelle des Servers umgangen, die bei DiscIDs die nicht ganz stimmen noch einiges rausholt (was bei der Berechnung aus Audio-Dateien auch öfters vorkommt).
DISCID=b10b430e
DTITLE=Boppin' B / Bop Around The Pop
TTITLE0=Drive My Car
TTITLE1=If You Believe
TTITLE2=We Can Leave The World
TTITLE3=I Feel Lonely
TTITLE4=Turn It Into Something Special
TTITLE5=Here She Comes Again
TTITLE6=Rooftop
TTITLE7=This Is My Time
TTITLE8=Everybody Loves You
TTITLE9=Owner Of My Heart
TTITLE10=Do It To Me
TTITLE11=Chemical Reaction
TTITLE12=I'm Still Waitin'
TTITLE13=Raindrops
EXTD=
EXTT0=
EXTT1=
EXTT2=
EXTT3=
EXTT4=
EXTT5=
EXTT6=
EXTT7=
EXTT8=
EXTT9=
EXTT10=
EXTT11=
EXTT12=
EXTT13=
PLAYORDER=
.
Kann sein, dass es an der Protokoll-Version liegt. Mp3tag unterstützt die Version 5 und bekommt die Felder DYEAR und DGENRE auch von der Datenbank geliefert.
Das klingt gut, ich hab das einfach mal mit Telnet gemacht. Wie setzt du die Version mit dem hello command ? Ich dachte damit ist die Version von dem aufrufenden programm gemeint.