• Welcome to ASR. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

Spherify (object-based immersive authoring software) - submitting it for review

Sonus Immersivus

Member
Audio Company
Joined
Jan 11, 2024
Messages
7
Likes
6

I develop the software described below and I'm posting it here for review. That's the whole purpose of the post: I want it evaluated critically by people who measure things, and I've tried to include the information that would make a real evaluation possible rather than a marketing summary.

What it is

Spherify takes a stereo source, separates it into stems, places each stem as an object in a 3D scene, and renders that scene. Output is object-based - ADM BW64, IAMF and MPEG-H - plus 11 channel-based layouts rendered discrete, stereo through 22.2. Native C++/JUCE, Windows and macOS, my own renderer and export pipeline, several years of work behind it. Separation is hardware accelerated: MLX on Apple silicon, CUDA on Nvidia.

I'll state the obvious limitation before anyone has to: deriving a spatial scene from two channels is not equivalent to a native multichannel mix, and I don't claim it is. What it offers is an authoring environment where the derivation stays editable rather than baked, so the placement decisions are yours and reversible up to export.

Signal path

  • Import. Source file is decoded to float32 and written to the project bundle as a
    float32 WAV at its original sample rate. No resampling, no normalisation on import.
  • Separation. Stems are produced by Demucs, which runs at a fixed 44.1 kHz. If the
    project is at another rate the mix is converted to 44.1 kHz for inference and each stem
    converted back afterwards. Stems are written as float32 WAV. The resampler is linear
    interpolation; when rates already match it is a straight copy.
  • Scene. Each stem becomes an object carrying position (x/y/z), size, spread and gain.
    Nothing is baked - position and gain are metadata until render time.
  • Per-object processing. Object plugin chains (Pro tier) run per object, in float32,
    with plugin delay compensation applied across objects so differing chain latencies stay
    aligned.
  • Pan and mix. Objects are panned by a distance-weighted constant-power (DBAP-style)
    panner into the selected speaker layout, and summed in float32. The same panner is used
    for live monitoring, the preview cache and the bed bake, so those agree with each other.
    It is not a Dolby renderer.
  • Master chain. EQ → dynamics (compressor and true-peak limiter) → spatial FX. Bypassed
    by default; the limiter is where dither lives.

    From there the path splits:

  • Monitor. Master output goes to the CoreAudio device at the project rate and selected
    buffer size. Meters and playhead are delay-compensated against device and plugin latency
    so the display tracks what you hear.
  • Export. Object audio is written discretely - a 10-channel bed plus one channel per
    object - with position carried as ADM metadata rather than panned into the file. Optional
    output-level processing (loudness normalisation to a target with a soft limiter) is applied
    here, and is **on by default**; setting mastering mode to "Raw audio" bypasses it and
    passes the buffer through unaltered. ADM BW64 and the BW64 bed are written 24-bit fixed;
    channel-bed WAV, MPEG-H intermediate and YouTube AmbiX are 32-bit float. There is no
    bit-depth selector. Dither is TPDF with selectable noise shaping and defaults to Off; it
    sits inside the master limiter, so it only applies when the master chain is engaged.
Windows platform limitations

On Windows the app can hand Atmos or DTS:X to the Windows Spatial Audio framework for HDMI passthrough. The stream is decoded on the receiver, so the app never sees what comes back out. I can verify what I encode. I can't verify what your AVR does with it, and there's no way for me to close that loop from inside the software.

The consequence is that I disable in-app post-processing previews in passthrough mode, rather than show the user something that isn't what they'll hear. The processing still exists and still bakes into exports; auditioning it requires ASIO, where I have the full discrete path.

On hardware

There's a longer-term intention to build an embedded Linux version that behaves as a real-time device rather than an application. I mention it only because it will come up: no timeline, no prototype I'd defend, nothing to evaluate. Today this is multi-platform software and that's what I'm asking you to judge.

Links
There's a free tier, which is enough to put it through something adversarial.
 
If the interface is good enough, there is probably a decent market for this without any of the AI stems stuff, using DAW projects before they've been mixed down to stereo.
 
