Inside the project
Prepared with the project’s development agent from source and retained evidence. This is a project-owner assessment, not an independent customer review. Dated checks were not rerun for this website.
QStation is most useful when a clean, close-mic'd or DI'd DAW track needs to sound like it was captured live on a stage — through a specific microphone, at a distance and angle, inside a room, bleeding into the rest of the band. Rather than a reverb or a fixed mic-EQ curve, it models a 3D studio stage and derives distance, delay, equal-power pan, frequency-dependent polar rejection, proximity, mic tone, room and performance movement from where you place the mic and the sources. The strongest working parts today are the C++ spill/room engine (up to 190 voices), the 70-model mic locker with four real polar patterns and a live polar scope, and the breadth of DAW routing: five Audio Component identities from one extension, a same-process multi-instance shared stage, and a Logic-friendly Drum Relay/Drum Kit workflow on fixed kit geometry. An ARA2 region mode processes region audio in place (region-based stage/mic processing only — no pitch/note editing). Recent work connected the numerics to two sibling Swift packages strictly off the realtime thread: SemanticCompute for batched EQ design, region IIR filtering, spectral metrics and RBF polar-table baking, and ResearchControls for a 4D mic-position pad and a live goniometer. The honest caveats: the integrations are build- and component-test verified but not yet exercised in a DAW; multi-instance live spill needs same-process hosting; signing is local/dev with no notarization or license; and the project ships no UI screenshots or video, so marketing captures do not yet exist. It is deliberately a restrained studio utility, not a finished retail release.
What stands out
- Physical stage/mic model (distance, delay, pan, polar rejection, room, live-feel) rather than a static emulation curve
- 70-profile mic locker with four polar patterns, mic-specific off-axis colouration, and a live polar scope of real post-DSP energy
- Deep routing: five AU identities (insert, sidechain, Drum Kit, Drum Relay, ARA) from one extension
- Same-process multi-instance shared stage with cross-instance editing and a Session Browser
- Logic-friendly Drum Relay/Drum Kit workflow on fixed kit geometry
- Conservative realtime engineering: 44.1–192 kHz, 32–4096 buffers, per-block (not per-sample) mic lookups, render-health throttling
- Offline compute integrations kept strictly off the realtime thread, with component tests passing (2026-10-17)
Current limits
- Integrations build/component-verified only — not runtime-tested in a DAW
- Multi-instance live spill requires same-process AUv3 hosting; cross-process hosts need sidechain/ARA/explicit routing
- No pitch/note/time-stretch (ARA is region stage/mic processing only)
- Local/dev signing; not notarized, not distributed, no project license
- No UI screenshots or video demos exist in the repo; mic-locker photos are not cleared for redistribution
- QStation's own unit tests not re-verified this session (read-only; README notes testmanagerd sandbox limits)
Features & evidence
Mic-spill / room DSP (BleedProcessor)
sourcePer-voice distance->delay/attenuation, equal-power pan, fractional delay, one-pole mic tone, 8-tap mic FIR shade, cross-fed room; up to 190 voices; Kalman-style position/level smoothing; FIR high-precision mode.
Recorded evidence
README status 'Implemented'; DSP source headers 11-15 Jul 2025; in-process render harness QStationIOProbe present (pass status not re-verified this session)
70-model mic locker + polar patterns
sourceDynamic/condenser/ribbon/tube/FET/stereo/multipattern profiles; omni/cardioid/hypercardioid/figure-8 with mic-specific off-axis colouration; live polar scope.
Recorded evidence
README Core Features; Resources/MicLocker/.json|.csv + generated Swift catalog + C++ priors; 32 bundled mic PNGs
Five AUv3 component identities
sourceInsert aufx/thrd, sidechain aufx/thrs, Drum Kit aufx/thdk, Drum Relay aufx/thrl, ARA aumf/thra - from one extension.
Recorded evidence
README Install identities; QStationExtension/Info.plist AudioComponents
Multi-instance shared stage + Session Browser
sourceEach instance publishes selected-source audio + parameter snapshot; siblings collect spill; one window edits another instance.
Recorded evidence
README Multi-Instance Behavior; QStationInstanceRegistry; QStationIOProbe sibling-spill test described
Drum Relay / Drum Kit workflow
sourceSingle-input relays on kit tracks feed a drum-bus instance on fixed shell/cymbal geometry; one-way routing; inter-piece bleed matrix.
Recorded evidence
README Drum Kit Geometry + Live Routing; QStationIOProbe drum-routing tests described
ARA2 region mode
sourceFactory, document controller, playback/editor/view roles, chunked region capture, position-aware multi-region rendering.
Recorded evidence
README ARA2 Region Mode; QStationARAIntegration/QStationARARegionStore
SemanticCompute offline DSP integration
component-testedBatched peaking-EQ design, GPU/CPU region IIR filter, STFT->centroid analyzer, RBF polar-table baker - all off the realtime thread.
Recorded evidence
docs/SemanticCompute-Offline-Integration.md: SemanticCompute package tests 5/5 parity + 6/6 offline (RBF baker reproduces measured cardioid angles ~1.5e-6); headless xcodebuild BUILD SUCCEEDED 2026-10-17
ResearchControls UI (4D mic pad, goniometer)
component-testedSemanticPad4D bound to mic X/Y/height/angle; live goniometer fed by a new kernel L/R sample tap.
Recorded evidence
same doc: API compile tests 2/2 + BUILD SUCCEEDED 2026-10-17; not DAW-runtime tested
Presets + full AU state recall
sourceLive Band, Close Vocal, Loud Stage, Room Pair; fullState/fullStateForDocument; mono/stereo layouts.
Recorded evidence
README Core Features
Logic auto-track assignment
sourceUI-only: reads selected Logic track name (Accessibility/Apple Events) and classifies to mic/pattern; never on the render thread.
Recorded evidence
README (Logic track auto assignment; UI-only, permission-gated fallback)
Whole-plugin build
sourceApp + extension compile and link (arm64 + x86_64).
Recorded evidence
docs/SemanticCompute-Offline-Integration.md records BUILD SUCCEEDED 2026-10-17, signing disabled; not installed-tested in a DAW, not released
Review updates & corrections
- No new engineering since the 2026-10-17 biography (read-only session).
- The SemanticCompute/ResearchControls integration, its passing component tests, the app+extension BUILD SUCCEEDED, and the macOS/iOS 26 deployment-target bump were already recorded on 2026-10-17 - unchanged.
- This packet adds a review/feature-state lens, a demo walkthrough, and demo-asset clearance flags; it does not add new functionality.
Workflow walkthrough
A guide to the native workflow. These steps describe the app; only the recordings and images embedded on this page are available as website demonstrations.
- Insert QStation on a track (or pick the sidechain / Drum Kit / Drum Relay / ARA identity for advanced routing).
- Choose a microphone from the locker; pick a supported polar pattern; set distance, axis and height.
- Place the source and mic on the 3D stage; set room size/damping/live-feel/wet mix; audition against the dry signal.
- For a band: run several instances and stage them together from one window via the Session Browser.
- For drums: put a Drum Relay on each kit track and a Drum Kit on the bus, matched by Relay Group; tune pieces in the Kit tab.
- Automate any parameter; recall via full AU state. (Offline: ARA2 region mode processes region audio in place.)
Planned captures · not yet available
- Plugin editor / stage / mic-locker screenshots - do not exist; would require running the 'QStation Plugin' Xcode preview or the built app
- Walkthrough/demo video - does not exist
- Not web-playable: native macOS AUv3 cannot run in a browser; no interactive site demo possible
Development biography · earlier archive
Development profile compiled from project source and retained records in October 2026. Dates and test results describe those records; they do not imply a new build, live acceptance test or public release.
Biography
QStation answers a specific studio problem: a dry, close-mic'd or DI'd track sounds nothing like the same source captured live on a stage — through a chosen microphone, at a distance, off-axis, bleeding into the rest of the band and coloured by the room. Most tools approximate this with reverb or a fixed mic-emulation curve. QStation instead builds a geometric model and derives the capture from it.
It ships as a macOS AUv3 effect extension plus a lightweight SwiftUI host app that loads, validates and auditions the extension. Beneath the SwiftUI editor sits a self-contained C++ DSP core. Its centre is BleedProcessor, a per-voice spill/room engine scaling to 190 instrument voices: for each source it computes stage distance → delay and attenuation, equal-power pan from stage X, a fractional-delay line, a one-pole mic tone, an 8-tap mic FIR "shade", then a cross-fed room delay. Source and mic motion pass through control-rate "Kalman-style" scalar smoothers so positions glide rather than zipper, and a high-precision FIR mode swaps the one-pole tone for a multi-tap body/air response.
The microphone is the signature. A 70-profile locker spans dynamic, condenser, ribbon, tube/FET, stereo, multipattern and instrument-specific models (Shure SM57/SM7B/SM58, Neumann U87 Ai/TLM-103, Telefunken U47/ELA M 251, Royer R-121, AEA ribbons, Sennheiser, Audix, DPA and more). Profiles are generated from supplied 30-point EQ curves and a spec matrix into a Swift catalog plus realtime-safe C++ priors (tonal bands, proximity estimates, polar amplitude/polarity tables, Kalman observation priors). Four polar patterns — omni, cardioid, hypercardioid/supercardioid, figure-8 — render as analytic curves with mic-specific off-axis colouration; each mic exposes only its real pattern set. A live polar scope overlays the chosen pattern with a decimated trace of the actual post-DSP audio energy.
QStation is unusually deep on routing: one extension presents five Audio Component identities — standard insert (aufx/thrd/Entr), eight-bus instrument sidechain (aufx/thrs/Entr), Drum Kit multibus (aufx/thdk/Entr), Logic-friendly single-input Drum Relay (aufx/thrl/Entr) and an ARA music-effect entry (aumf/thra/Entr). A same-process live-instance registry lets every active QStation publish its selected-source audio plus a full parameter snapshot; siblings collect those buffers as spill sources, and one window can focus and edit another instance's mic/room/matrix. The Drum Relay/Drum Kit workflow models a real kit against fixed shell/cymbal geometry (20" kick, 14" snare, rack/floor toms, hats, overheads, room) so close-mic tracks feed a drum-bus instance without eight visible sidechains.
Intended audience: producers and mix engineers on macOS DAWs (Logic especially, given the Drum Relay design) who want live-room realism, cohesive "same room" glue across a multitrack session, or creative re-micing of clean sources.
A concrete user journey: insert QStation on a track; pick a mic from the locker and a supported polar pattern; set distance, axis and height; place the source and mic on the stage and dial room size/damping/live-feel/wet mix; audition against the dry signal. For a whole band, run several instances and stage them together from one window via the Session Browser. For drums, put a Drum Relay on each kit track and a Drum Kit on the bus, matched by Relay Group, then tune pieces in the Kit tab. Every parameter is host-automatable and recalled via full AU state. Offline, an ARA2 region mode processes region audio in place (region-based stage/mic processing only — pitch/note editing is explicitly out of scope).
The "computing integrations" connect QStation's numerics to two sibling Swift packages in strictly offline/prepare/ARA roles: SemanticCompute (a Metal/CPU kernel-family compiler) for batched EQ design, region IIR filtering, spectral metrics and RBF polar-table baking; and ResearchControls for a 4D mic-position pad and a live goniometer. The rule is stated everywhere in the docs: nothing touches the realtime process() thread — GPU/offline only, while the 190-voice mixer and recursive smoothers stay on the CPU. Runtime behaviour is conservative throughout: non-interleaved Float32, 44.1–192 kHz, 32–4096-frame buffers, mic lookups computed once per block, and a render-health monitor that throttles analysis under load.
Modules / features (authored vs dependency)
What a visitor can see/hear/try (all authored unless noted):
- 3D stage designer — draggable mic + live-instrument nodes, height posts, polar overlay, spill halos .
- Mic locker — dual mic towers, scrollable 70-model selection, pattern/axis/distance/height/spill/output, live polar scope.
- Mic-spill DSP — distance delay/attenuation, polar/harmonic rejection, proximity, mic tone, room (size/damping/early reflections/spread), live-feel; FIR high-precision shade; Kalman-style smoothing (
BleedProcessor). - Multi-instance shared stage + Session Browser — publish/focus/mute/edit sibling instances in-process.
- Drum Relay + Drum Kit bus — fixed kit geometry, one-way routing, inter-piece bleed matrix.
- Logic auto-track assignment — UI-only; reads selected track name via Accessibility/Apple Events, CMAC-style lexical classification (never on the render thread).
- ARA2 region mode — region capture + position-aware rendering, multi-region mixing.
- Runtime analyzer — level, peak, crest, approx LUFS, brightness, transient density, stereo width/correlation, room boom/air, mains-hum (Goertzel), DSP time, live-instance count, ARA status; plus a goniometer (added via the ResearchControls integration).
- Presets — Live Band, Close Vocal, Loud Stage, Room Pair; full AU state recall; mono/stereo layouts.
- Dependencies/integrations (not core-authored): SemanticCompute offline DSP; ResearchControls UI controls; ARA2 SDK (headers supplied externally).
Technical foundations & local packages
- Languages/frameworks: Swift/SwiftUI (editor + host), Objective-C++ bridge (
QStationExtensionObjCWrapper), C++ DSP (BleedProcessor,QStationExtensionDSPKernel,Biquad,FIRConvolver/FIRFilter,FractionalDelay/FarrowFractionalDelay,PolarPatterns/FreqPolarPattern), AudioToolbox/AVFoundation (AUv3), Accelerate/vDSP (optional FIR path). - DSP maths: RBJ biquad cookbook; Goertzel single-bin power (50/60 Hz hum); mid/side stereo metrics; mic priors generated from supplied curves/spec matrix.
- Local packages: SemanticCompute (Metal/CPU kernel-family compiler — biquad design, IIR, FFT/STFT, Goertzel, correlation, RBF interpolation, spectral features) used offline; ResearchControls (SwiftUI research controls —
SemanticPad4D4D pad,ResearchGoniometer) used in the UI. Both wired as local Swift Package dependencies. - ARA2: headers via
ARA_API_DIRorVendor/ARA_API; factory, document controller, playback/editor/view roles, chunked region reads.
Maturity by feature (dated evidence; unknowns marked)
- Source implemented: Core DSP, AUv3 (5 identities), SwiftUI editor, host app, multi-instance, Drum Relay/Kit, 70 mic profiles, ARA2 — README.md status table marks all "Implemented" (table undated). Initial DSP source headers dated 11–15 Jul 2025.
- Integration source + tests passed: 2026-10-17 —
docs/SemanticCompute-Offline-Integration.mdrecords SemanticCompute package tests green (5/5 parity incl. a biquad-recurrence fix; 6/6 offline incl. an RBF polar baker reproducing measured cardioid angles to ~1.5e-6).SEMANTICCOMPUTE_UPGRADES.mdassessed "Complete 100%" on 2026-07-29 (embedded status). - Built: 2026-10-17 — same doc records a headless
xcodebuildBUILD SUCCEEDED for app + extension (arm64 + x86_64, signing disabled). Evidence is the doc, not re-run this session. - QStation's own unit tests (QStationTests/QStationIOTests) passing: UNKNOWN / not reported by the project agent on 17 October 2026 . Test source is present.
- Installed / runtime-verified in a DAW: NOT verified — integrations are build/link-verified only; no DAW runtime test on record.
- Released / deployed: NO — signing is local/dev (Apple Development), not notarized/distributed; no project license specified .
Roadmap, limitations, FAQs
Roadmap : more mic profiles + profile import/export; DAW-specific compatibility notes (Logic, Studio One, Reaper, Cubase/Nuendo, Live); more host-driven ARA conformance tests; notarized release packaging; runtime-test the SemanticCompute/ResearchControls integrations in a DAW; optionally enable the (default-off) RBF dense polar table and bridge MicPolarTableBaker → the C++ lookup.
Known limitations: multi-instance live spill needs same-process AUv3 loading (cross-process hosts must use sidechain/ARA/explicit routing); integrations build/link-verified, not DAW-runtime-tested; GPU/offline only, never on the realtime thread; no pitch/note/time-stretch (ARA is region processing only); local/dev signing, no notarization, no license; auval doesn't enumerate AUv3 app-extensions on this machine (use PlugInKit registration + signed container); Logic auto-track needs Accessibility permission and falls back to "unavailable".
FAQs:
- Is it a reverb? No — a geometric stage/mic spill model, not a reverb or static mic-EQ.
- Which DAWs? Any macOS AUv3 host; Drum Relay is the recommended Logic path (one sidechain per instance).
- Does the ARA mode edit pitch? No — region-based stage/mic processing only.
- Are the mic models the real microphones? They are estimated profiles from supplied curves/specs, branded "Entertainment" — not official manufacturer models.
- Can I buy/download it? Not currently — no public release or license is specified in the repository.