Seite 16 von 22

Verfasst: 09.05.2014, 13:34
von Bernd Peter
Hallo,

hab nun die clockrate448 nach Fujaks Anleitung eingerichtet und mit der 3.14 getestet.

Läßt sich bei Akustikgitarrenmusik - Timing is crucial - leicht erkennen, ob mit oder ohne abgespielt wird.

(Wer sich schwer tut, schaut dann halt im Loader nach :wink: )

Das Script von Aleg läuft wohl nur auf Quadcoreprozessoren, oder?

Gruß

Bernd Peter

Verfasst: 09.05.2014, 15:08
von Fujak
Hallo Bernd Peter,
Bernd Peter hat geschrieben:hab nun die clockrate448 nach Fujaks Anleitung eingerichtet und mit der 3.14 getestet.

Läßt sich bei Akustikgitarrenmusik - Timing is crucial - leicht erkennen, ob mit oder ohne abgespielt wird.
Interessant, dass Du mit Deinem Setup einen Unterschied hörst. Es wird doch nicht an dem Art Veluda oder so ähnlich liegen.
Bernd Peter hat geschrieben:(Wer sich schwer tut, schaut dann halt im Loader nach :wink: )
Wenn ich mich wenigsten schwer tun würde, aber ich höre verlässlich keinen Untershied. Dass der Wert 448 gegenüber dem Originalwert eingetragen ist, überprüfe ich, indem ich regedit aufrufe.
Bernd Peter hat geschrieben:Das Script von Aleg läuft wohl nur auf Quadcoreprozessoren, oder?
So, wie es derzeit konfiguriert ist, ja. Aber es lässt sich auch anders konfigurieren z.B. für Dualcore. Nur sollte man dort erstmal mit Processlasso grundlegend die Prozesse aufräumen, um einen Core freizuschaufeln für MqnPlay. Die MQnControl könnte man durch folgende Zeile im tasker.bat Script beenden, sodass dafür kein Core belegt werden muss:

Code: Alles auswählen

taskkill /IM mqncontrol.exe /F
[/size]
Dann müssen die entsprechenden Parameter der Tasker-Zeilen geändert werden. Da mir die komplette Befehlssyntax von Tasker.exe nicht bekannt ist, könnte hier vielleicht Christoph oder Aleg helfen.

Grüße
Fujak

Verfasst: 09.05.2014, 15:17
von ESM
Hallo zusammen,

vielleicht hab ich es überlesen, aber startet denn mittlerweile eines der Skripte den Dienst neu, damit sich überhaupt jemand für den geänderten Wert Clock Rate interessiert?

Gruß Erwin

Verfasst: 09.05.2014, 15:35
von Aleg
Fujak hat geschrieben:
Bernd Peter hat geschrieben:Das Script von Aleg läuft wohl nur auf Quadcoreprozessoren, oder?
So, wie es derzeit konfiguriert ist, ja. Aber es lässt sich auch anders konfigurieren z.B. für Dualcore. Nur sollte man dort erstmal mit Processlasso grundlegend die Prozesse aufräumen, um einen Core freizuschaufeln für MqnPlay. Die MQnControl könnte man durch folgende Zeile im tasker.bat Script beenden, sodass dafür kein Core belegt werden muss:

Code: Alles auswählen

taskkill /IM mqncontrol.exe /F
[/size]
Dann müssen die entsprechenden Parameter der Tasker-Zeilen geändert werden. Da mir die komplette Befehlssyntax von Tasker.exe nicht bekannt ist, könnte hier vielleicht Christoph oder Aleg helfen.

Grüße
Fujak
Tasker Befehlsyntax kan man sehen mit tasker -?
R:\mqn>tasker -?

Tasker 1.21 - Process Management Tool
Copyright (C) 2013-2014 Christoph Heins (heins@gmx.de)

Usage:
tasker -exe -x process [-r params] [-s show] [-p priority] [-a affinity] [-e]
tasker -set -x process [-p priority] [-a affinity] [-e]
tasker -all [-x excluded] [-p priority] [-a affinity] [-e]

