[Projekt] ID3-Tager

CoarseBeat

---==>>BLUBB<<==-
Dabei seit
9 Feb 2004
Beiträge
1.763
Reaktionen
51
Hallo
vor einiger Zeit kam mir der gedanke meine MP3s so u kennzeichnen dass ich Ihre Herkunft nachvollziehen kann, sprich in welchen Onlineshop ich sie gekauft habe, oder selber gerippt oder ein selbst/von Freunden produzierter Track, etc....
Lange rede kurzer Sinn eine Lösung muss her. Auf der suche nach der Ultimativen Lösung die es wie immer natürlich nicht auf dem goldenen Tablett serviert kriegt, bin ich auf die Spezifikation des id3v2 Tags gestoßen. www.id3.org
ID3v2 biette wirklich die möglichkeit jegliche Information über einen Track zu speichern. Besonders interessant finde ich hierbei die Frames WOAF (Official audio file webpage)
bzw. WOAS (Official audio source webpage)
sie hierzu auch: http://de.wikipedia.org/wiki/ID3-Tag
Da ich keinen Tage gefunde haben mit dem man diese Information komfortabel schreiben kann hab ich beschlossen mir selber ein Tool zu schreiben dass diese Aufgabe meinen Bedürfnissen anch bewerkstelligt :)
In den letzten Wochen ist nun eine Prototyp eines ID3Tagers entstanden der bis jetzt leider nur in der Lage ist den WOAF Frame zu schreiben. Alle andere Frames ließt er bis jetzt nur da ich da noch ein paar Probleme mit der Java MP3 API habe. Ich habe mich letzt endlich für den WOAF Frame entschieden da die Beschreibungen die ich dazu gefunden habe dem entsprechen was ich hineinschreiben will und auch Audio Unlimited(Onlineshop www.deeep.net) diesen Frame Beschreibt. Den Tager schreibe ich in Java momentan mit Version 1.4, hab bis jetzt noch keine 5.0 Features eingebaut. Der tager kann also auch auf Macs oder Linux PCs benutzt werden.
Ich bin auf eure Kommentare gespannt ;-)
Demnächst werd ich auhc mal eine Test Version Onlinestellen wenn ich soweit sicher stellen kann dass der ID3 Tag nicht beschädigt wird, aber momentan sieht es gut aus :)

Hier mal ein Blick auf die Vorläufige GUI, der Bereich in dem die ID3 Informationen des aktuell ausgewählten Tracks angezeigt werden muss ich nocheinmal überarbeiten/neu anordnen.
(Ja ich weiß meine Ordner haben seltsame Namen und es hersscht chaos, aber so ist das halt wnen ständig neue Musik gekauft wird die dann anständig archiviert werden muss...)
 

Anhänge

  • MP3Tag (Small).JPG
    MP3Tag (Small).JPG
    26,1 KB · Aufrufe: 817
ja so normale ID3Tager hab ich bis jetzt auch immer benutzt, allerdings kann der auch nicht die gewünschte Information in den Tag schreiben... ;)
 
Schau Dir mal "Tag&Rename" an. Da könntest Dir einige Anregungen für Dein eigenes Programm holen oder aber (hoffentlich nicht - finde ich immer schade) aufgrund dessen die Entwicklung einstellen.

Christian
 
Zuletzt bearbeitet:
nein also einstellen werd ich die Entwicklung auf keinenfall, zumindest nciht bis ich eine Programmversion hab die das tut was ich will ;-)

Bin gerade noch dabei die Bewertungen die man mit Traktor in die MP3 Files schreiben kann zu implementieren da das leider nciit mal mit ITunes so funktioniert das traktor das auslesen kann...
Dabei hab ich festgestellt das Traktor die selbst erzeugten ID3v3 Frames Fbpm, Fbpmquality,Traktorid, Traktorlastplayed, Traktorpeakdb, traktorpercieveddb doppelt schreibt. Doppelte Frames sind nach dem ID3v2 Standard allerdings verboten...
 
soo, ich freue mich euch nun das erste Beta Release vorzustellen zukönnen :)

