foobar2000 auf Deutsch

foobar2000 => Plugins => Thema gestartet von: anaono in 14. August 2013, 11:07:10

Titel: Ein neues Feature "APPEND-PAUSE" für fb2k?
Beitrag von: anaono in 14. August 2013, 11:07:10
Ein neues Feature "POSTGAP-NEW"

Ich möchte nach einem neuen Feature in, oder einem Plugin für, fb2k fragen:

========================================
Edit (15.08.2013 09:24, TagNamen geändert):

Das Audio-file-tag "POSTGAP-NEW" mit z.B. dem Wert "10.8" soll bewirken, dass eine zusätzliche Pause von 10,8 Sek. am Ende des Tracks angehängt wird, abhängig davon, ob der neue Menü-Punkt "Playback -> Play Postgap-new" an- oder ausgeschaltet ist.

Normalerweise wird vor einem laufendem Track ein weißes Dreieck angezeigt (in der Playliste). Während die Pause läuft, soll dieses Dreieck ersetzt werden, durch eine runter zählende Zahl; für das Bsp. "10.8": "10 9 8 ... 1" und dann schaltet foobar2000 weiter zum nächsten Track.

========================================

Weiß jemand, in welchem/n Forum/en ich danach fragen kann?
Titel: Re:Ein neues Feature "APPEND-PAUSE" für fb2k?
Beitrag von: grimes in 14. August 2013, 12:34:12
Das wäre eine nette Ergänzung zu meinem plugin Stop after album (http://www.hydrogenaudio.org/forums/index.php?showtopic=83743).
Da gibt es z.B. schon die Funktion "Gap tracks", die jeweils eine fest definierte pause hinter den tracks einfügt.

Mal schauen, ob ich Zeit finde das zu implementieren.
Titel: Re:Ein neues Feature "APPEND-PAUSE" für fb2k?
Beitrag von: anaono in 14. August 2013, 15:34:40
Ja prima :)


Ich hatte meine Anfrage inzwischen auch hier eingestellt:

http://www.hydrogenaudio.org/forums/index.php?showtopic=102223


und hier hat sich eine kleine Diskusion entwickelt:

http://www.hifi-forum.de/index.php?action=browseT&back=1&sort=lpost&forum_id=54&thread=17408

Titel: Re:Ein neues Feature "APPEND-PAUSE" für fb2k?
Beitrag von: grimes in 14. August 2013, 18:40:08
Zum Namen APPEND-PAUSE:
pause ist durch play/pause/stop schon belegt.
Gängig ist der Begriff Gap (Lücke, Zwischenraum). Zu Unterscheiden ist ein pregap und ein postgap.
In diesem Fall handelt es sich um ein postgap. Daher würde ich vorschlagen den Tag und den Menüeintrag "postgap" zu nennen.

Zum Countdown:
Das ist schwerer zu implementieren.
Im Wesentlichen müsste die plugin-interne Variable einer globalen foobar2000-eigenen Variablen %countdown% zugewiesen werden.
Keine Ahnung, ob das geht. Ich klammere dies vorerst mal aus.


Titel: Re:Ein neues Feature "APPEND-PAUSE" für fb2k?
Beitrag von: fooamp in 15. August 2013, 00:31:12
Kann mit jemand erläutern, wozu das Ganze überhaupt gut sein sollte.
Titel: Re:Ein neues Feature "APPEND-PAUSE" für fb2k?
Beitrag von: anaono in 15. August 2013, 09:34:25
Zitat von: anaono in 14. August 2013, 15:34:40
und hier hat sich eine kleine Diskusion entwickelt:

Im Post #5 habe ich meine Motivation erläutert:

http://www.hifi-forum.de/index.php?action=browseT&forum_id=54&thread=17408&postID=5#5

2 Weitere Anwendungsbeispiele habe ich unter "2. Fall" und "3. Fall" beschrieben in:

http://www.hifi-forum.de/index.php?action=browseT&forum_id=54&thread=17408&postID=1#1


Titel: Re:Ein neues Feature "APPEND-PAUSE" für fb2k?
Beitrag von: TomPro in 15. August 2013, 09:47:44
Ein mögliches Beispiel:
Wenn ein "Alleinunterhalter" seine Playbacks für eine Show automatisch abfahren möchte und Zeit für Applaus und Ansagen mit einkalkuliert.

