Nathaniel Labs
Product changelog

Sangam release history

Latest version: v1.2.15.

1.2.15

  • Sangam now stands on its own: the old import from another routing app is gone, and every mention of other companies' products has been removed from the app and its documents.
  • Cleaner voice with zero delay. A new noise reducer, written for Sangam, learns your room's hum and hiss in about a second and pulls it down between words. It adds no delay at all, so it is safe on Zoom and live streams. Long sung notes and held piano chords are never mistaken for noise.
  • Two noise modes in the Voice Console: LIVE (no delay) and RECORDING (adds a deeper speech cleaner for the cleanest take, 10.7 ms of delay).
  • Interface gain on the mic row. Minus and plus buttons change the preamp on the interface itself, one dB per click. On the Zen Studio this goes through Zen Console and never touches 48 V or the input type. Interfaces whose macOS driver offers a gain control work the same way; others say so plainly.
  • Volume faders now read true decibels like a DAW (0.0 dB = unchanged), with marks at −30, −18, −12, −6, 0 and +6 dB. Hold Option while dragging for fine moves; double-click resets to 0 dB. Mic volume goes up to +18 dB.
  • The plug-in menu is grouped by type (EQ, compressor, gate, noise reduction, de-esser…) and then by maker. The mic shows only plug-ins that work in mono; app rows show stereo ones. Plug-ins that add delay sit in a separate "More" list. Mono-only plug-ins now load on the mic.
  • Preview works. The mic preview was silent because it looked for the mic under the wrong name. A muted app can now be previewed in headphones without unmuting it in the call. Call apps explain why they have nothing to preview.
  • Record starts at once. The call's own track is set up in the background, still lined up exactly.
  • The main mix now says what the call hears: your mic plus every app playing, never the call apps.

1.2.14

  • Cleaner voice with zero delay. A new noise reducer, written for Sangam, learns your room's hum and hiss in about a second and pulls it down between words. It adds no delay at all, so it is safe on Zoom and live streams. Long sung notes and held piano chords are never mistaken for noise.
  • Two noise modes in the Voice Console: LIVE (no delay) and RECORDING (adds a deeper speech cleaner for the cleanest take, 10.7 ms of delay).
  • Interface gain on the mic row. Minus and plus buttons change the preamp on the interface itself, one dB per click. On the Zen Studio this goes through Zen Console and never touches 48 V or the input type. Interfaces whose macOS driver offers a gain control work the same way; others say so plainly.
  • Volume faders now read true decibels like a DAW (0.0 dB = unchanged), with marks at −30, −18, −12, −6, 0 and +6 dB. Hold Option while dragging for fine moves; double-click resets to 0 dB. Mic volume goes up to +18 dB.
  • The plug-in menu is grouped by type (EQ, compressor, gate, noise reduction, de-esser…) and then by maker. The mic shows only plug-ins that work in mono; app rows show stereo ones. Plug-ins that add delay sit in a separate "More" list. Mono-only plug-ins now load on the mic.
  • Preview works. The mic preview was silent because it looked for the mic under the wrong name. A muted app can now be previewed in headphones without unmuting it in the call. Call apps explain why they have nothing to preview.
  • Record starts at once. The call's own track is set up in the background, still lined up exactly.
  • The main mix now says what the call hears: your mic plus every app playing, never the call apps.

1.2.13

  • No more echo on Zoom calls. The students' sound from Zoom (and Teams, FaceTime, Webex, Skype, Discord, WhatsApp and Slack calls) is never sent back into the call, in every mode. Before, in Default mode Zoom went into the Sangam microphone, so the class heard itself a second time and recordings sounded doubled.
  • The call is still recorded. Press Record during a call and Sangam keeps the call on its own track, then after Stop makes one Class Record file: your live mix plus the students, each once, lined up on the same clock.
  • Set how loud the students are in the recording with the call app's fader in Sangam (the Zoom row). It changes only the recording, never the call. The untouched student track is saved beside it.
  • Google Meet and other browser calls: Sangam cannot tell a Meet tab apart from YouTube in the same browser, so use one browser only for calls (for example Safari), right-click its row in Sangam and choose "This Is a Call App". It is then kept out of the call and recorded the same way.