If the interface is good enough, there is probably a decent market for this without any of the AI stems stuff, using DAW projects before they've been mixed down to stereo.
That's where the majority of the work goes going forward, to make it less of a stem separator and more of an immersive authoring / creation platform.
 

Spherify 1.3.1 is out — Monitor, Patchbay, the Spatial FX panel, and a manual that answers you​

This is the biggest release we've put out. Rather than a long list of small things, 1.3.1 adds four areas that weren't in Spherify before, and finishes several that were half-built.

Here's what's actually new.

Monitor — measure your room, and mix against the truth​

There's a new workspace: Monitor, on the workspace rail or Command+6.

Spatial mixing quietly assumes your speakers are telling you the truth. If one is further away than the others, or louder, or sitting in a corner that lifts its bass, every placement decision you make is compensating for the room instead of serving the mix. Monitor measures that and corrects it.

It has three panels:

  • Speaker Map — a top-down view of your layout, with test signals so you can play one speaker at a time and confirm the sound arrives where the map says it should. No correction fixes a swapped pair, so this is worth doing first.
  • Calibration — pick a measurement mode and run it. There are four, from a full sweep of every speaker down to a distance-only re-measure after one speaker moved.
  • Monitor — the correction itself: gain, delay and EQ per speaker, one tab each.
Along with the workspace:

  • A calibration wizard that walks the whole measurement through, with a microphone setup step covering input, sensitivity, a mic calibration file, and the latency baseline that makes distance measurement mean anything.
  • FIR room correction derived from the sweep, not just gain and delay.
  • Bass management with up to 8 subs, a proper crossover, and the subwoofer feed taken after the crossover rather than before it.
  • Calibration files and calibration projects, plus import and export for third-party correction formats.
  • Monitor profiles, and calibration that survives a device change or an application restart.
One deliberate design decision worth stating plainly: measuring is unrestricted on every tier, and so is loading. Free can play test signals, run the wizard, see the result, hear it, open a Spherify calibration file, and import a third-party format. What Free doesn't do is let a result back out — saving, exporting, and surviving a restart need a paid tier.

Crossover, bass management and the filter engine live in Preferences ▸ Monitor, since they're settings rather than per-session choices.

SpatialViz — see where the energy actually goes​

Object dots tell you where you put something. They don't tell you what the renderer did with it. On a layout with a sparse height row, or a wide bed, or a panner working near the edge of the array, those two are not the same picture — and until now you had no way to look at the difference.

Every Stage viewport now has a Visualization menu.

Two ways to draw it:

  • Point Cloud — a live cloud of points that decays as it goes, so you see movement and tails rather than a static snapshot.
  • Voxel Grid — the same energy accumulated into a grid, which is what to reach for when you want coverage and distribution rather than motion. It answers "is anything ever actually happening up there?"
Two things to draw:

  • Speakers — Rendered Result. The actual multichannel speaker feed, put through an STFT analysis and turned into direction from the energy vector. This is what the renderer is really producing.
  • Objects — Authored Intent. Exact object metadata positions — what you asked for.
That pairing is the point. With the multi-view you can run up to four viewports, each with its own visualization, so authored intent and rendered result can sit side by side on the same transport and you can see where the room is not doing what the object list claims.

In Speakers mode you choose how multichannel energy becomes points: Spectral Energy Cloud or Energy Centroid. Either can be drawn with Viridis, Turbo or Deep Blue White.

The analysis is cached, so seeking is instant rather than re-analysing. The speaker layout comes from your active session layout, and stage positions are converted to ADM before analysis, so what you see matches the coordinate system everything else in Spherify uses.

There's also a DBR Debug Draw layer, which draws scene geometry from the new offline spatial renderer — proxy or visual mesh, with the debug categories individually switchable. It is diagnostic rather than musical; leave it on None unless you're chasing something specific.

Spatial FX — four effects in one panel in Stage​

Stage has a Spatial FX panel with a tab per effect.

Spatial Echo​

Up to 32 taps. A tap is one delayed repeat, and you decide where in the room that repeat is heard from.

The part that's genuinely new is what a tap listens to. By default a tap echoes the whole object mix, which is the familiar behaviour. But each tap now has a Sources control:

  • All — repeats every scene object
  • Only — repeats just the objects you tick
  • All except — repeats everything other than the objects you tick
