MP3TAG : Export

Hi!

Ich bin nicht sonderlich vertraut mit dem scripting, und es wäre dufte wenn jemand mal einen Blick auf mein template werfen könnte, ob es Sinn macht.
Ziel soll sein, dass es, unabhängig von der Zahl der Alben (ob Sampler oder Alben) und Audioformaten, entsprechende Informationen exportieren kann.

$filename(%album%.txt,utf-8)
$loop(%_parent_directory%,1)R E L E A S E   D E T A I L S

DB Entry: 

Artist: $loop($if2(%album artist%,%artist%),1)$if2(%album artist%,%artist%)
Album: %album%
Label: 
Catalog #: 
Format: 
Country: 
Year: %year%


A U D I O   D E T A I L S

Audio Codec: $replace(%_codec%,MPEG 1 Layer III,MP3,Free Lossless Audio Codec,FLAC,Windows Media Audio,WMA)
Bitrate: %_vbr% $loop(%_filename_ext%)$puts(Vbitrate,$add($get(Vbitrate),%_bitrate%))$puts(cnt1,$add($get(cnt1),1))$loopend()$div($get(Vbitrate),$get(cnt1)) kBit/s
Samplerate: %_samplerate% Hz
Mode: %_mode%

Tracklist:
$loop(%DISCNUMBER%)
$loop(%track%)$num(%track%,2) $if($geql(%album artist%,various),%artist% - ,)%title% (%_length%)
$loopend()$loopend()$loopend()
Total Time: %_total_time%
Total Size: %_total_size% 
Total Tracks: %_total_files%





$loopend()

Danke im Voraus! Ein paar weitere Fragen kommen dann noch ... :rolleyes:

Kannst du auch ein zugehöriges Export Ergebnis zeigen?
Und vielleicht auch eine Skizze der Ordnerstruktur?

DD.20110912.2052.CEST

Ich kann schon mal sagen; da stimmt was nicht bezüglich der Bitrate ...

Zwischen dem 'Charles Mingus' Album und dem 'Heaven And' Album geht was verloren. Die nachfolgenden Bitraten stimmen auch nicht. Der Mojo Club Sampler am Schluss ist in Wirklichkeit ein 320er Rip.

Ich bump den thread mal. ich komme dem fehler nicht auf die schliche. Eine weitere frage wäre noch wie beim export die bitrate von FLAC ignoriert werden kann, da diese bei FLAC eher irrelevant ist.

Für die vbr muss man die Variablen zurücksetzen.
Dazu den grauen Text noch einfügen.

...
Mode: %_mode%

$put(Vbitrate,0)$put(cnt1,0)

Tracklist:
$loop(%DISCNUMBER%)
...

Was genau meinst du mit der flac Bitrate?

Vielen, vielen Dank, dano! Hat geklappt.

Sry, für mein Unwissen. Habe mir soweit auch eher alles zusammengeklaut für das script.

Ich möchte, dass nur bei lossy Formaten die Bitrate gelistet wird. Wenn ein verlustfreies Format (wie eben FLAC) erkannt wird, interessiert mich die Bitrate nicht und möchte somit, dass diese eben bei FLAC ignoriert wird.

So sollte es aussehen zum besseren Verständnis:

Du hast mir jedenfalls mit dem Ersten schon seeeeehr geholfen!

Ich hab's dann auch mal endlich gemerkt :rolleyes:

Ok! Hab's geschnackelt! Eigentlich ganz simpel, wenn man sein Köpfchen mal ein bisschen anstrengt.

$if($eql(%_codec%,Free Lossless Audio Codec),,Bitrate...........: %_vbr% $loop(%_filename_ext%)$puts(Vbitrate,$add($get(Vbitrate),%_bitrate%))$puts(cnt1,$add($get(cnt1),1))$loopend()$div($get(Vbitrate),$get(cnt1)) kBit/s)

Jetzt ist nur mein Problem; wenn das script nun FLAC erkennt, lässt er eine Zeile frei. Das will ich aber nicht, sondern es soll mit der danach folgenden Funktion in dieser Zeile fortfahren. Ich könnte mir vorstellen, dass zwischen der $if funktion ,, statt des "Nichts tun" sowas wie GOTO nächste Zeile stehen könnte?!?
Verwirrt? Ich auch!
:huh:

