๐ CrumbMidi Log Sonifier
Monitoring durch Musik - Hรถre deinen Server!
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ ๐ Logfile โโโโโ ๐ Parser โโโโโ ๐ต Strudel โโโโโ ๐ Sound โ
โ โ
โ NORMAL โโโโโ โ 128 BPM โโโโโ Calm ambient โโโโโ ๐ Chill โ
โ WARNING โโโโโ โ 64 BPM โโโโโ Ominous, slower โโโโโ ๐ Attention โ
โ ALERT โโโโโ โฒ 12 BPM โโโโโ Deep drone, alarm โโโโโ ๐จ ACTION! โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ฏ Warum?
Statt auf einen Monitor zu starren, hรถre deinen Server:
- Normal (128 BPM): Alles lรคuft smooth. Sanfter Ambient-Beat im Hintergrund.
- Warning (64 BPM): Etwas stimmt nicht. Musik wird langsamer, dunkler, ominรถser.
- Alert (12 BPM): GEFAHR! Tiefer Drone, Alarm-Tรถne. SOFORT REAGIEREN!
Du merkst Probleme, ohne hinzuschauen. ๐ง
๐ Quickstart
Option 1: Bash Version (einfach)
# Demo Mode
./log-sonifier.sh
# Logfile beobachten
./log-sonifier.sh /var/log/syslog
# Pipen
journalctl -f | ./log-sonifier.sh
docker logs -f mycontainer | ./log-sonifier.sh
tail -f /var/log/nginx/error.log | ./log-sonifier.sh
Option 2: Node.js + Strudel (voller Sound)
# Terminal 1: Strudel starten
cd ~/crumbmidi/strudel && pnpm dev
# รffne http://localhost:3000
# Lade LOG_SONIFIER_PATTERN.js
# Terminal 2: Log Sonifier starten
node log-sonifier.js /var/log/syslog
# oder
journalctl -f | node log-sonifier.js
๐ Level Detection
Das System erkennt Log-Level anhand von Keywords:
ALERT / CRITICAL / FATAL / EMERGENCY / PANIC / ERROR / FAIL / EXCEPTION
โ โฒ ALERT (12 BPM)
WARN / WARNING / CAUTION / NOTICE / DEPRECATED
โ โ WARNING (64 BPM)
INFO / DEBUG / LOG / OK / SUCCESS (oder alles andere)
โ โ NORMAL (128 BPM)
๐ต Die Sounds
NORMAL - 128 BPM - "Everything is fine"
// Calm ambient techno
stack(
sound("bd ~ ~ ~, ~ ~ bd ~").gain(0.6), // Soft kick
sound("hh*8").gain(0.2).hpf(8000), // Shimmering hats
note("<Cmaj7 Am7>").chord().s("sawtooth") // Warm pad
.lpf(1200).room(0.6).slow(8),
note("c4 e4 g4 b4").s("triangle") // Gentle arp
.delay(0.4).room(0.5)
)
Feeling: Coffeeshop vibes, alles ist gut ๐ฟ
WARNING - 64 BPM - "Something's brewing"
// Ominous halftime
stack(
sound("bd ~ ~ ~ ~ ~ ~ ~").gain(0.8), // Sparse, heavy kick
sound("~ ~ ~ ~ sd ~ ~ ~").room(0.2), // Distant snare
note("<Dm7 Gm7>").chord().s("sawtooth") // Dark pad
.lpf(600).slow(8),
note("d2 ~ d2 ~").s("sawtooth") // Rumbling bass
.lpf(sine.range(100, 300)).distort(0.2)
)
Feeling: Spannungsmusik im Film, bevor was passiert ๐ฉ๏ธ
ALERT - 12 BPM - "DANGER!"
// Deep drone + alarm
stack(
note("c1").s("sawtooth") // Sub drone
.lpf(sine.range(50, 200))
.distort(0.3).slow(16),
note("<c4 g4>").s("square") // Pulsing alarm
.gain(sine.range(0.2, 0.5).fast(2))
.vib(8),
sound("bd").gain(0.9).lpf(100).slow(4), // Heartbeat kick
note("c5 g5").s("sawtooth") // Siren
.vib(12).lpf(2000).fast(0.5)
)
Feeling: Submarine-Alarm, roter Alert! ๐จ
๐ง Konfiguration
log-sonifier.sh (Bash)
# Am Anfang der Datei:
BUFFER_SIZE=5 # Wie viele Zeilen bevor Level wechselt
STATE_FILE="/tmp/crumbmidi_state.json" # Fรผr externe Tools
log-sonifier.js (Node)
const CONFIG = {
oscPort: 57121, // Strudel OSC Port
bpm: {
normal: 128,
warning: 64,
alert: 12
},
cooldown: 100, // ms zwischen Sounds
levelBuffer: 5 // Smoothing
}
Custom Keywords
// In log-sonifier.js
patterns: {
alert: /\b(ALERT|CRITICAL|FATAL|...|MEIN_KEYWORD)\b/i,
warning: /\b(WARN|WARNING|...|ANDERES_KEYWORD)\b/i,
}
๐๏ธ Strudel OSC Setup
- รffne Strudel Settings (โ๏ธ)
- Enable "OSC Input"
- Port: 57121
- Lade das Pattern
LOG_SONIFIER_PATTERN.js - Das Pattern reagiert auf OSC Messages vom Sonifier
๐ Files
crumbmidi/tools/
โโโ log-sonifier.sh # Bash version (simple)
โโโ log-sonifier.js # Node.js version (full OSC)
โโโ README.md # This file
crumbmidi/patterns/
โโโ LOG_SONIFIER_PATTERN.js # Strudel pattern
๐ฏ Use Cases
DevOps Monitoring
# Kubernetes logs
kubectl logs -f deployment/myapp | ./log-sonifier.sh
# Docker Compose
docker-compose logs -f | ./log-sonifier.sh
# Systemd
journalctl -f -u nginx | ./log-sonifier.sh
Development
# Node.js app
npm run dev 2>&1 | ./log-sonifier.sh
# Python
python app.py 2>&1 | ./log-sonifier.sh
# Build process
make 2>&1 | ./log-sonifier.sh
Server Room Ambient
# Multiple sources
tail -f /var/log/syslog /var/log/auth.log /var/log/nginx/*.log | ./log-sonifier.sh
๐ฆ FunkFox Tips
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ ๐ฆ "Wenn die Musik langsamer wird - schau hin!" โ
โ โ
โ ๐ฆ "Wenn der Drone kommt - RENN zum Terminal!" โ
โ โ
โ ๐ฆ "Du musst nicht hinschauen. Du musst nur hinhรถren." โ
โ โ
โ ๐ฆ "128 BPM = Chill. 12 BPM = PANIK." โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ฎ Future Ideas
- [ ] MIDI Output fรผr Hardware Synths
- [ ] Integration mit Prometheus/Grafana
- [ ] Machine Learning fรผr Pattern-Erkennung
- [ ] Slack/Discord Notification bei Alert
- [ ] WebSocket fรผr Browser-Dashboard
- [ ] Multi-Source Mixing
- [ ] Recording der Sessions
๐ Credits
- Strudel: https://strudel.cc/
- OSC Protocol: opensoundcontrol.org
- Inspiration: Sonification research, server room ambience
๐ โโโโโ ๐ โโโโโ ๐ต โโโโโ ๐
Normal: โโโโโโโโโโโโโโโโ 128 BPM ๐
Warning: โโโโโโโโ 64 BPM ๐
Alert: โฒโฒ 12 BPM ๐จ
Don't watch your logs.
LISTEN to them.
#logsonifier #monitoring #ambient #devops #crumbmidi
๐ฆ๐๐