Ach, da hole ich doch mal wieder ein altes Thema an die Oberfläche. Hat damit zu tun, dass ich mAirList gerade bei einem Neuling einrichte.
Aufgabenstellung
Bei einer Konfiguration mit einem USB-Mikrofon und daran angeschlossenem Kopfhörer soll der Ton des Encoders auch über den PC-Lautsprecher (oder Monitor-Soundbar) ausgegeben werden.
Zugleich muss diese Soundausgabe bei offenem Mikrofon deaktiviert werden (der klassische Monitor Mute).
Analyse
Nach meiner Kenntnis geht das nur über den Encoder “Zusätzliche lokale Audioausgabe” mit der entsprechenden Soundkarte.
Dieser Encoder muss beim Aufschalten des Mic jeweils aus- und wieder eingeschaltet werden.
Lösungsansatz 1
Mit einem erweiterten Button, der den Mikrofoneingang ein- und ausschaltet, kann man den MIC Button des Encoder-Status ersetzen.
Dann kann man dazu passend den Befehl
ENCODER CONNECTION [Nummer des Encoders] OFF
bzw.
ENCODER CONNECTION [Nummer des Encoders] ON
in den erweiterten Button eintragen.
Ja, geht, ist aber mit etwas Aufwand verbunden.
Lösungsansatz 2 - eleganter?
Dank @Tondose und seinen Scripting-Fähigkeiten habe ich mir das hier als Vorlage genommen:
Ich musste es leicht modifizieren:
{
mAirList Script zur Deaktivierung der zusätzlichen lokalen Audioausgabe
Hier: Encoder Nr. 4
Geeignet für Konfigurationen mit MIC-Button und zusätzlichem Monitor
Vorlage: "Tondose" (https://community.mairlist.com/u/Tondose/summary)
mAirList-Forum: https://community.mairlist.com/t/encoder-mic-ein-aus-talktimer-start-stop/14289/2
Modifikation: Uli Nobbe, 2025
}
procedure OnEncoderInputToggle(Input: TEncoderInput; NewState: boolean);
begin
if Input = eiMic then begin
if NewState = true then
ExecuteCommand('ENCODER CONNECTION 4 OFF');
if NewState = false then
ExecuteCommand('ENCODER CONNECTION 4 ON');
end;
end;
Das als Lautsprecher.mls
(Beispiel) gespeichert und in der Konfiguration als Hintergrundscript eingetragen - schon funktioniert der Monitor Mute auch beim MIC Button des Encoder-Status.
Begründung: Hier wird der Status abgefragt.
Für Verbesserungsvorschläge bin ich stets zu haben.
Warum die Modifikation?
Das else
musste leider ersetzt werden, weil die Umschaltung sonst nicht zuverlässig funktioniert. Daher das doppelte if
für jeden NewState
mit dem dazu passenden Kommando.
Ein Blick zurück
Das hier war der Weckruf, mich an diesen Thread dranzuhängen:
In dem Screenshot steht die Encoder-Wiedergabe auf “Lautsprecher” - genau das, was mir jetzt als Aufgabe ins Haus steht.
Und @Tondose hatte es damals™ schon gewusst:
Im konkreten Fall war das zwar korrekt, aber der Ansatz ging in die richtige Richtung.
Resümee
Bezogen auf den Titel des Threads:
“Lautsprecher deaktivieren wenn das Mic aktiviert wird”
… haben wir es hier mit zwei Lösungsansätzen zu tun.
Ich schlage vor, den Thread von v6.x zu entkoppeln und in den Bereich “Allgemein” zu verschieben.
Kreative Grüße, Uli