How to align track length during nfo export

Hi, if anyone could help me with this little coding problem Id be extremly greatful...

When exporting to nfo Id like the track length info (%_length%) to be alligned vertically.

Ive been looking into how Dano does this in his nfo code, but i cant figure it out. Dano's script lacks artist info (there is only "track no. - track title - track length"). I really need artist (%artist%) to be included since I have alot of VA albums.

This is the standard code i use: (Currently I always need to manually allign all the %_length% after export...)

$loop(%_path%)%track%.  %artist% - %title%  %_length%
$loopend()

This is how i want it to look:

Tracklisting:                                        Time:
01.  Artist A - Track A                              01:00
02.  Artist B - Track B                              02:37
03.  Artist C - Track C                              05:26
04.  Artist D - Track D                              05:31
05.  Artist E - Track E                              02:58
06.  Artist F - Track F                              07:31
07.  Artist G - Track G                              03:30
08.  Artist H - Track H                              07:40

                                           Total: 00:42:31

Thanks for any help! (sorry for my lack of knowledge how to do this)

Try this:

$loop(%_path%)%track%.  %artist% - %title%$repeat( ,$sub(60,$len(%artist% - %title%)))%_length%
$loopend()

Ah! Thx a million! :smiley:

Sorry if Im pushing my luck here (please forgive me)...
but is it possible to add a line break when the number of character in %artist% plus %title% reaches the defined placement of %_length%? So that the rest of the track title continues on the next line?

(On second thought that probably would be difficult, both because it would need the the correct spacing on next line as well as track title needs to break at a whole word not just the number of characters that reaches the limit...) Is it possible? :S

Tracklisting:                                        Time:
01.  Artist A - Track A                              01:00
02.  Artist B - Track B with a Really Really Really  02:37
     Long Track Name
03.  Artist C - Track C                              05:26

v1:

$loop(%_path%)$num(%track%,2).  $left(%artist% - %title%,60)  $repeat( ,$sub(60,$len($left(%artist% - %title%,60))))
     $mid(%artist% - %title%,61,60)  $repeat( ,$sub(60,$len($mid(%artist% - %title%,61,60))))
$loopend()

v2 (No empty lines):

$loop(%_path%)$loop(%_path%)$num(%track%,2).  $iflonger(%artist% - %title%,60,$left(%artist% - %title%,60)  $repeat( ,$sub(60,$len($left(%artist% - %title%,60))))
     $mid(%artist% - %title%,61,60)  $repeat( ,$sub(60,$len($mid(%artist% - %title%,61,60)))),$left(%artist% - %title%,60)  $repeat( ,$sub(60,$len($left(%artist% - %title%,60)))))
$loopend()

Wow thank you :slight_smile:

One problem though, i get non-matching no. of loop/loopends on both versions...

I just cannot get my head around how to close them. Final help? :slight_smile:

Sorry. Now it should work.

v1:

$loop(%_path%)$num(%track%,2).  $left(%artist% - %title%,60)  $repeat( ,$sub(60,$len($left(%artist% - %title%,60))))%_length%
     $mid(%artist% - %title%,61,60)  $repeat( ,$sub(60,$len($mid(%artist% - %title%,61,60))))
$loopend()

v2 (No empty lines):

$loop(%_path%)$num(%track%,2).  $iflonger(%artist% - %title%,60,$left(%artist% - %title%,60)  $repeat( ,$sub(60,$len($left(%artist% - %title%,60))))%_length%
     $mid(%artist% - %title%,61,60)  $repeat( ,$sub(60,$len($mid(%artist% - %title%,61,60)))),$left(%artist% - %title%,60)  $repeat( ,$sub(60,$len($left(%artist% - %title%,60))))%_length%)
$loopend()

Perfect!!! Thank you so much newser! :slight_smile: :slight_smile: This will same me so much time in the future! Thank you again!

:book: :book:

Thank you so much :rolleyes: :laughing:

Replying to an old topic here.

Does anyone know how I can align the %_total_time% with the individual track %_length%'s? That wasn't included in the code above.

And a second question, how can I remove leading zeros from %_length% and %_total_time%?
e.g. 00:05:23 -> 5:23 or 01:19:59 -> 1:19:59

'00:05:23' ==> $trimLeft('00:05:23','0:') ==> '5:23' '01:19:59' ==> $trimLeft('01:19:59','0:') ==> '1:19:59'

DD.20151210.1835.CET

right aligned ...

'-->'$right($repeat($char(32),$len(%_total_time%))%_length%,$len(%_total_time%))'<--' '-->'$right($repeat($char(32),$len(%_total_time%))%_total_time%,$len(%_total_time%))'<--'

--> 00:01<--
-->00:00:01<--

DD.20151210.1904.CET

v2 (No empty lines):

$loop(%_path%)$num(%track%,2).  $iflonger(%artist% - %title%,60,$left(%artist% - %title%,60)  $repeat( ,$sub(60,$len($left(%artist% - %title%,60))))%_length%
     $mid(%artist% - %title%,61,60)  $repeat( ,$sub(60,$len($mid(%artist% - %title%,61,60)))),$left(%artist% - %title%,60)  $repeat( ,$sub(60,$len($left(%artist% - %title%,60))))%_length%)
$loopend()

This is nice. Is it somehow possible to prevent splitting of words, so it breaks to a new line only with a whole word?

Do you mean instead of