Als Technicker eines "Phil Collins" Double mache ich z.B. ähnliches:
Ich habe mir kurze Files erstellt mit ca. 10 sec Stille und im Namenstag ein Codewort untergebracht welches von einem WSH Script abgefragt wird und dann automatisch foobar nach dem File anhält. So können wir Titel hintereinander spielen oder aber Pausen für Ansagen generieren und ich muss immer nur auf Play drücken wenn's weitergehen soll

Titel: Re:Ein neues Feature "APPEND-PAUSE" für fb2k?
Beitrag von: anaono in 15. August 2013, 09:56:27
Zitat von: grimes in 14. August 2013, 18:40:08
Zum Namen APPEND-PAUSE: ... Daher würde ich vorschlagen den Tag und den Menüeintrag "postgap" zu nennen.

Prima, habe ich geändert

Was hälst Du von dem neuen Namen "Playback -> Play Postgap-new"?


Zitat von: grimes in 14. August 2013, 18:40:08
Zum Countdown: ... Ich klammere dies vorerst mal aus.

Ja, verstehe ich und es ist ja auch nicht wesentlich, sondern nur "nice to have".


----------

Ich hoffe Du bekommst keinen Schreck: Ich habe den Gedanken "Trennen von Postgap und eigentlichem Track" nochmal ausformuliert. Es ist etwas umfangreich geworden. Aber es baut auf dem einfachen Request aus dem Eingangsthread auf, ist also "abwärtskompatibel":

http://www.hifi-forum.de/index.php?action=browseT&forum_id=54&thread=17408&postID=1#1

Und fürs erste reicht es den "1. Fall" oder vielleicht noch den "2. Fall" zu implementieren.


----------

@TomPro: Danke für das weitere Anwendungsbeispiel :)
Titel: Re:Ein neues Feature "APPEND-PAUSE" für fb2k?
Beitrag von: grimes in 15. August 2013, 13:03:28
Erste Testversion im Anhang (nur für Mitglieder)


ZitatMenu | Playback | Control | Postgap (ON/OFF)

Der Tag heißt %POSTGAP%, die Angabe der Zeit ist in Millisekunden, d.h. 5000 = 5s.



Titel: Re:Ein neues Feature "APPEND-PAUSE" für fb2k?
Beitrag von: anaono in 15. August 2013, 14:34:56
Danke, super so schnell :)

Etwas verwirrend, dass fb2k während der Pause nichts anzeigt, aber das hattest Du ja angekündigt.

Was hälst Du von meiner Ausformulierung "Trennen von Postgap und eigentlichem Track"?

Um den 1. Fall daraus zu erfüllen schlage ich folgende Änderungen vor:

- den Tag %POSTGAP% umbenennen in %POSTGAP-NEW% (wegen dem 2. Fall aus "TvPueT")
- Für das Format ss.mm (Sekunden.Millisekunden) verwenden, also z.B. "5.00" für 5 Sek.
- und vielleicht der Name für den Menüeintrag: "Play Postgap-new" statt "Postgap"

Dann fehlt noch der "Countdown" und der 1. Fall ist fertig implementiert.

Einen Bug habe ich entdeckt:
Wenn der letzte Track (einer *.m3u-Playlist) zu Ende ist, wird er nach 10 Sek. automatisch neu gestartet.


PS:
Als ich eine PM schreiben wollte bekam ich von foobar-users.de die Fehlermeldung:
Ein Fehler ist aufgetreten!
Sie haben nicht die Berechtigung Private Mitteilungen zu versenden.
Hast Du vielleicht eine Idee, wie ich PMs schreiben kann?
Titel: Re:Ein neues Feature "APPEND-PAUSE" für fb2k?
Beitrag von: grimes in 15. August 2013, 17:19:10
Den vorgeschlagenen Änderungen stehe ich allesamt kritisch gegenüber.
Beispiel: Wenn es ein POSTGAP-NEW gibt, so fragt sich der Anwender wo ist das POSTGAP-OLD. Der Anwender ist verwirrt.
Play suggeriert, dass ein track gespielt wird... etc.
Millisekunden: Ist ein hoher Aufwand alles von Integer zu float umzustellen.
Zum Selbermachen: Sourcecode steht zur Verfügung.

