MiniHub

Desktop music workstation · Windows

Your signal. Your sound. Your way.

MiniHub is a musical sandbox built around the Arturia MiniLab 3. Typed cables in a Patch Bay — not the page you happen to be looking at — decide the signal path.

No release yet · builds from source

The Patch Bay

Cables are typed. What you wire is what you hear.

Three kinds of port, three kinds of cable. A MIDI output reaches a MIDI input and nothing else. Everything you wire is one node network, and that network is what plays — not the window you happen to have open.

Three nodes wired in the MiniHub Patch Bay: MiniLab 3 sends MIDI Out to the MIDI In of VST 1, whose Audio Out reaches the Audio In of Audio Output.

Patch Bay · MiniLab 3 → VST 1 → Audio Output

  • MIDI — notes and control change
  • Audio — sound reaching the engine
  • Control — parameters, no sound

What it does

Five parts, one signal path.

Routing

Patch Bay

Typed ports that refuse the wrong connection, cycle detection across the whole node network, and wiring that outlives every panel you open and close.

Native engine

VST3 host

Serial plugin chains with native editors, plugin state saved inside the project. C++17 and JUCE on WASAPI, sample-accurate.

Arrangement

Sequencer

MIDI and audio tracks on one timeline, recording, a clip editor, and multi-format export that renders what you heard.

Processing

Mixer, Morpher, Arpeggiator

Nodes you wire like anything else. The arpeggiator carries its own instrument face — knobs and a step grid, not a form.

Hardware

Control learning

Bind a physical knob or pad to a VST3 parameter. Native MIDI keeps working while the binding is made.

Live

Rewire while it plays

Adding, moving and unplugging nodes never stops the audio. Generative sets are meant to be changed mid-flight, not reloaded.

Control learning

Arm a knob. Move it. It is bound.

Pick a control on the MiniLab, arm learning, then touch the parameter you want it to drive. The controller is drawn as it really is — eight knobs, four faders, eight pads, two touch strips.

The MiniLab 3 control surface drawn in MiniHub, with knobs K1 to K8, faders F1 to F4 and eight coloured pads, above an Arm Learning button.

Control bindings · the MiniLab 3 surface, drawn from the device profile

The approach

Most of the design is what it refuses.

These are not gaps waiting to be filled. Each one is a decision, written down with its reason, and each one is what keeps the rest small enough to reason about.

No build step
No bundler, no transpiler, no framework. What sits in src/ is exactly what runs.
No runtime dependencies
Two development dependencies, and neither one ships. Tests run on node:test, not a runner.
No network
Nothing phones home. No account, no telemetry, no usage statistics, no update check. It works with the cable unplugged.
No plugin system
No scripting language, no public API, no extension format. The plugins are VST3 — that problem is already solved.
Windows only
WASAPI, the Windows VST3 format and %APPDATA% are commitments, not debt. A portability layer added just in case is refused on sight.
Not a DAW clone
A feature is never justified by other software having it. It is justified by finishing a track, or by playing live.

Status

A personal project, in active development.

There is no release and no installer yet. MiniHub builds and runs from source on Windows 10 and 11, with Visual Studio 2022, CMake 3.22 and Node 20 or newer. The native SDKs are fetched separately and never committed.

JavaScript tests
586node:test, no runner
Native checks
3 952four test binaries
Release build
0errors and warnings
Licence
MITsource on GitHub