Soundausgabe ändern

Hallo miteinander!

Ich habe folgendes Problem:
Ich benutze mAirList mit drei Ausgängen an der Soundkarte (Player 1, Player 2, Cartwall)
Nun möchte ich gerne mit einem Script während des Betriebes die Ausgabe auf nur einen Ausgang, und mit einem anderen Script das ganze wieder zurückschalten.
Ist das möglich? Wenn ja, könnt mir jemand sagen wie ich das machen muss?

Gruß
Sven

Ja, das geht. Du musst dir über die Factory ein IAudioDevice-Objekt erzeugen und das dann dem Player mit SetDevice bzw. SetPFLDevice zuweisen. Zum Erzeugen brauchst du die XML-Beschreibung der Soundkarte, die du dir zum Beispiel aus der devices.ini kopieren kannst.

Hier ein ungetestetes Beispielscript:

var dev: IAudioDevice;

begin
  dev := Factory.BuildAudioDeviceFromXMLString('<Device><Driver>BASS</Driver><Device>1</Device><Speakers>0</Speakers><SampleRate>44100</SampleRate><Options><FileManagement/><SampleFloat/></Options></Device>');
  Engine.GetPlaybackControl(0).GetPlayer(0).SetAudioDevice(dev);
end.

Das wird aktiv, sobald du den Player das nächste Mal lädst.

Danke!
Ich werde es heute mal ausprobieren.

Nur was muss ich eigentlich machen, damit das Script ausgeführt wird, wenn beispielsweise Port 1 am IOWarrior eingeschaltet wird?

Gruß
Sven

Das Script irgendwo speichern und dem IOWarrior-Kontakt den Befehl "RUNSCRIPT " zuweisen.

Hallo!

Ich habe folgendes Script versucht:

[code]var dev: IAudioDevice;

begin
dev :=
Factory.BuildAudioDeviceFromXMLString(‘BASS2244100’);
Engine.GetPlaybackControl(0).GetPlayer(0).SetAudioDevice(dev);
end.[/code]

Bekomme dann aber nur die Fehlermeldung:

ERROR (5:9): Unknown Identifier 'BUILDAUDIODEVICEFROMXMLSTRING' 

Ich benutze die Version 2.1.43 Build 489

Gruß
Sven

hi,

laut mAirListScript.chm muss es wohl “CreateAudioDeviceFromXMLString” heissen.

grüße, michi

Hallo Michi!

Ich habe das geändert. Jetzt bekomme ich den Fehler:

ERROR (6:45): Unknown Identifier 'SETAUDIODEVICE'

Gruß
Sven

mach da mal “SetOutputDevice” draus. :wink:

grüße, michi

Hallo nochmal!

Danke erstmal… aber der wahnsinn geht weiter. :smiley:
Jetzt bekomme ich zwar keine Fehlermeldung mehr und das Script funzt soweit auch, nur
egal welchen Ausgang ich im Script angebe, mAirList nimmt immer nur einen den ich nicht will.
Desweiteren ist mir gerade aufgefallen, dass ich ja auch noch n Script zum rückgängig machen brauche :slight_smile:

Gruß
Sven

Da muss ich passen. Das hängt ja von deinem System ab, also gibt es da keine “Pauschalantwort”.

Wahrscheinlich kannst du das nur durch ausgeprägtes Ausprobieren lösen ;).

Hallo!

Also ich kann im Script ja angeben welche speaker angesprochen werden sollen.
Da ich eine 5.1 Soundkarte habe, kann ich also zwischen 1, 2 und 3 wählen.
Setzte ich den Wert im Script aber auf 1, 2 oder 3, geht trotzdem immer die Nummer 3!
Ich kann also NICHT beeinflussen welcher Ausgang der Soundkarte von mAirList genommen
werden soll.

Vielleicht noch zur Info: Habe zwei 5.1 Soundkarten.
Würde die Device.ini was nützen?

Gruß
Sven

Alles, was folgt sind Vermutungen ;):

du hast 2 “Audiodevices” im Rechner, richtig? Ich vermute mal, dass die erste die “Adresse” 0 hat, und die 2. die Adresse 1.
Du hast in deinem Script “2” stehen. Erstmal würde ich es mit 0 bzw 1 versuchen.

Ansonsten musst halt, wie Torben oben geschrieben hat, mal schauen, was die Device.ini so beinhaltet bei verschiedenen Konfigurationen mit mAirListConfig.

grüße, michi

So… habe folgendes herausgefunden:

Ich benutze zwei 5.1 Soundkarten. Also habe ich 6 Stereo Ausgänge.
Auf Soundkarte 1 (Soundblaster Live!) habe ich Player 1, Player 2 und die Cartwall.
Auf Soundkarte 2 (Aureon 5.1 Fun) habe ich nur PFL.
In der Device.ini tauchen alle Einstellungen ordnungsgemäß auf. Device 1 und 2.

Nun möchte ich per Script Player1, Player2 und die Cartwall auf einen freien Ausgang an Soundkarte 2 legen.
Wenn ich im Script jetzt ein Speaker angebe der nicht in der Device.ini steht, dann schaltet sich beim ausführen
des Scriptes alles auf den PFL Ausgang.

Lege ich jetzt aber in der Configuration zum Beispiel einen Player der Cartwall auf den gewünschten Ausgang, funktioniert mein Script.

Ich gehe mal davon aus, dass ich keinen Ausgang der Soundkarte ansteuern kann, wenn er nicht in der Device.ini auftaucht.
Nur wie kann ich den Ausgang trotzdem benutzen ohne das er in der Device.ini auftaucht?

Hallo nochmal!

Das Problem hat sich erledigt.
Dafür habe ich schon wieder ein anderes…

Wenn ich das Script jetzt ausführe, muss der Player ja erst neu geladen werden, um die Änderung anzunehmen.
Gibt es eine Möglichkeit das der Player die Änderung sofort übernimmt?

Gruß
Sven

Moin,

also heute schauen wir uns das nochmal zusammen an :wink:

Hab da sowas gefunden das könnte bei den Scripts etwas helfen.

Habs mir gerade auch mal installiert und schau mal.

LG
Phil xD

Juten Morgen!

Habe noch mal ne Naht drüber geschlafen und bin zu folgendem Ergebniss gekommen:

Da das Ändern der Soundausgabe im laufenden Betrieb nicht ohne neuladen der Player möglich ist,
müsste ich das Signal der beiden Player zusätzlich auf einen anderen Ausgang legen.
Ich kann in der mAirList Configuration allerdings nur einen Ausgang festlegen.
Wäre es möglich, dass Signal auch mit auf nen zweiten Ausgang zu legen???

Grüzi
der Sven

Nein, das geht auch nicht.

Vielleicht verrätst du uns mal, was du überhaupt genau vorhast und warum du die Ausgabe ändern musst.

Ich will mit einem Analog Mischer OffAir Editting machen :slight_smile:

Also in mAirList die nächsten zwei, drei Titel auswählen, Taster am Warrior drücken und mAirList wechselt in den Auto-Modus.
Mein einziges Problem an der Sache ist, dass ich vom Studio zur Regie nur einen Stereokanal habe. mAirList benutzt
bei mir aber Standartmäßig für jeden Player nen eigenen.

Gruß
Sven

Nimm doch die option “Nur einen Player im AUTO Modus benutzen”…schon haste die gewünschte Funktion!

Ist eigentlich keine schlechte Idee…
Nur dann funktiniert das faden nicht… oder kann man das einstellen?

Gruß
Sven