Alternatives Streamdeck-Plugin

Hallo zusammen, ich habe ein alternatives Streamdeck-Plugin für Ultraschall entwickelt. Im Gegensatz zu dem offiziellen Plugin, fokussiert sich meins ausschließlich auf die Aufnahme. Dort bietet es einige Goodies, wie die Anzeige der aktuellen Aufnahmedauer (damit ich sicher sein kann, dass die Aufnahme wirklich noch läuft) und erweiterte Soundboard-Funktionen, wie die Anzeige der verbleibenden Clip-Dauer, Fade-in, Fade-out und Ducking.

Screenshot

Hier die vollständige Liste der verfügbaren Aktionen mit ihren Konfigurationsmöglichkeiten:

  • Aufnahme: Start/Pause und Anzeige der von Reaper gelieferten Aufnahmedauer
  • Mute: Ultraschalls nicht-destruktive Stummschaltung von Tracks
    • Track (1-10)
    • Mode: Toggle, Push-to-Mute, Push-to-Talk
  • Marker: Setzen von Kapitel- oder Edit-Markern
  • Soundboard: Abschpielen von Soundboard-Clips und visuelle und numerische Anzeige der verbleibenden Clip-Dauer.
    • Player: Der zu startende Soundboard-Player (1-99)
    • Tastenaktion während der Player nicht läuft: Play oder Fade-in
    • Tastenaktion während der Player läuft: Stop oder Fade-out
  • Duch Soundboard: Reduzierung der Soundboard-Lautstärke um drüber zu sprechen.
    • Mode: Toggle oder Push-to-Duck

Version 1.0 könnt Ihr auf GitHub herunterladen. Dort gibt’s auch den Source-Code. Ich habe das Plugin im Wesentlichen auf macOS getestet. Auf Windows habe ich mangels Verfügbarkeit nur kurze Tests durchgeführt.

Ich freue mich auf Eure Rückmeldungen. Bugs gerne direkt auf GitHub melden. Ich freue mich auch auf Vorschläge zur finalen Benennung des Plugins für die Einreichung bei Streamdeck, damit es möglichst wenig Verwirrung und Verwechslung mit dem offiziellen Plugin gibt. Der aktuelle Arbeitstitel lautet „Ultraschall (Alternative)“.

FAQ

Warum noch ein Plugin?

Insbesondere die erweiterten Soundboard-Funktionalitäten ließen sich mit dem bisherigen Plugin für mein Verständnis nicht umsetzen. Das Standard-Plugin nutzt die schlecht dokumentierte HTTP-Schnittstelle von Reaper. Mein Plugin setzt auf OSC und hat daher eventuell mehr Möglichkeiten.

Und dann wollte ich noch lieber mit TypeScript als mit JavaScript arbeiten – persönliche Präferenzen halt :slight_smile:

Gibt’s das auch im Elgato Stream-Deck Plugin-Verzeichnis?

Sobald das Plugin etwas mehr getestet ist werde ich es dort einreichen.

11 „Gefällt mir“

Oh, wie geil! Danke an @Mespotine für den Tipp – ich hab mit dem jetzigen Soundboard noch weitere Probleme, sind die bei Deinem gelöst?

  1. StreamDeck-Buttons entsprechen nicht konkreten Files im Finder wie man es erwarten würde sondern nur der Platzierung des Files im geladenen Ordner. Wenn gestern File 6 auf Button 6 lag und ich ein File an Position 5 dazutue verschieben sich alle Buttons im Soundboard. :face_with_symbols_over_mouth:

  2. Sobald im im Ultraschall-Plugin den Ordner neu lade (weil zB eine neue Datei hinzugekommen ist), sind alle Lautstärkepresets weg – das bläst den Leuten dann gern mal die Ohren weg. Unsere Musik muss auf max 50% sein, ist aber dann Std.mäßig auf 100% … aua.

Du weißt aber schon dass man sich geladene Ordner als Preset im Soundboard Plugin abspeichern kann? Darin wird auch die Lautstärke der einzelnen Files gesichert.

Das andere Problem wird auch er nicht lösen können sondern heißt schlicht: korrekte Dateinamen!
Also:

01_intro.mp3
02_jingle_v3.mp3
03_aufsager.mp3

usw. …

1 „Gefällt mir“

Ja, weiß ich, aus meiner Sicht ist das aber ein Workaround. Wenn Du Dateien im Ordner änderst (weswegen man den Ordner ja oft neu laden möchte?) sind auch die Lautstärken der anderen Files wieder im Sack. Ich speichere die als Default.
s&e 2023-01-15 at 19.36.33

Wird aber trotzdem @eiselch nicht lösen können, weil das Soundboard dafür nicht gemacht ist, derzeit.
Dazu müsste das Soundboard da mehr Controlfeatures haben.