-exe Execute <process>.
-set Set priority class and/or affinity mask for running <process>.
-all Set priority class and/or affinity mask for all running
processes excecpt processes listed in <excluded>.

-x process Process to be executed or set.
-x excluded Processes to be excluded (Mode:-all).
Use pipe symbol for separation. See example #4.

-r params Parameters for <process> to be executed.
Use $$ for nested quotation marks if needed. See example #2.
-s show Display mode for <process>.
{hidden|normal|maximized|minimized}
-p priority Priority class for <process>.
{dontchange|low|belownormal|normal|
abovenormal|high|realtime}
-a affinity Affinity mask for <process>.
E.g. on a machine with four cores use:
0001 to bind <process> to core #0 only.
0010 to bind <process> to core #1 only.
1010 to bind <process> to core #1 and #3.
1111 to bind <process> to all cores.
-e Eliminates all console messages.

Examples:
tasker -exe -x "D:\Special.exe" -r "D:\Test.txt" -s normal -p high -a 0010 -e
tasker -exe -x "D:\Notepad2.exe" -r "--e $$D:\Special site.htm$$" -s normal -p abovenormal -a 1111 -e
tasker -set -x "Cool.exe" -p realtime -a 0010
tasker -all -x "Special.exe|Cool.exe" -p low -a 1101 -e
tasker -all -p low -a 1101
Man braucht kein Prozeslasso weil mit "tasker -all [-x excluded] [-p priority] [-a affinity] [-e]" alle andere Prozessen nach andere Core verschieben kann.

Core affinity ist 4 position binaire Wahl.

Verfasst: 09.05.2014, 16:31
von Fujak
Hi Aleg,

perfekt. Vielen Dank. :cheers:

Grüße
Fujak

Verfasst: 09.05.2014, 16:38
von Fujak
Hallo Erwin,
ESM hat geschrieben:vielleicht hab ich es überlesen, aber startet denn mittlerweile eines der Skripte den Dienst neu, damit sich überhaupt jemand für den geänderten Wert Clock Rate interessiert?
Welchen Dienst meinst Du - MMCS?

Grüße
Fujak

Verfasst: 09.05.2014, 16:55
von ESM
Hallo Fujak,

Ja, den meinte ich

Gruß Erwin

Verfasst: 09.05.2014, 17:24
von Fujak
Hallo Erwin,

der MMCS-Dienst selbst muss nach einer Änderung der clockrate nicht gestartet werden, da dies ja auch nicht beim Start von MQnPlay.exe geschieht, der dann seinen Wert in die Registry schreibt, bevor er kurze Zeit später durch das Skript clockrate448.bat geändert wird.
Was offenbar noch nicht zweifelsfrei geklärt ist, zu welchen Anlässen bzw. in welchem Intervall MMCS den in der Registry hinterlegten Wert abruft.

Siehe auch hier.

Grüße
Fujak

Verfasst: 09.05.2014, 17:50
von ESM
Hallo Fujak,

genau auf das von dir verlinkte Rätzelraten bin ich doch eingangs eingegangen. Schau noch mal was ich schrieb.
Der Service liest den Wert genau 1x. Und zwar beim starten des Services. kannst glauben, andernfalls solltet ihr das einfach mal überprüfen.
Wenn man also möchte, das der Wert verwendet wird, muss man folgendes tun.
- vor der Wiedergabe den Dienst beenden
- neun Wert für Clock Rate, etc. In die Registry schreiben
- Dienst wieder starten, der wird dann und nur dann gelesen und hat eine Wirkung :wink:
- Wiedergabe starten


Deshalb hatte ich mich ja so gewundert, dass hier fleißig Unterschiede gehört wurden, obwohl das gar nicht möglich war :wink:

Gruß Erwin

Verfasst: 09.05.2014, 18:06
von taggart
Hallo zusammen,

