foobar2000 auf Deutsch

foobar2000 => Allgemein => Thema gestartet von: Richy in 19. Juni 2011, 09:43:38

Titel: Button mit zwei Kommandos belegen, geht das?
Beitrag von: Richy in 19. Juni 2011, 09:43:38
Wie der Betreff schon aussagt lautet meine Frage:

Ist es möglich einen foobar-Button mit zwei Kommandos, z.B. Stumm/Pause oder Stumm/Stopp, zu belegen?
Titel: Re: Button mit zwei Kommandos belegen, geht das?
Beitrag von: qwert73 in 19. Juni 2011, 15:57:06
Bis dato noch nie versucht und auch in Zukunft wohl auch keine Lust darauf:

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

Titel: Re: Button mit zwei Kommandos belegen, geht das?
Beitrag von: Foo Foo in 19. Juni 2011, 16:15:28
Ja es geht aber...
Möchtest Du einen Button innerhalb deines foobar2000
wenn ja DUI CUI mit dem PSS
oder möchtest Du foobar ''fern steuern''
Titel: Re: Button mit zwei Kommandos belegen, geht das?
Beitrag von: fooamp in 19. Juni 2011, 17:09:01
Zitat von: qwert73 in 19. Juni 2011, 15:57:06
Bis dato noch nie versucht und auch in Zukunft wohl auch keine Lust darauf:
http://www.hydrogenaudio.org/forums/index.php?showtopic=88977

Dieser post verlangt nach einer Erklärung, damit er Sinn ergibt: q-stankovic ist qwert73.
Titel: Button mit zwei Kommandos belegen, geht das?
Beitrag von: Richy in 19. Juni 2011, 17:24:15
Ja, ein Button innerhalb von foobar oben in der Buttonleiste mit DUI. Der Button soll gleichzeitig die Kommandos "Stumm/Wiedergabe Stopp" oder "Stumm/Wiedergabe Pause" bei einem Klick auf dem entsprechenden Button ausführen.
Titel: Re: Button mit zwei Kommandos belegen, geht das?
Beitrag von: Foo Foo in 20. Juni 2011, 08:19:03
Ich hab da mal was für Dich vorbereited.
Einen Button mit Doppelbelegung Play/Pause und Mute/Unmute und Kontextmenue.

Du brauchst dir nur noch den
WHS Pannel Mod runterladen http://www.hydrogenaudio.org/forums/index.php?showtopic=70363 (http://www.hydrogenaudio.org/forums/index.php?showtopic=70363)

...und mein Archiv hier... http://dl.dropbox.com/u/4625633/Special%20Button.zip (http://dl.dropbox.com/u/4625633/Special%20Button.zip)

Mein Script importieren (Button_mute_play.txt)
und nur noch die beiden Pfade anpassen für das Silent Script.js
// @import "%fb2k_path%Silent Night\scripts\Silent Script.js"

und den img Path (für die 4 Button Bildchen)
var imgPath = fb.FoobarPath + "Silent Night\\images\\buttons\\";
Titel: Re: Button mit zwei Kommandos belegen, geht das?
Beitrag von: tedgo in 20. Juni 2011, 09:23:26
Mal blöd gefragt: Wieso willst du gleichzeitig Stumm schalten, wenn du Stop oder Pause klickst? Ich dachte, dann ist's eh still...
Titel: Button mit zwei Kommandos belegen, geht das?
Beitrag von: Richy in 20. Juni 2011, 12:45:29
Erst einmal vielen Dank an Alle, die sich hier die Mühe machen.

Grund meiner Anfrage:
Ich habe eine Soundkarte ASUS Xonar Essence ST eingebaut. An diese ist über S/PDIF ein Benchmark DAC angeschlossen. Beim betätigen der Stopp/Pause Taste wird das digitale Signal am S/PDIF Ausgang der Soundkarte nicht automatisch Stumm geschaltet, sondern der letzte digitale Wert des Musiksignals (digitaler DC Offset) wird kontinuierlich weiter gestreamt.
Entweder sind die ASUS Treiber oder der Chipsatz der Soundkarte fehlerhaft, mit großer Wahrscheinlichkeit letzteres. Ca. ein Jahr Reklamation bei ASUS hat jedenfalls außer Ärger nichts gebracht.

