Replace example shows with numbered production shows and add sparkle flag

- Rename all show .txt files with NNN_ numeric prefix so order is explicit
  and controlled by filename (001_heartbeat_red through 006_party)
- Drop HOME_SHOW special-casing from convert_all.py; show 0 is simply the
  lowest-numbered file
- Add SHOW_FLAG_SPARKLE support: shows can declare '// flags: sparkle' to
  overlay random white flashes on top of the base color each frame
- Wire sparkle into led_controller and config.h (SPARKLE_CHANCE/FRAMES)
- Replace old placeholder/example shows with the six production shows

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-24 13:59:25 +02:00
parent a96f378c9c
commit ab2c1b34b4
30 changed files with 205 additions and 231 deletions
-29
View File
@@ -1,29 +0,0 @@
// Monster Hunter cosplay — heartbeat intro
// Three heartbeats in bright red, then fades into the base color of the breathing show.
// Auto-advances to 002_breath_red when done.
//
// mode: single
// Format: #RRGGBB, duration_ms
#050000, 0 // start near black
// beat 1
#d10e29, 120 // lub — fast rise to bright red
#300000, 100 // dip between beats
#d10e29, 100 // dub
#050000, 700 // rest
// beat 2
#d10e29, 120 // lub
#300000, 100 // dip
#d10e29, 100 // dub
#050000, 700 // rest
// beat 3
#d10e29, 120 // lub
#300000, 100 // dip
#d10e29, 100 // dub
#050000, 700 // rest
// 2-second fade into the base color of the breathing show
#99283a, 2000
+23
View File
@@ -0,0 +1,23 @@
// Red Heartbeat × 2 then Red Breathing — 2 lub-dub beats, then slow breathing, repeat.
//
// mode: single
#050000, 0 // start near black
// beat 1
#d10e29, 120 // lub — fast rise to bright red
#300000, 100 // dip between beats
#d10e29, 100 // dub
#050000, 600 // rest
// beat 2
#d10e29, 120 // lub
#300000, 100 // dip
#d10e29, 100 // dub
#050000, 600 // rest into breathing
// beat 3
#d10e29, 120 // lub
#300000, 100 // dip
#d10e29, 100 // dub
#050000, 600 // rest into breathing
-10
View File
@@ -1,10 +0,0 @@
// Monster Hunter cosplay — breathing red
// Slow breathing between dark maroon (#99283a) and bright red (#d91e1e).
// One breath cycle lasts 5 seconds. Loops continuously.
//
// mode: loop
// Format: #RRGGBB, duration_ms
#99283a, 0 // snap to dim base color
#d91e1e, 2500 // breathe in — slow rise to bright red
#99283a, 2500 // breathe out — slow fall back to dim
@@ -0,0 +1,7 @@
// Red Heartbeat × 2 then Red Breathing — 2 lub-dub beats, then slow breathing, repeat.
//
// mode: loop
// breathing
#d10e29, 3600 // fade up to bright red
#050000, 3600 // fade back down to near black
+10
View File
@@ -0,0 +1,10 @@
// Blue breath with sparkle overlay
//
// flags: sparkle
// mode: loop
#050018, 0 // snap to near-black blue
#2020FF, 2500 // breathe in — slow rise to bright blue
#2020FF, 400 // hold at peak
#050018, 2500 // breathe out — slow fall to near-black
#050018, 800 // pause before next breath
-8
View File
@@ -1,8 +0,0 @@
// Monster Hunter cosplay — solid deep red
// Constant dark maroon (#99283a). Stays on until the button is pressed.
//
// mode: loop
// Format: #RRGGBB, duration_ms
#99283a, 0 // snap on instantly
#99283a, 30000 // hold (30s loop is invisible — same color each cycle)
+7
View File
@@ -0,0 +1,7 @@
// Yellow pulse — slow breathing effect
//
// mode: loop
#202000, 0 // start at dim yellow
#FFFF00, 1200 // fade up to bright yellow
#202000, 1200 // fade back down to dim yellow
+6
View File
@@ -0,0 +1,6 @@
// Solid green
//
// mode: loop
#00CC00, 0 // snap to green
#00CC00, 5000 // hold (fade from green to green is invisible)
+22
View File
@@ -0,0 +1,22 @@
// Party mode — rapid rainbow color flashes
// Plays once then auto-advances to the next show.
//
// mode: single
#FF0000, 0 // snap to red
#FF0000, 150 // hold red
#FF8800, 0 // snap to orange
#FF8800, 150 // hold orange
#FFFF00, 0 // snap to yellow
#FFFF00, 150 // hold yellow
#00FF00, 0 // snap to green
#00FF00, 150 // hold green
#00FFFF, 0 // snap to cyan
#00FFFF, 150 // hold cyan
#0000FF, 0 // snap to blue
#0000FF, 150 // hold blue
#FF00FF, 0 // snap to magenta
#FF00FF, 150 // hold magenta
#FFFFFF, 0 // snap to white
#FFFFFF, 150 // hold white
#000000, 500 // fade to off — brief pause before advancing
-12
View File
@@ -1,12 +0,0 @@
// Blue breath — home / reset show (always index 0)
// A slow, natural breathing effect in deep blue.
// Loops continuously as the default show.
//
// mode: loop
// Format: #RRGGBB, duration_ms
#050018, 0 // snap to near-black blue — sets the starting point
#2020FF, 2500 // breathe in — slow rise to bright blue
#2020FF, 400 // hold at peak
#050018, 2500 // breathe out — slow fall to near-black
#050018, 800 // pause before next breath
-12
View File
@@ -1,12 +0,0 @@
// Example: slow color cycle
// Smooth fades between colors with different speeds.
//
// Format: #RRGGBB, duration_ms
// duration_ms = time to fade FROM the previous color TO this one.
#FF0000, 0 // snap to red immediately
#00FF00, 3000 // 3 second fade to green
#0000FF, 0 // snap to blue
#FF00FF, 2000 // 2 second fade to purple
#FF8000, 1000 // 1 second fade to orange
#000000, 5000 // 5 second slow fade to off
-24
View File
@@ -1,24 +0,0 @@
// Example: party mode — rapid color flashes
//
// Trick: to HOLD a color for N ms, add a second step with the same color
// and set that step's duration to N. The "fade from red to red" is invisible.
//
// Format: #RRGGBB, duration_ms
#FF0000, 0 // snap to red
#FF0000, 150 // hold red 150ms
#FF8800, 0 // snap to orange
#FF8800, 150 // hold orange 150ms
#FFFF00, 0 // snap to yellow
#FFFF00, 150 // hold yellow 150ms
#00FF00, 0 // snap to green
#00FF00, 150 // hold green 150ms
#00FFFF, 0 // snap to cyan
#00FFFF, 150 // hold cyan 150ms
#0000FF, 0 // snap to blue
#0000FF, 150 // hold blue 150ms
#FF00FF, 0 // snap to magenta
#FF00FF, 150 // hold magenta 150ms
#FFFFFF, 0 // snap to white
#FFFFFF, 150 // hold white 150ms
#000000, 500 // fade to off — brief pause before looping
-10
View File
@@ -1,10 +0,0 @@
// Example: slow red pulse / heartbeat effect
//
// Fades from dim red to bright red and back, repeating.
// Shows how to create an organic-feeling breathing effect.
//
// Format: #RRGGBB, duration_ms
#200000, 0 // start at dim red (no fade — sets the initial state)
#FF0000, 1200 // fade up to bright red
#200000, 1200 // fade back down to dim red