OnMic — what's new

Current version: v1.22

Page 3 of 14
PreviousNext

v1.06 - audit #7: timeline-safety, security and speed round

v1.06 - audit #7: timeline-safety, security and speed round

- Timeline safety: the "don't apply an outdated cut plan after a dead-air
  trim" protection now survives restarting Premiere (it used to be forgotten,
  which could let an old plan cut into speech). The frame-rate safety check
  now also refuses cut files with no frame rate instead of guessing 24fps,
  and Trim gained the same check.
- Drop-frame detection now works on the very first Apply of a session (an
  internal ordering bug could misread 29.97 timelines until the second run).
- Trim now verifies it is cutting YOUR timeline (not the safety backup) before
  making any cut, and is much faster on timelines with thousands of clips.
- Clearing a number field (like "Ignore cuts less than") no longer produces a
  bogus single-cut edit - the panel now catches blank/invalid values.
- "Suggest camera tags" always re-reads the current sequence first (switching
  sequences could previously mismatch mics and cameras).
- The dead-air trim confirmation now counts exactly what will be trimmed.
- Security: the panel's AI self-repair downloads are now verified against
  pinned checksums (a tampered download is deleted, never used), and the
  fetch/build scripts pin exact versions of every AI file. The .zxp build no
  longer includes stray personal files. Macs get an uninstaller that restores
  Adobe's extension signature checking.
- Sign-in: the browser only says "You're signed in" after sign-in actually
  succeeds. A busy license server no longer locks out paying users (it is
  treated like being briefly offline). The panel re-checks your license and
  update notices daily instead of only at startup.
- Speed: audio channel layouts are detected once per file instead of on every
  run; repeat analyses reuse cached loudness data; the first Apply batch is
  smaller so Premiere never looks frozen; Stop now interrupts analysis
  mid-clip; the progress bar no longer runs backwards.
- After a dead-air trim, OnMic offers to re-analyze in one click.
- Removed the old Python analyzer and legacy scripts (the panel has been pure
  JavaScript since v0.9x; the leftovers had outdated logic and are gone).

v1.05 - minor robustness fixes from the code audit

v1.05 - minor robustness fixes from the code audit

- Mixed mic setups: a speaker whose clips come from more than one file (e.g. a
  mono pickup dropped in next to a multichannel recorder file) no longer risks
  a channel-out-of-range error during analysis.
- Update banner: hardened so a mis-set "latest version" on the website can
  never silently hide future update notices.
- A disk read glitch far from the end of a long clip is now reported instead of
  being quietly treated as the end of the file (tightened the tolerance that had
  scaled with clip length).

v1.04 - sign-in no longer puts your login token in the browser URL

v1.04 - sign-in no longer puts your login token in the browser URL

- SECURITY: signing in used to hand the panel its long-lived account token in
  the browser's address bar, so it lingered in browser history (and any URL
  logs). Sign-in now uses a short-lived, single-use code that the panel
  exchanges privately for the token — the token never appears in a URL.
  Backward compatible: works whether or not the website side is updated, so
  existing sign-ins keep working; no action needed on your end.
  (Completes the last open item from the v1.03 security audit.)
- Follow-up audit fixes to the v1.03 work: a cut plan (or a single mic's voice
  detection) that briefly fell back to loudness mid-run is no longer cached and
  replayed later — the fix that was meant to land in v1.03 now also covers the
  per-clip case. Trim dead air now shows the same "AI not ready" warning the
  edit actions do (it deletes media, so it matters more there). Plus smaller
  correctness fixes: drop-frame detection when switching sequences mid-apply,
  a tighter cap on how much clip-tail a disk glitch can silently drop, and a
  couple of status-message glitches after a failed sequence read.

v1.03 - timeline-safety release: 35 fixes from a full code audit

v1.03 - timeline-safety release: 35 fixes from a full code audit

Every fix below came out of a full line-by-line audit of the panel, the
Premiere host script, and the release tooling. Highlights, most important
first:

TIMELINE SAFETY (the big ones)
- FIX: Trim dead air could delete real speech. If Premiere silently refused
  a razor cut, the trim then ripple-deleted the whole surrounding clip (up
  to an entire take) and still reported success. Every pause is now verified
  cut-by-cut before anything is removed; pauses whose cuts don't land cleanly
  are skipped, never deleted.