Hier ist der Fehler dokumentiert:
Link: http://www.stereophile.com/computeraudio/asus_xonar_essence_ststx_soundcards/
Leider wird dokumentiert, der Fehler würde sich angeblich in der Praxis nicht auswirken, dem ist aber nicht so.

Der Benchmark DAC setzt den digitalen DC Offset gnadenlos in Gleichspannung um, die nur durch eine riesige kapazitive Kopplung  (Zeitkonstante) am Ausgang des DAC geblockt wird. Der Rest der Musik Anlage ist DC gekoppelt.
Resultat: Für ca. 100 sek liegt eine dem letzten digitalen Wert des Musiksignals proportionale Gleichspannung am Ausgang des DAC's, bis der Koppelkondensator entladen ist. Bis die DC Schutzschaltung meiner Endstufen anspricht fahren vorher noch die Membrane meiner Tieftöner mit den entsprechenden Geräuschen herein oder heraus, je nach dem. Spricht die Schutzschaltung mal nicht an, sind Endstufen und Tieftöner Geschichte.

Bisher habe ich manuell die Lautstärke am foobar Payer herunter geregelt und dann die Stopp/Pause Taste gedrückt um meine Lautsprecher zu schützen. Da ich einen ASIO Treiber verwende (automatische Samplerate Umschaltung) funktioniert die Fadeout Funktion von foobar nicht.

Es hilft also nur ein Stopp-Button mit vorherigem Mute Kommando und ein ebensolcher Pause Button.

Titel: Button mit zwei Kommandos belegen, geht das?
Beitrag von: Richy in 20. Juni 2011, 13:01:05
Ach so, ein Play Button, der die Lautstärke wieder auf max setzt wäre auch sehr hilfreich.
Titel: Re: Button mit zwei Kommandos belegen, geht das?
Beitrag von: Foo Foo in 20. Juni 2011, 13:14:43
Hallo!!!
Habe ich Dir doch schon alles fertig gemacht!
Titel: Button mit zwei Kommandos belegen, geht das?
Beitrag von: Richy in 20. Juni 2011, 14:18:43
Danke Foo Foo, das "Hallo!!!" ist angebracht.

Ich lade die Komponenten jetzt mal runter und probiere aus.
Titel: Re: Button mit zwei Kommandos belegen, geht das?
Beitrag von: Richy in 20. Juni 2011, 15:51:53
So, WHS Pannel Mod ist installiert. Das Script ist importiert und die Pfade angepasst.