The source choice happens before the tap's delay and feedback, so two taps can listen to different objects, run different delays and tails, and still sit in independent positions in the room. An object's mute, solo and gain follow it into the echo — pull a fader down and its repeats come down with it.

Taps are also editable directly in the Stage viewports. They live in the same coordinate space your objects do, so you can click one, drag it, and transform it with the same gestures — in the perspective view too. Selection moves both ways between taps and objects. The tap overlays are drawn truthfully, including when a tap tracks the playhead, and a drag commits on release rather than on every mouse move.

Echo isn't free, so the panel now shows measured CPU advisories — what the configuration is costing you, and how to take it back.

Spatial Expander​

Turns a stereo pair into a small constellation. It listens to how much your two channels agree: the part they agree on (a lead vocal, a centred kick) is the direct part and stays where you put it; the part they disagree about (room tone, reverb tails, wide chorusing) is lifted out into a ring of new objects around the listener.

Nothing is duplicated and nothing is invented — the signal is split and the portions are sent to different places. The satellites are real objects: they appear in the object list and every Stage view, can be moved and animated, save with the project, and appear in exports.

It needs a real L/R pair of mono objects. It can now be applied and removed from its own panel, and it runs on a realtime streaming engine, so it works during playback rather than only as an offline step.

Spatial Drive​

Saturation with a frequency split built in. It divides the master into a low band and a high band, drives one of them and leaves the other clean — so you can thicken a low end without frying cymbals, or add bite to the top without making the bass woolly.

Crossover from 20 Hz to 20 kHz (400 Hz default), Drive, four shapes (Soft, Tape, Diode, Fold), oversampling up to 8x, and a Spread control that blends in a decorrelated version to widen the driven signal rather than distort it further. Level is compensated as you drive, so you're judging character instead of being fooled by a volume increase.

It also carries a per-channel alignment trim for fixing a monitoring rig, and in this release the whole trim set is editable in one popup rather than channel by channel.

Motion Generator​

Draws movement for you: pick a shape, a size and a speed, choose the stretch of timeline it should cover, and Spherify writes the path.

The important thing is that it writes ordinary position automation and then gets out of the way. There's no mode the object is left in. The movement shows up in the automation lanes and in the Animation Editor, where you can reshape any part of it by hand; it saves, reloads and exports like anything else.

New here: a set of visual path presets (Classic Orbit, Infinity, Corkscrew, Pendulum Sweep, the Lissajous knots, Random Wander and others), each with a one-line description; Preview Path, which draws the shape into the Stage without committing so you can judge it against your other objects first; and generated paths now push into the live engine and write to spatial automation. Provenance is persisted, so Spherify remembers a path was generated.

One known limit, stated up front: applying replaces all position automation between Start and End for that object, not just automation the generator wrote earlier. Narrow the range first if you have hand-drawn shaping to keep.

Patchbay — a graph editor for plug-in routing​

When a four-slot channel rack can't express the signal path you need, open the Patchbay from the View menu.

It's a proper routing graph: a harness input rail, plug-in nodes, a harness output rail. Each node shows its negotiated buses as input and output pins, and cables connect channels — a sidechain input is just a channel on a sidechain bus.

  • Drag pin to pin to add a cable; drag a node to reposition it; shift-drag to batch-connect a whole channel run at once.
  • Node menus open the plug-in editor, configure the main bus, or remove the node.
  • Main-bus layouts are probed from the hosted plug-in before they're applied, including plug-ins that report arbitrary widths.
  • Every edit is validated before it's accepted, so a connection the graph can't support is refused rather than applied and left to fail during playback. Cycles, bad directions, out-of-range channels and duplicate cables are all rejected. Different sources feeding one destination sum there.
  • Latency along every path in the graph is compensated.
  • The patchbay is stored as its own project document with undo and dirty state, so changing the active scene doesn't silently replace your routing.
Alongside it, object plug-in hosting got firmer: a single hosted instance per slot shared by the graph and the editor, object-attached plug-in groups with delay compensation, grouped stereo-pair slots that commit their edits together so one member can't drift from the other, and a tab bar in the Add-Plugin chooser for grouping results.