Zum Bug:
Ich fürchte, da lässt sich nichts machen.
Sowohl bei stop_after_current als auch beim playlistenende wirft foobar2000 "stop_reason_eof".
"gap & play" basiert auf "stop_reason_eof". So wird dummerweise das playlistenende nicht ordnungsgemäß beendet sondern mit gap wiederholt.
Wenn jemand eine Idee hat?

(PM ab 10 Beiträgen)
Titel: Re:Ein neues Feature "APPEND-PAUSE" für fb2k?
Beitrag von: fbuser in 15. August 2013, 18:32:25
Zitat von: grimes in 15. August 2013, 17:19:10Millisekunden: Ist ein hoher Aufwand alles von Integer zu float umzustellen.
Wirklich? Es müßte doch reichen, die String-Eingabe zunächst in eine Float-Variable umzuwandeln, diese mit 1000 zu multiplizieren und das Ergebnis als Integer für die Millisekunden weiterzuverwenden.

Zitat von: grimes in 15. August 2013, 17:19:10Sowohl bei stop_after_current als auch beim playlistenende wirft foobar2000 "stop_reason_eof".
"gap & play" basiert auf "stop_reason_eof". So wird dummerweise das playlistenende nicht ordnungsgemäß beendet sondern mit gap wiederholt.
Wenn jemand eine Idee hat?

Das könnte in etwa so aussehen:

void on_playback_stop(play_control::t_stop_reason stopreason)
{
  switch(stopreason)
  {
    case play_control::stop_reason_eof:
    {
      size_t playlist;
      size_t index;
      static_api_ptr_t<playlist_manager>->get_playing_item_location(playlist,index); // index enthält letzten gespielten Track

     size_t count=static_api_ptr_t<playlist_manager>->playlist_get_item_count(playlist); // Anzahl der Playlist-Einträge ermitteln
     if(index+1<count) // der zuletzt gespielte Track war nicht der letzte Track in der Playlist
     {
       // pausiere
     }
     
      break;
    }
  }
}
Titel: Re:Ein neues Feature "APPEND-PAUSE" für fb2k?
Beitrag von: anaono in 15. August 2013, 18:50:53
Zitat von: fbuser in 15. August 2013, 18:32:25
Zitat von: grimes in 15. August 2013, 17:19:10Millisekunden: Ist ein hoher Aufwand alles von Integer zu float umzustellen.
Wirklich? Es müßte doch reichen, die String-Eingabe zunächst in eine Float-Variable umzuwandeln, diese mit 1000 zu multiplizieren und das Ergebnis als Integer für die Millisekunden weiterzuverwenden.

Oder vielleicht so:
- den String z.B. "3.21" bei "." splitten ("3" und "21")
- den ersten Teil mit 1000 multiplizieren (== 3000)
- den zweiten Teil Ziffernweise auseinandernehmen ("21"\[0] und "21"[1])
- mit 100 und mit 10 multiplizieren (== 200 und == 10)
- und alles addieren (== 3210)

PS: "\[" soll eine "[" sein.

Titel: Re:Ein neues Feature "APPEND-PAUSE" für fb2k?
Beitrag von: fbuser in 15. August 2013, 19:18:56
Zitat von: anaono in 15. August 2013, 18:50:53
- den String z.B. "3.21" bei "." splitten ("3" und "21")
- den ersten Teil mit 1000 multiplizieren (== 3000)
- den zweiten Teil Ziffernweise auseinandernehmen ("21"\[0] und "21"[1])
- mit 100 und mit 10 multiplizieren (== 200 und == 10)
- und alles addieren (== 3210)
Sorry, aber das ist unnötig kompliziert.
Titel: Re:Ein neues Feature "APPEND-PAUSE" für fb2k?
Beitrag von: grimes in 15. August 2013, 20:42:27
Danke fbuser!

Ich habe mit deinem Code ein Problem. Wie mache ich einen Typ size_t* (index) zu size_t (count) kompatibel.