Ich sehe aber leider nirgendwo eine Möglichkeit die neuen Buttons einzufügen.
Titel: Re: Button mit zwei Kommandos belegen, geht das?
Beitrag von: Foo Foo in 20. Juni 2011, 16:36:37
Du mußt einen WHS Pannel Mod in Dein Layout integrieren (enable Layout editing Mode)
und dann in Dein WHS Pannel das Script importieren.

   return new Button( 29, 0, 33, 22,

Die 29 ist der Abstand von links den kannst Du auf 0 ändern
Die 0 ist der Abstand von oben kannst Du so lassen
33 und 22 sind länge und breite des Button Bildchens.

außerdem kannst Du für eine fixe Größe des Pannels folgendes einfügen

gleich nach diesem hier....
// ==/PREPROCESSOR==

das hier...

var ww,wh; window.MinWidth = 33;

var height = 22;

...erklärt sich doch von selbst.
Titel: Re: Button mit zwei Kommandos belegen, geht das?
Beitrag von: Foo Foo in 20. Juni 2011, 18:28:28
Aber aufgepasst ein Restrisiko bleibt.
Wenn foobar gerade abspielt und die Lautstärke auf mute steht (-100 dB) und Du dann Pause gedrückt wird dann
wird die Lautstärke auf 0dB gesetzt das heißt volle Pulle.
Also noch nicht die Ideallösung.
Titel: Re: Button mit zwei Kommandos belegen, geht das?
Beitrag von: qwert73 in 20. Juni 2011, 19:41:07
Zitat von: Foo Foo in 20. Juni 2011, 18:28:28
Also noch nicht die Ideallösung.
Neue Soundkarte oder einfach nur den Soundchip vom Mainboard?
Titel: Re: Button mit zwei Kommandos belegen, geht das?
Beitrag von: Foo Foo in 20. Juni 2011, 20:20:46
Ich würde versuchen die Karte umzutauschen aber das haut ja wohl nicht hin.
Die Karte wollte ich mir auch mal kaufen aber Sie kostet ca. 160€ habe das ein oder andere gelesen
und ich werde mir erstmal keine neue Soundkarte kaufen.

Schau mal hier... http://arnie77.deviantart.com/ (http://arnie77.deviantart.com/)
Habe meinen eigenen Player zusammengeschustert da verwende ich auch den WHS Pannel.
Aber ohne Die Hilfe von tedgo und manch anderen hier im forum und auf dA hätte ich es nie hinbekommen.
Ich habe mir nur das ein oder andere abgeschaut aber nie richtig gelernt.

Aber das haut schon hin mit dem WHS Script.
Ich bräuchte etwas Hilfe von jemandem hier im Forum der etwas mehr vom WHS Pannel scripten versteht,
dann könnte man eine Abfrage in das Script einbauen.

Irgendwie so...
Wenn Lautstärke -100dB und der Player spielt dann kein Mute.

Denn die Mute Funktion von Foobar läuft folgendermaßen ab Mute und dann Unmute (reset auf den letzten dB Wert)
es gibt kein einzelnes Kommando für Mute nur Mute/Unmute.

Titel: Re: Button mit zwei Kommandos belegen, geht das?
Beitrag von: tedgo in 20. Juni 2011, 21:08:45
Zitat von: Foo Foo in 20. Juni 2011, 20:20:46
Irgendwie so...
Wenn Lautstärke -100dB und der Player spielt dann kein Mute.
if (fb.Volume > -100 && !fb.IsPlaying) fb.VolumeMute();

Meinst du das?
Titel: Re: Button mit zwei Kommandos belegen, geht das?
Beitrag von: Foo Foo in 20. Juni 2011, 21:37:06
genau das meine ich  :o
Ich wusste Doch auf Dich ist Verlass  :top:

bekomme es aber trotzdem nicht auf die Reihe...



var a = {normal: imgPath + "bt-play-off.png", hover: imgPath + "bt-play-on.png"};
var b = {normal: imgPath + "bt-pause-off.png", hover: imgPath + "bt-pause-on.png"};

function createPlaButton() {
    return new Button( 29, 0, 33, 22, fb.IsPlaying && !fb.IsPaused ? b : a, function () {fb.RunMainMenuCommand("Playback/Play or Pause"); if (fb.Volume > -100 && !fb.IsPlaying) fb.VolumeMute();  });
}

Buttons.A = createPlaButton();



...sch... Klammern ( } () #  immer script error  :uglystupid2:
Titel: Re: Button mit zwei Kommandos belegen, geht das?
Beitrag von: tedgo in 20. Juni 2011, 22:22:31
Ne, haut sowieso nicht so hin wie ich dachte...
Da ist noch ein Denkfehler drin (fb.IsPaused ist ja auch "IsPlaying", nur eben in Pause. Deshalb schaltet es nicht auf Mute. Und es schaltet bei Mute auch nicht zurück, da fehlt noch 'ne zweite Bedingung...)

Die } Klammer gehört übrigens direkt hinter fb.VolumeMute() nicht hinters Semikolon.
Titel: Re: Button mit zwei Kommandos belegen, geht das?
Beitrag von: Foo Foo in 23. Juni 2011, 11:48:16
Habe mal ein bischen rumprobiert...


return new Button( 36, 3, 30, 20, fb.IsPlaying ? (fb.IsPaused ? b : c) : b, function ()  { fb.IsPlaying ? (fb.IsPaused ?  fb.Play() : fb.Pause()                    ) : fb.Play();});


...da wo ich etwas Platz gelassen habe müsste die Mute Abfrage rein

if (fb.Volume > -100 && !fb.IsPlaying) fb.VolumeMute();


bekomme es irgendwie nicht aufn Pin   :(
Titel: Re: Button mit zwei Kommandos belegen, geht das?
Beitrag von: qwert73 in 23. Juni 2011, 23:15:11
Es geht einfacher als ich auf HA es erzählt habe: das Batchfile kann man sich schenken und das Zeugs für die Kommandozeile direkt in foo_run eintragen.

http://www.hydrogenaudio.org/forums/index.php?showtopic=88977&view=findpost&p=760490
Titel: Button mit zwei Kommandos belegen, geht das?
Beitrag von: Richy in 24. Juni 2011, 16:50:21
Sorry Leute,
zwei Sachen gefallen mir nicht.
1. Der Umstand, daß die Lautstärke manchmal bei 100% landet.
2. Der Play/Pause Button hängt im WHS Pannel irgendwo im Player Layout herum.

Ich habe mir einen Button in der Buttonleiste gewünscht. 'Das scheint aber nicht zu funktionieren. In das WHS Panel müßte ich alle Buttens incl. Spezialfunktionen integrieren.
Leider fehlen mir aber die Programmierkentnisse.
Titel: Re: Button mit zwei Kommandos belegen, geht das?
Beitrag von: qwert73 in 24. Juni 2011, 19:23:33
Haaaallo! :crazy2:

Habe ich nicht auf eine mögliche Lösung hingewiesen, bei der man sich nicht den Schädel zermartern muss? Wenn ihr es vorzieht, mit Kanonen die Spatzen vom Dach zu holen, dann sagt nur bescheid und ich halte mich raus.
Titel: Re: Button mit zwei Kommandos belegen, geht das?
Beitrag von: Frank Bicking in 27. Juni 2011, 20:14:05
Ich verstehe ja, dass wir uns in einem Anwenderforum befinden, aber warum wird den Leuten eigentlich der Umgang mit WSH oder Kommandozeilen zugetraut, aber gleichzeitig nie direkt auf das foobar2000 SDK hingewiesen?

Kenntnisse in C++ vorausgesetzt lassen sich solche Befehlsabläufe damit leicht hinzufügen.
Titel: Re: Button mit zwei Kommandos belegen, geht das?
Beitrag von: qwert73 in 27. Juni 2011, 20:47:35
Ja, diese vorausgesetzt aber auch nur. Kentnisse in C++ haben und ein wenig mit der Kommandozeile umgehen, sind doch ganz verschiedene Ligen, oder? Du meinst doch jetzt bestimmt richtige foobar2000-Komponenten schreibenß
Titel: Re:Button mit zwei Kommandos belegen, geht das?
Beitrag von: Richy in 30. Juni 2011, 12:15:55
Nochmal in eigener Sache,
ich habe für mich die Lösung mit "foo_scheduler" gefunden.
Soviel zu den Kanonen und den Spatzen.
Titel: Button mit zwei Kommandos belegen, geht das?
Beitrag von: Richy in 03. Juli 2011, 14:27:26
Leider mußte ich feststellen, daß das PlugIn "foo_scheduler" eine fehlerhafte Funktion hat.
Wenn ich über "action lists" die Aktion "previous track" vorgebe, wird bei der Befehlsausführung nicht der vorherige Track, sondern der nächste Track angewählt. :-X

Nachfolgende Beiträge abgetrennt und nach HIER (http://foobar-users.de/index.php?topic=3526.0) verschoben - tedgo