HH maczarr.de

Sideprojects - Von Monitoring über Web-Performance zu Midi

Die letzten Jahre habe ich irgendwie nicht viel Software-Nebenprojekte gemacht. Ab und an mal Kleinigkeiten an dieser Website geschraubt, hier und da ein Python-Script oder meinen eigenen lokalen DNS-Resolver auf einem alten RasPi eingerichtet. Aber das waren in der Regel Projekte für maximal ein Wochenende. In diesem Jahr ist das irgendwie anders.

Vom Einen zum Anderen

Den Grund kann ich gar nicht so richtig benennen. Ich habe nicht mehr Zeit als sonst, aber die Projekte ergeben sich einfach so. Anfang des Jahres habe ich mich einige Zeit mit System-Monitoring mittels Icinga2 beschäftigt, vor allem geht es dabei um meine RasPis. In dem Zuge kam auch ein bisschen Beschäftigung mit Grafana für ein Dashboard mit.

Im Frühjahr dann war bei mir das Thema Web-Performance sehr präsent. Im Prinzip wieder ein Monitoring-Thema bei dem auch die Visualisierung von Daten auf einem Dashboard relevant war. Totaler Zufall, dass ich mich vor wenigen Monaten mit genau so einem Thema beschäftigt hatte. Daraus hervor ging dann mein Projekt pagespeed10x, das ich diesmal auch bei GitHub veröffentlichte. Das Thema führte dann auch noch zu einem neuen, eigenständigen Blog auf dem ich ausschließlich über Web Performance schreibe und außer der Reihe meiner Texte für heise Developer mal wieder zu einem Text für heise online.

Musik und Midi

Ganz anders lief es dann mit dem nächsten Projekt. Etwa seit Anfang des Jahres lerne ich etwas Tasteninstrumente und Finger Drums zu spielen. Das läuft über eine App, aber man spielt an einem Midi-Controller. In meinem Fall ist das ein Gerät der Firma Novation. Als ich das Gerät neu hatte beschäftigte ich mich natürlich ein wenig damit und stieß dabei auch über die Möglichkeit von Firmware-Updates. Ich wollte schon weg klicken, weil ich mir fast sicher war, dass es die nötige Software nicht für Linux geben würde, aber ich klickte dann doch mal und siehe da: Novation macht das ausschließlich via Browser. Möglich macht das die Web MIDI API, die es bisher nur im Chromium gibt, aber das störte mich nicht. Novation nutzt die API sogar noch für viel mehr als nur Updates zu verteilen, meine Groovebox kann ich darüber komplett über ein Browser-Interface mit Samples bestücken. Großartig!
So ganz nebenbei bin ich über diesen Weg etwas in Ableton Live (natürlich unter Linux) eingestiegen und habe auch mal einen kleinen LoFi-Track produziert.

midi2shortcut

Aber das ist eigentlich alles nur Vorgeschichte. Über diesen Weg erfuhr ich, dass es die Web MIDI API gibt. Das Midi-Protokoll ist zwar prinzipiell für Musik gedacht, aber eigentlich kann man es auch einfach nur zum Anstoßen von irgendwelchen Aktionen nutzen. Ich fing nun also an mal die MIDI-API auszutesten, schrieb ein bisschen Code zum Auslesen des Protokolls und das Ziel ist mit einem kleinen Controller auf dem Schreibtisch universell Tastenkombinationen am Rechner auszulösen. Ganz konkret kam mir die Idee zur Steuerung der Streaming-Software OBS. Während eines Live-Streams kann man OBS gut über Tastenkombinationen steuern ohne aus dem Spiel zu OBS wechseln zu müssen – die Tastenkombination soll aber einerseits leicht zu merken sein, andererseits darf sie auf keinen Fall mit einer Taste aus dem Spiel kollidieren. Sonst schaltet man sich versehentlich im Stream den Ton ab, obwohl man im Spiel eigentlich nur etwas bauen wollte.
Um das zu vereinfachen stelle ich mir "sichere" (sprich kompliziertere) Tastenkombinationen vor, die aber mit einem Tastendruck auf dem Midi-Controller ausgelöst werden können. Das Projekt ist noch nicht fertig, aber schon auf einem guten Weg.

Mal schauen was die restlichen Monate des Jahres noch so für Ideen mit sich bringen. Ich bin jedenfalls mit der bisherigen Ausbeute schon zufrieden und gespannt welche Zufälle mir noch so in die Hände spielen werden.

Titelfoto von Octavian Dan auf Unsplash