Ja, hab ich inzwischen aus unserem RocketChat auch verstanden. Bin aber neugierig, was dieses omniöse OSC so alles ermöglicht.

1 „Gefällt mir“

Meine Lösung zum Ohrenschonen: Die Soundboard Files mit geringerer Lautstärke hardcoden. Gerade bei wiederkehrenden Jingles etc die beste Lösung, wenn die schon auf 50% Volume gerendert sind.

1 „Gefällt mir“

ich mache an der Stelle auch nochmal Werbung für Ultraschall 5 & Soundboard mit dem iPad steuern (OSC Setup)

Habe das Gefühl das haben viele immer noch nicht auf dem Radar und ohne eigenem Streamdeck kommt’s mir hier so vor als ginge mit einem iPad und OSC am Ende eine ganze Ecke mehr als mit dem Streamdeck

1 „Gefällt mir“

Ich greife hier mal ein paar der Themen auf.

@Malik: Bin aber neugierig, was dieses omniöse OSC so alles ermöglicht.

Zunächst als Grundlage zum Verständnis: OSC steht für „Open Sound Control“ und ist ein „Standard“, um Nachrichten zwischen Geräten für die Musikproduktion auszutauschen. Vorteil: Es handelt sich hier von Anfang an um ein Netzwerkprotokoll und ist somit deutlich moderner als etwa Midi, das den gleichen Zweck verfolgt.

Bei OSC verschicken Geräte Nachrichten, die aus einer Adresse und ein oder mehreren Parametern bestehen können, wie etwa „/ultraschall/soundboard/player/1/play 1“, um das Abspielen des ersten Soundboard-Clips zu starten. Reaper hat eine sehr tiefgehende OSC-Unterstützung – am Ende kann man nahezu jede Aktion in Reaper via OSC auslösen. Glücklicherweise implementiert das Ultraschall-Soundboard ebenfalls eine umfangreiche OSC-Schnittstelle (siehe Soundboard-OSC-Doku).

@Malik StreamDeck-Buttons entsprechen nicht konkreten Files im Finder wie man es erwarten würde sondern nur der Platzierung des Files im geladenen Ordner. Wenn gestern File 6 auf Button 6 lag und ich ein File an Position 5 dazutue verschieben sich alle Buttons im Soundboard.

Auch mein Plugin adressiert einen Clip in der aktuellen Version über die Position des Files im geladenen Ordner, da die OSC-Kommandos des Soundboards genau diese Nummer erwarten, um einen Clip zu adressieren.

Mit etwas Entwicklungsaufwand könnte ich die Clips aber auch namensbasiert referenzieren, da das Soundboard beim Laden eines Ordners via OSC den Dateinamen für jeden Player sendet.

/ultraschall/soundboard/player/1/title "intro"
/ultraschall/soundboard/player/2/title "news"
/ultraschall/soundboard/player/3/title "outro"

Der Aufwand lohnt sich für mich aber nur, wenn das auch für andere Nutzer:innen interessant sein könnte. Dafür wäre es für mich hilfreich, Deinen Use-Case zu verstehen – also warum ändern sich die Clips bei Dir so oft?

@Malik Sobald im Ultraschall-Plugin den Ordner neu lade (weil zB eine neue Datei hinzugekommen ist), sind alle Lautstärkepresets weg.

Das Problem kannte ich noch gar nicht, da ich hier wie @Joram arbeite: Ich bringe die Soundboard-Clips auf das Level, dass ich benötige.

Allerdings wäre auch hier ein Workaround möglich: Mit etwas Aufwand könnte ich die Konfiguration der Lautstärke eines Clips in Prozent für jede Streamdeck-Taste ermöglichen. Bevor ich einen Clip starte könnte ich dann noch das Clip-Level setzen.

1 „Gefällt mir“

Danke für die tolle Erklärung!
Bei mir persönlich ändern sich die Clips gar nicht so oft, das liegt aber auch daran, dass jede Änderung ein unglaublicher Schmerz ist (wie beschrieben).

Ansonsten gibt es natürlich viele Anwendungsmöglichkeiten: Interviewschnipsel, überhaupt alle Einspieler, die nur in einer Sendung vorkommen, von Rollenspielen oder hörspielartigen Formaten mal ganz abgesehen.

Der Lautstärke Workaround ist sicherlich eine tolle Idee, ich denke aber, die Lautstärke sollte konsistent in US-GUI und auf dem Stream Deck sein. Vielleicht klickt man während der Sendung einmal hier und an anderer Stelle mal dort.

Werden beim Starten von Soundboard-Clips (optional) automatisch Kapitelmarken gesetzt? Ich habe so etwas beim offiziellen Plugin in den Release Notes gesehen, aber die aktuelle Version des Plugins lief bei mir nicht. Daher konnte ich es nicht testen, kann mir aber gut vorstellen, dass es in meinem Podcast hilfreich sein kann.