Import a folder of stems​

You can now point Spherify at a folder of stems and have it work out what they are — and, if you don't have one open, the import can create the project it imports into.

Filename role detection is much wider, instrument classifiers are reused across a folder rather than re-run per file, naming policy carries through the import, and the review step detects and reviews stem instruments with polished display names. You can preview the stems in the review before committing.

A complete in-app manual​

Press F1. There's now a dockable help panel with contextual help — it opens on the page for whatever you're looking at, and it covers the whole application: getting started, concepts, Stage, Timeline, Mix, Master, Monitor, Settings, Projects, Workflows, and a reference section with a glossary, keyboard shortcuts, supported formats, file locations, troubleshooting, and a tier comparison that states the policy the app actually enforces rather than a marketing summary.

Smaller things that add up​

  • Compact mixer strips. The Mix workspace has Comfortable and Compact densities for the same strips. Compact keeps the identity colour, fader, peak and loudness meters, mute/solo and the EQ and dynamics mini-previews, moving the rest into pictograms and tooltips. The density is shared with the Patchbay so columns stay aligned.
  • Every workspace and closable panel is reachable from the View menu — no more panels you can close and then can't find.
  • A grow chip and a full-screen chip on every Stage viewport.
  • Timeline zoom sliders got a tick scale and a drag that works.
  • Per-stage CPU load breakdown in the status bar.
  • A bass trim on the transport, and both gain sliders doubled in range.
  • Motion capture: stereo capture with eye split, camera preview thumbnails, a per-camera resolution and frame-rate picker, a multi-camera freeze cap, and previews that no longer depend on tracking being active. Camera pixel privacy is scoped narrowly.
  • Slicing models now come from our own CDN with pinned revisions, instead of Hugging Face — faster and no longer dependent on a third party's availability.
  • Spatial master effects now carry into an object-based export.
  • Spatial interaction performance in the Stage views is noticeably better, and a repeating motion path is drawn once rather than once per repetition.

Fixes worth calling out​

  • Horizontal scrollbars are drawn where they actually are.
  • The help panel no longer deletes table rows off the bottom.
  • The calibration review opens at a height that shows every section.
  • The licence gate no longer deletes the Monitor settings it was guarding.
  • Fixed the monitor FFT convolution dropping blocks, and added a filter-engine toggle.
  • The calibration microphone reaches the app properly, and survives a webcam being present.
  • Spherify now refuses to call a recording of a room a measurement.
  • Retired panel IDs are purged rather than parked in the closed set.
  • Cold tracking control gate repaired.

Notes​

  • Tiers. Monitor measuring and loading, Spatial Echo, Spatial Expander, Spatial Drive and the Motion Generator are available on Free. Mix editing and compact strips need Standard. Patchbay routing and object plug-ins need Pro. The full table is in the manual under Reference ▸ What each tier includes.
  • Projects from earlier versions open as they were; Spatial Echo taps default to All objects, which is how the old whole-mix echo behaved.
 