switch(p_reason)
{
case play_control::stop_reason_eof:
{
size_t* playlist;
size_t* index;
static_api_ptr_t<playlist_manager>()->get_playing_item_location(playlist,index); // index enthält letzten gespielten Track

size_t count=static_api_ptr_t<playlist_manager>()->activeplaylist_get_item_count (); // Anzahl der Playlist-Einträge ermitteln
if(index + 1 < count) // der zuletzt gespielte Track war nicht der letzte Track in der Playlist
{
  console::formatter() << "Test Count: " << count;
}
break;
}
}


liefert den folgenden Fehler:

1>------ Erstellen gestartet: Projekt: foo_stopafteralbum, Konfiguration: Release Win32 ------
1>  foo_stopafteralbum.cpp
1>foo_stopafteralbum.cpp(4811): error C2446: '<': Keine Konvertierung von 'size_t' in 'size_t *'
1>          Die Konvertierung eines ganzzahligen Typs in einen Zeigertyp erfordert ein reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
1>foo_stopafteralbum.cpp(4811): error C2040: '<': 'size_t *' unterscheidet sich von 'size_t' in Bezug auf die Anzahl vorgenommener Dereferenzierungen
Titel: Re:Ein neues Feature "APPEND-PAUSE" für fb2k?
Beitrag von: fbuser in 15. August 2013, 21:12:22
Sorry, ich hatte die Adreßoperatoren beim Aufruf von get_playing_item_location() vergessen.

Der Aufruf muß dann so aussehen:

size_t playlist;
size_t index;
static_api_ptr_t<playlist_manager>()->get_playing_item_location(&playlist,&index);
Titel: Re:Ein neues Feature "APPEND-PAUSE" für fb2k?
Beitrag von: grimes in 15. August 2013, 21:35:46
Ich werde das mit den bescheuerten Zeigern nie kapieren.

Neue Testversion im Anhang

Hoffentlich mit gefixten playlistenden-bug.

Titel: Re:Ein neues Feature "APPEND-PAUSE" für fb2k?
Beitrag von: anaono in 16. August 2013, 07:08:42
Danke, der Bug ist weg :)

Zitat von: grimes in 15. August 2013, 17:19:10
Den vorgeschlagenen Änderungen stehe ich allesamt kritisch gegenüber.
Beispiel: Wenn es ein POSTGAP-NEW gibt, so fragt sich der Anwender wo ist das POSTGAP-OLD. Der Anwender ist verwirrt.
Play suggeriert, dass ein track gespielt wird... etc.
Millisekunden: Ist ein hoher Aufwand alles von Integer zu float umzustellen.
Zum Selbermachen: Sourcecode steht zur Verfügung.


OK, Danke, dass Du daran denkst Anwender könnten verwirrt werden, durch das nicht vorhandene %POSTGAP-OLD%. Was hälst Du von folgender Benennung?:
(B)
- %POSTGAP-OLD%, für das Original-Gap von der CD und
- %POSTGAP-NEW%, für das vom Benutzer gewünschte neue Gap.

So hat man beide Gaps klar auseinander gehalten, das Alte vom CD-Rip und das Neue, was der Anwender gerne hätte.

Oder diese Benennung?:
(C)
- %POSTGAP-ORIGINAL%, für das Original-Gap von der CD und
- %POSTGAP-USER%, für das vom Benutzer gewünschte neue Gap.

Oder diese Benennung?:
(D)
- %POSTGAP-PRIMAL%, für das ursprüngliche Original-Gap von der CD und
- %POSTGAP-USER%, für das vom Benutzer gewünschte neue Gap.


Die Benennung aus meinen Beitrag

http://www.hifi-forum.de/index.php?action=browseT&forum_id=54&thread=17408&postID=1#1

war:
(A)
- %POSTGAP%, für das Original-Gap von der CD und
- %POSTGAP-NEW%, für das vom Benutzer gewünschte neue Gap.

(B) oder (C) finde ich eindeutig besser als (A). Ich tendiere zu (C).


Zum Menüeintrag:
"Play suggeriert, dass ein track gespielt wird... "
Stimmt! Und eigentlich ist es ein Wartezustand (der entweder den Datenstrom ganz unterbricht "pausing playback" oder nur "0-Bytes" an das Ausgabegerät schickt "playing silence"). Und so weit ich das verstanden habe machst Du ein "pausing playback".