- FIX: Clicking a different sequence during Apply could cut THAT timeline.
  The batched apply now re-checks (and re-activates) the original sequence on
  every batch, and stops safely if it can't.
- FIX: Applying an old edit plan after trimming dead air cut into speech —
  trims shift all timings, but the old plan still passed every guard. Plans
  created before a trim are now refused with a clear "re-run Analyze" message.
- FIX: Trim dead air with backup OFF could use the wrong drop-frame mode
  (left over from another sequence) and drift ~2 frames/min on NTSC. The
  drop-frame flag is now set from the sequence being trimmed, every time.
- FIX: Creating an edit right after switching sequences used the OLD
  sequence's frame rate for every cut. The panel now refreshes the frame rate
  on every track read AND the host refuses a plan whose fps doesn't match.
- Apply now stops at the FIRST refused cut instead of mis-cutting hundreds
  more clips and reporting failure at the end; it also verifies every planned
  cut was placed before reporting success, and re-applying the same plan is
  reported as "already applied" instead of a scary failure.

DETECTION QUALITY
- FIX: a cut plan built while the AI voice model was missing (loudness-only
  fallback) was cached and silently replayed forever, even after the AI
  installed itself. Degraded plans and masks are no longer cached.
- FIX: quiet speakers' mics could be boosted so hard (up to 300x) that the
  OTHER person's bleed read as their speech, stealing camera cuts. The gain
  reference now targets real speech above the noise floor and is capped at
  40x. (Conservative change — please report anything odd; tuned further on
  real audio if needed.)
- The log now warns when any clip silently fell back to loudness detection
  mid-run (it used to still claim full AI detection), and camera detection
  reuses the analysis' cached voice masks instead of re-running minutes of AI.
- FIX: setups mixing a multichannel recorder file with a separate mic file
  could crash analysis or read the wrong channel.

SMALLER FIXES
- Auto-update: version comparison broke at v1.1 (it read as older than
  v1.02) — fixed before it could ever bite; release tooling now also refuses
  to publish a version that isn't newer than the live one.
- The Mac installer no longer rewrites the panel's internal version into a
  malformed value (could make the panel fail to load after install).
- Windows uninstaller now restores Adobe's extension signature enforcement.
- Sequence/speaker names with unusual characters no longer break the
  Premiere connection or cuts file (full UTF-8 + control-character handling).
- '#' or '?' in a camera filename no longer mis-reports it as undecodable.
- Speaker names 9-12 are no longer wiped when the panel rebuilds its rows.
- The Stop button is hidden during Apply (it only cancels analysis and used
  to sit there doing nothing).
- Failed track reads now surface an error instead of silently editing from
  stale data; "restore the backup" advice only appears when a backup exists.
- Reset local data now also clears the voice/cut-plan caches, which also
  auto-prune after 30 days (they grew forever).
- Offline licence hardening (hand-edited license files are cut off), sign-in
  URL hardening, a content-security-policy for the panel, and the manual
  sign-in flow no longer times out mid-typing.
- Removed ~1,000 lines of dead code (the old unreachable intro-trim and
  flatten features and an unused fast-assign path), a stale second Windows
  release script, and various release-script gaps (publish ordering, tag
  safety, rollback script added, non-git release refusal).
- Note for a future release: server-side sign-in should move the token out
  of the URL query string (needs a WhereToPodcast site change, not a panel
  change). AI file download hash-pinning was reviewed and deliberately
  deferred.

v1.02 - wide-shot frequency respected + no more cuts to the silent speaker

v1.02 - wide-shot frequency respected + no more cuts to the silent speaker

User report (v1.0): "Wide-shot frequency is Low but it frequently switches to
the wide even when only one subject is speaking; camera also switches to the
subject who is NOT speaking." Three real bugs, all fixed:
- FIX: establishing wides (added in v1.0) ignored the Wide-Shot Frequency
  dropdown — Balanced fired a 3s wide at every 4th pause >=0.4s even on "Low".
  They now scale with the setting (Medium = the tuned v1.0 rate, High = more,
  Low = ~1/10th of pauses and only pauses >=1s) and are fully OFF for
  Off/Overlap-only, where the wide should only appear on genuine cross-talk.
- FIX: "Low" was silently remapped to 0.20 (near-Medium) inside the engine
  ("Low was too shy"), which also enabled more frequent variety/overlap wides.
  The menu value is honored exactly now: Low means low.