Attachments

  • Screenshot 2026-08-07 at 15.06.10.png
    Screenshot 2026-08-07 at 15.06.10.png
    386.2 KB · Views: 35
  • Screenshot 2026-08-07 at 15.16.09.png
    Screenshot 2026-08-07 at 15.16.09.png
    167.4 KB · Views: 24
  • Screenshot 2026-08-07 at 15.16.00.png
    Screenshot 2026-08-07 at 15.16.00.png
    165.1 KB · Views: 27
  • Screenshot 2026-08-07 at 15.15.11.png
    Screenshot 2026-08-07 at 15.15.11.png
    153.4 KB · Views: 24
  • Screenshot 2026-08-07 at 15.14.18.png
    Screenshot 2026-08-07 at 15.14.18.png
    302.4 KB · Views: 27
  • Screenshot 2026-08-07 at 15.14.13.png
    Screenshot 2026-08-07 at 15.14.13.png
    306.8 KB · Views: 29
  • Screenshot 2026-08-07 at 15.13.10.png
    Screenshot 2026-08-07 at 15.13.10.png
    311.8 KB · Views: 27
  • Screenshot 2026-08-07 at 15.12.56.png
    Screenshot 2026-08-07 at 15.12.56.png
    534.9 KB · Views: 35
  • Screenshot 2026-08-07 at 15.12.40.png
    Screenshot 2026-08-07 at 15.12.40.png
    581.9 KB · Views: 29
  • Screenshot 2026-08-07 at 15.12.48.png
    Screenshot 2026-08-07 at 15.12.48.png
    630.4 KB · Views: 35
  • Screenshot 2026-08-07 at 15.12.35.png
    Screenshot 2026-08-07 at 15.12.35.png
    584.8 KB · Views: 22
  • Screenshot 2026-08-07 at 15.12.28.png
    Screenshot 2026-08-07 at 15.12.28.png
    533.5 KB · Views: 26
  • Screenshot 2026-08-07 at 15.12.18.png
    Screenshot 2026-08-07 at 15.12.18.png
    502.4 KB · Views: 31
  • Screenshot 2026-08-07 at 15.12.08.png
    Screenshot 2026-08-07 at 15.12.08.png
    693.4 KB · Views: 32
  • Screenshot 2026-08-07 at 15.11.43.png
    Screenshot 2026-08-07 at 15.11.43.png
    462.4 KB · Views: 29
  • Screenshot 2026-08-07 at 15.11.33.png
    Screenshot 2026-08-07 at 15.11.33.png
    462.9 KB · Views: 38
  • Screenshot 2026-08-07 at 15.09.10.png
    Screenshot 2026-08-07 at 15.09.10.png
    451.3 KB · Views: 24
  • Screenshot 2026-08-07 at 15.11.14.png
    Screenshot 2026-08-07 at 15.11.14.png
    522.2 KB · Views: 26
  • Screenshot 2026-08-07 at 15.08.20.png
    Screenshot 2026-08-07 at 15.08.20.png
    509.6 KB · Views: 36
  • Screenshot 2026-08-07 at 15.07.40.png
    Screenshot 2026-08-07 at 15.07.40.png
    505.2 KB · Views: 33
  • Screenshot 2026-08-07 at 15.07.15.png
    Screenshot 2026-08-07 at 15.07.15.png
    451.8 KB · Views: 29
  • Screenshot 2026-08-07 at 15.07.06.png
    Screenshot 2026-08-07 at 15.07.06.png
    457.3 KB · Views: 33
  • Screenshot 2026-08-07 at 15.06.29.png
    Screenshot 2026-08-07 at 15.06.29.png
    401 KB · Views: 29
Last edited:
Spherify 1.3.4.0 is released. Besides lots of performance, stability and quality improvements, here are the main changes:

Version 1.3.4.0​

27 August 2026