Diesmal bin ich es, der meint, dass der Menüeintrag "Postgap" den Anwender verwirren könnte, weil er nicht weiß welche Tätigkeit "Postgap" bedeutet. Ich meine "Use Postgap-new" ist leichter verständlich als ein "Postgap-new" <-- für (B) und für (C), (D) --> "Use Postgap-user".


"Zum Selbermachen: Sourcecode steht zur Verfügung."
Danke :) Damit warte ich noch;
ich muss erst noch eine ganze Menge lernen, wie das funktioniert.
Kann man das Projekt auch mit dem gcc übersetzen oder braucht man MS VC++ dafür?
Titel: Re:Ein neues Feature "APPEND-PAUSE" für fb2k?
Beitrag von: grimes in 16. August 2013, 08:20:10
Neue Testversion im Anhang.

Umstellung von Millisekunden auf Sekunden mit Nachkommastellen.
Das Format ist also nun:
<POSTGAP> 3.5

Zitat von: anaono in 16. August 2013, 07:08:42
- %POSTGAP-OLD%, für das Original-Gap von der CD und
- %POSTGAP-NEW%, für das vom Benutzer gewünschte neue Gap.

Vorschlag:
%POSTGAP-OLD% für das Original-Gap von der CD
%POSTGAP% für das vom Benutzer gewünschte neue Gap

Ich werde nichts mehr an der Namensgebung ändern.
Es ist wirklich unüblich vor einem Menüpunkt noch mal "Use" zu schreiben.
Das müsstest Du dann bei jedem Menüpunkt machen.

(VC++ 2010)



Titel: Re:Ein neues Feature "APPEND-PAUSE" für fb2k?
Beitrag von: anaono in 16. August 2013, 10:44:38

Funktioniert :)


Zitat von: grimes in 16. August 2013, 08:20:10
Vorschlag:
%POSTGAP-OLD% für das Original-Gap von der CD
%POSTGAP% für das vom Benutzer gewünschte neue Gap

OK, ich vermute Du denkst so "Das was drauf steht (ist auch drin, d.h.) soll auch gemacht werden. Also braucht %POSTGAP% keinen Zusatz mehr wie USER oder NEW oder USER-DEFINED". Einversanden! Dann schlage ich folgende Benennung vor:

(E)
- %POSTGAP-INTERNAL%, für das im Track am Ende vorhandene Gap (von CD beim Rippen übernommen) und
- %POSTGAP%, für das vom Benutzer gewünschte neue Gap. (über den gleichnamigen Menüpunkt akti- und deaktivierbar)

oder (F)
- %POSTGAP-INTRACK%, ...
- %POSTGAP%, ...

oder (G)
- %POSTGAP-DEFAULT%, ...
- %POSTGAP%, für das vom Benutzer gewünschte neue Gap, das den Default ersetzen kann.

(G) gefällt mir am besten, weil es den Gegensatz zwischen wählbarem und default Verhalten betont! Was meinst Du?


Zitat von: grimes in 16. August 2013, 08:20:10
Ich werde nichts mehr an der Namensgebung ändern.
Es ist wirklich unüblich vor einem Menüpunkt noch mal "Use" zu schreiben.
Das müsstest Du dann bei jedem Menüpunkt machen.

Ich kann mit dem Menüpunkt "Postgap" sehr gut leben, denn ich weiß bereits was gemeint ist. Viele Menschen sind aber nicht so abstrakt, dass sie sofort verstehen "Postgap" bedeutet "Aktiviere das gleichnamige Tag". Sie brauchen genau so etwas als Bechreibung und würden einen Menüeintrag "Use Tag Postgap" leichter verstehen. Und ich glaube wir beide wollen den Anwender möglichst wenig verwirren.

Z.B. bin ich verwirrt durch Deine Menüeinträge "Gap tracks" und "Gap albums". Ich verstehe noch nicht ob Du vielleicht meinst "Add Gap after every track" und "Add Gap after every album"? Gibt es irgendwo eine Beschreibung Deines Plugins?


