MEMLNaut Firmware: Paramsite with NISPS
Overview
Paramsite turns the MEMLNaut into a MIDI controller for any synth, drum machine, effect or DAW, using the NISPS approach to ML. It makes no sound of its own: the neural network drives 32 outputs, each sent as a MIDI CC.
You can set up your own CCs in one of four User slots, or choose a preset with the CC table of a particular synth already filled in.
MIDI Modes
Choose a mode on the MIDI Mode screen. Each mode has its own CC setup, MIDI channel, focus groups and folder of saved models.
| Mode | Channel | Focus groups | Keyboard thru |
|---|---|---|---|
| User 1–4 | 1 | 1-8, 9-16, 17-24, 25-32 (by output) | no |
| Roland TR-8S | 10 | BD SD LT MT HT RS HC CH OH CC RC FX | no |
| Roland TR-6S | 10 | BD SD LT HC CH OH FX | no |
| Waldorf microQ | 1 | OSC MIX FILT ENV LFO FX | yes |
| Waldorf Blofeld | 1 | OSC MIX FILT FENV AENV MOD FX | yes |
| Novation Supernova II | 1 | OSC MIX FILT ENV LFO FX | yes |
| DSI Mopho | 1 | OSC MIX FILT FENV AENV ENV3 | yes |
| Erica Synths Steampipe | 1 | ENV STEAM PIPE REVERB | yes |
| Erica Synths Resonant Filterbank | 1 | LOW MID HIGH GRP RESO GLOB | no |
| Korg minilogue xd | 1 | OSC MIX FILT ENV LFO FX | yes |
| Novation Bass Station II | 1 | OSC MIX FILT ENV LFO FX | yes |
| Sequential Prophet Rev2 | 1 | OSC MIX FILT FENV AENV ENV3 FX | yes |
| Elektron Digitone | track | FM FMENV FILT AMP LFO | yes |
| Arturia MicroFreak | 1 | OSC FILT ENV CYC LFO | yes |
| Melbourne Instruments Nina | layer | OSC MIX FILT ENV LFO FX | yes |
- Keyboard thru: MIDI notes arriving at the MEMLNaut are passed on to the synth, so you can play it while the MEMLNaut controls its sound.
- Fade: in every mode, each CC has a home value. Knob Y fades between the home values (left) and the neural network (right), so you can start from a patch or kit you’ve set up and bring in as much of the network as you like. Knob G sets the home value of the CC under the cursor on the CC Assign screen. Homes start at 0, except in the Blofeld and Supernova II presets, which start from a usable patch.
The synth presets were checked against each maker’s published CC table. Make sure the synth is set to receive CCs (for example Global → MIDI Param Receive on the Mopho and Rev2, Global → Controller Recv on the microQ). For the Steampipe, check Settings → MIDI CC MAP on the synth, as only some of its CC numbers are published.
NISPS
When you indicate a reward, you are rewarding (negatively or positively) how a particular joystick position is mapped to the set of CC values it’s producing. As you indicate preferences, the NISPS system will start to tune the mappings towards your preference. See the NISPS documentation for further info.
Physical Controls
Rotary Encoder: Navigate between screensMomentary A Up: Scramble neural networkMomentary A Down: Jolt neural networkMomentary B Up: Positive rewardMomentary B Down: Negative rewardJoystick: ExploreJoystick button: Positive reward placement — drag a sound to a different place and release to positively reward it in this positionToggle A Down: Clear replay memoryKnob X: Learning rateKnob Y: Fade between the home values (left) and the network (right)Knob Z: Exploration noise (turned off when all the way to the left)Knob G: Set the home value of a CC (on the CC Assign screen)
Screens
Navigate between screens using the rotary encoder.
RL
Info on the neural network: the outputs, the current error rate, the number of datapoints in replay memory, and the most recent command.
Focus
Selecting one or more groups in the focus menu freezes all unfocused outputs at their current value, so that NISPS only changes the focused values. In the User modes the groups are blocks of eight outputs; in the synth presets they are sections of the synth, such as oscillators or filter. Most modes also have HOLD, which freezes all CC output.
NN Inputs
Shows the inputs to the neural network.
Save Model
Tap on a slot to save a model. The model includes the CC assignments. Each mode saves to its own folder on the SD card.
Load Model
Tap on a slot to load a model.
Input Source
Choose from
- the joystick that matches your hardware (3D or 4D)
- machine listening analysis of the line input (allows the system to adapt to different sounds)
- various configurations of MIDI controllers
If you use a MIDI controller as the input and the receiving device echoes CCs back (MIDI thru), keep the output CCs off CC 1–8 to avoid a feedback loop.
CC Assign
Choose up to 32 CCs, and set their home values with knob G. The list is kept sorted, and that is the order of the outputs. Outputs without a CC are left out of training. The User modes offer CC 1–119 and start on CCs that have no standard MIDI meaning, so a DAW or plugin won’t treat them as volume, pan or mod wheel; the presets offer their synth’s CC list. The assignments are saved when you leave the screen.
MIDI Learn
For mapping the CCs in a DAW or plugin. Push the encoder, turn to one of the assigned CCs, and push again to start. While the screen has control, every other CC is frozen and the chosen CC sweeps from 0 to 127 every two seconds, so your DAW’s MIDI learn picks up that CC alone. Push again, or leave the screen, to stop.
Mapping CCs to a plugin’s macros lets one CC drive several parameters.
MIDI Channel
Choose the MIDI channel, 1–16. Saved separately for each mode.
MIDI Mode
Choose the MIDI mode. Push the encoder, turn to a mode, and push again: the choice is saved and the MEMLNaut restarts into the new mode. To leave without changing mode, choose Cancel (at either end of the list) or leave the screen without pushing.
Help
Shows what the various controls do.
System Info
System information about the MEMLNaut and current firmware.
MIDI
The CCs are sent on the MIDI DIN output, and also on USB: the MEMLNaut appears on a computer as a USB MIDI port called “MEMLNaut MIDI”. Notes and CCs received over USB are handled the same way as on the DIN input. SysEx is DIN only.
Files
Code
https://github.com/MusicallyEmbodiedML/MEMLNaut-NISPS
Firmware Download
MEMLNaut-NISPS.Paramsite.1.2.0.uf2
See the firmware guide for installation instructions.