Das eigene digitale "Mischpult"
This is a modal window.
Das Video konnte nicht geladen werden, da entweder ein Server- oder Netzwerkfehler auftrat oder das Format nicht unterstützt wird.
Formale Metadaten
Titel |
| |
Untertitel |
| |
Serientitel | ||
Anzahl der Teile | 94 | |
Autor | ||
Lizenz | CC-Namensnennung 4.0 International: Sie dürfen das Werk bzw. den Inhalt zu jedem legalen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen. | |
Identifikatoren | 10.5446/45794 (DOI) | |
Herausgeber | ||
Erscheinungsjahr | ||
Sprache |
Inhaltliche Metadaten
Fachgebiet | ||
Genre | ||
Abstract |
|
00:00
HTTPXMLComputeranimation
00:20
HardwareClientInternetBetafunktionApple <Marke>HardwareInformatikstudentInternetSoftware
01:04
Notebook-ComputerDatenverarbeitungssystemSwitch <Kommunikationstechnik>NintendoSwitch <Kommunikationstechnik>Notebook-ComputerSmartphoneXMLComputeranimation
01:29
SmartphoneNotebook-ComputerSwitch <Kommunikationstechnik>XML
01:52
Datenverarbeitungssystem
02:54
Lösung <Mathematik>ÄhnlichkeitsgeometrieXMLFlussdiagramm
03:12
HardwareUSB <Schnittstelle>BefehlsprozessorPOWER <Computerarchitektur>RoutingComputeranimation
04:17
SoftwareComputeranimation
04:46
OperatorEigenwertproblemComputeranimation
05:20
SchwingungInstanz <Informatik>Instanz <Informatik>SchwingungThreadKanal <Bildverarbeitung>SchwimmkörperSoftwareRichtungEin-AusgabeCodeComputeranimation
08:13
KonfigurationsraumEin-AusgabeProgramm/Quellcode
08:56
DatenbankSchwingungNetzadresseSchwingungComputeranimation
09:42
Array <Informatik>SoftwareEin-AusgabeDiagramm
10:19
Computeranimation
10:35
USB <Schnittstelle>Hypermedia
11:04
ReiheComputeranimation
11:47
EckeComputeranimation
12:16
DatenverarbeitungssystemComputeranimation
12:50
Twitter <Softwareplattform>RichtungComputeranimation
13:13
WEBCodeWorkstation <Musikinstrument>DisplayVorlesung/Konferenz
15:03
SoftwareDebuggingProgramm/Quellcode
15:49
openSUSEComputeranimation
Transkript: Deutsch(automatisch erzeugt)
00:07
Hallo, heute erzähle ich euch was über ein kleines Basel-Projekt von mir, das eigene digitale Mischpult. Diese Anführungsstriche werden später noch klar.
00:21
Erstmal zu mir, ich bin Lukas Schauer, ich studiere hier, 25 Jahre alt, Informatikstudent halt und mache halt in meiner Freizeit viele Dinge mit Software und Hardware. Dazu gehört unter anderem, dass der Let's Encrypt Client Dehydrated, das Internet of Bats Projekte, über das ich vor, ich glaube, zwei Jahren erzählt habe und viele kleine
00:45
Bastelprojekte. Und dazu gehört auch dieser Vortrag bzw. das Projekt dahinter, das eigene Mischpult. Außerdem mache ich noch so ein bisschen Security-Zeug, aber das ist alles hobbymäßig. Ja, dann beschreibe ich doch erstmal mein Problemszenario, wie es überhaupt zu diesem
01:03
Projekt gekommen ist. Und zwar habe ich auf meinem Schreibtisch viele verschiedene Dinge stehen. Das fängt mit meinem Laptop an, ein paar Lautsprecher dazu, soweit ist ja noch eigentlich ganz einfach. Dann kommt noch so ein Gaming-Rechner dazu, weil so ein Notebook und vor allem Linux, das ist für Gaming nicht so gut, kam letztendlich irgendwann so ein Nintendo
01:24
Switch dazu, manchmal liegt das Smartphone noch auf dem Tisch und dann ist es irgendwie schon so ein bisschen schwieriger, vernünftig Audio hinzubekommen. Da kann man sich jetzt überlegen, es gibt halt super günstige Analog-Mixer, die
01:40
gibt es irgendwie für unter 100 Euro mit X-Inputs und die taugen eigentlich auch halbwegs vernünftig für so ein bisschen privates Audio. Aber ich habe da noch so ein paar spezielle eigene Probleme gehabt und zwar habe ich auf dem Schreibtisch auch ein Mikrofon stehen. Dieses Mikrofon benutze ich für Sprachkommunikation, für die Arbeit, aber auch
02:01
teilweise halt beim Gaming. Jetzt ist es so ein bisschen schwieriger. Wie kriege ich halt das Audio von diesem Mikrofon auf den Rechner und das Audio vom Rechner irgendwie auf meine Lautsprecher, auf meinen Kopfhörer oder sonst was? Genau, und der Kopfhörer dazu. Und dann gibt es noch so ein paar Sachen, wie zum Beispiel wenn ich
02:22
eine Pausenmusik in eine Konferenz einspielen möchte oder sowas. Das sind halt so Spässe. Es muss eine bessere Lösung her. Dann habe ich mich erst mal umgeguckt und dann bin ich auf Digitalmixer gestoßen. Also wir benutzen hier zum Beispiel für unsere Videoaufzeichnung auf der Froskon die QSC Touchmixer.
02:44
Das sind halt so Digitalmixer, die haben einen Haufen Inputs, einen Haufen Outputs und man kann damit so ziemlich machen, was man möchte. Das Problem dahinter ist, das, was da rot eingerahmt ist, der Preis. 830 Euro für mehr oder weniger ein Spielzeug ist dann halt doch irgendwie
03:03
ein bisschen teuer. Ähnliche Lösungen kosten halt das Ähnliche. Von daher bringen da auch andere Firmen nicht viel. Es muss also eine eigene Lösung her. Dazu habe ich mir so ein bisschen Gedanken gemacht und zwar gibt es relativ günstige Linux-Systeme.
03:23
Hier abgebildet ist zum Beispiel das PC Engine's APU 2 Board, aber zum Beispiel auch so ein Raspberry Pi oder sowas, was glaube ich gerade 30 Euro kostet oder so. Das hat einigermaßen CPU Power und sollte eigentlich in der Lage sein, so ein bisschen Audio hin und her zu bespaßen. Dazu gibt es halt super günstige USB Audio Interfaces,
03:44
links oben abgebildet ist zum Beispiel ein UCA 222 von Behringer. Das hat einen Stereo Input, einen Stereo Output, irgendwie noch Kopfhörer Preview und sonst was und das kostet halt irgendwie unter 20 Euro.
04:01
Dazu kann man halt irgendwie noch so ein teures Interface nehmen, das hatte ich vorher schon rumliegen für mein Mikrofon und für meinen Kopfhörer, kommt halt noch dazu. Das ist so die Hardware, von der ich irgendwie gedacht habe, damit könnte man doch super irgendwie sich so ein bisschen Audio Routing basteln. Ja, dann habe ich irgendwie rumgeguckt, so was gibt es eigentlich softwaremäßig?
04:21
Dann bin ich zum Beispiel auf die Non-Audio Suite gefunden, gestoßen und da gibt es den Non-Mixer. Das ist eine große Software, die irgendwie mit dem Jack-Audio-Demo zusammenspielt und ja, letztendlich ein großer Mixer ist, den man frei konfigurieren kann mit
04:40
Effekten und sonst was, alles Mögliche dabei. Aber, das ist mir zu clicky bundy. Das ist nicht irgendwie darauf ausgelegt, dass ich das als dediziertes Gerät irgendwo hin packe und das läuft und es kann auch mal ausgehen und angehen, sondern es ist irgendwie mehr darauf ausgelegt.
05:00
Da sitzt ein Operator davor, der dieses Ding bedient. Das Gefühl hat man auch, wenn man sich die Apis von dem Ding anguckt, das spricht zwar Open Sound Control, das tut es aber irgendwie auch nur auf der Input-Seite und irgendwie nicht auf der Output-Seite. Dann habe ich mir gedacht, dann baue ich halt was Eigenes.
05:21
Codename Jackie, weil Jack-D der Audio-Demo ist und zwar ist das eine Sammlung von Python-Modulen, die letztendlich andere Software verwaltet. Da fange ich an, letztendlich mit Audio-In und Outputs, dafür gibt es die CITA-Programme.
05:41
Die können von ALSA zu Jack und von Netzwerk zu Jack und in viele andere Richtung Audio halt routen. Und die sorgen letztendlich dafür, dass meine Inputs und Outputs, die ich da dran hängen habe, überhaupt erst mal zur Verfügung stehen. Dann brauchte ich noch ein bisschen Kram für Lautstärke-Steuerung da drin.
06:02
Da werde ich gleich noch genauer drauf eingehen. Einen Connection-Manager, der dafür sorgt, dass alle In- und Outputs an den richtigen Stellen auch angeschlossen werden und noch einen Volume-Manager, was letztendlich so die User-Facing-Seite ist, auf der ich dann selber meine Einstellungen vornehmen kann.
06:23
So, mein Aufbau ist letztendlich, dass ich dem Jack-Audio-Demo, der normalerweise darauf ausgelegt ist, volle Kontrolle über das Audio-Interface zu haben, überhaupt kein Interface gebe, sondern da ein Dummy-Interface mit null Out- und Inputs gebe und alles, was sonst dazu kommt, wird über Zita gemanagt oder über
06:43
andere Wege. Dabei habe ich theoretisch ein Problem, dass der Takt von den Audio-Interfaces auseinander läuft. Das hat aber in meinem privaten Umfeld überhaupt keine Probleme bereitet. Deshalb stört mich das überhaupt nicht, dass das
07:02
letztendlich mehr oder weniger gegen den ersten Satz, in der Jack-D-Dokumentation stößt, wo erwähnt wird, man soll es doch bitte nur mit einem Interface nutzen. Ja, für die Lautstärke-Steuerung. Wie man vorhin schon bei dem Non-Mixer gesehen hat, irgendwie, man muss halt so ein paar Fader haben oder sonst was.
07:21
Bei mir ist das jetzt rein im Backend so ein bisschen Software. Ich habe da mit Jack-Mini-Mix angefangen. Das ist ein Jack-Audio-Mixer, der sich komplett über OSC steuern lässt. Und der lässt sich auch wirklich komplett steuern, nicht nur an manchen Aspekten. Das war mir aber ein bisschen zu viel Code, vor allem, weil ich in meinem Setup sehr viele
07:42
Instanzen davon gestartet habe, damit das ein bisschen dynamischer wird. Und deshalb habe ich das ganze Ding abgespeckt. Das heißt jetzt Jack-Nano-Mix. Ich habe den kompletten OSC-Code rausgeworfen und das Ding nimmt seine Lautstärke-Einstellung jetzt über einen Standard-Input an. Da gibt man einfach einen Float ein und dann
08:00
war es das. Das sind dann zwei Kanäle pro Mixer-Instanz, damit es Stereo ist, und die alle werden halt von meinem Pfeifenhaufen da gesteuert. Dann gibt es den Connection-Manager. Das ist letztendlich so ein bisschen Code, wo ich halt sage, was ich an In- und Outputs habe.
08:21
Das sind dann halt im Backend die Zita-Prozesse, die da laufen. Und dann sage ich, okay, ich hätte jetzt gerne alle Inputs auf allen Outputs. Das ist momentan meine super simple Konfiguration. Also man kann da erkennen, gerade Inputs MIG 1, MIG 2 und Line in 1.
08:44
Und die Outputs sind der Main-Mix und Line Out 1. Und darunter ist ein Stück Code, was die einfach nur alle miteinander verbindet. Die eigentliche Arbeit, wie dann Kram zu hören ist, macht dann der Volume-Manager. Der redet nämlich mit diesen Mixer-Instanzen,
09:01
die vorher gestartet wurden, speichert Lautstärken in der SQLite-Datenbank und bietet mir ein zentrales OSC-Interface an, in dem ich alle diese Mixerelemente steuern kann und das auch, ja, ein bisschen dynamischer halt einfach ist.
09:21
Ich kann neue Sachen dazuwerfen, Sachen entfernen und trotzdem funktioniert halt dieses Interface immer noch und alle Namen sind statisch. Ich habe da keine Probleme, dass sich irgendwie eine Adresse ändert oder so. Und als Spaß habe ich da auch noch eingebaut, dass der tatsächlich Motor-Fader ansteuern kann. Da werde ich gleich noch was zu zeigen.
09:42
Ja, zu dem OSC, da gibt es so eine schöne App, die heißt Touch-OSC. Das ist so mein Hauptinterface letztendlich für diesen Mixer. Ich habe mir in meinen Mixer eine Software noch eingebaut, die mir dieses Layout generieren kann mit den unterschiedlichen Tabs für die Outputs und den Feldern
10:00
für die Inputs. Darunter sind Mute-Buttons und so weiter. Und ich kann das jederzeit einfach updaten und habe dann das aktuelle Layout auf dem Handy und kann von da aus meine Lautstärken steuern, egal wo ich in meiner Wohnung bin. Tatsächlich sogar egal, wo in der Welt ich gerade bin. Ja, zu Fader-Spaß
10:22
habe ich ein paar Videos vorbereitet. Gucken wir mal, ob das geht. So, ich habe mir ein gebrauchtes Behringer BCF2000 gekauft und das ist ein Motor-Fader-Gerät,
10:41
was sich über USB und über Media ansteuern lässt. Das Protokoll habe ich reverse inginiert und dann habe ich erst mal so ein bisschen rumgetestet. Also das ist jetzt einfach nur random Werte. Man kann sehen, dass oben die Encoder auch irgendwie Sachen anzeigen und so weiter.
11:02
Ja, nachdem ich damit halt durch war, habe ich dann tatsächlich mal sinnvoll Sachen damit gemacht. Man kann das so ein bisschen schwer lesen, aber in der oberen Reihe stehen tatsächlich meine Input-Namen, meine Output-Namen und in der unteren Reihe stehen
11:21
meine Input-Namen. Die oberen Button sind die Selection für den Kanal, den Output-Kanal und die unteren sind die Mute-Buttons. Und dann kann ich halt diese Output-Kanäle durchgehen und da, wo Audio ist, sehe ich dann entsprechend die Pegel.
11:43
Jetzt ein bisschen leise, aber man kann auch hören, dass sich tatsächlich das Audio-Signal da verändert, wenn man rumregelt. Ja, also das sind nur die Experimente, die ich damit gemacht habe. Das Ding habe ich aber am Ende tatsächlich weiterverkauft, weil ich dafür einfach nicht
12:01
genug Platz hatte und das immer in der Ecke stand und es irgendwie schneller war, das Telefon kurz rauszuholen oder es lag eh schon auf dem Tisch, als irgendwie da hinterzugreifen. Dazu kommt noch ein Haufen Kleinkram und zwar habe ich dazu noch einige System-D-Units, die den ganzen Kram starten, wenn der Rechner bootet.
12:20
Ich habe Udof-Config gebaut, damit meine Audio-Interfaces, wovon ich drei identische habe, von diesen kleinen Ein-Input, Ein-Output-Teilen, damit die alle startische Namen haben und nicht irgendwie random durchnummeriert werden. Ein bisschen Debuss-Kram für Permissions und noch ein
12:40
bisschen anderer Kram. Ja, und da dieses Projekt noch nicht fertig ist, ist das jetzt auch leider quasi schon das Ende von meinem Vortrag. Das war jetzt eigentlich nur mal so eine Auflistung von dem, was ich gemacht habe und eigentlich wollte ich auch mal
13:00
so nachfragen. Vielleicht sind hier Leute, die irgendwie so ein bisschen Ahnung davon haben und vielleicht noch Vorschläge haben, in welche Richtung man sich mal umgucken könnte, wenn man da noch ein bisschen mehr bauen möchte. Oder falls jemand Fragen hat, ist das natürlich auch okay. Warte mal, du kriegst ein Frage-Mikrofon.
13:29
Ich habe das jetzt gelesen, dass ein Blender-Musiker dieses Hardware-Mischpult da nutzt, dieses Behringer BCF. Okay, ja.
13:41
Um damit Audio-Software fernsteuern zu können, die sonst halt nur häufig mit der Maus bedienbar ist. Und so habe ich, kann ich dann immer die Schalter-Stellung gleich ertasten. Ja, genau. Dafür ist so ein Interface halt praktisch für Leute, die halt irgendwie entweder nicht aufs Display gucken können
14:01
oder wenn man auch einfach schnell irgendwelche Sachen umschalten möchte, weil so ein Hardware-Interface ist halt schon wesentlich angenehmer, vor allem wenn man mehrere, wenn man wesentlich mehr Sachen steuern möchte, als ich da jetzt habe. Und das ist halt darauf ausgelegt, normalerweise auch so diese Audio Workstations zu steuern. Ich habe jetzt natürlich hier
14:21
komplett Custom Code halt dafür, weil ich mich so ein bisschen entfernt habe von den professionellen Sachen. Ja.
14:40
Eine kurze Frage. Du hast Code gezeigt, wo du sagst irgendwie, wie du die verdrahtest, da hast du irgendwie alle Eingänge auf alle Ausgänge. Wenn du das jetzt ändern willst, hast du für alle deine Setups irgendwie dann Code, die das neu viert? Die Sache ist aktuell, ist das halt noch so ein Prototyp.
15:00
Die Idee, die ich am Ende habe, ist tatsächlich, einen Web-Interface zu haben, bei dem man sich ohne große Schwierigkeiten halt neue Verbindungen dazu ziehen kann und auch sagen kann, ich habe hier ein neues Audio-Interface. Das hat den Namen. Bitte lad das mit dazu. Und die Software hat theoretisch auch schon Support dafür. Also ich kann mich da auch mit einem Debugger dranhängen und Interfaces rauslöschen
15:21
und die werden automatisch entfernt, neu hinzufügen und die werden automatisch richtig verbunden. Also das funktioniert schon. Aber das Interface fehlt halt noch. Sonst keine Fragen, Anregungen mehr? Gut, dann würde ich hier
15:42
auch schon aufhören und danke euch für eure Aufmerksamkeit.