Script, um den Energiesparplan für Bitwig beim Start und Stop von Bitwig automatisch zu setzen

I

imtakt

......
Hier zeige ich eine Methode, um den Windows-Energieplan automatisch auf "Höchstleistung" zu setzen, wenn Bitwig gestartet wird, und ihn automatisch wieder auf "Ausbalanciert" zu setzen, wenn Bitwig geschlossen wird. Das funktioniert logischerweise auch mit anderen DAW´s, hier aber mal am Beispiel Bitwig, wie es gehen kann.

Dazu benötigen wir ein Powershell-Skript und ein Batch-Skript, welches das Powershell-Skript im Hintergrund ausführt, wenn das System startet.

Standardmäßig ist die Ausführung von Powershell-Skripten in Windows deaktiviert, um mögliche Sicherheitsrisiken auszuschließen. Wer sie also einschaltet, weiß in der Regel, was er tut.

Zunächst werden wir die Ausführung von Skripten eingeschränkt zulassen, damit nicht jeder über das Internet Skripte auf unserem Computer ausführen kann. Dazu öffnen wir die Powershell mit der Tastenkombination:

WIN+R und geben den folgenden Befehl ein:
Code:
Powershell

In dem sich öffnenden Fenster geben wir den folgenden Befehl ein:

Code:
Set-ExecutionPolicy RemoteSigned

Wir bestätigen die Abfrage mit J für Ja. Wenn wir nun mit
Code:
Get-ExecutionPolicy
die Einstellung erneut überprüfen, sehen wir, dass sie auf
Code:
"RemoteSigned"
umgestellt wurde. Wenn wir die Einstellung irgendwann auf Standard zurücksetzen möchten, verwenden wir folgenden Befehl in einer Admin PowerShell:

Code:
Set-ExecutionPolicy Default


Als nächstes erstellen wir ein Skript, dass bei jedem Start von Bitwig den Energieplan "Höchstleistung" aktiviert und bei jedem Stopp von Bitwig den Energieplan "Ausbalanciert" aktiviert...

Um einen Überblick zu bekommen, welche Energiesparpläne in unserem System existieren, können wir in der Powershell folgenden Befehl verwenden...

Code:
powercfg /l

Wir erhalten eine Auflistung aller vorhandenen Energiesparpläne, die eine eindeutige GUID (eindeutige Nummer, die ein Objekt identifiziert) haben. Wir sehen, dass die GUID des Energiesparplans "Ausbalanciert"
Code:
381b4222-f694-41f0-9685-ff5bb260df2e
ist, die GUID des Energiesparplans "Höchstleistung" ist
Code:
8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
. Wir werden diese GUIDs im folgenden Skript verwenden. Natürlich könnt ihr auch andere, selbst erstellte Energiesparpläne verwenden, achtet hierfür auf die GUID des jeweiligen Plans und übernehmt sie in dem Script...

Wir öffnen Notepad und kopieren den folgenden Code hinein:

Code:
# Funktion zum Ändern des Energiesparplans
Function Set-PowerPlan($planGUID) {
    powercfg.exe /S $planGUID
}

# Definieren der GUIDs der Energiesparpläne
$balancedPlanGUID = "381b4222-f694-41f0-9685-ff5bb260df2e"
$highPerformancePlanGUID = "8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c"

# Überwache den Prozess Bitwig Studio.exe im Hintergrund
$bitwigProcess = $null

# Ursprünglichen Energiesparplan einstellen
Set-PowerPlan $balancedPlanGUID

# Endlosschleife zur Überwachung von Bitwig Studio
while ($true) {
    # prüfen, ob der Prozess Bitwig Studio.exe läuft
    if (-not $bitwigProcess) {
        $bitwigProcess = Get-Process -Name "Bitwig Studio" -ErrorAction SilentlyContinue
        if ($bitwigProcess) {
            # Bitwig Studio wurde gestartet, setze den Energieplan auf Höchstleistung
            Set-PowerPlan $highPerformancePlanGUID
   }
    } else {
        $bitwigProcess.Refresh()
        if (-not $bitwigProcess.HasExited) {
            # Bitwig Studio läuft weiter
            Start-Sleep -Seconds 5
        } else {
            # Bitwig Studio wurde beendet, setze den Energieplan auf Ausbalanciert
            Set-PowerPlan $balancedPlanGUID
            $bitwigProzess = $null
        }
    }
}