Hmm... ich durchstöbere gerade alle Möglichkeiten dazu in der "Hilfe".
Wäre die string funktion $regexp(x,expr,repl) der richtige Weg?
Kurzes Abnicken oder Kopfschüttlen reicht ja auch :wink:

Die Samplerate: Zeile in die selbe Zeile hohlen und mit $char(13)$char(10) kannst du einen Zeilenumbruch nach kBit/s erzeugen.

Danke, du bist mein Held!

$if($eql(%_codec%,Free Lossless Audio Codec),,Bitrate...........: %_vbr% $loop(%_filename_ext%)$puts(Vbitrate,$add($get(Vbitrate),%_bitrate%))$puts(cnt1,$add($get(cnt1),1))$loopend()$div($get(Vbitrate),$get(cnt1)) kBit/s$char(13)$char(10))Sample Rate.......: %_samplerate% Hz

Kommt das mit der nötigen Fantasie bei mir noch? :wink:

Wenn du die Grundlagen beherrschst dann klappt es auch besser mit der Fantasie. :book: ... :w00t:

Trotz vielem :book: muss ich mal wieder meine fantasie in frage stellen :rolleyes:
Gehen wir mal davon aus ich möchte einen sampler, der keinen albumartist tag hat, sondern nur die einzelnen artists, exportieren. Ist es mit den vorhandenen scripting funktionen möglich, das script so zu gestalten, dass es die artist tags der dateien vergleicht und bei unterschieden eine vermutung ausgibt, dass der albumartist “VA“ ist? Wäre dies möglich?

Könnte es das sein?

$if2(%ALBUMARTIST%,'VA')

DD.20111117.1705.CET

Nee. Da hast du mich wohl falsch verstanden.

Dann würde es ja auch bei Single Artist Alben ohne ALBUMARTIST TAG daraus VA machen.

Ich dachte da an sowas:

Vergleichen:

track01    %artist%    if $eql    (loop)track01    %artist%
                                        track02    %artist%
                                        track03    %artist%
                                        track04    %artist%
                                        u.s.w.

wenn alle tracks gleichen %artist% wie track01 haben dann eben dieser,
ansonsten Various Artists.

Das hier geht ja leider nicht:

$if($eql(%ARTIST%,$loop(%track%)%ARTIST%$loopend()),%ARTIST%,Various Artists)

Vielleicht geht es irgendwie so ...

$filename($getEnv('USERPROFILE')'\Desktop\Mp3tag.Report.VA.txt',UTF-8) 'Wenn Artist im Album unterschiedlich, dann Artist = VA.' $loop(%ALBUM%) $loop(%ARTIST%) $loop(%ARTIST%)$loopend() $puts(A,$ifgreater(%_max_counter%,1,%ARTIST%,'VA')) $loopend() $loop(%_path%)%ALBUM%' '%TRACK%' '$get(A) $loopend() $loopend()

Test mit 4 Dateien:
Album 1, Track 1, Artist A
Album 1, Track 2, Artist B
Album 2, Track 1, Artist C
Album 2, Track 2, Artist C

Ausgabe:
Album 1 01/02 VA
Album 1 02/02 VA
Album 2 01/02 Artist C
Album 2 02/02 Artist C

DD.20111117.2003.CET

Wow! Vielen Dank!

Den Weg hast du mir damit aufgezeigt. Jetzt versuch ich's mal einzubauen.

Danke DD

YES! :w00t:

Jetzt hab' ich's genauso wie ich's haben wollte.

Danke, danke, danke, DetlevD!!!

$filename($getEnv('USERPROFILE')'\Desktop\Mp3tag.Report.VA.txt',UTF-8)
$loop(%ALBUM%)
$puts(VAcheck,$loop(%ARTIST%)
$loop(%ARTIST%)$loopend() $puts(A,$ifgreater(%_max_counter%,1,%ARTIST%,'Various Artists'))
$loopend()
$loop(%_path%)
$loopend()
$get(A)$puts(A,0))
$if2($if2(%ALBUMARTIST%,%ALBUM ARTIST%),$get(VAcheck))
$loopend()