foo_seek

Begonnen von fooamp, 19. Mai 2011, 15:35:29

Vorheriges Thema - Nächstes Thema

qwert73

#45
Zitat von: kumbbl in 17. Juli 2011, 09:54:03
anders formuliert: Mir würde schon die bestehende Loop-Funktion von foo_seek ergänzt um ein einfach zu definierendes beliebiges Loop-Ende genügen. Setzen von Loop-beginn kann ja schon mal so bleiben wie jetzt...
So was wie ein Eintrag im "loop length" Menü, das ein kleines Fensterchen öffnet, wo die Sekundenzahl eingegeben werden kann?

Ansonsten hat grimes recht: komplexere Funktionen erfordern eine eigene Komponente.

grimes

Dann ist es doch einfacher, im Hauptmenü die Sekundenzahl auszuwählen.
Ich kann ja statt 2er Schritte dort jede Sekunde von 6-20 zur Verfügung stellen?

qwert73

#47
Was aber wenn kumbbl 48 Sekunden für eine Strophe beispielsweise braucht? Du kannst ja nicht ein ellenlanges Menü von 1 bis 100  da reinzwängen. Das einzig Elegante was mir einfiele, wäre der Weg den Du in foo_variableseek gehst. Übrigens: sehr gute Idee, leider nicht für die DUI umsetzbar

grimes

6-20 sec decken wohl die häufigsten Werte ab. Für exotische Werte nimmt man dann mit "Default" den (eingegebenen) Wert aus den Advanced Preferences

qwert73

#49
Hab mir jetzt mal ein paar Gedanken dazu gemacht, ob und wie kumbbls Wunsch menschenfreundlich umgesetzt werden kann. Hier mal so eine Idee:

1. Ein weiterer Eintrag im "Loop length"-Menü, der heißen könnte: "Manually"
2. Sind nun "Loop" unter "Seek control" und "Manually" unter "Loop length" ausgewählt, erscheint ein weiterer Eintrag wie "Set end point" im "Loop length"-Menü, der mit einem Hotkey oder Button verknüpft werden kann.
3. Mit der Seekbar wander ich durch das Lied und lasse an der gewünschten Anfangsposition los, womit - wie bisher auch - die Anfangsposition des Loops bestimmt wird. Der Unterschied ist jedoch, dass ich aber noch keine Endposition habe.  Sobald das Stück dahin gekommen ist, brauche ich nur noch "Set end point" zu aktivieren. (Solange die Endposition noch nicht definiert ist, kann die bereits aktivierte Loop-Funktion von der Anfangsposition bis zum Ende des Stückes loopen.)
4. "Set end point" verschwindet aus dem Menü und aus "Manually" im Menü wird so was wie "Manually (34s)"
5. Wird die Loop-Funktion beendet, gehts mit Punkt 1 weiter.


fooamp

Und so wurde aus dem kleinen, sympathischen und funktionellen foo_seek ein groooßes, finsteres und unbedienbares PanelsUI...

(is nur Spaß)

qwert73

Wo das bloß noch enden wird, wenn grimes sich treiben läßt? Ein ins Layout integrierbares Panel, eine eigene Seekbar, wo sample-genau die Positionen bestimmt werden, für jedes einzelne Lied speicherbare Presets für A-B Passagen, vieleicht auch Längen für die Vorschau, die auf Title Formatting basieren. Aber mal im Ernst: So wie die Komponente jetzt ist, scheint sie einen guten und viele Bedürfnisse befriedigenden Stand erreicht zu haben. Asche auf mein Haupt: warum mache ich mir Gedanken zum Ausbau der Loop-Funktion, die ich nie und nimmer gebrauchen werde? :crazy:

kumbbl

Zitat von: qwert73 in 17. Juli 2011, 23:22:54
Hab mir jetzt mal ein paar Gedanken dazu gemacht, ob und wie kumbbls Wunsch menschenfreundlich umgesetzt werden kann. Hier mal so eine Idee:

