Liebe Ultraschall-Community, ich bin gerade dabei ein neues Streamdeck-Plugin für Ultraschall auf Basis von OSC zu entwickeln, da der Rückkanal bei OSC insbesondere für das Soundboard mehr Möglichkeiten bietet, als die Reaper-HTTP-Schnittstelle, die vom aktuellen Plugin genutzt wird.
Dazu nun eine Frage: Existiert eine Liste der Ultraschall-spezfischen OSC-Commands? Die vom Soundboard kenne ich (siehe hier), aber für Ultraschall selbst konnte ich nichts finden. Allerdings weiß ich aus einigen Vorlagen für TouchOSC, dass Kommandos wie /action/_Ultraschall_Set_Marker x existieren.
Ich freue mich über einen Link – kann auch gerne auf eine Code-Datei auf GitHub sein.
Hallo,
das ist eine nette Idee. Ich kenne leider auch keine Liste; ich habe allerdings drei Fragen:
a) Warum OSC und nicht Midi
b) Was ist an einer Lösung mit BitFocus nicht ausreichend?
c) Hast Du schon mal @fernsehmuell kontaktiert, welche Pläne er mit dem Plugin hat?
Hallo @Gero, vorab ich habe ein paar Anforderungen zusätzlich zu den Standards (Transport, Mute), die ich mit den bestehenden Lösungen nicht umgesetzt bekomme. Wenn ich einen Podcast aufzeichne, habe ich meistens meine Notizen im Vordergrund und sehe das Ultraschall-Fenster nicht. Daher möchte ich folgende Features haben:
Laufende Aufnahmezeit auf dem Streamdeck (gibt mir die Sicherheit, dass die Aufnahme wirklich noch läuft)
Fortschrittsanzeige für abgespielte Soundboard-Clips
Alles nicht überlebensnotwendig, aber ich hatte vor ein paar Jahren schon mal eine kleine Leiste als Chrome-App entwickelt, die immer im Vordergrund war und diese Features geboten hat und das möchte ich mit dem Streamdeck jetzt wieder umsetzen.
zu a) Erstmal ganz pragmatisch: Mit OSC kenne ich mich aus, mit MIDI nicht Aber es gibt auch noch handfestere Gründe:
OSC ist das moderne Protokoll, das von Anfang an auf Basis von TCP aufgebaut wurde.
Nachrichten sind extrem einfach aufgebaut und in Reaper ist nahezu jede Aktion ohne Konfiguration per OSC aufrufbar. Insbesondere das Ultraschall Soundboard bietet ein OSC-Interface – ich weiß gar nicht, ob eine Steuerung per MIDI hier möglich ist.
Hinzu kommt, dass Reaper auch reichhaltige Informationen per OSC versendet, wie etwa den aktuellen Timecode, VU-Levels der einzelnen Tracks und beim Ultraschall-Soundboard etwa, wie viel Zeit für den gerade noch spielenden Clip verbleibt. Keine Ahnung, ob das auch für Midi geht. Das schafft reichhaltige Anzeigemöglichkeiten am Streamdeck.
zu b) Ich nutze im Alltag die offizielle App von Streamdeck. Würde ich BitFocus nutzen, hätte ich hier einen Bruch. Außerdem bietet BitFocus mit den existierenden Plugins nicht den besagten Rückkanal, beziehungsweise nur für ausgewählte Funktionen. Eine Anzeige der Aufnahmezeig am Streamdeck oder der verbleibenden Dauer eines Soundboard-Clips wäre damit also ebenfalls nur durch Implementierung eines eigenen Plugins möglich. Das mache ich dann lieber direkt für Streamdeck, da das für mich und andere Nutzer einfacher anzuwenden ist, als wenn man erst BitFocus Companion installieren und einrichten muss.
zu c) Als ich mit der Entwicklung anfing, hatte @fernsehmuell noch nicht auf die Inkompatibilität des existierenden Plugins mit der aktuellen Streamdeck-Software reagiert – wie ich gerade gesehen habe, hat er gestern geantwortet (Thread).
Dennoch bleibt hier die Einschränkung, dass das Plugin die schlecht dokumentierte Reaper-HTTP-Schnittstelle nutzt, die – meines Wissens nach – etwa keine Abfrag des Fortschritts eines Soundboard-Clips ermöglicht. Und so wie das Plugin technisch umgesetzt ist, ist hier auch leider keine OSC-Kommunikation im Nachhinein integrierbar.
Hmm, wäre es nicht trotzdem sinnvoll, die OSC-Schnittstelle so zu bauen und zu dokumentieren, dass es auch für uns als Ultraschall Team nutzbar wäre? Wenn es mächtiger ist als die derzeitige Schnittstelle könnten da noch mehr davon profitieren.
Von Ultraschall-spezifischen OSC-Kommandos weiß ich nichts, ausser halt das Soundboard.
Das Soundboard ist auch per Midi kontrollierbar, dazu muß aber die Soundboard Spur scharf gestellt sein und als Input Kanal Midi eingestellt.
Dafür gibts auch ne Menge Actions, die so das Soundboard steuern(auf dem Nummernblock belegt).
Ich stehe gerade auf dem Schlauch: Was meinst Du mit „die OSC-Schnittstelle so zu bauen und zu dokumentieren, dass es auch für uns als Ultraschall Team nutzbar wäre“. Meinst Du damit das Streamdeck-Plugin, dass ich in Arbeit habe? Das konsumiert nur eine existierende OSC-Schnittstelle und schafft da nichts neues. Und natürlich wird das OpenSource und soll für alle Nutzer verfügbar sein.
Danke @Gero, prinzipiell habe ich schon eine Quelle in dem TouchOSC-Template von @Feivelhier – da bin ich auf /action/_Ultraschall_Set_Marker x gestoßen, um Kapitelmarken zu setzen. Ich hatte nur die Hoffnung, dass es irgendwo eine Liste gibt. Ich frage mal @Feivel.
Nun zu Deiner Frage. Die Namen aller LUA Scripte und damit der Ultraschall „Befehle“ lassen sich ganz einfach in Ultraschall anzeigen. Rufe einfach das Menü
Actions => Show Action List
auf.
Dann siehst Du unter Command ID alle LUA Scripte und auch das
Top @Gero, das war tatsächlich genau das, was ich gesucht habe! Und dabei habe ich auch gleich gelernt, dass ich per OSC jede Reaper-Aktion unter der Adresse /action/<Command ID> ausführen kann. Vielen Dank!
Hallo Sven,
es freut mich, dass meine Antwort Dir geholfen hat.
Ich habe noch eine Anregung:
Wenn Du einen Shortcut verwendest, kannst Du Dir Befehle direkt auf das Streamdeck legen ( OSC Feedback fehlt dann.) Da es sehr viele Reaper User gibt, ist die Zahl der Erklärvideos größer. Es funktioniert aber alles genauso für Ultraschall.
Wenn Du Bitfocus als Plugin in die Streamdeck integriest:
Ist es noch einfacher:
zu konfigurieren.
Ich wollte nur nochmal die bereits bestehenden Optionen aufzeigen, bevor Du loslegst…
Wie unten schon von @Gero gesagt: Habe mir alle Commands aus der Action List zusammengeklaubt
Wenn ich mich richtig erinnere habe ich für 1-2 custom actions sogar im entsprechenden Feld einfach selbst einen OSC „Namen“ eingetragen.
Das hier macht mich neugierig! Hast du eventuell eine Idee, wie man aus dem „rohen“ Timecode signal ein formatiertes HH:MM:SS:SS Format bekommt?? Da habe ich seit Jahren keine Lösung für!
Hallo,
Ich finde die Idee auch recht nett die Laufzeit auf dem Streamdeck anzuzeigen.
Ich kenne aber nur HH:MM:SS:FF. Für Video wobei FF der Frame ist. HH:MM:SS:SS kenne ich jedoch nicht. Seht das zweite SS für Millisekunden?
Wenn ich mich nicht irre berechnet sich die Zeit in Sekunden wie folgt: Timecode/ Samplerate = Sekunden
Sekunden in HH:MM:SS umzurechnen sollte nicht sooo schwer sein.
(Da gibt es bestimmt was von Python )
@eiselch hat aber anscheinend eine Idee wie das gehen könnnte… Jetzt bin ich auch ganz neugierig.
Reaper liefert via OSC zwei Time-Codes: einmal den „rohen“ unter der Adresse /time und einmal einen bereits formatierten unter der Adresse /time/str. Somit ist hier eigentlich keine eigene Formatierung erforderlich. Ansonsten lässt die sich natürlich leicht aus dem rohen Wert berechnen.
Hier ein Ausschnitt der OSC-Messages, die ich erhalte, wenn beispielsweise die Wiedergabe läuft:
Und damit ist für mich ebenfalls zum ersten Mal überhaupt die Frage nach einer vernünftigen TC-Anzeige auf dem iPad geklärt
Vielen Dank dafür.
Endlich eine saubere Anzeige von Stunden:Minuten:Sekunden
ohne Frames u.o. Millisekunden.
Ein Tipp:
Wenn man im Touch OSC Editor den Rahmen des Timecodelabels verschmälert, fällt irgendwann der letzte unschöne Doppelpunkt am Ende weg, hinter dem man vermutlich doch noch MS oder Frames anzeigt bekommt.
Also einfach mit der Breite ein klein wenig experimentieren. Ist der Rahmen allerdings zu schmal, ist die Sekundenanzeige nur einstellig…
EDIT:
Gerade fiel mir auf, dass es hierfür doch bereits im Dezember 22 eine Lösung gab, auf die ich sogar reagiert hatte.
Vielleicht bin ich mit all den bisherigen Touch OSC Layouts irgendwie durcheinandergekommen
Ich nutze hier ein ausrangiertes iPhone für ein 8-Tasten-Soundboard sowie ein iPad für Trackmonitoring, Start, Stopp sowie Kapitel- bzw. Editmarker.
Aus irgendeinem Grund (das Problem habe ich vor längerer Zeit bereits einmal beschrieben) funktioniert das jedoch nie permanent.
Aktuell habe ich hier wieder das Problem, dass die Anzeigen auf iPad und iPhone nur quasi „mitlaufen“, also optisches Feedback geben, jedoch selbst keine Eingaben erlauben.
Wenn es dafür jemals eine wirklich robuste Lösung gäbe, würde ich das sehr begrüßen.
Auch wenn das vermutlich der falsche Platz ist, aber ich habe gestern hier eine Behauptung aufgestellt, die ich korrigieren muss.
Die Behauptung war, dass die Steuerung via OSC (zumindest bei mir) nicht stabil wäre.
Ganz offenbar war ich jedoch selbst für das fehlerhafte Verhalten verantwortlich.
Ich habe heute wieder viel herum experimentiert und tauschte schließlich auf meinen iOS Geräten unter Connections - OSC - Host den Namen meines Rechners gegen dessen IP-Adresse aus. Und sofort funktionierte die Steuerung wieder, auf beiden Geräten parallel…