PulseStage — MIDI Studio Operator Guide
Version 1.1.0 · Windows desktop operator guide
- Install Setup.exe and open the PulseStage shortcut.
- Click Connect keybed, then click and release a piano key. RECEIVED counts the note messages.
- Click Connect receiver. Send a preset or controller from the command station and watch the reference pedal respond.
- Click the small metal Footswitch button: the amber light and ON/OFF text confirm CC64 receipt.
- Open Test bench for guided checks. Internal practice requires no loopMIDI or MIDI-OX.
MIDI carries instructions. This lab is silent; it does not synthesize audio.
1. What PulseStage Does (And What It Does Not)
PulseStage is a dedicated Windows application engineered for stage musicians, keyboardists, guitarists, and studio engineers who need reliable, direct control over their MIDI equipment. It manages preset changes, continuous controllers, master tempo clocks, and custom performance sequences while offering real-time diagnostic monitoring.
What PulseStage Is:
- A MIDI Control Command Station: Transmits Program Change (PC), Bank Select (MSB CC0 / LSB CC32), and Control Change (CC) messages to hardware synthesizers, digital guitar modelers, vocal processors, and outboard gear.
- A Master MIDI Clock Source: Generates stable 24-PPQN (pulses per quarter note) MIDI timing with Start, Continue, and Stop transport commands.
- An Inspection and Diagnostic Monitor: Captures, decodes, timestamps, and graphs every incoming and outgoing byte stream across all 16 MIDI channels.
- A Macro Action Engine: Executes custom multi-step preset and parameter chains with ordered steps and requested millisecond delays.
- An Integrated Practice Lab: Features an on-screen keybed with adjustable velocity and a reference receiving pedal for driver-free testing.
- NOT a Digital Audio Workstation (DAW): PulseStage does not record, mix, or edit multi-track audio.
- NOT an Audio Synthesizer: PulseStage processes digital control data (MIDI bytes), not sound waves. A successful transmission does not produce sound unless routed to an active hardware synthesizer or software instrument.
- A Silent Test Is Valid: Because MIDI is pure control information, successful parameter changes and preset selections are completely silent unless an external sound generator is connected.
2. Installation and First Launch
PulseStage is distributed as a self-contained Windows setup executable: PulseStage-Setup-1.1.0-x64.exe.
- Included runtime: You do not need Python, pip, C++ compilers, or developer tools installed. The complete runtime, dependencies, and UI assets are bundled.
- Installation Path: Installs cleanly to
%LOCALAPPDATA%\Programs\PulseStageby default. - AppData Persistence: User preferences, custom actions, and logs reside in
%APPDATA%\PulseStage\, keeping your presets completely safe across application updates. - Dedicated Desktop App: Runs as an isolated desktop window with its own bundled renderer. No separately installed browser, localhost address, or application HTTP server is used.
3. Non-Musician MIDI Primer
| Concept | What It Does | Real-World Analogy |
|---|---|---|
| Note On / Off | Triggers and releases a musical pitch with velocity. | Pressing and releasing a key on a piano. |
| Program Change (PC) | Switches the active sound patch or preset. | Selecting "Preset 24: Overdrive Lead" on a pedal. |
| Bank Select (CC0/CC32) | Expands presets into multiple banks of 128. | Flipping to a new folder of presets. |
| Control Change (CC) | Continuous controller values (0–127). | Adjusting an expression pedal or volume knob. |
| MIDI Clock | 24 PPQN pulses synchronizing tempo. | A digital conductor's metronome. |
4. Hardware Discovery & Signal Direction
Connect your USB-MIDI keyboard or USB-MIDI DIN interface to Windows. In PulseStage's top connection bar, click Refresh MIDI ports and select your device.
RX (Receive): Listens to incoming data from hardware controllers.
TX (Transmit): Sends commands and clock pulses to your equipment.
No Automatic Thru: Incoming notes are not automatically echoed to the output to prevent stage feedback loops.
5. Dual-Mode Practice Lab
PulseStage provides two distinct practice and testing modes:
- Mode A: Driver-Free Internal Practice Lab (Default): Works immediately out of the box with zero third-party drivers. Keybed notes dispatch directly to the input monitor, and commands dispatch to the Reference Pedal display.
- Mode B: Windows loopMIDI Loopback: Used for testing with external diagnostic tools like MIDI-OX. Requires the free loopMIDI driver with ports
PulseStage KeyboardandPulseStage Pedal Test.
6. Console Tour & Controls
The Studio interface includes:
- Command Station: Edit PC, CC, and Bank commands with explicit Send Command transmission.
- Master Clock: Set BPM (40–300), Start, Continue, Stop, and Tap Tempo.
- Integrated Keybed: Play notes with mouse or keyboard (A–;). Velocity, octave, and auto-release watchdog.
- Reference Pedal: Live incoming status display (Program, Expression CC11, Volume CC7, Params CC12/13, Footswitch CC64, and measured BPM).
7. Event Monitor & Diagnostics
The Event Monitor records, timestamps, and decodes every MIDI packet. Includes real-time controller graphs, clock interval timing traces, and export options (JSON, CSV, formatted text).
8. Test Bench: Receiver-Verified Diagnostics
Four automated tests verify: Note On/Off, Preset Change, Parameter Control, and 120 BPM Clock tracking. Tests only PASS when confirmed receipt bytes arrive at the receiver.
9. Performance Actions & Utilities
Create and execute multi-step macros with ordered steps and requested millisecond delays. Pitch bend (14-bit bipolar), Channel Pressure, and raw SysEx tools are built-in.
10. Troubleshooting & FAQ
Consult the guide for port conflict resolution, driver restarts, and single-instance handling.
Reference footswitch
The metal footswitch displays received CC64 status. Its amber lamp and ON/OFF readout follow MIDI received by the reference receiver. Clicking the metal button alternates 127 and 0 to the reference receiver only. OFFLINE means disconnected. Consult the device manual for real hardware mappings.
Desktop installation and technical notes
Desktop architecture and qualification
PulseStage 1.1 bundles Python, its application packages and a Qt WebEngine renderer. Edge, Chrome, WebView2, Python and pip are not required as separately installed applications. The desktop shell loads packaged local assets through an internal resource scheme and calls the MIDI engine through Qt WebChannel IPC. It does not start Uvicorn, an HTTP server, a WebSocket server or an application TCP listening port. Users never enter a localhost address or IP.
The renderer is still web technology inside a native window. Bundling that engine makes the installer and installed footprint larger than the former browser-dependent build. Chromium renderer helper processes belong to PulseStage; they are not an installed browser. Standard Windows system libraries and supported graphics drivers remain operating-system prerequisites. Keep Qt/Chromium patched in future releases.
Install and open
Install `PulseStage-Setup-1.1.0-x64.exe`, then use the PulseStage shortcut. Windows 10/11 x64 is the intended target; qualification is limited to the recorded test environment. The installer contains the UI engine and requires no renderer download. The build is unsigned unless accompanied by a verified signing record.
The title bar belongs to PulseStage. Closing the window shuts down the MIDI engine and releases owned notes/handles. Launching a second copy for the same user-data directory activates the existing window using a user-scoped Windows named pipe. There is no browser-process lifetime dependency or port-conflict selection. Help > User guide opens the offline guide inside the application.
Settings and actions remain under `%APPDATA%\PulseStage\config\user_config.json`. Renderer cache/state is under `%APPDATA%\PulseStage\renderer`; logs are under `logs`. Export opens a native Save dialog, initially in the `exports` folder. Installation/upgrade must preserve these user files. The desktop renderer's theme storage is separate from the old external browser's storage; choose the theme once in the new window. The dedicated desktop saves the theme through native Windows settings (HKCU/Software/PulseStage/PulseStage), avoiding browser local storage.
Practice without hardware or extra drivers
Open Test bench and use Internal Practice Lab. Connect the keybed and reference receiver. No loopMIDI or MIDI-OX installation is needed for this mode. The paths are separate: keybed -> internal input monitor; command station -> internal reference receiver. Incoming notes are not automatically forwarded to the chosen output.
Run the guided note, preset, parameter and clock checks. They require received evidence in the active transport. A changing editor value alone is not a send: click Send command. The reference knobs display received settings. The metal footswitch sends a CC64 test message; its lamp and readout confirm received state. They do not process audio. The keybed has adjustable velocity; this is not a pressure-sensitive physical piano.
Switch to Windows loopMIDI mode only for independent OS-port inspection or inter-application testing. Create `PulseStage Keyboard` and `PulseStage Pedal Test` in separately installed/running loopMIDI, then connect. The mode switch stops engine activity, releases notes and clears input/output selections. Missing ports produce an error. Never describe internal practice as Windows-driver or physical-hardware qualification.
Physical equipment
Compatible USB-MIDI hardware uses Windows-exposed MIDI ports; some devices need their manufacturer's driver. DIN equipment needs a USB-MIDI interface/cables. Select the actual port, match channel and documented PC/CC/bank mapping, and enable external MIDI clock if supported. Direct hardware operation does not need loopMIDI or MIDI-OX. An ordinary audio instrument/cable/footswitch is not automatically a MIDI endpoint. Sound requires the instrument's own sound generator and audio path. Physical hardware was not verified in this desktop conversion.
Development and build
Normal source launch: `python run_app.py` after installing the pinned build environment. Developer tools are not operator prerequisites. For reproducible packaging, install `requirements-build.lock`, run `python -m PyInstaller --clean --noconfirm pulsestage.spec`, then compile `installer.iss` with Inno Setup 6. Build files resolve the checkout directory instead of hard-coding a developer drive. Source-only HTTP development is explicitly separate: `python -m src.launcher.development_server`; it is not started by the desktop product.
`PulseStage.exe --self-check --report result.json` exercises the socket-free application transport with temporary configuration and simulated hardware. It checks internal RX note-on/off and received PC24, and shuts down. It is not a visual renderer, installer or physical-device test.
Known limits
Actual physical instrument response, a clean Windows VM without any browsers installed, long-duration physical timing, broad accessibility/high-DPI coverage and every supported GPU remain separate qualification work. The architecture does not discover/launch installed browsers or expose a network-control server in desktop mode. The existing video predates this conversion and describes the old loopMIDI-based demo; follow this guide for the new internal default. Do not distribute that video as an exact 1.1 installation walkthrough without updating it.