01.  Joseph Haydn - Symphony No. 1 in D Major, Hob. I:1: I. Prest  05:07
     o                                                             
02.  Joseph Haydn - Symphony No. 1 in D Major, Hob. I:1: II. Anda  06:03
     nte                                                           
03.  Joseph Haydn - Symphony No. 1 in D Major, Hob. I:1: III. Pre  02:19
     sto                                                           
04.  Joseph Haydn - Symphony No. 2 in C Major, Hob. I:2: I. Alleg  03:21
     ro                                                            
05.  Joseph Haydn - Symphony No. 2 in C Major, Hob. I:2: II. Anda  03:03
     nte                                                           
06.  Joseph Haydn - Symphony No. 2 in C Major, Hob. I:2: III. Fin  03:11
     ale: Presto

you would like to see it like this:

01.  Joseph Haydn - Symphony No. 1 in D Major, Hob. I:1: I.        05:07
     Presto                                                             
02.  Joseph Haydn - Symphony No. 1 in D Major, Hob. I:1: II.       06:03
     Andante                                                           
03.  Joseph Haydn - Symphony No. 1 in D Major, Hob. I:1: III.      02:19
     Presto                                                           
04.  Joseph Haydn - Symphony No. 2 in C Major, Hob. I:2: I.        03:21
     Allegro                                                            
05.  Joseph Haydn - Symphony No. 2 in C Major, Hob. I:2: II.       03:03
     Andante                                                           
06.  Joseph Haydn - Symphony No. 2 in C Major, Hob. I:2: III.      03:11
     Finale: Presto

That would be very difficult :wink:

Yes, it is a minor detail. But Mp3tag can do wonders, so no harm in asking :slight_smile:

What would you do with extra long TITLEs like

01.  Joseph Haydn - Die sieben letzten Worte unseres Erlösers am   06:34
     Kreuze, Hob XX:2: L' Introduzione                             
02.  Joseph Haydn - Die sieben letzten Worte unseres Erlösers am   07:01
     Kreuze, Hob XX:2: Sonata I: Pater, dimitte illis, quia nesci  
03.  Joseph Haydn - Die sieben letzten Worte unseres Erlösers am   06:43
     Kreuze, Hob XX:2: Sonata II. Hodie mecum eris in Paradiso     
04.  Joseph Haydn - Die sieben letzten Worte unseres Erlösers am   07:26
     Kreuze, Hob XX:2: Sonata III. Mulier, ecce filius tuus        
05.  Joseph Haydn - Die sieben letzten Worte unseres Erlösers am   05:50
     Kreuze, Hob XX:2: Sonata IV. Deus meus, ut quid derelquisti   
$loop(%_path%)$num(%track%,2). $iflonger(%artist% - %title%,60,$left(%artist% - %title%,$strrchr($left(%artist% - %title%,60),' '))$repeat( ,$sub(60,$len($left(%artist% - %title%,$strrchr($left(%artist% - %title%,60),' ')))))%_length%
    $mid(%artist% - %title%,$add($strrchr($left(%artist% - %title%,60),' '),1),60)$repeat( ,$sub(60,$len($mid(%artist% - %title%,$add($strrchr($left(%artist% - %title%,60),' '),1),60)))),$left(%artist% - %title%,60)$repeat( ,$sub(60,$len($left(%artist% - %title%,60))))%_length%)
$loopend()

This should work without splitting the words (at the first line).

Seems to work, individual words are no longer split.
Thanks for sharing.

I'm just not sure if it's really easier to read:

05. Acoustic Covers Club - Nobody Like U (From "Turning Red")   02:28
    (Acoustic Instrumental)                                     
06. Acoustic Covers Club - We Don't Talk About Bruno (From      02:31
    "Encanto") (Acoustic Instrumental)                          
07. Acoustic Covers Club - All I Want (From "High School        03:09
    Musical") (Acoustic Instrumental)                           
08. Acoustic Covers Club - Let it Go (From "Frozen") (Acoustic  03:10
    Instrumental)                                               
09. Acoustic Covers Club - When Will My Life Begin? (From       02:55
    "Tangled") (Acoustic Instrumental)                          
10. Acoustic Covers Club - Into the Unknown (From "Frozen II")  02:37
    (Acoustic Instrumental)

If there are tracknumbers bigger then 99 there seems to be little problem with the indention on the second line:


(The forum software can't show it correctly if 4 leading spaces appears, that's why I can only show a screenshot.)

Depends on personal preference and the width (for a title) you choose.

I haven't tested with that numerous playlist, but I suppose you could use $num(%track%,3). or this,

$loop(%_path%)$regexp($num(%track%,2).,(^\d\d\.),$1 ) $iflonger(%artist% - %title%,60,$left(%artist% - %title%,$strrchr($left(%artist% - %title%,60),' '))$repeat( ,$sub(60,$len($left(%artist% - %title%,$strrchr($left(%artist% - %title%,60),' ')))))%_length%
     $mid(%artist% - %title%,$add($strrchr($left(%artist% - %title%,60),' '),1),60)$repeat( ,$sub(60,$len($mid(%artist% - %title%,$add($strrchr($left(%artist% - %title%,60),' '),1),60)))),$left(%artist% - %title%,60)$repeat( ,$sub(60,$len($left(%artist% - %title%,60))))%_length%)
$loopend()

Yep, that new version works fine: