How francoisgeorgy/bs2-web works
BS2-Web is a browser-based editor and controller for the Novation Bass Station 2. Users edit visible synth controls, exchange MIDI with the instrument, and manage patches through initialization, randomization, SysEx/file loading and saving, favorites, and printable patch sheets. The graph centers on the main browser app and its device model, with separate patch, settings, and print capabilities. Source excerpts are partial, so uncertain internal call links are omitted; documented capabilities without sampled implementation use supported enclosing paths.
Main entry points: bass-station-2.js Device model · main.js Editor UI and controls · xypad.js XY pad · cc.js CC definitions
Components 18
Browser editor
- Editor UI and controls
src/main.js - Parameter controls
src/bass-station-2 - XY pad
src/xypad/xypad.js
Synth protocol
- MIDI service
- Device model
src/bass-station-2/bass-station-2.js - CC definitions
src/bass-station-2/cc.js - NRPN handling
src/bass-station-2/nrpn.js - SysEx handling
src/bass-station-2/sysex.js - Value mapping
src/bass-station-2/mappers.js
Patch management
- Patch load and save
src/main.js - Favorite patches
src/main.js - Patch randomizer
src/main.js - Patch sheet rendering
src/print.js
Preferences and output
- Settings persistence
src/preferences.js - MIDI message viewer
src/midi.html
Other components
- Synth user
- Bass Station 2
- Browser storage
Connections 24
- Synth user → Editor UI and controls: edits controls
- Editor UI and controls → Parameter controls: updates controls
- Editor UI and controls → MIDI service: uses MIDI
- MIDI service → Bass Station 2: sends and receives
- Editor UI and controls → Device model: updates device state
- Device model → CC definitions: uses definitions
- Device model → NRPN handling: uses definitions
- Device model → SysEx handling: encodes and decodes
- CC definitions → Value mapping: maps values
- NRPN handling → Value mapping: maps values
- Synth user → Patch load and save: manages patches
- Patch load and save → Device model: reads and updates
- Patch load and save → Bass Station 2: sends loaded patch
- Synth user → Favorite patches: saves or recalls
- Favorite patches → Browser storage: persists favorites
- Synth user → Patch randomizer: randomizes patch
- Patch randomizer → Device model: updates parameters
- Synth user → Patch sheet rendering: prints patch sheet
- Patch sheet rendering → Device model: reads patch values
- Editor UI and controls → Settings persistence: loads and saves
- Settings persistence → Browser storage: persists settings
- Synth user → XY pad: moves XY pad
- XY pad → Editor UI and controls: provides positions
- Synth user → MIDI message viewer: views MIDI log