1.2.12

  • The installer now waits for the Mac's audio to come back after it replaces the audio driver, and gives Sangam's audio service up to a minute to start, so the update finishes instead of stopping halfway.
  • Calmer meters. Every level bar now rises instantly and falls smoothly, like a hardware meter, instead of flickering between words and notes. The voice row no longer blinks its border with every syllable.
  • Each app says plainly whether it is on: PLAYING, OPEN, MUTED or CLOSED, next to its meter. The green light stays on between phrases instead of blinking.
  • Favourites: click the star on any app (or right-click it) to keep it at the top of the list, always shown.
  • New apps arrive at 100% and muted in Sangam, so nothing new leaks into a stream or a call. Unmute it with one click. The app still plays on its own speakers.
  • An app you removed shows up again, muted, the next time you open it and it plays.
  • Apps that have been deleted from this Mac are dropped from Saved apps.
  • The remove (X) button is bigger, always visible and turns red under the pointer, and a removed app disappears at once.
  • Volume goes to 200% (double, +6 dB). For a quiet source such as a DAW mixed to -12 or -18 dBFS, use Boost on the app's fader for +6, +12 or +18 dB.
  • Change the voice input right on the main page: click the input under "Voice (Mic)" and pick any channel or stereo pair on any connected interface.
  • Voice Console opens faster: the list of your installed plug-ins loads in the background.
  • Voice Console meters now read true dBFS (-60 to 0, marks at -18, -12 and -6) with a peak readout that holds long enough to read. They used to show a voice at -20 dBFS as about -4.
  • Mute Everything in the menu-bar panel: one big button silences every app and the mic in Sangam at once, and the menu-bar icon turns into a red crossed speaker. Unmute Everything puts back exactly what was on before.
  • A new version is easy to spot: an "Update available — <version>" button appears at the top of the Sangam window and in the menu-bar panel, and the menu-bar icon gets a blue dot. Click it, then choose Download Update or Later. Nothing installs on its own.
  • Check for Updates… is in the Sangam menu, in the menu-bar panel and in Settings, with the version you have beside it.
  • Sangam checks when it opens and then every hour (was once a day). A found update stays on screen even if a later check cannot reach the internet.
  • The audio driver refuses a badly formed command from another program instead of risking a crash of the Mac's audio system.
  • Install scripts only install parts signed by Nathaniel School of Music's own Apple developer account, checked inside a folder only the system can change.
  • Updating the driver from inside Sangam swaps it safely: if anything fails, the previous driver is put back, so the Mac is never left without one.
  • The end of a recording is never cut off: Sangam stops the input, writes every last sample, and only then closes the file.
  • Checking for updates no longer freezes the window, and an up-to-date copy now says "up to date" instead of showing an error.
  • Panic (silence everything) always acts at once, even if the driver is slow.
  • The background service notices a newly installed driver without a restart, always uses the signed-in person's own settings folder, and never follows a planted link when it writes files.
  • Shared files in the system's temporary folder are opened safely, and idle connections no longer hold resources forever.
  • Every installer now uses one shared list of apps that must not be interrupted.
  • Removed old Shruti build scripts from Sangam; Shruti is built from its own project.

1.2.7

  • Select a hardware input channel or stereo pair with independent gain, mute, metering and Audio Unit effects. Search installed Audio Unit effects and rescan after installing new ones; VST/VST3 hosting is not included.
  • Native-rate timeline reads preserve samples bit for bit; meter updates avoid rebuilding the whole mixer.
  • Check for authenticated updates inside Sangam. Automatic discovery respects your preference and never installs silently. Review the changelog and choose Download Update, then separately confirm Install in macOS Installer.
  • The signed installer updates the app and matching resident service together, retaining prior components for rollback. It refuses active or unknown audio sessions and only replaces the HAL driver/restarts Core Audio when that driver changes.
  • Package authentication handles the actual macOS notarization report while independently verifying the pinned Developer ID Installer team and signed package checksum.
  • Installer safety checks now use Sangam’s bundled native tool. Python, Xcode and Rosetta are not required for installation on supported Apple silicon Macs.
  • Installer text clearly explains reopening Sangam from Applications after installation to resume microphone and app audio. Sangam can then run in the menu bar when its window closes.

1.2.2

  • MUTE and MUTED show the real mute state.
  • The public Sangam microphone cannot be deleted. It stays a stereo live mix; extra template pairs are ISO files.
  • Launch at login is the resident helper only.
  • Uninstall removes that helper and will not restart Core Audio while a DAW is running.
  • Recordings keep their length if the disk stalls. 24-bit files are dithered. App ISOs stay raw.
  • The published mix stays 32-bit float. Overload is counted; it is not hidden as a “soft ceiling.”
  • Typical aligned path on the studio rig remains tens of milliseconds before Zoom or OBS add their own buffer.

1.2.1.1

  • The microphone input channel you choose is remembered through a restart. Before, if the audio interface was still waking up when the Mac started, Sangam could quietly move the mic to a different channel and save that — so after a restart, apps using Sangam as their microphone (Zoom, dictation, classes) heard nothing.
  • Everything else is exactly Sangam 1.2.1. Driver 0.6.0 unchanged.