1. Ein weiterer Eintrag im "Loop length"-Menü, der heißen könnte: "Manually"
2. Sind nun "Loop" unter "Seek control" und "Manually" unter "Loop length" ausgewählt, erscheint ein weiterer Eintrag wie "Set end point" im "Loop length"-Menü, der mit einem Hotkey oder Button verknüpft werden kann.
3. Mit der Seekbar wander ich durch das Lied und lasse an der gewünschten Anfangsposition los, womit - wie bisher auch - die Anfangsposition des Loops bestimmt wird. Der Unterschied ist jedoch, dass ich aber noch keine Endposition habe.  Sobald das Stück dahin gekommen ist, brauche ich nur noch "Set end point" zu aktivieren. (Solange die Endposition noch nicht definiert ist, kann die bereits aktivierte Loop-Funktion von der Anfangsposition bis zum Ende des Stückes loopen.)
4. "Set end point" verschwindet aus dem Menü und aus "Manually" im Menü wird so was wie "Manually (34s)"
5. Wird die Loop-Funktion beendet, gehts mit Punkt 1 weiter.

genau so - perfekt... :-) und IMHO würde das die schöne einfache foo_see-Komponenten nur wenig aufblasen, es würdfe sogar vielmehr das bisherige Loop-Feature, welches IMHO mit dem festdefierten Raster oder dem umständlichen Weg über die Advanced-Preferences nur geringen Nutzwert hat, einem hohen Nutzwert zuführen

qwert73

Ich zieh mal den ernstgemeinten Part meines vorangegangenen Postings teilweise zurück: ein schwer durchschaubares  Feature-Monster verlangt kumbbl nun wahrlich nicht, sondern aus meiner Sicht eine nahezu zwangsläufige Erweiterung einer bereits bestehenden Funktion. Zwangsläufig in dem Sinne, dass sich ohne diese Erweiterung beim Erscheinen der noch taufrischen Komponenete der Nutzen der Loop-Funktion sich mir einfach nicht erschließen wollte: Warum soll ich nach festgegebenen Zeitintervallen loopen, also ohne einen bestimmten Bereich eines Liedes festlegen zu können, beispielsweise eine Strofe, einen Refrain, eine Textpassage, einen Break oder was auch immer. Es ist nunmal so, dass der Inhalt dessen was gehört werden will die Dauer des Loops vorgeben sollte und nicht umgekehrt die vorab festgelegte Loopdauer einen zerhackstückten oder unvollständigen Inhalt zwangsläufig macht. Die von mir vorgestellte Idee - angenommen umgesetzt - macht es doch möglich recht simpel eine frei definierbare Passage zu loopen: Loop aktivieren, den Slider der Seekbar sekundengenau einstellen und loslassen, um dann letztendlich mit einem einzigen Hotkey/Button den Endpunkt zu setzen, wenn das Ende des Loops ertönt. Der nicht allzu hohe Preis für diese Einfachheit besteht darin, dass die ganze Passage, die geloopt werden soll, auch tatsächlich erstmal auch vollständig gehört werden muss, denn somit erpart man sich die Festlegung eines Anfangspunktes. Was ich zugegebenermaßen nicht so toll fände wäre der Umstand, dass dem Gebraucher der Komponenete selbst diese einfache Funktionsweise sich nicht sofort dadurch erschließen kann, dass er "Manually" im Menü sieht. Man aktiviert es und dann? Wie soll man intuitiv wissen, dass sowas wie "Set end point" angeboten wird? Nun, dadurch dass "Set end point" zwar ausgegraut wenn nicht brauchbar, aber doch sichtbar im Menü erscheint und mit "Manually" mittels eines Trennstrichs vom Rest des "Loop length"-Menüs separiert wird, um die Zusammengehörigkeit herauszustellen.

Unterm Strich: aus meiner Sicht einfach und intuitiv zu bedienen, auch wenn mein langer Text hier einen anderen Eindruck erwecken könnte