Danke für die Beispiele, @Malik – sind alle nachvollziehbar. Ich probiere mal bei Gelegenheit als Option anzubieten, dass der Clip über den Namen anstatt über die Position zugeordnet wird. Sollte nicht so aufwendig sein.

Bezüglich der Lautstärke stimme ich Dir ebenfalls zu – das sollte alles in Ultraschall konfiguriert werden.

@gNNY: Aktuell passiert das noch nicht, aber die Idee finde ich super. Ich nehme als Feature-Wunsch auf, dass man je Soundboard-Taste wählen kann, ob sie auch gleich eine Kapitelmarke triggern soll. Das sollte in wenigen Minuten erledigt sein.

1 „Gefällt mir“

Mal noch der Vollständigkeit halber: Es gibt da auch noch Bitfocus Companion. Habe ich mir vor einer Weile mal genauer angesehen, weil das Ultraschall-Plugin für Elgato einen Bug bei der (für mich essentiell wichtigen) Push-to-Mute-Funktion hatte.

Hab dazu für das Ultraschall-Handbuch auch eine Anleitung geschrieben: https://ultraschall.github.io/ultraschall-manual/docs/tutorials/bitfocus

Vielen Dank. Das Teil ist großartig. Ich habe bei einem meiner Podcasts auch den Fall, dass die Files öfter wechseln und es so kompliziert wird, wenn mal ein File dazu kommt und ich die falsche Dateinummer verwende und somit die Liste durcheinanderbringe.

Planst du das Plugin auch im „Store“ anzubieten, damit die Installation einfacher wird?

@DerJuergen: Bitfocus Companion habe ich mir natürlich angeschaut, bevor ich das Plugin gebaut habe. Für mich kommt es aus den folgenden Gründen nicht infrage:

  1. Wenn man das Streamdeck auch sonst im Alltag nutzt, dann ist der Companion ein Bruch, da man die Streamdeck-Software beenden und Companion starten muss.
  2. Ich wollte auf dem Streamdeck die Aufnahmedauer (als Kontrolle, dass die Aufnahme noch läuft) und die Restdauer für Soundboard-Clips angezeigt bekommen. Beides ist mit dem Companion mit den existierenden Plugins nicht möglich.
  3. Ich nutze ein 15-Key-Streamdeck für mich als Aufnehmender und ein 6-Key-Streamdeck für die zweite Person. Mit der Elgato-Streamdeck-Software kann ich beide individuell konfigurieren. mit Bitfocus geht das nicht.

Push-to-Mute funktioniert bei mir, wenn man mal außen vor lässt, dass die Tasten vom Streamdeck so schwamming sind, dass es gar nicht so leicht ist, die sauber gedrückt zu halten.

@Malik und @derUnterstrich: Ich habe die automatische Ermittlung der Clip-Position anhand des Clip-Namens jetzt implementiert. Das funktioniert soweit ganz gut – werde ich in den nächsten Tagen veröffentlichen.

Leider hat das Soundboard einen Bug, der dafür sorgt, dass die Namen der Clips nicht in jeder Situation sauber gemeldet werden: Habe ich etwa einen Ordner mit drei Clips geöffnet und öffne danach einen Ordner mit mehr Clips, dann werden mir nur die ersten drei Clip-Namen übertragen. Also immer nur so viele Clips, wie das davor geöffnete hatte. Beim ersten Öffnen eines Soundboard-Ordners nach dem Start von Reaper/Ultraschall funktioniert das aber sauber.

1 „Gefällt mir“

Ja, im Store werde ich das anbieten. Wollte nur noch die ersten praktischen Tests abwarten. Danach werde ich das zur Veröffentlichung an Elgato geben.

2 „Gefällt mir“

Spannend! Danke für Deine Arbeit!

Ping @Mespotine @rstockm

Wollte auch gar nicht sagen, dass es dafür keinen Anwendungsfall gibt. Gerade dein 3. Punkt mit den unterschiedlichen Konfigurationen für mehr als ein Streamdeck hat mich auch etwas Hirnleistung gekostet … habe dann letztendlich einfach mehrere Screens angelegt und eine Übersichts(start)seite mit Sprungmarken.

Punkt 1 ist eher so eine Geschmacksfrage. Du kannst a) wahrscheinlich durchaus auch zu 100 % auf den Companion wechseln – da gibt es sehr viele Integrationen und Möglichkeiten. Und b) kannst du – wenn ich das richtig sehe – die Bitfocus-Software auch als Plugin innerhalb von Elgato laufen lassen (habe ich aber noch nicht ausprobiert).

1 „Gefällt mir“