Wer will kann ja einfach mal testen. Wie gesagt es ist noch eine Beta und hat auch noch einige Bugs. Daher kann ich keine Funktionsgarantie oder Haftung übernehmen. Beim laden von Verzeichnissen oder umfangreichen schreiben von Tags bleiben die Buttons noch "hängen" und die Oberfläche reagiert für die Zeit der Bearbeitung nicht mehr. Ich bin dabei diese Schwachestelle zu beheben, allerdings weiß ich noch nicht genau bis wann ich damit durch bin.
In dem Archiv befinden sich die *.exe Datei und 3 *.cfg Dateien, diese mit dem einem Texteditor öffnen und nach belieben verändern, also start Pfade eintragen, Benutzerdefinierte Genres oder oben eben die Audiofile Source.
Ich bin auf eure Reaktionen gespannt :wink:
 
was für mich immer wichtig ist, das "erstellt" datum aus windows in den tag zu übernehmen (damit ich sehen kann, wann das file gerippt wurde). das kann nur leider keiner der tager.
hat jemand ne idee, wie man das machen könnte?
 
sowas kann man in einem userdefines Frame speichern allerdings wird dir diese Information dann wohl von fast keinem Programm angezeigt werden. Aber speichern kann man die Information aufjedenfall im Tag
 
gloriousdj schrieb:
ich hab mit das Teil mal angeschaut...
1. kanns nicht das was meiner kann
2. vertrau ich dem ding net weil es verdammt viele files einfach ignoriert wenn er beim byte parsen ein Problem hat... auch bei standart konformen Dateien

Werd huet oder morgen eine neue Version von meinem Tool online stellen. Das ist jetzt nämlich soweit "fertig" soweit man das überhaupt von irgendeiner Software behaupten kann. Hab inzwischen mit über 1000 Files getestet und bisher sind keine Probleme mehr aufgetreten
:)
 
hi,

da Du bei der Programmierung solcher Tools scheinbar fit bist, wäre folgendes für Dich evtl. eine Leichtigkeit.

Ich bräuchte einen Datei-Browser, welcher in der Miniaturansicht das Cover aus dem ID3Tag ausliesst und darstellt. Könntest Du sowas ohne alzuviel Aufwand realisieren?

Christian
 
also realisieren läßt sich das sicher, ist nur die frage mit wieviel Aufwand. Mein ID3 tager benutzt eine openSource Bibliothek, allerdings hab ich die ein bisschen modifiziert da die Original nicht so ganz funktioniert hat. wie man aus den Binärdaten die Grafik erzeugt ist denk ich das "größte" Problem. Aber ich könnte bei Gelegnheit mal ein bisschen experimentieren. Wenn du Java Programmieren kannst, könnten wir da auch zusammen ein Tool basteln?
 
leider nicht -- ich fange gerade erst ein wenig mit C++ an.
 
Meine Hochachtung!
Ich selbst bin nur in HTM, PHP, FLASH und DELPHI (einigermaßen) Fit. Würde das selbst gern können :)
Welche Sprachen/Tools sind am geeignetsten für welche GUI-Programme? Hab da keine Ahnung, will das aber lernen. (Hab bisher nur in der Schule billige Sachen mit Delphi geschrieben aber dafür ganz gute Hoomepages gebastelt)

Das Programm hab ich nur grob unter die Lupe genommen, nehme mir da nochmal Zeit.
Anregungen bisher:

- Benutzerfreundlichkeit bei "Einstellungen"

- " bei Installation (Halt n Setupprogramm) [Ich weiß, ist gewissermaßen unnötig da das Ganze durch Kopieren funktioniert, aber da könnte man ja Voreinstellungen und Verzeichnisse festlegen, Verknüpfungen/Startmenü, etc...]

- vielleicht nochn gescheiter Name :) z.B. "CBeat Mp3Tag" ;)

- evtl. ne Grafik bei Installation und im GUI (Könnte dir evtl. behilflich sein wenn du kein PShop o.ä. hast)

- bei "include subdirs" eher ne Checkbox (Hat mich verwirrt: Dachte, das wär schon der Button, der auch due Aktion durchführt und hab gewartet bis ich auf die Idee gekommen bin, extra auf "load" zu drücken :D)

