foobar2000 auf Deutsch

foobar2000 => Customize => Thema gestartet von: mexx in 11. Februar 2009, 09:11:42

Titel: Fehler bei Progressbar-Anzeige
Beitrag von: mexx in 11. Februar 2009, 09:11:42
Also,

meine Progressbar funzt eigentlich korrekt.
Nur am Beginn eines Titels zeigt sie kurz einen vollen Ausschlag, als wenn der Titel zu Ende ist (s. Bild).

(http://img3.imagebanana.com/img/g287tlkd/progressbar2.jpg)

Allerdings nur, wenn der Titel länger als 5 Minuten ist.

Aussehen sollte es aber eigentlich so -->

(http://img3.imagebanana.com/img/yu8ggnfm/progressbar3.jpg)

Hier das Script:

Zitat// PerSecond

// Progressbar

$drawrect(10,10,$sub(%_width%,20),25,brushcolor-20-20-20 pencolor-null)

$ifgreater(%playback_time_seconds%,2,

$drawrect(10,10,$muldiv($muldiv(100,%playback_time_seconds%,%length_seconds%),$sub(%_width%,20),100),25,brushcolor-110-170-170 pencolor-null)

,)


// Gradient

$drawrect(10,10,$sub(%_width%,20),4,brushcolor-0-0-0)

$drawrect(10,13,$sub(%_width%,20),1,pencolor-0-0-0 alpha-255)

$drawrect(10,14,$sub(%_width%,20),1,pencolor-0-0-0 alpha-240)

$drawrect(10,15,$sub(%_width%,20),1,pencolor-0-0-0 alpha-225)

$drawrect(10,16,$sub(%_width%,20),1,pencolor-0-0-0 alpha-210)

$drawrect(10,17,$sub(%_width%,20),1,pencolor-0-0-0 alpha-195)

$drawrect(10,18,$sub(%_width%,20),1,pencolor-0-0-0 alpha-180)

$drawrect(10,19,$sub(%_width%,20),1,pencolor-0-0-0 alpha-165)

$drawrect(10,20,$sub(%_width%,20),1,pencolor-0-0-0 alpha-150)

$drawrect(10,21,$sub(%_width%,20),1,pencolor-0-0-0 alpha-135)

$drawrect(10,22,$sub(%_width%,20),1,pencolor-0-0-0 alpha-120)

$drawrect(10,23,$sub(%_width%,20),1,pencolor-0-0-0 alpha-105)

$drawrect(10,24,$sub(%_width%,20),1,pencolor-0-0-0 alpha-90)

$drawrect(10,25,$sub(%_width%,20),1,pencolor-0-0-0 alpha-75)

$drawrect(10,26,$sub(%_width%,20),1,pencolor-0-0-0 alpha-60)

$drawrect(10,27,$sub(%_width%,20),1,pencolor-0-0-0 alpha-45)

$drawrect(10,28,$sub(%_width%,20),1,pencolor-0-0-0 alpha-30)

$drawrect(10,29,$sub(%_width%,20),1,pencolor-0-0-0 alpha-15)

$drawrect(10,30,$sub(%_width%,20),1,pencolor-0-0-0 alpha-1)


$drawrect(10,10,$sub(%_width%,20),2,pencolor-233-233-233 alpha-210)

$drawrect(10,12,$sub(%_width%,20),2,pencolor-233-233-233 alpha-180)

$drawrect(10,14,$sub(%_width%,20),2,pencolor-233-233-233 alpha-150)

$drawrect(10,16,$sub(%_width%,20),2,pencolor-233-233-233 alpha-120)

$drawrect(10,18,$sub(%_width%,20),2,pencolor-233-233-233 alpha-90)

$drawrect(10,20,$sub(%_width%,20),2,pencolor-233-233-233 alpha-60)

$drawrect(10,22,$sub(%_width%,20),2,pencolor-233-233-233 alpha-30)


// Frame

$puts(divider.pos,12)

$drawrect($sub($get(divider.pos),1),12,1,22,pencolor-0-0-0)$drawrect($sub($get(divider.pos),1),12,1,15,pencolor-60-59-59)$drawrect($sub($get(divider.pos),1),12,1,6,pencolor-64-63-63)$drawrect($sub($get(divider.pos),1),12,1,5,pencolor-74-73-73)$drawrect($sub($get(divider.pos),1),12,1,4,pencolor-88-87-87)$drawrect($sub($get(divider.pos),1),12,1,3,pencolor-107-106-106)$drawrect($sub($get(divider.pos),1),12,1,2,pencolor-124-124-124)$drawrect($sub($get(divider.pos),1),12,1,1,pencolor-133-133-133)

$drawrect($get(divider.pos),12,1,22,pencolor-1-179-186)$drawrect($get(divider.pos),12,1,21,pencolor-2-191-199)$drawrect($get(divider.pos),12,1,20,pencolor-2-211-219)$drawrect($get(divider.pos),12,1,19,pencolor-2-228-237)$drawrect($get(divider.pos),12,1,18,pencolor-2-238-248)$drawrect($get(divider.pos),12,1,17,pencolor-124-249-254)

$drawrect($add($get(divider.pos),1),13,1,22,pencolor-0-0-0)$drawrect($add($get(divider.pos),1),13,1,14,pencolor-60-59-59)


$puts(divider.pos,$sub(%_width%,13))

$drawrect($sub($get(divider.pos),1),12,1,22,pencolor-0-0-0)$drawrect($sub($get(divider.pos),1),12,1,15,pencolor-60-59-59)$drawrect($sub($get(divider.pos),1),12,1,6,pencolor-64-63-63)$drawrect($sub($get(divider.pos),1),12,1,5,pencolor-74-73-73)$drawrect($sub($get(divider.pos),1),12,1,4,pencolor-88-87-87)$drawrect($sub($get(divider.pos),1),12,1,3,pencolor-107-106-106)$drawrect($sub($get(divider.pos),1),12,1,2,pencolor-124-124-124)$drawrect($sub($get(divider.pos),1),12,1,1,pencolor-133-133-133)

$drawrect($get(divider.pos),12,1,22,pencolor-1-179-186)$drawrect($get(divider.pos),12,1,21,pencolor-2-191-199)$drawrect($get(divider.pos),12,1,20,pencolor-2-211-219)$drawrect($get(divider.pos),12,1,19,pencolor-2-228-237)$drawrect($get(divider.pos),12,1,18,pencolor-2-238-248)$drawrect($get(divider.pos),12,1,17,pencolor-124-249-254)

$drawrect($add($get(divider.pos),1),13,1,22,pencolor-0-0-0)$drawrect($add($get(divider.pos),1),13,1,14,pencolor-60-59-59)


$drawrect(10,10,$sub(%_width%,20),25,brushcolor-null pencolor-0-0-0)

$drawrect(11,10,$sub(%_width%,22),25,brushcolor-null pencolor-0-0-0)

$drawrect(10,11,$sub(%_width%,20),23,brushcolor-null pencolor-0-0-0)


// Dividers

$puts(divider.pos,$muldiv(1,$sub(%_width%,10),10))

$drawrect($sub($get(divider.pos),1),12,1,22,pencolor-0-0-0)$drawrect($sub($get(divider.pos),1),12,1,15,pencolor-60-59-59)$drawrect($sub($get(divider.pos),1),12,1,6,pencolor-64-63-63)$drawrect($sub($get(divider.pos),1),12,1,5,pencolor-74-73-73)$drawrect($sub($get(divider.pos),1),12,1,4,pencolor-88-87-87)$drawrect($sub($get(divider.pos),1),12,1,3,pencolor-107-106-106)$drawrect($sub($get(divider.pos),1),12,1,2,pencolor-124-124-124)$drawrect($sub($get(divider.pos),1),12,1,1,pencolor-133-133-133)

$drawrect($get(divider.pos),12,1,22,pencolor-1-179-186)$drawrect($get(divider.pos),12,1,21,pencolor-2-191-199)$drawrect($get(divider.pos),12,1,20,pencolor-2-211-219)$drawrect($get(divider.pos),12,1,19,pencolor-2-228-237)$drawrect($get(divider.pos),12,1,18,pencolor-2-238-248)$drawrect($get(divider.pos),12,1,17,pencolor-124-249-254)

$drawrect($add($get(divider.pos),1),13,1,22,pencolor-0-0-0)$drawrect($add($get(divider.pos),1),13,1,14,pencolor-60-59-59)


$puts(divider.pos,$muldiv(2,$sub(%_width%,10),10))

$drawrect($sub($get(divider.pos),1),12,1,22,pencolor-0-0-0)$drawrect($sub($get(divider.pos),1),12,1,15,pencolor-60-59-59)$drawrect($sub($get(divider.pos),1),12,1,6,pencolor-64-63-63)$drawrect($sub($get(divider.pos),1),12,1,5,pencolor-74-73-73)$drawrect($sub($get(divider.pos),1),12,1,4,pencolor-88-87-87)$drawrect($sub($get(divider.pos),1),12,1,3,pencolor-107-106-106)$drawrect($sub($get(divider.pos),1),12,1,2,pencolor-124-124-124)$drawrect($sub($get(divider.pos),1),12,1,1,pencolor-133-133-133)

$drawrect($get(divider.pos),12,1,22,pencolor-1-179-186)$drawrect($get(divider.pos),12,1,21,pencolor-2-191-199)$drawrect($get(divider.pos),12,1,20,pencolor-2-211-219)$drawrect($get(divider.pos),12,1,19,pencolor-2-228-237)$drawrect($get(divider.pos),12,1,18,pencolor-2-238-248)$drawrect($get(divider.pos),12,1,17,pencolor-124-249-254)

$drawrect($add($get(divider.pos),1),13,1,22,pencolor-0-0-0)$drawrect($add($get(divider.pos),1),13,1,14,pencolor-60-59-59)


$puts(divider.pos,$muldiv(3,$sub(%_width%,10),10))

$drawrect($sub($get(divider.pos),1),12,1,22,pencolor-0-0-0)$drawrect($sub($get(divider.pos),1),12,1,15,pencolor-60-59-59)$drawrect($sub($get(divider.pos),1),12,1,6,pencolor-64-63-63)$drawrect($sub($get(divider.pos),1),12,1,5,pencolor-74-73-73)$drawrect($sub($get(divider.pos),1),12,1,4,pencolor-88-87-87)$drawrect($sub($get(divider.pos),1),12,1,3,pencolor-107-106-106)$drawrect($sub($get(divider.pos),1),12,1,2,pencolor-124-124-124)$drawrect($sub($get(divider.pos),1),12,1,1,pencolor-133-133-133)

$drawrect($get(divider.pos),12,1,22,pencolor-1-179-186)$drawrect($get(divider.pos),12,1,21,pencolor-2-191-199)$drawrect($get(divider.pos),12,1,20,pencolor-2-211-219)$drawrect($get(divider.pos),12,1,19,pencolor-2-228-237)$drawrect($get(divider.pos),12,1,18,pencolor-2-238-248)$drawrect($get(divider.pos),12,1,17,pencolor-124-249-254)

$drawrect($add($get(divider.pos),1),13,1,22,pencolor-0-0-0)$drawrect($add($get(divider.pos),1),13,1,14,pencolor-60-59-59)


$puts(divider.pos,$muldiv(4,$sub(%_width%,10),10))

$drawrect($sub($get(divider.pos),1),12,1,22,pencolor-0-0-0)$drawrect($sub($get(divider.pos),1),12,1,15,pencolor-60-59-59)$drawrect($sub($get(divider.pos),1),12,1,6,pencolor-64-63-63)$drawrect($sub($get(divider.pos),1),12,1,5,pencolor-74-73-73)$drawrect($sub($get(divider.pos),1),12,1,4,pencolor-88-87-87)$drawrect($sub($get(divider.pos),1),12,1,3,pencolor-107-106-106)$drawrect($sub($get(divider.pos),1),12,1,2,pencolor-124-124-124)$drawrect($sub($get(divider.pos),1),12,1,1,pencolor-133-133-133)

$drawrect($get(divider.pos),12,1,22,pencolor-1-179-186)$drawrect($get(divider.pos),12,1,21,pencolor-2-191-199)$drawrect($get(divider.pos),12,1,20,pencolor-2-211-219)$drawrect($get(divider.pos),12,1,19,pencolor-2-228-237)$drawrect($get(divider.pos),12,1,18,pencolor-2-238-248)$drawrect($get(divider.pos),12,1,17,pencolor-124-249-254)

$drawrect($add($get(divider.pos),1),13,1,22,pencolor-0-0-0)$drawrect($add($get(divider.pos),1),13,1,14,pencolor-60-59-59)


$puts(divider.pos,$muldiv(5,$sub(%_width%,10),10))

$drawrect($sub($get(divider.pos),1),12,1,22,pencolor-0-0-0)$drawrect($sub($get(divider.pos),1),12,1,15,pencolor-60-59-59)$drawrect($sub($get(divider.pos),1),12,1,6,pencolor-64-63-63)$drawrect($sub($get(divider.pos),1),12,1,5,pencolor-74-73-73)$drawrect($sub($get(divider.pos),1),12,1,4,pencolor-88-87-87)$drawrect($sub($get(divider.pos),1),12,1,3,pencolor-107-106-106)$drawrect($sub($get(divider.pos),1),12,1,2,pencolor-124-124-124)$drawrect($sub($get(divider.pos),1),12,1,1,pencolor-133-133-133)

$drawrect($get(divider.pos),12,1,22,pencolor-1-179-186)$drawrect($get(divider.pos),12,1,21,pencolor-2-191-199)$drawrect($get(divider.pos),12,1,20,pencolor-2-211-219)$drawrect($get(divider.pos),12,1,19,pencolor-2-228-237)$drawrect($get(divider.pos),12,1,18,pencolor-2-238-248)$drawrect($get(divider.pos),12,1,17,pencolor-124-249-254)

$drawrect($add($get(divider.pos),1),13,1,22,pencolor-0-0-0)$drawrect($add($get(divider.pos),1),13,1,14,pencolor-60-59-59)



$puts(divider.pos,$muldiv(6,$sub(%_width%,10),10))

$drawrect($sub($get(divider.pos),1),12,1,22,pencolor-0-0-0)$drawrect($sub($get(divider.pos),1),12,1,15,pencolor-60-59-59)$drawrect($sub($get(divider.pos),1),12,1,6,pencolor-64-63-63)$drawrect($sub($get(divider.pos),1),12,1,5,pencolor-74-73-73)$drawrect($sub($get(divider.pos),1),12,1,4,pencolor-88-87-87)$drawrect($sub($get(divider.pos),1),12,1,3,pencolor-107-106-106)$drawrect($sub($get(divider.pos),1),12,1,2,pencolor-124-124-124)$drawrect($sub($get(divider.pos),1),12,1,1,pencolor-133-133-133)

$drawrect($get(divider.pos),12,1,22,pencolor-1-179-186)$drawrect($get(divider.pos),12,1,21,pencolor-2-191-199)$drawrect($get(divider.pos),12,1,20,pencolor-2-211-219)$drawrect($get(divider.pos),12,1,19,pencolor-2-228-237)$drawrect($get(divider.pos),12,1,18,pencolor-2-238-248)$drawrect($get(divider.pos),12,1,17,pencolor-124-249-254)

$drawrect($add($get(divider.pos),1),13,1,22,pencolor-0-0-0)$drawrect($add($get(divider.pos),1),13,1,14,pencolor-60-59-59)


$puts(divider.pos,$muldiv(7,$sub(%_width%,10),10))

$drawrect($sub($get(divider.pos),1),12,1,22,pencolor-0-0-0)$drawrect($sub($get(divider.pos),1),12,1,15,pencolor-60-59-59)$drawrect($sub($get(divider.pos),1),12,1,6,pencolor-64-63-63)$drawrect($sub($get(divider.pos),1),12,1,5,pencolor-74-73-73)$drawrect($sub($get(divider.pos),1),12,1,4,pencolor-88-87-87)$drawrect($sub($get(divider.pos),1),12,1,3,pencolor-107-106-106)$drawrect($sub($get(divider.pos),1),12,1,2,pencolor-124-124-124)$drawrect($sub($get(divider.pos),1),12,1,1,pencolor-133-133-133)

$drawrect($get(divider.pos),12,1,22,pencolor-1-179-186)$drawrect($get(divider.pos),12,1,21,pencolor-2-191-199)$drawrect($get(divider.pos),12,1,20,pencolor-2-211-219)$drawrect($get(divider.pos),12,1,19,pencolor-2-228-237)$drawrect($get(divider.pos),12,1,18,pencolor-2-238-248)$drawrect($get(divider.pos),12,1,17,pencolor-124-249-254)

$drawrect($add($get(divider.pos),1),13,1,22,pencolor-0-0-0)$drawrect($add($get(divider.pos),1),13,1,14,pencolor-60-59-59)


$puts(divider.pos,$muldiv(8,$sub(%_width%,10),10))

$drawrect($sub($get(divider.pos),1),12,1,22,pencolor-0-0-0)$drawrect($sub($get(divider.pos),1),12,1,15,pencolor-60-59-59)$drawrect($sub($get(divider.pos),1),12,1,6,pencolor-64-63-63)$drawrect($sub($get(divider.pos),1),12,1,5,pencolor-74-73-73)$drawrect($sub($get(divider.pos),1),12,1,4,pencolor-88-87-87)$drawrect($sub($get(divider.pos),1),12,1,3,pencolor-107-106-106)$drawrect($sub($get(divider.pos),1),12,1,2,pencolor-124-124-124)$drawrect($sub($get(divider.pos),1),12,1,1,pencolor-133-133-133)

$drawrect($get(divider.pos),12,1,22,pencolor-1-179-186)$drawrect($get(divider.pos),12,1,21,pencolor-2-191-199)$drawrect($get(divider.pos),12,1,20,pencolor-2-211-219)$drawrect($get(divider.pos),12,1,19,pencolor-2-228-237)$drawrect($get(divider.pos),12,1,18,pencolor-2-238-248)$drawrect($get(divider.pos),12,1,17,pencolor-124-249-254)

$drawrect($add($get(divider.pos),1),13,1,22,pencolor-0-0-0)$drawrect($add($get(divider.pos),1),13,1,14,pencolor-60-59-59)


$puts(divider.pos,$muldiv(9,$sub(%_width%,10),10))

$drawrect($sub($get(divider.pos),1),12,1,22,pencolor-0-0-0)$drawrect($sub($get(divider.pos),1),12,1,15,pencolor-60-59-59)$drawrect($sub($get(divider.pos),1),12,1,6,pencolor-64-63-63)$drawrect($sub($get(divider.pos),1),12,1,5,pencolor-74-73-73)$drawrect($sub($get(divider.pos),1),12,1,4,pencolor-88-87-87)$drawrect($sub($get(divider.pos),1),12,1,3,pencolor-107-106-106)$drawrect($sub($get(divider.pos),1),12,1,2,pencolor-124-124-124)$drawrect($sub($get(divider.pos),1),12,1,1,pencolor-133-133-133)

$drawrect($get(divider.pos),12,1,22,pencolor-1-179-186)$drawrect($get(divider.pos),12,1,21,pencolor-2-191-199)$drawrect($get(divider.pos),12,1,20,pencolor-2-211-219)$drawrect($get(divider.pos),12,1,19,pencolor-2-228-237)$drawrect($get(divider.pos),12,1,18,pencolor-2-238-248)$drawrect($get(divider.pos),12,1,17,pencolor-124-249-254)

$drawrect($add($get(divider.pos),1),13,1,22,pencolor-0-0-0)$drawrect($add($get(divider.pos),1),13,1,14,pencolor-60-59-59)

$tab()$transition($repeat($get(divc),$get(divw)),$get(fadeend),$get(text1))$transition($repeat($get(divc),$get(divw)),$get(text1),$get(fadeend))$tab()$char(10)

$char(10)

$alignabs($sub($div(%_width%,2),40),13,80,20,center,middle)
$font(MS Sans Serif,10,bold,255-255-255)
$if(%length%,$div($mul(100,%playback_time_seconds%),%length_seconds%)$right($div($mul(10000,%playback_time_seconds%),%length_seconds%),0) '%',)

Kann mir jemand helfen?

cu
mexx
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: tedgo in 11. Februar 2009, 09:24:35
Hab das Script gerade ausprobiert und bei mir tritt der Fehler nicht auf.
Aber ich schau mir das Script mal an, wenn ich heute dazu komme (bin zur Zeit ein bisschen beschäftigt... :)).
Vielleicht kann man es irgendwie optimieren.

Mir ist aber schon aufgefallen, dass du bei der Prozentangabe ja keine Nachkommastellen haben wolltest.
Du hast aus dem String, den ich dir gepostet habe den "." entfernt und die $right()-Funktion auf "0" gesetzt.
Das ist überflüssig. Mach einfach aus:
$if(%length%,$div($mul(100,%playback_time_seconds%),%length_seconds%)$right($div($mul(10000,%playback_time_seconds%),%length_seconds%),0) '%',)
das hier:
$if(%length%,$div($mul(100,%playback_time_seconds%),%length_seconds%) '%')
Denn wenn man keine Nachkommastellen haben will, braucht man die $right()-Funktion nicht ;)

EDIT:
Gibt es eigentlich einen besonderen Grund, warum du das mit Trackinfo mod machst und nicht mit dem Panel Stack Splitter?
Denn der Panel Stack Splitter kann das auch, und zwar wesentlich einfacher.
Er ist auch stabil, bis auf die Anzeige von Bildern (da ist er nicht ganz bugfrei).
Da dein Script aber völlig ohne Bilder auskommt, wäre das doch eine Alternative.
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: mexx in 11. Februar 2009, 09:35:51
mmmmhhhhhhhhh,

hab beim Probieren eben folgendes festgestellt:

Wenn ich in dieser Scriptzeile $ifgreater(%playback_time_seconds%,5, (4. Zeile von oben im Script) den Wert von 1 auf 5 erhöhe, ist der Fehler weg. :crazy:

Nun möchte ich aber doch schon ganz gerne wissen, was ich da verändere. ???
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: tedgo in 11. Februar 2009, 09:40:29
Du hast Trackinfo mod gerade angewiesen, erst dann eine Progressbar zu zeichnen, wenn vom spielenden Lied bereits 5 Sekunden vergangen sind.
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: mexx in 11. Februar 2009, 09:42:40
mmmmmmmmhhhhhhhhh,

das sollte es dann ja wohl auch nicht sein. :(

Übrigens, setze ich den Wert auf 4, dann tritt der Fehler wieder auf.
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: tedgo in 11. Februar 2009, 09:46:02
Habe jetzt den Fehler auch festgestellt.
Dürfte eigentlich nicht sein, soweit ich das Script bis jetzt überblickt habe.
Hm, ich probiere ein wenig daran herum und werde schon eine Lösung finden ;).
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: mexx in 11. Februar 2009, 09:51:12
Zitat von: tedgo in 11. Februar 2009, 09:46:02...Hm, ich probiere ein wenig daran herum und werde schon eine Lösung finden ;).

Wäre schön. :) ;)
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: tedgo in 11. Februar 2009, 10:14:19
Tausche die folgende Zeilen:
$ifgreater(%playback_time_seconds%,2,

$drawrect(10,10,$muldiv($muldiv(100,%playback_time_seconds%,%length_seconds%),$sub(%_width%,20),100),25,brushcolor-110-170-170 pencolor-null)

,)

durch diese aus:
$puts(progress,$muldiv(%playback_time_seconds%,$sub(%_width%,20),%length_seconds%))

$ifgreater($get(progress),0,
   $drawrect(10,10,$get(progress),25,brushcolor-110-170-170 pencolor-null)
,
)

Das ist mein alter String für die Progressbar, die ich früher in Trackinfo mod hatte und der funktioniert jedenfalls.
Bin aber noch nicht dahintergestiegen, warum deiner nicht funktioniert hat...
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: mexx in 11. Februar 2009, 10:34:31
Jou,

so funktionierts. :crazy:

Aber vielleicht bekommst du doch noch raus, wo im geposteten Script der Fehler steckt.

THX  :top:
mexx
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: tedgo in 11. Februar 2009, 10:53:16
Das habe ich schon:

$ifgreater(%playback_time_seconds%,x,...
ist der Fehler.

Die Breite eines Elements darf nicht "0" sein, sonst wird die ganze Breite ausgefüllt (wird wohl mit %_width% gleichgesetzt).
Beim Abgleich der Funktion mit %playback_time_seconds% wird auch in den ersten Sekunden eines Liedes versucht, die Breite zu zeichnen, da die Playback Time immer größer ist als "0". Da in den ersten Sekunden aber das Ergebnis "0" herauskommt, wird der ganze Balken gezeichnet.

Gleicht man die Funktion mit der Berechnung selbst ab, wird in den ersten Sekunden erst gar kein Balken gezeichnet, solange als Ergebnis der Berechnung eine "0" herauskommt und somit nicht größer ist als "0".

(Habe ich mich klar ausgedrückt? Ich versuche immer, so genau und verständlich wie möglich zu sein, bin mir aber beim Nachlesen des Geschriebenen manchmal selbst nicht ganz darüber im Klaren, was ich damit ausdrücken will...  ::))
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: mexx in 11. Februar 2009, 11:03:23
Naja,

begriffen hab ich das nicht :'( und werds wohl auch nicht. Also sind weitere Erklärungsversuche bei mir warscheinlich zwecklos. ;)

Zumindest hab ich kapiert (hoff ich jedenfalls), dass der String $ifgreater(%playback_time_seconds%,x,... in diesem Fall nicht geht. Und das ist doch auch schon etwas.

Dank deines alten Strings funzt es ja jetzt. :crazy:

Also THX und  :top:
mexx

Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: tedgo in 11. Februar 2009, 11:25:59
Dann probier ich mal, es anschaulich zu erklären:

Beispiel:
Länge des Liedes: 5 Min. (= %length_seconds%: 300)

Bei deiner alten Funktion sieht das dann so aus:
Wenn die abgespielte Zeit größer ist als 0, dann zeichne einen Balken mit der Breite '(100*abgespielte Zeit/300)*(Breite-20)/100', sonst nix.
Da die Playback Time immer größer ist als "0", wird also immer versucht, einen Balken zu zeichnen.
Das Ergebnis der Berechnung wäre in dem Fall aber knapp 2 Sekunden lang "0" (es gibt keine Nachkommastellen im Titleformatting).
Die Breite wäre also "0" und damit die gesamte Breite des Panels, ab der Position, die man festgelegt hat (in deinem Fall ab dem 10. Pixel), weil "0" mit %_width% gleichgesetzt wird.

Bei der "neuen" Funktion (die Berechnung ist übrigens identisch mit deiner alten, nur jeweils um die überflüssige "100" gekürzt):
Erst wenn das Ergebnis der Berechnung größer ist als "0", wird ein Balken mit der Länge des Ergebnisses der Berechnung gezeichnet, ansonsten nix.

Ich bezweifle zwar, dass das jetzt verständlicher war, aber ein Versuch war es wert ;)  ;D
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: mexx in 11. Februar 2009, 11:40:51
d.h.

solange die Berechnung (bis 1 %) läuft (ca. 2 Sekunden) ist das Ergebnis "0" und solange wird ein Balken über die gesamte Breite gezeichnet.

Wenn es Nachkommastellen gäbe, wär das nicht der Fall, da das Ergebnis dann eigentlich sofort größer als "0" wäre.
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: tedgo in 11. Februar 2009, 11:46:09
Stimmt.
Wenn Trackinfo mod bei der Breite auch Nachkommastellen akzeptieren könnte, würde das funktionieren.
Dann bräuchten wir aber auch sowas wie eine Angabe der Playback Time in hundertstel Sekunden.

Die Prozentangabe ist allerdings nicht so starr. Sie hängt ja auch noch von der Breite des Panels ab.
Wenn dein Panel über die gesamte Breite von foobar ginge (z. B. 1280 Pixel), dann würde dein alter String möglicherweise auch funktionieren, zumindest ab der 1. Sekunde ;)
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: mexx in 11. Februar 2009, 11:52:28
aha,

habs wohl einigermaßen kapiert. :)

Thx für deine Geduld. :top:
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: tedgo in 11. Februar 2009, 11:58:02
Bin gerade dabei, das ganze mal im Panel Stack Splitter auszuprobieren.
Da sollte zumindest das Zeichnen der ganzen Progressbar einfacher sein, da es da eine Gradientrect-Funktion gibt.

EDIT:
Da funktioniert der alte String. Hier wird "0" nicht mit %_width% gleichgesetzt.
Ist also ein "Makel" an Trackinfo mod.
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: tedgo in 11. Februar 2009, 15:23:48
So, jetzt habe ich die Progressbar mal auf die Schnelle im Panel Stack Splitter erstellt.
Nebenbei habe ich einen unschönen Fehler ausgemerzt (die "Divider" saßen nicht perfekt. Das hat mein ästhethisches Empfinden gestört  ::)).

(http://www.abload.de/img/progressbar84k2.png) (http://www.abload.de/image.php?img=progressbar84k2.png)

Sieht auch nicht schlecht aus - und funktioniert ;)

Die Strings sind nur halb so üppig wie bei Trackinfo mod.
Könnten sicher noch kleiner sein, wenn ich auf die Schnelle eine Möglichkeit gefunden hätte, die immer wiederkehrenden Strings für die Divider in einer $puts()-Funktion zu integrieren. Ging aber nicht...
Vielleicht hänge ich mich irgendwann noch mal ran, hat für mich aber keine Eile, weil ich keine Progressbar benutze, sondern das WSH Panel.
Die Divider könnten mir aber auch gefallen...

Wenn es dich interessiert, ich habe dir mal die Skripte angehängt.
Einfach den Inhalt des "PerTrack"-Scripts mit Strg+C kopieren und auf der Registerkarte Script --> PerTrack einfügen.
Der Inhalt des "PerSecond"-Skripts gehört auf die Registerkarte Script --> PerSecond.

Falls du doch lieber bei Trackinfo mod bleiben willst, vielleicht schaue ich mir das Skript noch mal an.
Schon allein wegen der unästhetischen Divider  :crazy:
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: mexx in 11. Februar 2009, 15:39:01
hehe,

sieht gut aus.  :top: Wird natürlich genutzt.

Die Arbeit soll ja auch nicht umsonst gewesen sein. ;) :)

Nochmals THX.
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: tedgo in 11. Februar 2009, 15:44:03
Wesentlich einfacher ginge das ganze, wenn du anstatt Strings Bilder benutzen würdest (zumindest für die Divider).
Dann wäre das Skript jeweils kaum größer als 10 Zeilen.
Allerdings könnte dann der Bug des Panel Stack Splitters ab und zu wieder mal störend wirken (lädt dann einfach keine Bilder. Die FCL muss dann neu geladen oder foobar2000 neu gestartet werden. Ärgerlich...).
Für Bilder wäre das Trackinfo mod Panel wiederum stabiler.
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: mexx in 11. Februar 2009, 15:49:52
nene,

so wie jetzt bleibt es erst mal. Entspricht meinen Vorstellungen. :top:

Werd mich jetzt mal mit dem WSH Panel beschäftigen. ;)
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: tedgo in 11. Februar 2009, 15:59:09
Zitat von: mexx in 11. Februar 2009, 15:49:52
Werd mich jetzt mal mit dem WSH Panel beschäftigen. ;)
Da ist aber nix mit Title-Formatting, sondern mit einer richtigen Programmiersprache (JScript).
Da steig ich selbst oft nicht richtig durch, weil mir die Befehle nicht so recht vertraut sind...
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: mexx in 11. Februar 2009, 16:03:12
Zitat von: tedgo in 11. Februar 2009, 15:59:09
Zitat von: mexx in 11. Februar 2009, 15:49:52
Werd mich jetzt mal mit dem WSH Panel beschäftigen. ;)
Da ist aber nix mit Title-Formatting, sondern mit einer richtigen Programmiersprache (JScript).
Da steig ich selbst oft nicht richtig durch, weil mir die Befehle nicht so recht vertraut sind...

Hab ich eben auch schon festgestellt. Das heißt für mich --> Hände weg. :)

Denn: Schuster bleib bei deinen Leisten. Man muss nicht alles machen. :)
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: tedgo in 11. Februar 2009, 16:06:32
Für eine Progressbar (oder besser "Seekbar") ist aber ein Beispielscript im Download enthalten.
Das brauchst du nur einfügen (Copy & Paste).

Wenn du dir das ganze dann mal anschaust, kannst du schon das eine oder andere leicht erkennen und verändern.
Zum Beispiel die Farben der Progressbar oder denText, der angezeigt werden soll.
So habe ich das auch gemacht. Denn von JScript hatte ich zuvor keine Ahnung (und habe ich jetzt auch noch nicht wirklich...  ::)).

Ob damit aber "deine" Progressbar mit den Farbverläufen und den Dividern so hinzukriegen ist, wage ich zu bezweifeln.
Gehen würde es sicher, ich wüsste jetzt allerdings auch nicht wie...
Dafür kenne ich mich damit zu wenig aus.

EDIT:
Aber ich bastel mal, das interessiert mich nämlich jetzt auch :)
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: tedgo in 11. Februar 2009, 17:42:09
Alsoooooooo ;)

Jetzt habe ich dir die Progressbar inkl. Seekbar-Funktion (kannst also mit Drag & Drop in der Progressbar zu einem beliebigen Punkt im Lied springen) auch im WSH Panel gemacht.

(http://www.abload.de/img/wshseekbar2k1i.png) (http://www.abload.de/image.php?img=wshseekbar2k1i.png)

War gar nicht so schwer, wie ich dachte :)

Das Skript im Anhang kopierst du wieder mit Strg+C, dann rechtsklickst du auf das WSH Panel --> Configure --> bei Script Engine auf "JScript" stellen und das kopierte einfügen.

Puh  8)

PS: Die Nachkommastelle habe ich nicht wegbekommen, da das WSH Panel mit Nachkommastellen rechnet und ich nicht weiß, wie ich es zum Runden bekomme...
Ich könnte es höchstens evtl. mit dem Einfügen eines Titleformatting-Strings hinbekommen.
Titel: Fehler bei Progressbar-Anzeige
Beitrag von: huber71 in 11. Februar 2009, 18:07:13
sieht ein bisschen wie eine portionierbare Kräuter-Lakritzstange zum Abbrechen aus ...  ^^

Huber59
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: tedgo in 11. Februar 2009, 18:08:41
LÄSTER NICHT!!!  :D
Man kann ja die Farben noch etwas ändern...

Ich wünsche dem Nutzer jedenfalls guten Appetit...   :crazy:
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: mexx in 11. Februar 2009, 19:16:10
Zitat von: huber59 in 11. Februar 2009, 18:07:13
sieht ein bisschen wie eine portionierbare Kräuter-Lakritzstange zum Abbrechen aus ...  ^^

Huber59

Besseres Modell? Dann Bild und Script für Trackinfo_mod oder Panel Stack Splitter hier posten. ;)
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: tedgo in 11. Februar 2009, 19:20:01
Zitat von: mexx in 11. Februar 2009, 19:16:10
Besseres Modell? Dann Bild und Script für Trackinfo_mod oder Panel Stack Splitter hier posten. ;)
Für die WSH Panel-Variante besteht wohl doch kein Interesse?  ???
Das würde ich jedenfalls bevorzugen, weill man damit gleich noch eine Seekbar hat.
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: mexx in 11. Februar 2009, 19:23:12
Zitat von: tedgo in 11. Februar 2009, 19:20:01
Zitat von: mexx in 11. Februar 2009, 19:16:10
Besseres Modell? Dann Bild und Script für Trackinfo_mod oder Panel Stack Splitter hier posten. ;)
Fürs WSH Panel besteht wohl doch kein Interesse?  ???

Habs mir runtergelden, aber ich lass erst mal die Finger davon.

Aber vielleicht kann ja ein Beitrag aufgemacht werden, in dem Beispiele von Progressbar's für die einzelnen Module in Bild und Script vorgestellt werden?
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: tedgo in 11. Februar 2009, 19:26:39
Eröffne doch einen Beitrag dazu.
Bevor ich darin poste, muss ich meine eigene aber erst mal "pimpen" ;)
Die ist nämlich extrem simpel.
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: mexx in 11. Februar 2009, 19:56:15
mmmmhhhhhhhhhh,

also das mit dem WSH-Panel funzt bei mir nicht.
Hab das Script eingefügt. Sieht auch alles so wie im Bild aus.

