Sonntag, 22. November 2009

SoundMixer-Fernsteuerung

Wer Rollenspiele macht, benutzt vielleicht auch den RPG SoundMixer. Wenn nicht, kann ich das nur empfehlen, ist für Hintergrundmusik und den einen oder anderen Effekt echt spitze.

Der SoundMixer hat aber auch ein paar Nachteile, die mich mehr und mehr gestört haben:

  • Man kann ihn nur per Tastatur bedienen. Wenn man z.B. einen Touchscreen verwenden will, ist man aufgeschmissen.
  • Man muss sich alle Kommandos merken, oder sich einen Zettel schreiben / drucken, der unter den ganzen anderen Zetteln am Spieltisch dann verloren geht.
  • Man kann ihn schlecht auf einem Media-Center-PC im Wohnzimmer laufen lassen.
Der letzte Punkt muss vielleicht noch etwas erläutert werden. Die Musiksammlung hat man ja gerne auf dem Media-Center-PC, und der ist auch an die guten Boxen oder die Stereoanlage angeschlossen. Nur, wie bedient man dann den Soundmixer? Oder wenn man den Soundmixer doch auf einem Notebook laufen lässt, wie kommt der Sound zu den Boxen? Die Alternativen sind alle nicht toll:
  1. Man verwendet eine Funktastatur. Die muss man dann als extra Gerät am Spieltisch haben, und sie ist normalerweise auch nicht wahnsinnig handlich.
  2. Man verwendet eine Fernbedienung. Die Programmierung ist allerdings nicht einfach, und die Tasten reichen kaum aus für die Fernsteuerung des SoundMixers; man kann sich noch viel schwieriger merken, ob jetzt '1' für Dungeon- oder für Kampfmusik steht.
  3. Man holt den Sound per Funk oder per Kabel aus dem Notebook und speist ihn in den PC ein. Für Funk gibt's aber nur wenig gute Lösungen und ein Kabel stört.
  4. Man steuert den PC über einen remote desktop wie vnc fern. Das ist aber etwas langsam und man muss immer noch die Tastatur verwenden.
Von daher hatte ich die Idee, eine Fernsteuerungssoftware für den SoundMixer zu schreiben. Über's Netzwerk werden die Kommandos an den PC übertragen und dort als Tastendrücke an den SoundMixer gegeben. Das Prinzip ist auch ganz gut ... nur der SoundMixer so programmiert, dass es schwierig wird. Einfach eine Windows-Message zu senden, funktioniert nicht, weil er DirectX verwendet. Auch low-level-Keyboardfunktionen der Windows-API helfen nicht. Im Forum des SoundMixer stand, dass er sich über Scripting (wie etwa AutoHotkey) steuern ließe, hat aber bei mir auch in allen Varianten nicht funktioniert.

In Verzweiflung verfiel ich auf DirectX-Hooks aus dem Internet (etwas angepasst). Die helfen auch nicht, weil der SoundMixer DirectX über COM ansteuert (wer macht denn so was?). Aber das brachte mich letztendlich zur Lösung: wenn ich die entsprechende COM-Komponente nachbaue und die Registry auf den Nachbau umbiege, kann ich dem SoundMixer eine andere Implementierung unterschieben und kriege endlich die Tastendrücke in ihn hinein. Hurra!

Die GUI für den Client war dann rasch geschrieben und hat sich im Test an einem Spieleabend schon bewährt. Ich werde das Ganze demnächst wahrscheinlich noch etwas aufpolieren und der Allgemeinheit zur Verfügung stellen.

Labels: ,

0 Kommentare:

Kommentar veröffentlichen

Abonnieren Kommentare zum Post [Atom]

<< Startseite