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 drives pitch, head height controls the volume and the right antenna switches instruments. Exactly the same mapping as the original <code>simple_theremini.py</code>, now packaged as an app.</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 (C3) ⇢ 84 (C6)</td> | |
| </tr> | |
| <tr> | |
| <td>Head Z</td> | |
| <td>-30 mm ⇢ +5 mm</td> | |
| <td>Amplitude 0 ⇢ 100 %</td> | |
| </tr> | |
| <tr> | |
| <td>Right antenna</td> | |
| <td>-π/3 ⇢ +π/3 rad</td> | |
| <td>Instrument index 0 ⇢ (#active−1)</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 swap presets live; these are the defaults.</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>Runtime Defaults</h2> | |
| <dl class="kv"> | |
| <div> | |
| <dt>Loop frequency</dt> | |
| <dd>50 Hz (sleep 20 ms)</dd> | |
| </div> | |
| <div> | |
| <dt>Session threads</dt> | |
| <dd>SCAMP Session(max_threads=1024)</dd> | |
| </div> | |
| <div> | |
| <dt>MIDI expression</dt> | |
| <dd>CC 11 scaled 0 ⇢ 127</dd> | |
| </div> | |
| <div> | |
| <dt>Volume clamp</dt> | |
| <dd>Amplitude 0.0 ⇢ 1.0</dd> | |
| </div> | |
| </dl> | |
| </section> | |
| <section class="card future"> | |
| <h2>Next Iterations</h2> | |
| <ul> | |
| <li>Expose the mapping ranges and instrument list as editable controls.</li> | |
| <li>Plot head pose, antenna and amplitude as tiny charts for quick debugging.</li> | |
| <li>Preview GM programs with audio snippets or links.</li> | |
| </ul> | |
| </section> | |
| </main> | |
| </body> | |
| </html> | |