Aber der Fortschritt wird nicht angezeigt.
Und wenn ich in die Progressbar reinklicke, stürzt foobar ab. :(
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: tedgo in 11. Februar 2009, 20:03:43
Tja, dann brauchst du möglicherweise das WSH Panel von T.P. Wang:
WSH Panel 0.7.2 (ohne SSE2) (http://www.hydrogenaudio.org/forums/index.php?showtopic=65618&st=75&p=589236&#entry589236)
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: mexx in 11. Februar 2009, 20:10:23
Genau das wars. Hatte die mit SSE2.
Titel: Fehler bei Progressbar-Anzeige
Beitrag von: huber71 in 11. Februar 2009, 20:11:40
 ^^ ziehe meine humorvolle anmerkung hiermit zurück  ^^
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: mexx in 11. Februar 2009, 20:13:08
Zitat von: huber59 in 11. Februar 2009, 20:11:40
^^ ziehe meine humorvolle anmerkung hiermit zurück  ^^

:baseball: ;) :)
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: tedgo in 11. Februar 2009, 20:19:26
Und funktioniert es?

Wenn du übrigens die Nachkommastellen weghaben möchtest, müsstest du ein paar kleine Änderungen am Script vornehmen. Da muss dann ein bisschen TitleFormatting herhalten, weil da ohne Nachkommastellen gerechnet wird (ein anderer Weg fällt mir da jetzt nicht ein):
- Öffne die Textdatei mit dem Skript im Editor und lass die Statusbar anzeigen
- gehe zu Zeile 72 ("var percentage = 100*fb.PlaybackTime/fb.PlaybackLength;") und und überschreib diese mit:
var g_titlefmt = fb.TitleFormat("$div($mul(100,%playback_time_seconds%),%length_seconds%) '%' ");
- die darunterliegenden Zeile ("txt = percentage.toString().substr(0,4) + "%";") überschreibst du mit:
txt = g_titlefmt.Eval();
- Speichere das Skript und füge es in das WSH Panel ein

Das sollte klappen.
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: mexx in 11. Februar 2009, 20:25:08
jou,

hatte den Vollzug schon 4 Post's weiter oben gemeldet. :)

Das andere werd ich mal testen. Aber erst morgen. Werde mich dann nochmal melden. :)
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: tedgo in 11. Februar 2009, 20:26:35
Zitat von: mexx in 11. Februar 2009, 20:25:08
hatte den Vollzug schon 4 Post's weiter oben gemeldet. :)

Autsch!
Hatte ich überlesen :)
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: mexx in 11. Februar 2009, 20:38:51
Hab die Zeilen doch noch eingefügt. :)

Funzt alles prima. :top: Auch ohne Kommastellen.

Nun hab ich ja genügend Möglichkeiten. :D :D

Also nochmals THX
mexx
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: tedgo in 03. Oktober 2009, 11:02:22
So, habe jetzt durch Zufall diesen Thread wiederentdeckt.

Inzwischen kenne ich mich mit JScript ja ein bisschen besser aus und deshalb hier eine Lösung für die dezimalstellenfreie Prozentangabe ohne Title Formatting:

in Zeile 72 im oben geposteten Script aus:
var percentage = 100*fb.PlaybackTime/fb.PlaybackLength;
folgendes machen:
txt = Math.round(100*fb.PlaybackTime/fb.PlaybackLength) + "%";
und die darunterliegende Zeile:
txt = percentage.toString().substr(0,4) + "%";
einfach löschen.

So einfach geht das, wenn man's weiß...  ::)
(Hatte mir damals die Berechnung einfach aus einem anderen Script kopiert, ohne sie genauer anzuschauen)
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: mexx in 27. Oktober 2009, 08:28:35
Jo,

ich muss auch nochmal hier rein.

Meine Progressbar funzt ja prima. Aber die Einteilung in 10 %-Schritte ist nicht ganz exakt. Der Balken ist bei den vollen Prozenten immer kurz über die Skalierung hinaus.

(http://img5.imagebanana.com/img/b6ic8w6f/beispiel.jpg)

Wo kann ich das im Script ändern. z.B. die Skalierung leicht verschieben.

Das Script stammt ja von Tedgo. Vielleicht kann er mir helfen. ;)

Script ist angehängt.
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: tedgo in 27. Oktober 2009, 10:00:52
Probiers mal mit dem Script aus dem Anhang.
Durch Rundungsfehler wird es aber trotzdem nicht 100% passen ;)

EDIT:
Bitte noch mal downloaden, da war ein kleiner Fehler drin  ::)
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: mexx in 27. Oktober 2009, 10:08:12
Danke. So ist das schon viel besser. :top:

Jetzt schaltet es an der Scalierung korrekt um.

Jetzt werden aber viel kleinere Schritte gemacht. Ich gehe davon aus, dass dies so sein muss.

Aber zum Verständnis....an welchem Teil des Scriptes hast du jetzt gedreht?
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: tedgo in 27. Oktober 2009, 10:11:03
Die Schritte sind gleich groß, da habe ich nichts geändert.

Ich habe nur eine zusätzliche Variable (area) eingeführt, die die Breite des letzten Separators von der Breite des Panels abzieht und lasse die Position der Fortschrittsanzeige jetzt innerhalb dieser "area" ermitteln. War jetzt die schnellste Lösung.
Hauptsache, es klappt :D

PS: Nicht vergessen: Noch mal downloaden, da im Script ein Fehler war!
Titel: Re: Fehler bei Progressbar-Anzeige
Beitrag von: mexx in 27. Oktober 2009, 10:22:47
Stimmt, die Schritte sind gleich groß.

Als ich das verglichen hatte, lief grad ein 16-Minuten-File. Daher erschienen die Schritte wohl kürzer. ::)

Und.....OK, hab das Script nochmal runtergeladen.

THX
mexx