NAMNESIS Live UI
July 22, 2026 · View on GitHub
/live is the dedicated touch-first performance interface for NAMNESIS.
It is deliberately separate from the full desktop editor:
/uiis the complete configuration and editing interface./liveis a fixed, no-scroll performance surface.- Both consume the same cache-first HTTP API and SSE event stream.
- Stompbox remains the authoritative owner of DSP state.
Reference hardware
The reference installation uses:
- 1920 × 440 ultrawide IPS display
- HDMI video
- USB HID multitouch
- Firefox ESR in kiosk mode
- Xorg and Openbox
- UI processes assigned to non-DSP CPU cores
Other displays and touch devices can be configured with:
NAMNESIS_PANEL
NAMNESIS_PANEL_MODE
NAMNESIS_TOUCH_NAME
NAMNESIS_GATEWAY_URL
NAMNESIS_FIREFOX_PROFILE
NAMNESIS_KIOSK_DIR
NAMNESIS_UI_CPUS
Live interface capabilities
The interface exposes:
- current preset number and name
- NAM model selection
- cabinet IR selection
- Save and Save As
- twelve fixed effect positions
- effect bypass state
- context-sensitive numeric parameter editing
- JACK, XRUN, MIDI and audio-interface status
- input and master values
- touch-only operation with a hidden pointer
The fixed effect order is:
BOOST
DRIVE
DELAY
REVERB
COMP
GATE
LEVEL
FUZZ
PHASE
CHORUS
TREMOLO
VIBRATO
Touch the pedal body or effect name to open its parameter editor.
Touch the hexagonal indicator to toggle the effect:
- filled hexagon: enabled
- outlined hexagon: bypassed
- dim slot: effect unavailable
Architecture
The browser never communicates directly with JACK or Stompbox.
Touchscreen
↓
Firefox /live
↓ HTTP + SSE
namnesis-ui-gateway
↓ serialized TCP
Stompbox
↓
JACK / DSP
This preserves the separation between:
- real-time DSP
- control and visualization
Required Debian packages
sudo apt-get install --no-install-recommends \
xserver-xorg-core \
xserver-xorg-input-libinput \
xinit \
x11-xserver-utils \
xinput \
openbox \
firefox-esr \
curl \
dbus-x11
Public deployment templates
Reusable examples are provided under:
config/
deploy/kiosk/
systemd/
The examples are intentionally generic. Adapt usernames, paths, display outputs, touchscreen names and CPU assignments to the target system.
Suggested installation layout
/opt/namnesis/namnesis-ui-gateway
/opt/namnesis/kiosk
/etc/namnesis-ui-gateway.env
/usr/local/bin/namnesis-ui-gateway
Typical kiosk files:
deploy/kiosk/start-live-ui.sh
deploy/kiosk/xinitrc
deploy/kiosk/bash-profile.snippet
deploy/kiosk/getty-autologin.conf.example
deploy/kiosk/firefox-user.js
deploy/kiosk/blank-cursor.xbm
deploy/kiosk/blank-cursor-mask.xbm
Boot sequence
The reference boot flow is:
JACK and Stompbox
→ namnesis-ui-gateway
→ tty1 automatic login
→ Xorg and Openbox
→ gateway readiness check
→ Firefox ESR /live
The kiosk launcher waits for /api/state before starting Firefox, preventing
the interface from opening against an incomplete gateway bootstrap.
CPU affinity
The gateway and graphical kiosk can be kept away from CPU cores assigned to real-time audio.
The included examples use the following arrangement on the six-core reference system:
Cores 0–3: gateway, Xorg, Openbox and Firefox
Cores 4–5: JACK and Stompbox
The relevant deployment files are:
systemd/20-cpu-affinity.conf.example— constrains the gateway with systemd'sCPUAffinitysetting.deploy/kiosk/bash-profile.snippet— starts the Xorg kiosk throughtaskset, usingNAMNESIS_UI_CPUS, which defaults to0-3.
These CPU ranges are examples for the reference machine and should be adapted to the target hardware and audio configuration.
For broader platform guidance, see HARDWARE.md.
Touch mapping
The launcher maps the configured USB touchscreen to the configured display:
xinput map-to-output "$TOUCH_ID" "$PANEL"
Obtain the relevant names with:
xrandr
xinput list
Cursor suppression
The live interface hides the pointer through CSS, while the kiosk also sets a transparent X11 root cursor. This prevents the pointer from appearing or remaining at the last touched coordinate.
Emergency kiosk disable
From SSH:
touch /tmp/namnesis-kiosk-disable
pkill -u "$USER" firefox-esr
pkill -u "$USER" Xorg
Re-enable it with:
rm -f /tmp/namnesis-kiosk-disable
sudo systemctl restart getty@tty1.service
Operational principle
The live screen is a control surface, not part of the audio engine.
A browser crash, touchscreen disconnection or graphical-session restart must not stop JACK, Stompbox or the current audio program.