Aleg kann die Prozesse auf seiner 4-Kern-Maschine recht großzügig verteilen. Auf meinen Core i5 mit nur 2 Cores verwende ich die folgende Batch für die Anpassung der Prozess-Prioritäten und die Zuordnung der Prozesse zu den Kernen:

Code: Alles auswählen

@echo off
C:\Mqn\tasker.exe -set -x "mqncontrol.exe" -p high -a 0010
C:\Mqn\tasker.exe -set -x "mqnplay.exe" -p high -a 0010
C:\Mqn\tasker.exe -set -x "totalcmd64.exe" -a 0001
C:\Mqn\tasker.exe -all -x "mqnplay.exe|mqncontrol.exe|mqnload.exe|totalcmd64.exe" -p belownormal -a 0001
[/size]

Zeile 1 und 2 legen für die mqncontrol.exe und mqnplay.exe die Priorität auf "high" (auf manchen Systemen besser als "realtime") und bindet diese Prozesse an den Kern 1 (also an den zweiten Kern, da die Zählung der Kerne bei Null beginnt).
Zeile 3 bindet die totalcmd64.exe an den Kern 0, setzt aber keine Priorität (diese bleibt also auf "normal")
Zeile 4 legt für alle Prozesse (außer mqnplay.exe, mqncontrol.exe, mqnload.exe und totalcmd64.exe) die Priorität auf "belownormal" fest und bindet diese an den Kern 0

Wer die Clock Rate noch in die Registry schreiben möchte, kann dies auch direkt, also ohne den Import einer weiteren *.reg Datei tun. Dafür wäre dann noch folgende Zeile anzuhängen:

Code: Alles auswählen

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\Tasks\Pro Audio" /v "Clock Rate" /t REG_DWORD /d 448 /f
[/size]

Gruß, Christoph

Verfasst: 09.05.2014, 18:15
von Aleg
ESM hat geschrieben:Hallo Fujak,

...
Der Service liest den Wert genau 1x. Und zwar beim starten des Services. kannst glauben, andernfalls solltet ihr das einfach mal überprüfen.
...

Gruß Erwin
Erwin

Hast du dafür ein Referenz?
Ich habe noch kein einziges Dokument von Microsoft gefunden das dieses bestätigt, auch nicht die Bücher von Windows Internals von Mark Russinovich.

Verfasst: 09.05.2014, 18:17
von taggart
Hallo Erwin,
ESM hat geschrieben:Der Service liest den Wert genau 1x.
Weißt du das sicher? Falls ja, würde mich interessieren, woher du die Information hast!?

Gruß, Christoph

Verfasst: 09.05.2014, 18:38
von Fujak
Hallo Erwin,

auch mich würde das interessieren, denn dann wäre auch der von Gordon im Player vorgesehene Wert der clockrate, den er beim Starten des Players in die Registry schreibt, sinnlos; denn der Player löst keinen Neustart von MMCS aus. Man müsste nach dem ersten Start von MQn den Rechner neu starten, der von Gordon eingestellte Wert würde dann als Default übernommen werden.

Grüße
Fujak

Verfasst: 09.05.2014, 19:20
von Bernd Peter
Hallo,

das tasker.bat Script für Dual-Core, ich habe 2 Versionen zum Test, löst den Raum noch besser auf.

Die härteste Nuss im Hörtest ist bei mir immer am Schluß Giora Feidman mit Badeken di Kallah (Veiling the Bride), wenn ab Minute 3.16 das Getöns losgeht.

Katzenmusik lt. Gert, wenn es schief geht.

Heute selbst in den schwierigsten Passagen saubere Trennung und Durchhörbarkeit.

Klasse.

Bernd Peter

Verfasst: 09.05.2014, 19:54
von Aleg
Christoph

Es wäre besser als mqnplay sein eigene ungeteilte Core hat.
Mqncontrol darf bei den sonstigen prozessen hinzugefügt werden. Mqncontrol ist nicht so wichtig aber mqnplay soll ein ungeteilte core haben und ich meine auch das Realtime für MQnPlay besser ist.

Versuchs mal!

:cheers:

Aleg