grimes

Ok, hier eine Testversion im Anhang.

kumbbl

Zitat von: grimes in 19. Juli 2011, 00:04:26
Ok, hier eine Testversion im Anhang.

Hi grimes,

erstmal ein dickes Danke für das schnelle erstellen einer Testversion!!

Funktioniert perfekt! exakt so wie ich wollte - endlich ne vernünftige Loop mit einer einfach einzustellenden beliebigen Endemarke und damit Dauer.

Wenn ich es recht verstanden habe, dann reseted ein Click in die Seekbar das ganze auf einen neuen Loop-Start und ich muss wieder einen neuen Endpunkt setzen - right?

Gut, also funktionieren tuts - jetzt müßte man das ganze noch so in den Menüs gestalten, dass es intuitiv ist...mindestens mal die beiden menüeinträge "Enable set..." und "Set end point" absetzen - mindestens mal durch einen Trennstrich; Ich wäre allerdings noch radikaler: Der Sinn der festvorgegegeben Längen "1 - 20 sek) bei der LOOP hat sich mir noch nie recht erschlossen. Bei Preview ist das toll, bei Loop eher überflüssig, weil diese - wie schon mein Vorredner sagte - eigentlich immer exakt für eine Wunschdauer definiert werden muss, wenn das ganze einen Nutzwert haben soll. Deswegen würde ich bei der Lop die festen sek-Werte ganz aus dem Menü schmeissen und bei der Loop nur mit dem Set-end-point-mechanismus arbeiten. Für mich wäre das ganze in summe viel sinniger, dann wäre auch eine klare trennung von loop und Preview zu erkennen - beides hat nämlich IMHO nix miteinander zu tun. Nun ja, zumindest sehe ich das alles so ;)

Eine weitere Anregung, unabhängig von dem neuen Loop-mechanismus: Wäre es sehr kompliziert, zusätzlich ein paar seek-spezielle Titleformat-Variablen anzubieten, als da wären:

%seekmode%: entweder "preview" oder "loop"
%seekstart%, %seekend%: anzeige im format hh:mm:sek
%seekduration%: aktuelle Einstellung

Damit könnte man z.B. dann diese Informationen in der Statusbar oder sonst wo geeignet anzeigen... beispiel für Loop:
Loop-Modus - start 1:23, end: 2:00, 37 sek.

ich hab aber keine Ahnung, wie aufwändig so was wäre... ich sehe nur den Nutzwert und der ist IMHO hoch - denn bisher sieht man eigentlich nie, ob ein preview oder Loop aktiv ist, außer man schaut ins menü.

Sop, das waren meine Anregungen.

Insgesamt aber nochmal: Vielen Vielen Dank - IMHO eins der besten kleinen Plugins für Foobar - tolle Arbeit, grimes!

grimes

Zitat von: kumbbl in 19. Juli 2011, 13:28:35
Wenn ich es recht verstanden habe, dann reseted ein Click in die Seekbar das ganze auf einen neuen Loop-Start und ich muss wieder einen neuen Endpunkt setzen - right?
Eigentlich nicht. Durch klick in die Seekbar sollte an der Looplänge nichts geändert werden. Damit verschiebt man quasi den gesamten loop.
Der reset geschieht mit "Enable set end point (Reset)". Kann man auch mit einem Shortcut belegen, so kann man das Ganze mit "klicken in die Seekbar" und 2 Shortcuts steuern.

