Foobar und MMCSS

Antworten
Buellerich
Aktiver Hörer
Beiträge: 261
Registriert: 31.01.2015, 23:08

Foobar und MMCSS

Beitrag von Buellerich »

Hallo zusammen,

ich habe mich eigentlich an Foobar als Player ganz gut gewöhnt. Das Programm tut im Grunde das, was es soll, aber manchmal gibt es mir Rätsel auf:

Unter Library >>>Advanced >>> Thread Priority kann mann MMCSS anklicken. So weit, so gut. Darunter kann man den MMCSS per Hand eingeben. Der Witz ist: wenn ich MMCSS angeklickt habe, kann ich dort eingeben was ich will, und es änder tsich gar nix. Ich könnte z.B. XXX eingeben, auf Apply drücken, und selbst beim Abspielen erfolgt keine Fehlermeldung.
Kann mir das jemand erklären?
(Es scheint, als sei es eine reine Alibi - Implementierung)

viele Grüße

Sascha
Bild
Fujak
Moderator
Beiträge: 5752
Registriert: 05.05.2009, 21:00
Wohnort: Bayern
Kontaktdaten:

Beitrag von Fujak »

Hallo Sascha,

bei dem MMCSS handelt es sich um den sog. Multimedia Class Scheduler Service. Aufgabe u.a. ist die Priorisierung von Multimedia-Anwendungen. In diesem Falle kannst Du Foobar eine höhere Priorität zuordnen, um einen reibungslosen Betreieb gegenüber andederen Prozessen zu gewährleisten.

Dazu muss sich Foobar zunächst beim MMCSS registrieren. Der Dienst, der in »%SystemRoot% \System32\Mmcss.dll« implementiert ist, enthält einen Thread zur Prioritätsverwaltung. Windows kennt Prioritätsstufen von 0 bis 31, je höher der Wert, desto stärker priorisiert MMCSS. Bei modernen/schnellen Systemen/CPUs bewegt sich ein Wert ab 16 allerdings bereits in Echtzeit-Ausführung, sodass andere Prozesse ab diesem Wert Foobar nicht mehr stören bzw. "verhungern" lassen können.

Klanglich dürfte sich das bei heutigen Mehrkern-CPUs nicht auswirken, insofern verwundert es nicht, wenn Du keinen Unterschied hörst. Viel mehr dürfte sich klanglich eine Core-Allocation auswirken, also die gezielte Zuordnung von Anwendungen und Threads/Tasks zu einem definierten CPU-Kern. Im MQn-Thread hatten wir vor längerer Zeit etwas dazu geschrieben.

Übrigens ein Fantasie-Wert wie z.B. "/6zHGD3§$" führt dazu, dass keine definierte Priorisierung vorgenommen wird und der MMCSS im System nach seinen eigenen Gesetzen im System vorgeht. Das kannst Du auch mit einem Tool wie Process-Manger anschauen und nachvollziehen.

Grüße
Fujak
Bild
Buellerich
Aktiver Hörer
Beiträge: 261
Registriert: 31.01.2015, 23:08

Beitrag von Buellerich »

Hallo Fujak,

danke für Deine Antwort.

Du schreibst, dass Windows Abstufungen bis 31 kennt, bei Foobar kann man allerdings nur Werte im Bereich 1 bis 7 vorgeben. Wie erfolgt die Registrierung von Foobar beim MMCSS? Durch blossses Anklicken der Option?

Mir ging es weniger darum klangliche Unterschiede zu hören. Vielmehr hat mich gewundert, dass die blosse Eingabe irgendwelcher Phantasiewerte möglich ist und keine Fehlermeldung irgendeiner Art nach sich zieht.

Mit dem Process Manager ist eine gute Idee, ich werde Foobar nachher in verschiedenen Modi laufen lassen und dann die Priorität (hoffentlich) sehen.

Viele Grüße

Sascha
Bild
Buellerich
Aktiver Hörer
Beiträge: 261
Registriert: 31.01.2015, 23:08

Beitrag von Buellerich »

Hallo Fujak,

leider Fehlanzeige, ich habe mir das Programm runtergeladen und verschiedene Konstellationen ausprobiert.
Wenn Du in der Liste auf den Prozess gehst (in diesem Fall Foobar2000) und die rechte Maustaste klickst, dann auf Properties und den Reiter Threads anklickst, werden Dir verschiedene Werte angegeben.:
Base Priority:8
Dynamik Priority: 12
I/O Oriority: Normal
Memory Priority: 5

Ich habe wie vorhin beschrieben in Foobar die Einstellungen geändert, mal Playback, mal Audio, mal ProAudio, dann amuf APPLY und OK, das Programm vorsichtshalber geschlossen und neu gestartet. Base Priority, Dyn. Priority , I/O Priority blieben immer gleich, Memory Priority war auch innerhalb einer bestehenden Einstellung instabil, wankte also immer etwas.

Was habe ich falsch gemacht?

Gruß

Sascha
Bild
Buellerich
Aktiver Hörer
Beiträge: 261
Registriert: 31.01.2015, 23:08

Beitrag von Buellerich »

nochmal ein kleines Update:

Wenn ich mit dem Prozess Explorer arbeite und einen Abspielvorgang mit Foobar starte, erscheint unter Foobar WASAPI 64 Host.exe. Auch bei hier erfolgt keine Änderung der Priorität. Stellt man aber irndetaws bei Foobar um, z.B. die Latenz in ms und bestätigt über Apply, so steigen die Prioritätsangaben aus (n/a) und man muß die Priorität dann für WASAPI neu aufrufen, allerdings ändert sich nix an den Prioritätswerten.
Im normalen Windows 7 Tas Manager gibt es den Dienst MMCSS. Startet man die Wiedergabe, wird dieser aktiv, wechselt man dann zu Prozeß, ist die Priorität zwar festlegbar, (hoch, mittel,...) mit mittel als Voreinstellung, aber leider ist sie nicht numerisch einsehbar.
Bild
Fujak
Moderator
Beiträge: 5752
Registriert: 05.05.2009, 21:00
Wohnort: Bayern
Kontaktdaten:

Beitrag von Fujak »

Hallo Sascha,

danke für die Rückmeldung. Leider habe ich Moment nicht genügend Zeit frei, um mich da nochmal ganz hineinzuarbeiten. Bei den heutigen CPUs ist es unwahrscheinlich, dass diese Option in Foobar klangliche Auswirkungen hätte.

Grüße
Fujak
Bild
Buellerich
Aktiver Hörer
Beiträge: 261
Registriert: 31.01.2015, 23:08

Beitrag von Buellerich »

Hallo Fujak,

danke trotzdem....

Gruß

Sascha
Bild
Antworten