<pclass="help-subtitle">Neural Interactive Shaping of Parameter Spaces</p>
<divclass="help-section">
<h3>What is this?</h3>
<p>NISPS lets you <strong>teach a neural network</strong> how to map a 2D joystick position to a rich set of visual or audio parameters. Move the joystick, shape the outputs you want, and the network learns your preferences in real time.</p>
</div>
<divclass="help-section">
<h3>How it works</h3>
<p>A small neural network takes your joystick X/Y position as input and produces dozens of output parameters. You teach it by either:</p>
<ul>
<li><strong>Examples</strong>— set the parameter sliders to what you want at a given joystick position, add the example, then hit Train. Do this a few times from different positions and the network interpolates between them.</li>
<li><strong>Feedback (RL)</strong>— move the joystick around. If you like what you see/hear, press <strong>+</strong> (keep this). If you don't, press <strong>−</strong> (explore more). The network gradually learns what you prefer.</li>
</ul>
</div>
<divclass="help-section">
<h3>What to expect</h3>
<ul>
<li><strong>Moving the joystick</strong> changes all outputs in real time through the network</li>
<li><strong>Randomize</strong> shuffles the network weights — instant new mapping</li>
<li><strong>Train</strong> fits the network to your saved examples</li>
<li><strong>+ / − feedback</strong> nudges the network: + reinforces the current mapping, − adds exploration noise</li>
<li>Switch between <strong>Visual</strong> (particle flow field) and <strong>Synth</strong> (C15 synthesizer) output modes</li>
<li>The <strong>heatmap bar</strong> at the top shows all output parameters at a glance</li>
</ul>
</div>
<divclass="help-section">
<h3>Controls</h3>
<tableclass="help-keys">
<tr><thcolspan="2">Touch / Mouse</th></tr>
<tr><td>Drag joystick</td><td>Move through parameter space</td></tr>
<li><strong>Presets</strong>— use the dropdown (top left, next to play) to choose a parameter preset. Lower tiers (1.x) expose fewer parameters for simpler exploration; higher tiers (3.x, 4.x) unlock cross-modulation, feedback, and the full engine. You can tweak any preset afterwards using the controls below.</li>
<li><strong>Hover any bar</strong> in the synth visualizer to see parameter name, current value, range, and curve</li>
<li><strong>Hover a group name</strong> (e.g. "Env A", "Osc B") at the top to open its control drawer:</li>
<ul>
<li><strong>Group curve</strong>— drag the top graph vertically to shape the response curve for the whole group (adjusts all param curves relatively)</li>
<li><strong>Per-param curve</strong>— drag each small graph to shape that parameter individually (down = exponential, up = logarithmic)</li>
<li><strong>Min/Max range</strong>— dual-thumb slider constrains the parameter's output range</li>
<li><strong>Mute (M)</strong>— removes the parameter from NISPS control; its bar disappears and you get a manual value slider instead</li>
</ul>
<li><strong>MIDI input</strong>— connect a MIDI controller and it will be detected automatically; MIDI notes trigger the synth directly</li>
<li><strong>Arpeggiator</strong>— expand the bottom bar to access the built-in arpeggiator with tempo, octave range, offset, and chord progression controls; press Pause to stop it</li>