New​

  • Room calibration workflow: a guided panel that takes a room from geometry to a validated correction in six steps — Layout, Measure, Analyse, Correct, Validate, Presets. A step unlocks only once the evidence behind it is complete, and the panel reopens at the step your measurements have actually reached. Open it with View ▸ Room Calibration.
  • Measurements tied to a room revision: every capture is stored against the version of the room it was taken in. Change the geometry and the affected captures move into a previous revision instead of being reused without warning. Each capture is quality-checked and reported as pass, warning, or failed, with the reason.
  • Import a measured response: use a measurement you already have instead of taking a new one. Spherify accepts an impulse response as WAV, AIFF, or FLAC, a Room EQ Wizard impulse export, or a complete calibration project.
  • Room diagnostics in Stage: an optional overlay that draws the room around your speakers. Nine layers cover the room shell, boundaries, speaker coverage, sub placement, boundary interference, early reflections, the modal field at one frequency, measurement points, and calibration state. Right-click empty space in a Stage viewport to switch it on. Edit Room then lets you drag the walls to match the room you are in.
  • External mixing desks as monitor controllers: Spherify can place its monitor correction on a digital mixer over OSC instead of applying the correction itself. Ten desk profiles ship, among them the Behringer WING, the Behringer X32 and Midas M32, the Yamaha DM7 and RIVAGE PM, and the DiGiCo SD and Quantum. Add a desk in Preferences ▸ Consoles. Only the WING profile ships verified against hardware; the rest connect and read, but refuse correction writes until you check the profile against your own desk and mark it verified.
  • Console and app ownership: connect every configured mixing desk at once, then choose per domain — EQ, gain, delay — whether the desk applies the correction or Spherify does. A lamp on each speaker shows which side is applying it, and reads Unknown when a desk that was handed a channel stops answering.
  • Monitor plug-in racks: host plug-ins at four points on the monitor path — before and after the whole monitor chain, and before and after each channel's EQ. The two global routes let you pick which physical channels they run across; the two per-channel routes follow whichever channel tab is in front.
  • AI Providers preferences: store your own API keys for the hosted AI services Spherify can call. Keys are held in the operating system's credential store, and each provider lists the features its key unlocks. The provider and model catalogue is signed and updates independently of the application.
  • Generate music with AI: describe a piece of music, generate it through your own provider key, and audition the result before importing it as a track. Start from Add Track ▸ Generate Music with AI....
  • Tempo detection and the tempo map: Spherify detects a project's tempo in the background and keeps it as a curve rather than a single number. A hover card gives the tempo at the playhead, how much it moves, and how confident the detection is. A tempo you set yourself is never overwritten, and Transport ▸ Clear Tempo Map starts a fresh detection.
  • Local MCP server: drive Spherify from an automation client that speaks the Model Context Protocol. Enable it in Preferences ▸ MCP on a Pro licence. It listens on loopback only, on a port you choose, behind a bearer token held in the operating system's credential store, and Copy client configuration puts a ready-made mcpServers block on the clipboard. The actions cover the project, transport, scene, sources, rendering and delivery, devices, MIDI, and streaming. Destructive ones ask for confirmation unless you allow unattended writes, and device writes stay opt-in. The same tab lists live streams, with Stop all streams to end them together.

Fixes​

  • Windows fixes across the credential store, monitor plug-in hosting, and object streaming.

Documentation​

  • The in-app manual and the web documentation cover all of the above. New pages describe the room calibration workflow, measurements and provenance, room diagnostics, console ownership, monitor plug-in racks, AI providers, AI music generation, the tempo map, and the MCP server with its full action reference.

Links​

 

Attachments

  • Screenshot 2026-08-27 at 08.27.20.png
    Screenshot 2026-08-27 at 08.27.20.png
    597.8 KB · Views: 16
  • Screenshot 2026-08-27 at 08.32.48.png
    Screenshot 2026-08-27 at 08.32.48.png
    1.8 MB · Views: 16
  • Screenshot 2026-08-27 at 08.32.13.png
    Screenshot 2026-08-27 at 08.32.13.png
    1.8 MB · Views: 18
  • Screenshot 2026-08-27 at 08.32.06.png
    Screenshot 2026-08-27 at 08.32.06.png
    1.8 MB · Views: 15
  • Screenshot 2026-08-27 at 08.31.50.png
    Screenshot 2026-08-27 at 08.31.50.png
    1.4 MB · Views: 18
  • Screenshot 2026-08-27 at 08.31.12.png
    Screenshot 2026-08-27 at 08.31.12.png
    1,006.2 KB · Views: 15
  • Screenshot 2026-08-27 at 08.30.34.png
    Screenshot 2026-08-27 at 08.30.34.png
    1.1 MB · Views: 11
  • Screenshot 2026-08-27 at 08.29.34.png
    Screenshot 2026-08-27 at 08.29.34.png
    1 MB · Views: 19
  • Screenshot 2026-08-27 at 08.29.31.png
    Screenshot 2026-08-27 at 08.29.31.png
    906.8 KB · Views: 15
  • Screenshot 2026-08-27 at 08.28.50.png
    Screenshot 2026-08-27 at 08.28.50.png
    1.3 MB · Views: 20
  • Screenshot 2026-08-27 at 08.28.18.png
    Screenshot 2026-08-27 at 08.28.18.png
    1.1 MB · Views: 20
  • Screenshot 2026-08-27 at 08.27.58.png
    Screenshot 2026-08-27 at 08.27.58.png
    959.4 KB · Views: 14
Last edited:
Back
Top Bottom