- FIX (big one): short cross-talk resolved to the WRONG speaker. The overlap
  collapse summed raw dB per hop (negative while talking, 0 while silent), so
  the person talking LEAST scored highest and won — cutting the camera to
  whoever was NOT speaking after every brief interjection/laugh. Scoring now
  sums energy above the silence floor (talking more/louder wins) and honors
  the AI voice mask, so bleed into a boosted quiet mic (e.g. HOST at +12dB)
  can't steal the shot.
- Net effect on a 2-speaker episode like the report (GUEST 78% / HOST 14%):
  wide appears on sustained both-talking and rare long-hold breaks only;
  single-speaker stretches stay on the speaker.

v1.01 - support up to 12 speakers and 12 cameras

v1.01 - support up to 12 speakers and 12 cameras

- The Speakers and Cameras pickers now go up to 12 (were capped at 8), and
  auto-detect will fill in up to 12 isolated mics / camera tracks. The detection
  engine and apply already scale to any count; only the picker caps were raised.
- Note: more angles = a slower Apply (every camera is cut at every edit) and a
  longer analysis (one voice pass per mic), and even-cutting still needs every
  camera to be gapless across the edit — with more cameras it's likelier one has a
  gap, in which case Apply stops and tells you which track to fix.

v1.0 - reference-matched cuts on any frame rate + establishing wides

v1.0 - reference-matched cuts on any frame rate + establishing wides

- FIX (big one): dropped cuts on 29.97/59.94 NTSC drop-frame timelines. Razor
  timecodes were built as non-drop, so each cut landed slightly early and the
  error GREW down the timeline (~0.6s at 10 min, ~3s at 52 min); short shots then
  grabbed the wrong camera and ~40% of planned cuts vanished. A 53-min 29.97 test
  showed 566 planned cuts collapse to ~337. Now OnMic emits correct drop-frame
  timecode (verified zero drift) AND auto-detects drop-frame vs non-drop from the
  sequence's real timecode format (falling back to the NTSC heuristic if a build
  doesn't expose it). That same episode now applies 565 cuts — matching the reference edit's
  586. True-30 sequences were never affected.
- Establishing wides: OnMic now cuts to the room/wide camera at natural pauses like
  the reference edit (~5% of screen time) instead of almost never. On the test episode the wide
  went from ~0% to ~5% with the median shot still 3.0s. New Balanced setting
  establish_wide_frequency (set 0 to disable). Uses your tagged wide — the camera
  covering the most speakers, so put your room shot there.
- Carries forward the v0.9x Balanced tuning (matches the reference edit's cadence + shot-length
  shape on real episodes), content-aware talkover suppression (keeps quick banter,
  drops laugh/breath false switches), and even cutting (every angle cut at every
  edit so any shot can be toggled by hand).

v0.98 - Balanced tuned to match the reference edit (offline, on your real audio)

v0.98 - Balanced tuned to match the reference edit (offline, on your real audio)

- Instead of guessing settings and having you re-run Premiere each time, OnMic's
  detection was replayed offline on the ACTUAL episode audio (energy + VAD dump)
  and the Balanced settings were fit to the reference edit's real cut profile. Verified the
  offline model reproduces the live result exactly before tuning.
- The excess cuts turned out to be mid-monologue false switches from mic bleed and
  breaths, so Balanced now: dominance margin 13 dB (was 10) - the other mics must
  be clearly louder to steal a switch; switch delay 0.65s (was 0.30) - a new speaker
  must hold before we cut; overlap window 1.6s (was 0.8); min shot 1.5s; max hold 35s.
- Result on the test episode (measured, top-most-visible cuts):
      Reference: 476 cuts, median 3.0s, 39% quick 1-2s, 29% held 7s+
      v0.98   : 483 cuts, median 3.0s, 36% quick 1-2s, 27% held 7s+
  i.e. essentially the same pace and shot-length shape as the reference edit, and the per-
  camera screen-time split matches too.
- Still different: cutting to the wide/room shot (the reference edit ~5%, OnMic ~1%) - that's a
  separate "establishing wide" behavior, next on the list.
- Even cutting + gap guard (v0.95) and content-aware talkover suppression (v0.97) stay.
Page 3 of 14
PreviousNext

← Back to OnMic