Wir speichern die Datei dann unter dem Namen...

Bitwighigh.ps1

Nun ist unser Skript fertig und wir müssen sicherstellen, dass es direkt ausgeführt werden kann. Indem wir mit der rechten Maustaste auf die soeben erstellte Datei "Bitwighigh.ps1" klicken und in dem sich öffnenden Fenster unten die Eigenschaften auswählen, ändern wir das Programm, dass die Datei automatisch ausführt, wenn wir darauf doppelklicken. Standardmäßig ist dort Notepad ausgewählt, wir wählen "Ändern" und gehen ganz unten auf "Andere Anwendung auf dem PC auswählen". Daraufhin öffnet sich ein Explorer-Fenster, in das wir in der oberen Adressleiste folgendes eingeben: ....

Code:
C:\%windir%\System32\WindowsPowerShell\v1.0

...und bestätigen mit [ Enter]. In dem sich öffnenden Pfad sehen wir die "Powershell.exe", die wir mit einem [Doppelklick] auswählen. Wir bestätigen die Auswahl mit "Set default" (unten rechts).

Als nächstes benötigen wir eine Prozedur, die unser Skript automatisch beim Systemstart ausführt. Dazu erstellen wir ein kleines Batch-Skript. Wir öffnen wieder [Notepad] und kopieren den folgenden Code hinein:

Code:
@echo off
set PowerShellScript="D:\Bitwighigh.ps1"
start /B powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -File %PowerShellScript%
exit


In der Zeile "set PowerShellScript="D:\Bitwighigh.ps1" sehen wir einen Pfad. Wir müssen den Pfad an den Ort anpassen, an dem sich unser Powershell-Script befindet. Dies kann ein beliebiger Speicherort sein.

Wir speichern das Script unter dem Namen "RunPowerShellScript.bat" und verschieben es in den Ordner "Autostart" des Startmenüs. Der Pfad des Autostart-Ordners hängt davon ab, welchen Benutzernamen wir verwenden. Ich verwende das Administratorprofil und daher lautet der Pfad:

C:\Benutzer\Administrator\AppData\Roaming\Microsoft\Windows\Startmenü\Programme\Startup

Voila, das war's. Wenn wir das System das nächste Mal starten, können wir die Energieeinstellungen mit der Tastenkombination [WIN+R] und dem Befehl...

powercfg.cpl

öffnen, um dann anschließend Bitwig zu starten und im Energieeinstellungsfenster beobachten, ob die Profile automatisch eingestellt werden.

Wenn ihr Fragen habt...ich helfe gerne! Viel Erfolg!
 
Zuletzt bearbeitet:
Cool, werde ich sehr bald antesten. Ich könnte mir vorstellen, dass die eine oder andere Sache damit doch besser läuft.


Wieviel Ressourcen wird das verwenden?

Könnte man mit einem Timer eventuell eine bessere Performance erreichen? Alle 5 oder 10 Sekunden würde ich auch reichen.

Vielen Dank für den Tipp!
 
# Funktion zum Ändern des Energiesparplans
Funktion Set-PowerPlan($planGUID) {
powercfg.exe /S $planGUID
}

Du könntest dein Template noch etwas optimieren: Funktion muss Function werden :)

Das Script läuft bei mir und funktioniert wie beschrieben. Mal schauen ob es auch spürbar bei meinen low performance Laptop ist.

Vielen Dank für deine Arbeit! 👍 :)
 
Du könntest dein Template noch etwas optimieren: Funktion muss Function werden :)

Das Script läuft bei mir und funktioniert wie beschrieben. Mal schauen ob es auch spürbar bei meinen low performance Laptop ist.

Vielen Dank für deine Arbeit! 👍 :)

Oh Shit, das kam durch Deepl. Hatte das ursprünglich auf Englisch geschrieben. Da hab ich wohl was übersehen. Danke für den Hinweis, hab das korrigiert.
 
Zuletzt bearbeitet:


News

Zurück
Oben