๐Ÿ”Š 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

  1. ร–ffne Strudel Settings (โš™๏ธ)
  2. Enable "OSC Input"
  3. Port: 57121
  4. Lade das Pattern LOG_SONIFIER_PATTERN.js
  5. 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

๐ŸฆŠ๐Ÿ”Š๐Ÿ“Š