------
Ich freue mich, dass Du an der Implementierung arbeitest. Unsere Diskusion bzgl. der Namensgebung von Tags und Menüeintrag hilft mir, über Anwenderfreundlichkeit nachzudenken. Danke dafür.

Möchtest Du das ich auf die Implementierung in Deinem Plugin hinweise, auf?:

http://www.hifi-forum.de/index.php?action=browseT&back=1&sort=lpost&forum_id=54&thread=17408
http://www.hydrogenaudio.org/forums/index.php?showtopic=102223
Titel: Re:Ein neues Feature "APPEND-PAUSE" für fb2k?
Beitrag von: grimes in 16. August 2013, 11:38:11
Tipp: Gehst Du über den Menüeintag mit der Maus, so erscheint in der Statusbar eine ausführlichere Beschreibung.
Außerdem ist unter Preferences | Components | Stop after album | (rechtsklick) About nochmals eine Zusammenfassung vorhanden.

Ich werde die neue Version dann demnächst auf Hydrogenaudio veröffentlichen, wenn keine Einwände bestehen.


Titel: Re:Ein neues Feature "APPEND-PAUSE" für fb2k?
Beitrag von: fooamp in 16. August 2013, 12:31:51
Zitat von: anaono in 15. August 2013, 09:34:25

Im Post #5 habe ich meine Motivation erläutert:

http://www.hifi-forum.de/index.php?action=browseT&forum_id=54&thread=17408&postID=5#5

2 Weitere Anwendungsbeispiele habe ich unter "2. Fall" und "3. Fall" beschrieben in:

http://www.hifi-forum.de/index.php?action=browseT&forum_id=54&thread=17408&postID=1#1

Danke. Verstehe. Zum ersten Punkt: Nein; zu den anderen beiden: nicht interessant für mich. - Aber offenbar sind andere anderer Meinung und haben Deine Idee dankbar aufgegriffen. Vielleicht findet sich später für mich eine Verwendungsmöglichkeit, vorerst sehe ich sie nicht. Interessant jedenfalls, welche Bedürfnisse so existieren. Ich beobachte.
Titel: Re:Ein neues Feature "APPEND-PAUSE" für fb2k?
Beitrag von: anaono in 16. August 2013, 19:30:37

Zitat von: grimes in 16. August 2013, 11:38:11
Ich werde die neue Version dann demnächst auf Hydrogenaudio veröffentlichen, wenn keine Einwände bestehen.

Warum sollte jemand etwas dagegen haben? Ich jedenfalls freue mich, wenn Du es veröffentlichst.

Der 1. Fall ist fast fertig implementiert.

Es fehlt noch der "Countdown" ...
Zitat von: grimes in 14. August 2013, 18:40:08
Zum Countdown:
Das ist schwerer zu implementieren.
Im Wesentlichen müsste die plugin-interne Variable einer globalen foobar2000-eigenen Variablen %countdown% zugewiesen werden.
Keine Ahnung, ob das geht. Ich klammere dies vorerst mal aus.


Hast Du denn Lust noch weiter zu machen?

Für den 2. Fall fehlt:

- %POSTGAP-DEFAULT%, für das im Track am Ende vorhandene Gap (das Original-Gap von CD beim Rippen übernommen)

weitere Beschreibung auf: http://www.hifi-forum.de/index.php?action=browseT&forum_id=54&thread=17408&postID=1#1

Titel: Re:Ein neues Feature "APPEND-PAUSE" für fb2k?
Beitrag von: grimes in 16. August 2013, 20:16:14
Countdown übersteigt meine momentanen Fähigkeiten. Ich komme da nicht weiter.


Fall 2: Ehrlich gesagt, kapiere ich nicht was Du vorhast.
Silence am Ende des tracks ist Bestandteil des tracks. Einen Teil eines tracks kann man höchstens mit Audacity entfernen.
Vielleicht kann man was mit foo_dsp_skip_silence machen. Das löscht aber möglicherweise jede Generalpause in klassischen Stücken.
Ist dir der Gap zwischen den tracks zu karz, so gilt Silence + %postgap% = gesamter Gap.
Um %postgap% zu bestimmen, benötigst Du die Länge von Silence um den passenden Gesamtgap zu erhalten. Die Silencelänge kannst Du meinetwegen in einen tag schreiben oder auch nicht.
Was soll ich da jetzt machen?