1.2.1

  • Lower capture buffering and stable long-session clock handling. The tested studio setup measured approximately 32 ms of Sangam transport.
  • Corrected Safari helper capture and reliable coexistence with Shruti.
  • Microphone processing stays on the voice path; instruments and app audio retain their separate stereo paths. Sangam supports 24-bit WAV recording for a lossless local master.
  • The installed release passed an OBS recording with three visible claps and speech, with no clipped samples and 4.4 dB of true-peak headroom. This studio used a measured +80 ms OBS audio correction; calibrate your own camera and receiving app rather than copying that value blindly.
  • The installer preserves running audio while administrator authentication is pending. When the driver is unchanged, it updates the matched app and service without restarting Core Audio.

1.2.0

  • Every source on one clock: your voice is the clock, a track (Spotify, YouTube, a DAW) sits on it as heard, a piano (Pianoteq, MainStage, any standalone instrument) is pulled by the MIDI delay measured while you play.
  • A microphone you can leave on: the capture graph runs only while a call app, recorder or monitor is listening — 1–2 % of one core idle, measured.
  • Record is the home screen: one button, the exact Zoom mix as 24-bit WAV, a health line that stops a failing take and says why. Three surfaces: Record / Mix / Setup.
  • Voice chain for teaching and calls: spectral noise reduction under the voice, a true-RMS gate between phrases, tone EQ, soft-knee compressor and speech leveler — the 10.7 ms spectral stage is compensated so the mic never drifts against the apps.
  • Driver 0.5.2. macOS 14.2 or later, Apple silicon and Intel, Developer ID signed and Apple-notarized. Other audio routers can stay open; Sangam never taps their virtual devices.

1.2.0-rc.17

  • Faders respond instantly, always. Touching any app's fader/pan/mute/EQ/sync gives that app its own live lane on the spot (AppModel.beginAppControl), keeps it for the session (no flip-flop as the fader crosses 100 %), and engages auto-discovered rows whose faders were silently dead. Previously a unity app had no lane, so dragging did nothing until release, then a full engine reconcile.
  • "Everything Else" is updated in place. When an app gains/loses its own lane the system tap's exclusion list is rewritten live (kAudioTapPropertyDescription) instead of tearing the tap down — no more hole in the mix for every other app on each fader crossing.
  • Apps enter the mix within ~0.2 s of their first sound. Core Audio process start/stop events now drive the active-app scan (ActiveAudioAppObserver); the 5-second poll is only a safety net. Lanes linger 20 s after an app pauses so a gap between tracks never re-seats the timeline.
  • Live Sync sliders (per-app and voice) and the mic volume slider are tactile: per-tick preview to the running lane, ONE commit on release. They used to publish the whole console and, for the voice sync, do a synchronous save + full reconcile on every pixel.
  • "As heard" policy restored uniformly: the calibrated latencyMs is informational only; both lane kinds apply exactly the slider nudge the panel shows (a 13-Aug change applied it on one lane kind but not the other, so the readout lied for named apps).
  • RAW INPUT / processor meters read the MIC lane, not the device-wide max (a dead mic looked alive while Spotify played). Processed meter is post-gain/post-mute.
  • Previews of noise/comp/EQ/pan reach the headphone monitor too; the monitor honours the mic mute from its first block; keyboard/VoiceOver slider changes commit.
  • NaN/Inf from a user plug-in or driver glitch can no longer poison the voice chain (envelopes self-heal; samples flushed after the AU rack). Gain clamp raised to +18 dB total. Warning banner now counts trim + processor output together.
  • SIGPIPE ignored + SO_NOSIGPIPE on every control socket: a CLI/daemon that hangs up mid-frame can no longer kill the process that publishes the microphone.
  • Config decoding is tolerant end-to-end: unknown source kind, malformed voice/EQ settings, one garbage source → dropped/defaulted, never "Sangam forgot everything". Regression tests added.
  • Changing the Mac's default output (AirPods, HDMI) re-points every app tap; the mic lane never restarts. Before, apps silently vanished from the Sangam mic.
  • Zero-lane transitions keep the ring writer alive (publisher writes silence): no generation bump, no ring-ownership clobber from a writer freed on the RT thread.
  • Start-in-flight tracking + exponential backoff for failing starts: no rebuild storms after wake or under OBS load. Plug-in rack swaps retire the old chain on the main thread. Probe teardown waits for the IO callback. RT publisher no longer allocates per block.

1.2.0-rc.16

  • Recovers the selected microphone safely after cold boot without silently falling back to another input.
  • Keeps one publisher per audio endpoint and isolates plug-ins and app runtime failures.
  • Coalesces dormant mixer and meter work for low background CPU use.
  • Preserves the public Sangam microphone name and exact aligned live-mix routing.

1.1.0-rc.7

  • Maintenance release.

1.0.0

  • Maintenance release.