Zitat von: kumbbl in 19. Juli 2011, 13:28:35
Gut, also funktionieren tuts - jetzt müßte man das ganze noch so in den Menüs gestalten, dass es intuitiv ist...mindestens mal die beiden menüeinträge "Enable set..." und "Set end point" absetzen - mindestens mal durch einen Trennstrich; Ich wäre allerdings noch radikaler: Der Sinn der festvorgegegeben Längen "1 - 20 sek) bei der LOOP hat sich mir noch nie recht erschlossen. Bei Preview ist das toll, bei Loop eher überflüssig, weil diese - wie schon mein Vorredner sagte - eigentlich immer exakt für eine Wunschdauer definiert werden muss, wenn das ganze einen Nutzwert haben soll. Deswegen würde ich bei der Lop die festen sek-Werte ganz aus dem Menü schmeissen und bei der Loop nur mit dem Set-end-point-mechanismus arbeiten. Für mich wäre das ganze in summe viel sinniger, dann wäre auch eine klare trennung von loop und Preview zu erkennen - beides hat nämlich IMHO nix miteinander zu tun. Nun ja, zumindest sehe ich das alles so ;)
Ich würde gerne die festen Looplängen drinnen lassen, das ist sehr intuitiv und klar z.B. 6sec Looplänge.
Wenn man foo_seek selten benutzt, weiß man sofort Bescheid. Sich den manuellen Set-part (incl shortcuts) zu merken ist schwieriger.

Zitat von: kumbbl in 19. Juli 2011, 13:28:35
Eine weitere Anregung, unabhängig von dem neuen Loop-mechanismus: Wäre es sehr kompliziert, zusätzlich ein paar seek-spezielle Titleformat-Variablen anzubieten, als da wären:

%seekmode%: entweder "preview" oder "loop"
%seekstart%, %seekend%: anzeige im format hh:mm:sek
%seekduration%: aktuelle Einstellung

Damit könnte man z.B. dann diese Informationen in der Statusbar oder sonst wo geeignet anzeigen... beispiel für Loop:
Loop-Modus - start 1:23, end: 2:00, 37 sek.
Gute Idee, aber das kann ich noch nicht. Vielleicht kann mir einer der Entwickler hier im Forum auf die Sprünge helfen.
Also eine Variable im Code in eine globale Titleformat-Variable umwandeln.


qwert73

Sieht gut aus. Kleine Anmerkung zu den TF Variablen: sollte fooamp doch recht kriegen? Anders gesagt: kann man haben, aber der Nutzen geht doch gegen Null, oder? Irgendwo noch geschrieben zu sehen, was man ohnehin weiß - lohnt sich da grimes Mühe?

2 kleine Punkte, die ich für verbesserungswürdig erachte:

1. Ohne festgesetzten Endpunkt springt man am Ende des Stückes in das nächste. Der lieben Stimmigkeit wegen bietet sich das Ende des Stückes als Ende des Loops an, damit man auch wirklich einen Loop hat, wenn man ihn schon aktiviert hat.

2. Ohne grimes Kommentar wäre ich nicht darauf gekommen, das "Enable set end point (reset)" auch den bereits festgelegten Endpunkt wieder beseitigt. Deswegen weil es gegen jede Konvention verstößt, dass eine sogenannte Radiobutton-Option eine weitere Bedeutung erhält. Erwartungsgemäß passiert garnichts, wenn man solch eine Option im aktivierten Zustand erneut anklickt. Aus Zeitmangel ohne Begründung hier ein anderer Vorschlag: "Set end point mode", dann erst ein Trennstrich, um die Radiobuttton-Optionen zusammenzuhalten (vergeßt was ich oben schrieb), dann "Set end point" und wenn ein Endpunkt existiert dann noch "Remove end point". Ich weiß, ich weiß: ein Button/Hotkey mehr, aber wenigstens um Längen deutlicher und intuitiver imo.


grimes

Neue Testversion im Anhang.

Das mit dem Trennstrich hab ich nicht hinbekommen. :-[

qwert73

Macht ja nichts! :)
Du bist gerade dabei zu lernen, in C++ fobbar2000 Komponeneten zu schreiben, und hast schon eine verdammt gute mit foo_seek hingekriegt.  :top:
Ich werd morgen mal versuchen, die neue Funtion gründlich zu testen und sag bescheid wenn es irgendwo hakt.