- ein "Namenschema" erstellen, damit man einfach alle Files durchlaufen kann und ehr macht alles automatisch (Du sagst ihm: Nimm den Dateinamen, was vor dem "-" steht schreib als Interpret ins Tag, was nach dem "-" steht, schreib als Titel ins Tag) [Weißte, was ich mein?]

Wer sowas kann, der kann was! :D

PS: Is alles konstuktiv gemeint!
 
@timmey: sorry hab erts jetzt deinen reply gelesne irgendwie wurde ich nicht benachrichtigt.

Mit Installationsroutinen ala Install Shield hab ich bis jetzt noch nichts gemacht. Denk das ist ein haufen arbeit, aber komtm vll noch irgendwann...

Was meinst du mit Benutzerfreundlichekit bei dne Einstellungen genau? also Genre und AudioSource soll der benutzer selber editieren. Die Verzeichnis konfig ist dagen intelligent, d.h. bei laden eines Verzeichnises über Datei öffnen oder über die toolbar mit dem Ordnerlogo wird der ausgewählte ordner in die Combobox über dem tree eingetragen. Falls da ein Verzeichnis drinsteht das nciht existiert wird es aus der Verzeichniskonfig gelöscht.

Das mit den Icons ist allgemein so eine Sache, die die man so im Netz kriegt sind im Normalfall Urheberrechtlich geschützt. Ein richtiger Name und ein eigenes Icon muss schon noch her. Hab mir überlegt in TIG Tag zunennen (TIG sind meine real Name Initialien)

das mit dem Checkbox hab ich gemacht, macht ja auch Sinn ;)

Das Namesschema existiert schon (it's calles AutoTag), Dateinamen werden Nachdem Schema "Artist" - "Titel" geparst. In die Andere Richtung geht das ganze auch, da heißt es Autorename.

Welche Funktionen ich im letzten Onlinegestellten build drin hatte weiß ich gar nimmer genau, deswegen die Erläuterungen ;)

Die neuste Verison gibts wieder über diesen Link:
http://home.arcor.de/tig84/build.rar
 
hab das Ganze jetzt erst gesehen.
Das Tool ansich is für mich zwar uninteressant,aber da ich auch Java proggen kann, wollte ich mich mal anbieten, bei evtl. auftretenden Problemen mal über Codefragmente zu schauen und zu gucken ob was auffällt, auch wenn das jetzt wahrscheinlich schon recht schwierig sein sollte, aber in Proggen bin ich eigentlich immer fit, hab zwar noch nix vergleichbar aufwändiges geproggt, aber egal...

grizto, anbiet

*edit: übrigens ist es mir unter Mac OS X nich gelungen das Ganze mal anzuschauen
 
Zuletzt bearbeitet:
ja Danke für das Angebot, wenn ich mal vor einem Problemsteh seth meld ich mich sicher. Das ganze soll sowieso openSource werden, nur der Code ist dafür noch nicht genug Kommentiert. Aber wenn jemand interesse an dem Code hat kann ich ihm den gerne zukommen lassen

Der Tager ist (noch) nicht Plattform unabhängig. Problem ist halt dass ich sehr viel auf dem FileSystemarbeite und Dinge wie die "/" und "\" hart reincodiert sind. Das Panel auf der Linkenseite ist außerdme eine fertige Library (hatte sowas auch selber geschrieben, aber ich hatte bisher noch keien Zeit mir den Stress mit dem Renderer für die ganzen Icons zu geben)

@d´birch:
so eben ist es mit gelungen den APIC Frame so zu verarbeiten dass ich die Bilder als Dateien auf HDD speichern kann. Muss mir jetzt mal einen Platz in der GUI suchen wo ich die unterbringen kann :)
 
d´birch schrieb:
Ich bräuchte einen Datei-Browser, welcher in der Miniaturansicht das Cover aus dem ID3Tag ausliesst und darstellt. Könntest Du sowas ohne alzuviel Aufwand realisieren?

es ist vollbracht :D
die nächsten Tage werde ich noch das Cover in den Tag schreiben und speichern der Cover als Bild Datei auf Festplatte realisieren ;)
 
@Plattformunabhängigkeit:

Wenn es soweit is, biete ich mich gerne für die Portierung auf OS X an :)
Ich meine mich auch errinern zu können, dass Java das "/" und das "Backslash" (keine ahnung, wo das hier auf der Tastatur is *g) automatisch in Pfadangaben korrigiert, aber natürlich nich in hardcoded Pfadangaben (aber wer coded denn schon Pfade hard ;) tse tse ;) :D)
Mit dem File Object in Java lässt sich ja auch ne Menge anstellen, und somit sollte das auch zu beheben sein :)
 
@gritzo:
Du könntest das prog mal über console starten und zwar mit:

START java -Xms128m -Xmx256m -XX:NewSize=32m -XX:MaxNewSize=32m -XX:SurvivorRatio=8 -classpath .\dirchooser.jar;.\charsets.jar;.\mp3tag.jar de.usu.tig.mp3tag.Main %1

oder mit

java -Xms128m -Xmx256m -XX:NewSize=32m -XX:MaxNewSize=32m -XX:SurvivorRatio=8 -classpath .\dirchooser.jar;.\charsets.jar;.\mp3tag.jar de.usu.tig.mp3tag.Main %1

wenn du mir schreiben könntest was für einen Fehler du da auf deinem Mac kriegst würde mir das schon sehr helfen. Was diese Befehle so nicht funktionieren wird es warscheinlich daran liegen dass man den classpath auf Unix anderst setzt.
Starten müßte man das Programm eigentlich können, nur kann es gut sein dass es bei bestimmten operationen Fehlermeldungen gibt.
 
griztoG4:~/Desktop/build grizto$ java -Xms128m -Xmx256m -XX:NewSize=32m -XX:MaxNewSize=32m -XX:SurvivorRatio=8 -classpath .\dirchooser.jar;.\charsets.jar;.\mp3tag.jar de.usu.tig.mp3tag.Main %1
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)

where options include:
-client to select the "client" VM
-server to select the "server" VM
-jvm is a synonym for the "client" VM [deprecated]
-hotspot is a synonym for the "client" VM [deprecated]
The default VM is client.

-cp <class search path of directories and zip/jar files>
-classpath <class search path of directories and zip/jar files>
A : separated list of directories, JAR archives,
and ZIP archives to search for class files.
-D<name>=<value>
set a system property
-verbose[:class|gc|jni]
enable verbose output
-version print product version and exit
-version:<value>
require the specified version to run
-showversion print product version and continue
-jre-restrict-search | -jre-no-restrict-search
include/exclude user private JREs in the version search
-? -help print this help message
-X print help on non-standard options
-ea[:<packagename>...|:<classname>]
-enableassertions[:<packagename>...|:<classname>]
enable assertions
-da[:<packagename>...|:<classname>]
-disableassertions[:<packagename>...|:<classname>]
disable assertions
-esa | -enablesystemassertions
enable system assertions
-dsa | -disablesystemassertions
disable system assertions
-bash: .charsets.jar: command not found
-bash: .mp3tag.jar: command not found
griztoG4:~/Desktop/build grizto$ START java -Xms128m -Xmx256m -XX:NewSize=32m -XX:MaxNewSize=32m -XX:SurvivorRatio=8 -classpath .\dirchooser.jar;.\charsets.jar;.\mp3tag.jar de.usu.tig.mp3tag.Main %1
-bash: START: command not found
-bash: .charsets.jar: command not found
-bash: .mp3tag.jar: command not found

ich muss gestehen, das ich mich mit derm Terminal in Mac OSX nich auskenne, aber den Start befehl scheint er nich zu kennen, und für den Java scheint was mit den Parametern nich zu stimmen :/
Es gibt ja auch nen Jar_launcher in Mac OSX, aber da passiert leider gar nix
Hab selbst auch noch nie ein Jar compiliert und zum laufen gebracht, von daher kann ich da nich helfen, starte meine Projekte immer direkt aus eclipse.
Wie gesagt, im proggen war und bin ich gut, nur Erfahrung hab ich keine, ausser Tetris ;)
 
@grizto:
hab ich da im icq werd dir mal das eclipse projekt rüberschicken dann kannst mal schauen ob dus dadraus gestartet kriegst ;)
 

Neue Themen


Zurück
Oben