Theremini / index.html
RemiFabre
Smoother init phase and dynamic instrument change (config saved to disk)
c93a753
raw
history blame
3.51 kB
<!doctype html>
<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>