Vielleicht kannst Du nochmal erklären, was Du meinst.
Titel: Re:Ein neues Feature "APPEND-PAUSE" für fb2k?
Beitrag von: anaono in 16. August 2013, 23:20:53
Zitat von: grimes in 16. August 2013, 20:16:14
Countdown übersteigt meine momentanen Fähigkeiten. Ich komme da nicht weiter.
Ich weiß, ich habs nur der vollständigkeithalber nochmal erwähnt, in der Hoffnung jemand anderes liest es und hat eine Idee ...


Zitat von: grimes in 16. August 2013, 20:16:14
Fall 2: ...
Vielleicht kannst Du nochmal erklären, was Du meinst.

Ja gerne:

- In  %POSTGAP-DEFAULT% steht die Länge des (beim Rippen) angehängten Gaps.

- Die Wartezeit (bis zum nächsten Play) die jetzt (im 1. Fall) = %POSTGAP% ist, wird dann (im 2. Fall) verkürzt zu %POSTGAP% - %POSTGAP-DEFAULT%
--> Das hat den Vorteil, dass in %POSTGAP% die tatsächliche Pausenlänge steht (die aus %POSTGAP-DEFAULT% + Wartezeit besteht).

- Ist %POSTGAP% < %POSTGAP-DEFAULT%, dann wird der Track einfach nach <Tracklänge> + %POSTGAP% - %POSTGAP-DEFAULT% angehalten.
  (Das Anhalten des Tracks geschieht in dem angehängte Gap, aber niemals im "eigentlichem Track" (an den der Gap beim Rippen angehängt wurde). Denn sonst müsste von der <Tracklänge> mehr abgezogen werden als %POSTGAP-DEFAULT%, d.h.: %POSTGAP% - %POSTGAP-DEFAULT% < - %POSTGAP-DEFAULT% ==> %POSTGAP% < 0 ==> was nicht erlaubt ist.)
  (Sollte das Anhalten des Tracks mit einem kurzen fadeout nachklingen, um einen Knackser zu vermeiden?)

- fehlt %POSTGAP% oder enthält es einen ungültigen Wert ==> Nichts wird gemacht, also deaktiviert
- fehlt %POSTGAP-DEFAULT% oder enthält es einen ungültigen Wert ==> %POSTGAP-DEFAULT% := 0 ==> dasselbe Verhalten wie im 1. Fall

- Gültige Werte: %POSTGAP% >= 0 und %POSTGAP-DEFAULT% >= 0 und %POSTGAP-DEFAULT% <=   <Tracklänge>

Soweit ich das sehe, besteht die Schwierigkeit darin, den aktuell spielenden Track frühzeitig zu beenden.

Ich glaube das war's.

Da das angehängte Gap (normalerweise) aus Stille besteht, kann man das Gap auch jederzeit abbrechen, ohne Information zu verlieren. D.h. man hat mit Fall 2 den "eigentlichen Track" vom angehängten Gap getrennt und kann die Länge des Postgaps frei wählen (im Fall 1 musste das "tatsächliche Postgap" >= dem angehängtem Gap sein).
Titel: Re:Ein neues Feature "APPEND-PAUSE" für fb2k?
Beitrag von: grimes in 17. August 2013, 12:38:01
Danke für die Erläuterung.

Wie wurde bei dir der Gap an den track angehängt?
Redest Du vielleicht von Cue-Sheets postgaps oder so was?
Ist der angehängte gap Teil des tracks, so könnte man vielleicht die "gesamte trackdauer - angehängte Silence" und dann den track abbrechen.
Hoch komplexe Angelegenheit. foo_seek könnte das bewerkstelligen. Ich rate ab.

Mal noch eine dumme Frage, warum machst Du keine Cue-sheets, da wird kein Gap an den track angehängt, und die Pausen sind als postgaps frei zu konfigurieren. Ich kenne mich mit Cue-Sheets allerdings nicht aus.

ZitatDieser 2. Fall ist nützlich für eine CD mit gapeless Tracks, bei deren Rip aber versehentlich Pausen (z.B. 2 Sek.) an jeden Track angehängt wurden.
Da ist wohl mächtig was schief gegangen beim Rippen?

