✦ SPIELWELTENSpace Hero ↗

Lokaler Recorder für die Fluggeräuschprüfung

Dieser begrenzte Windows-Helfer nimmt ausschließlich die vom Host selbst gestartete SpaceHero-Prozess-ID samt Kindern auf. Er ist kein Mikrofon- oder Desktopmix-Recorder. CLI: ApplicationLoopback <owned-game-pid> <new-output.wav>. Nach zehn Sekunden endet die Aufnahme. WAV und *.wav.packets.csv werden mit CREATE_NEW angelegt; vorhandene Dateien werden nicht überschrieben.

Die ursprünglichen Quellen stammen aus Microsofts ApplicationLoopback-Sample, Revision 0b4e48a88ba446f3d87c5f7df12b33a74899a1e1. Downloadadressen und SHA-256-Werte stehen in ProcessLoopback-upstream.json, die MIT-Lizenz in ProcessLoopback-LICENSE.txt. ProcessLoopback-local.patch enthält die lokalen Änderungen gegenüber diesen Originalen: Include-only-CLI, PID-/Dateiprüfung, Behandlung stummer Puffer, begrenzte Aufnahme und Paketzeitstempel. Die asynchrone Fehlerbehandlung des ursprünglichen Samples ist nicht umfassend umgebaut; Exit 0 allein genügt daher niemals als Audio-Nachweis.

Die vorhandene lokale Anordnung ist Artifacts/Audio/ProcessLoopback/upstream für die Originalquellen und build-packets für die angepassten Quellen. source-manifest.json beschreibt die Originaldateien; packet-recorder-provenance.json enthält zusätzlich Dateihashes der angepassten Quellen und des getesteten Programms. Die Git-Dateien hier sichern Herkunft, Lizenz und Quelländerungen unabhängig vom ignorierten Artefaktordner.

Zum Nachbauen müssen die angegebenen Originaldateien mit ihren Hashes geprüft, in die angepasste Quellkopie übernommen und der Delta-Patch angewandt werden. Das WIL-NuGet-Paket Microsoft.Windows.ImplementationLibrary 1.0.210204.1 liegt entpackt unter build/packages/Microsoft.Windows.ImplementationLibrary.1.0.210204.1. Die Projektdatei in build-packets importiert ausdrücklich ../build/packages/.../build/native/Microsoft.Windows.ImplementationLibrary.targets. Es erfolgt keine globale Paketinstallation.

Getestete lokale Werkzeugkette: MSBuild aus Visual Studio 2022 Build Tools, MSVC v143/14.44.35207, Windows SDK 10.0.22621.0, Konfiguration Release/x64. Die ursprüngliche Projektdatei nennt weiterhin v142/SDK 10.0; deshalb sind die folgenden Überschreibungen erforderlich:

& 'C:/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/MSBuild/Current/Bin/MSBuild.exe' `
  'Artifacts/Audio/ProcessLoopback/build-packets/ApplicationLoopback.vcxproj' `
  /p:Configuration=Release /p:Platform=x64 /p:PlatformToolset=v143 `
  /p:WindowsTargetPlatformVersion=10.0.22621.0 /nologo /verbosity:minimal

Der tatsächlich kalibrierte Recorder unter build-packets/x64/Release/ApplicationLoopback.exe hat SHA-256 E1C03A489081AF6652502B587DB2174C45DE3CED86F1CFECBDA6CEDCDBB298EC. Run-FlightAudioCheck.ps1 akzeptiert genau dieses Programm. Der Hash ist keine Zusicherung byteidentischer späterer Kompilierungen. Ein neu gebauter Recorder benötigt eine erneute Prüfung und Kalibrierung, bevor der Host-Pin geändert wird.

Die Paket-CSV enthält frame_offset,frames,qpc_100ns,device_position,flags. WASAPI-Zeitstempel werden pro Paket abgebildet, nicht aus dem Konsolen-Startsignal abgeleitet. Unity/Mono-Stopwatch.GetTimestamp lieferte im getesteten Player einen prozessrelativen Ursprung; das Spielprotokoll 2 verwendet deshalb ausdrücklich native QueryPerformanceCounter/QueryPerformanceFrequency. Der Verifier lehnt Protokoll 1 ab und prüft, ob beide Uhren denselben tatsächlichen Aufnahmebereich abdecken.

Kalibrierung und Grenzen: QA-Process-Audio-2026-09-08.md. Die Flugaufnahmen mit getrennten Profilen werden durch Run-FlightAudioCheck.ps1 -BuildName AudioCheck-v2 erstellt und anschließend mit python Tools/Verify-FlightAudio.py --root <neuer Laufordner> ausgewertet. Der Python-Verifier benötigt NumPy. Eine erfasste Sequenz ist erst nach positiver PCM-Auswertung technisch bestanden; eine Hörabnahme des Klangs ergibt sich daraus nicht.