Spaces:
Running
Running
| <html lang="en"> | |
| <head> | |
| <meta charset="utf-8" /> | |
| <meta name="viewport" content="width=device-width, initial-scale=1" /> | |
| <title>Theremini • Reachy Mini App</title> | |
| <link rel="stylesheet" href="style.css" /> | |
| </head> | |
| <body> | |
| <main class="page"> | |
| <header class="hero"> | |
| <p class="eyebrow">Reachy Mini App</p> | |
| <h1>Theremini</h1> | |
| <p class="lede">Head roll shapes the pitch, head height acts as a volume fader, the left antenna scrolls through your curated FluidSynth presets, and a gentle nudge of the rested right antenna can act as a master mute when enabled. The full-screen dashboard at <code>http://localhost:8095/index.html</code> mirrors the HUD, exposes instrument editing, and now includes toggles for roll-stop playing and antenna muting.</p> | |
| </header> | |
| <section class="card"> | |
| <h2>Mapping</h2> | |
| <table class="config-table"> | |
| <thead> | |
| <tr> | |
| <th>Input</th> | |
| <th>Range</th> | |
| <th>Output</th> | |
| </tr> | |
| </thead> | |
| <tbody> | |
| <tr> | |
| <td>Head roll</td> | |
| <td>-60° ⇢ +60°</td> | |
| <td>MIDI notes 48 ⇢ 84</td> | |
| </tr> | |
| <tr> | |
| <td>Head Z</td> | |
| <td>-30 mm ⇢ +5 mm</td> | |
| <td>Amplitude 0 ⇢ 100 %</td> | |
| </tr> | |
| <tr> | |
| <td>Left antenna</td> | |
| <td>-π/3 ⇢ +π/3 rad</td> | |
| <td>Instrument index 0 ⇢ (#active−1)</td> | |
| </tr> | |
| <tr> | |
| <td>Right antenna</td> | |
| <td>±2° nudge (after being still)</td> | |
| <td>Toggle master mute (optional)</td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| </section> | |
| <section class="card"> | |
| <h2>Instrument Programs</h2> | |
| <p class="caption">Theremini cycles through a curated subset of FluidSynth GM presets. The dashboard lets you search the GM bank and save up to eight presets; these are the defaults shipped on first launch. Changes persist to <code>config.json</code>.</p> | |
| <ul class="instrument-list"> | |
| <li><span class="label">0</span>choir_aahs</li> | |
| <li><span class="label">1</span>orchestra_hit</li> | |
| <li><span class="label">2</span>taiko_drum</li> | |
| <li><span class="label">3</span>trumpet</li> | |
| <li><span class="label">4</span>french_horn</li> | |
| <li><span class="label">5</span>soundtrack</li> | |
| </ul> | |
| </section> | |
| <section class="card"> | |
| <h2>Dashboard Highlights</h2> | |
| <ul class="feature-list"> | |
| <li>Live HUD mirrors pitch, amplitude, antenna angle, and clearly indicates when the roll has settled or the master mute is active.</li> | |
| <li>“Live instrument set” card combines search + drag ordering with toggles for “Play once roll stops” and “Enable antenna mute”.</li> | |
| <li>The circular dial visual shows the left-antenna angle against the eight-slot preset wheel, so you know exactly which voice Reachy will play.</li> | |
| </ul> | |
| </section> | |
| <section class="card future"> | |
| <h2>Next Iterations</h2> | |
| <ul> | |
| <li>Expose pitch/volume ranges, scales, and chord filters directly in the dashboard.</li> | |
| <li>Plot head pose, antenna and amplitude as sparkline charts for quick feedback.</li> | |
| <li>Preview GM programs with audio snippets before adding them to the rotation.</li> | |
| </ul> | |
| </section> | |
| </main> | |
| </body> | |
| </html> | |