Bunte Beats ohne Strings

23 Jan

Je mehr Funktionen in die Software für die Matrix-Lampe kommen, desto schwieriger scheint es zu werden, die Lampe zu konfigurieren. Der eingebaute Webserver mit Access Point bleibt schon während der unvermeidlichen Test-Anfragen „Bist du das Internet?“ von Laptop bzw. Handy hängen. Ein Versucht mit eingestreuten delay(0) Aufrufen („damit im Hintergrund der Wifi-Stack arbeiten kann“, was auch immer das heißen soll …) machte das Ganze eher noch schlimmer.

Heute habe ich überall wo’s ging die Funktion „File.readStringUntil“ durch „File.readBytesUntil“ ersetzt. Rückblickend ist dieser Code:

String helper = file.readStringUntil('\n');          // Read Line
snprintf(serin, sizeof serin, "%s", helper.c_str()); // Copy into serin buffer
geradezu überragend bescheuert, wenn man auch einfach das hier nehmen kann: 
file.readBytesUntil( '\n', serin, sizeof serin);

Zusätzlich musste das Captive Portal (praktisch ein DNS-Server, der jede Anfrage auf sich selber umleitet) ausziehen, stattdessen gibt’s die gute alte feste IP-Adresse.

Seitdem fühlt sich alles viel, viel schwungvoller an. Und mit ein bisschen Zusatzcode gibt’s nun Blinke-Effekte zur Musik:

  1. Die Fläche wird 1 Zeile nach oben geschoben. Die Fußzeile bleibt stehen. (Streifen)
  2. Die Fußzeile wird um einen festen Wert abgedunkelt (Streifen verblassend)
  3. Immer wenn der Signalpegel eines Durchlaufs mindestens 2 Einheiten größer ist als der vorherige Durchlauf, wird ein zufälliges Klötzchen in der Bodenleiste eingefärbt mit dem Pegel-Unterschied – je laut desto hell.
Statisch wirkt das eher fade
Statisch wirkt das eher fade

Auch noch mal in Bewegt:

Ja, hier keine Musik. Die wäre zwar sogar CC-Zero, aber das Handy meinte es müsse die Musik unterdrücken.

Wenn wir mit der Fade-Rate (der „Verblassen-Stärke“) spielen, bekommen wir ganz verschiedene Wirkungen mit dem gleichen Generator:

Hohe Verblassen-Rate: Kurze Streifen

Niedrige Verblassen-Rate: Lange Streifen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

16 + dreizehn =