Fazit: Das ist wohl nix für das plugin "Stop after album".
Titel: Re:Ein neues Feature "APPEND-PAUSE" für fb2k?
Beitrag von: anaono in 17. August 2013, 20:08:27
Zitat von: grimes in 17. August 2013, 12:38:01
Wie wurde bei dir der Gap an den track angehängt?
Redest Du vielleicht von Cue-Sheets postgaps oder so was?
Der Gap ist am Track-Ende, es geht aber gar nicht darum, wie er dahin gekommen ist.
Aber wenn es Dich interessiert:
http://www.hifi-forum.de/index.php?action=browseT&forum_id=54&thread=17408&postID=12#12

--------
Für %POSTGAP% >= %POSTGAP-DEFAULT% brauchst Du nur die Wartezeit zu ändern auf %POSTGAP% - %POSTGAP-DEFAULT% und mit einer Fallunterscheidung if %POSTGAP% >= %POSTGAP-DEFAULT% ... den alten Code laufen zu lassen.


Zitat von: grimes in 17. August 2013, 12:38:01
Ist der angehängte gap Teil des tracks, so könnte man vielleicht die "gesamte trackdauer - angehängte Silence" und dann den track abbrechen.
Hoch komplexe Angelegenheit. foo_seek könnte das bewerkstelligen. Ich rate ab.

Für %POSTGAP% < %POSTGAP-DEFAULT% soll der Track abgebrochen werden. Und Du schreibst das ist "Hoch komplex". Falls Du also weitermachen möchtest, schlage ich vor die Komplexität zu reduzieren:

Das jetzige foo_stopafteralbum kannst Du so veröffentlichen wie es ist (das läuft ja gut, bis auf den fehlenden countdown oder ein anderes Feedback an den Anwender: das den Anwender etwas verwirren könnte).

Und für die Weiterentwicklung reduziere erst mal das Plugin radikal, d.h.
- kopiere das Plugin-Projekt unter neuem Namen, z.B. foo_user_defined_Postgap oder ein anderer Name.
- nimm alles (!!!) raus was nichts mit den Postgaps zu tun hat.
- Testen
dadurch wird der Sourcecode einfacher (zu verstehen und zu entwickeln). Später kannst Du immernoch schauen, ob das Ergebnis wieder in foo_stopafteralbum integriert werden soll (dann vielleicht modular).

Danach:
- Fallunterscheidung: if %POSTGAP% >= %POSTGAP-DEFAULT% then Fall 1 (%POSTGAP% - %POSTGAP-DEFAULT%) else neuer Code
- Testen
- neuer Code

Also falls Du Lust und Zeit hast weiterzumachen, freue ich mich.
--------


Zitat von: grimes in 17. August 2013, 12:38:01
Mal noch eine dumme Frage, warum machst Du keine Cue-sheets, da wird kein Gap an den track angehängt, und die Pausen sind als postgaps frei zu konfigurieren. Ich kenne mich mit Cue-Sheets allerdings nicht aus.
Ich verwende *.m3u-Playlisten. (fb2k kann sogar die Tracks ohne Playliste öffnen :)  ) Und Cue-Sheets sind schon etwas mühsam zu erstellen ... Ich finde es einfach sehr praktisch, dass jeder Track seine eigenen Meta-Daten enthält und keine zusätzliche Beschreibungsdatei (Cue-Sheet) notwendig ist.

Zitat von: grimes in 17. August 2013, 12:38:01
ZitatDieser 2. Fall ist nützlich für eine CD mit gapeless Tracks, bei deren Rip aber versehentlich Pausen (z.B. 2 Sek.) an jeden Track angehängt wurden.
Da ist wohl mächtig was schief gegangen beim Rippen?
So was gibt's ... und wäre doch schön, so etwas retten zu können.
Aber der Hauptgrund für Teil 2 ist "das angehängte Gap aus dem Track zu befreien" oder anders ausgedrückt "freie Wahl der Postgap-Länge", so wie oben beschrieben.

Zitat von: grimes in 17. August 2013, 12:38:01
Fazit: Das ist wohl nix für das plugin "Stop after album".
Nein, ich glaube nicht.