Commit Graph

  • 33961e6d21 feat(studio): audio FX panel generated from the registry Vance Ingalls 2026-07-31 20:10:20 -07:00
  • 956ae2fc14 feat(core): register the audio-fx-rack canary at 0% Vance Ingalls 2026-08-11 22:13:34 -07:00
  • 7d79370f0c test(engine): probe ffmpeg and Chrome instead of assuming them #3021 Vance Ingalls 2026-08-12 08:39:57 -07:00
  • 7fdf4dbfe5 chore(engine): suppress the temp-file alert with the reason it is safe Vance Ingalls 2026-08-12 00:47:08 -07:00
  • 384fdc443f test(engine): skip the browser FX render cases when there is no browser Vance Ingalls 2026-08-12 00:20:20 -07:00
  • f75e5a814d fix(producer): report an FX render failure as an audio error Vance Ingalls 2026-08-04 14:28:25 -07:00
  • a7d30a202a fix(engine): keep the FX render 16-bit, stereo, and correctly sized Vance Ingalls 2026-08-04 14:15:15 -07:00
  • e275c04c46 feat(core): voiceover carve analysis Vance Ingalls 2026-07-31 20:09:12 -07:00
  • bb9dd61a6a feat(engine): render audio FX in an OfflineAudioContext Vance Ingalls 2026-07-31 20:07:56 -07:00
  • 2350f9b69b feat(core): Web Audio graphs for the FX registry (#3020) Vance Ingalls 2026-08-12 02:30:56 -07:00
  • dceaab82d6 docs(plans): record why the de-esser and tone match were not built Vance Ingalls 2026-08-09 22:51:30 -07:00
  • 3c139d4575 feat: wire the leveller into the rack, in front of the ceiling Vance Ingalls 2026-08-09 22:50:32 -07:00
  • 2e18df196c docs(plans): reconcile the design docs with what actually shipped Vance Ingalls 2026-08-09 22:40:59 -07:00
  • 0e289ca315 feat(core): add the levelling script — "Even Out Levels" Vance Ingalls 2026-08-09 22:39:52 -07:00
  • 30693e207e feat(studio): the Tone module — a multi-band EQ on faders Vance Ingalls 2026-08-09 21:43:45 -07:00
  • 072040b4e5 feat(core): add a multi-band EQ as a composite over existing filters Vance Ingalls 2026-08-09 21:35:59 -07:00
  • c9c300f806 feat(core): name every preset node for the job it is doing Vance Ingalls 2026-08-09 21:00:10 -07:00
  • 804bc1e888 docs(design): fix the hole in the single-knob rule — picking the range Vance Ingalls 2026-08-09 20:20:17 -07:00
  • c728ba29a6 docs(design): propose a multi-band Tone EQ Vance Ingalls 2026-08-09 20:13:53 -07:00
  • a3f57930cb docs(design): bring the family lettering back into the schematic Vance Ingalls 2026-08-09 20:08:01 -07:00
  • 411c7bd642 docs(design): draw every module state, and write the collapsed one as a sentence Vance Ingalls 2026-08-09 17:49:25 -07:00
  • 2e508ab86d docs(design): record the rack UX rules and what drawing them exposed Vance Ingalls 2026-08-09 17:38:58 -07:00
  • c8d87651a0 feat(studio): apply presets from the FX rack Vance Ingalls 2026-08-09 12:20:13 -07:00
  • c415461407 feat(core): add the audio FX preset catalogue Vance Ingalls 2026-08-09 12:05:17 -07:00
  • 6d8c95f21e docs(design): automated parameters read live instead of drawing their lane Vance Ingalls 2026-08-09 11:50:01 -07:00
  • 9a87266894 docs(design): pick the schematic direction for the FX rack and record why Vance Ingalls 2026-08-09 11:46:55 -07:00
  • 78098c902e docs(plans): add rack module identity and the preset menu to the presets doc Vance Ingalls 2026-08-09 03:38:57 -07:00
  • 7c87765ffd docs(plans): research audio treatment presets over the shipped effect set Vance Ingalls 2026-08-09 03:25:15 -07:00
  • 82581afda0 refactor: derive the dataset keys for the FX and automation attributes Vance Ingalls 2026-08-08 12:58:54 -07:00
  • f430080ff8 refactor(core): route the graph's enabled-node filter through one helper Vance Ingalls 2026-08-08 12:53:00 -07:00
  • 4f66f57fcc refactor: drop the non-null assertion and two casts the guards already cover Vance Ingalls 2026-08-08 12:48:43 -07:00
  • 049f915f73 fix(studio): key FX rows by node id so a mid-edit stays with its effect Vance Ingalls 2026-08-08 12:23:28 -07:00
  • fea05e360a chore: drop a dead audio-FX ignoreExports entry Vance Ingalls 2026-08-08 12:18:31 -07:00
  • 29af9287b5 fix(producer): classify the audio failure that takes the whole mix down Vance Ingalls 2026-08-08 12:16:07 -07:00
  • 36cae566ff fix(core): stop reading a blank FX parameter as zero Vance Ingalls 2026-08-08 12:13:25 -07:00
  • bfff1234c5 fix(core): retire a worklet processor on dispose instead of only disconnecting it Vance Ingalls 2026-08-08 12:11:11 -07:00
  • 657df2e0b4 fix(core): let a failed worklet registration be retried Vance Ingalls 2026-08-08 12:08:56 -07:00
  • 9063aa5b86 perf(core): reuse the FFT scratch arrays across carve windows Vance Ingalls 2026-08-08 12:01:42 -07:00
  • ccc6566ad0 fix(core): reschedule FX automation when the transport changes rate Vance Ingalls 2026-08-08 11:55:54 -07:00
  • 17542513ae fix(engine): move a track's PCM across the wire in bounded chunks Vance Ingalls 2026-08-08 11:50:36 -07:00
  • 5cd6b4a47d fix(engine): duck the FX output before quantising it, not after Vance Ingalls 2026-08-08 11:44:53 -07:00
  • 7d740db2f5 fix(engine): give the ffmpeg children the signal that actually aborts them Vance Ingalls 2026-08-08 11:12:58 -07:00
  • d7473f1f58 fix(studio): lock the FX rack while the carve is measuring Vance Ingalls 2026-08-08 11:10:55 -07:00
  • ebe008b4e7 fix(core): dispose a clip's FX graph when it ends, not only when it is stopped Vance Ingalls 2026-08-08 11:06:20 -07:00
  • f38a498b99 build(core): regenerate the audio-fx runtime before the tests run Vance Ingalls 2026-08-08 10:52:36 -07:00
  • 78bc33cf23 fix(lint): stop the double-automation rule blaming the wrong element Vance Ingalls 2026-08-08 10:50:36 -07:00
  • 62f6e04a54 fix(studio): let an FX parameter be typed, and stop a bare blur re-persisting it Vance Ingalls 2026-08-08 10:48:40 -07:00
  • f9829f4071 fix(core): sample the volume lane at clip-local time, the way the render bakes it Vance Ingalls 2026-08-08 10:44:38 -07:00
  • 8b99e8426f fix(core): move a node's id with its slot when the chain updates in place Vance Ingalls 2026-08-08 10:42:14 -07:00
  • 6e0abafed0 fix(core): aim the phaser's trim lanes at the trims, not at the pinned wet/dry Vance Ingalls 2026-08-08 10:40:19 -07:00
  • a27c7b684e fix(engine): take the browser lease inside the try that releases it Vance Ingalls 2026-08-08 10:37:16 -07:00
  • 4a3440c535 fix(engine): hand an empty audio track back instead of failing the render Vance Ingalls 2026-08-08 10:35:02 -07:00
  • 14e79b7a4e fix(studio): expect what deleting a clip already wrote, not what it read Vance Ingalls 2026-08-08 00:09:16 -07:00
  • 5d80ce737b feat(studio): re-analyse a carve when a voice it was listening to is deleted Vance Ingalls 2026-08-07 21:29:12 -07:00
  • 4d82387873 test(studio): read the caret's aria-controls as the id list it now is Vance Ingalls 2026-08-07 20:17:05 -07:00
  • 2ad4ad22bb fix(studio): mount the automation lanes on the row, so selecting a clip keeps them Vance Ingalls 2026-08-07 20:10:51 -07:00
  • f8b8e7453a fix(studio): stop a shared lane row's clips swallowing each other's envelopes Vance Ingalls 2026-08-07 20:01:37 -07:00
  • 216442ec31 fix(studio): cap every clip bar on an expanded row, not just the lane owner Vance Ingalls 2026-08-07 19:54:46 -07:00
  • d700742e5e docs(plans): record that shared automation lane rows have shipped Vance Ingalls 2026-08-07 17:47:09 -07:00
  • 4692e39a55 feat(studio): give the clips on a track one automation lane row per property Vance Ingalls 2026-08-07 17:44:25 -07:00
  • 3e07f07e06 feat(studio): key an automation lane row by the property it drives Vance Ingalls 2026-08-07 16:59:42 -07:00
  • fadeae740a docs(plans): record why effects stay on the clip, and how lanes should group Vance Ingalls 2026-08-07 16:56:58 -07:00
  • 4c03e3cd90 docs(skills): carve every voice from the command line too Vance Ingalls 2026-08-07 16:56:58 -07:00
  • df7a8c08f6 feat(studio): the carve is one module in the rack, and it carves by itself Vance Ingalls 2026-08-07 16:55:44 -07:00
  • be98e6a054 feat(core): carve against every voice over a bed, always dynamically Vance Ingalls 2026-08-07 16:54:26 -07:00
  • d3621a05bf fix(studio-server): key the waveform cache on the file, not just its path Vance Ingalls 2026-08-07 13:26:26 -07:00
  • 1215df24ee docs(skills): add /hyperframes-audio, with a headless carve Vance Ingalls 2026-08-07 13:26:25 -07:00
  • a8a3d40c2b feat(studio): show every automated knob at the playhead, and carve as one module Vance Ingalls 2026-08-07 13:25:01 -07:00
  • 792ee64a66 fix(studio): put #3207's edge-stretch back, folded into the unified hook Vance Ingalls 2026-08-11 21:45:41 -07:00
  • 4f2eac456d feat(studio): select automation points with a box, and stop them crossing Vance Ingalls 2026-08-07 13:23:40 -07:00
  • 5f7e0dab05 fix(core): make audio automation survive being rescheduled mid-playback Vance Ingalls 2026-08-07 13:22:18 -07:00
  • 4d13314201 fix(studio): give edge-stretch the gesture contract the other four follow Vance Ingalls 2026-08-06 09:42:26 -07:00
  • b7acf176a2 fix(studio): clamp selection-start paste, sharpen clipboard test, cleanup Vance Ingalls 2026-08-05 12:47:55 -07:00
  • 0490ea1e6d fix(studio): retime edge-stretch from a fixed points snapshot Vance Ingalls 2026-08-05 12:46:25 -07:00
  • f3f2d2e76a feat(studio): stretch an automation selection by its edges Vance Ingalls 2026-08-05 12:08:21 -07:00
  • 2308234798 test(studio): probe retimeRange's actual guarantee, not sample-continuity past a moved edge Vance Ingalls 2026-08-05 11:47:31 -07:00
  • b5707dae5b feat(studio): retime an automation selection Vance Ingalls 2026-08-05 11:40:51 -07:00
  • e9493986df fix(studio): repair the automation paste path and finish the key arbitration Vance Ingalls 2026-08-06 09:01:39 -07:00
  • 6cd3798716 feat(studio): copy and paste automation ranges across lanes Vance Ingalls 2026-08-05 11:24:26 -07:00
  • c9a1fd17e3 feat(studio): internal clipboard for automation ranges Vance Ingalls 2026-08-05 11:01:29 -07:00
  • 6964474d75 feat(studio): shape and simplify menu on an automation selection Vance Ingalls 2026-08-05 04:17:46 -07:00
  • f899dae62a chore: add automationSimplify to fallow complexity ignore Vance Ingalls 2026-08-05 04:08:21 -07:00
  • af6f447bc4 feat(studio): simplify dense automation runs Vance Ingalls 2026-08-05 04:07:33 -07:00
  • 33ac531c87 chore: suppress unused export for automationShapes (consumed upstack) Vance Ingalls 2026-08-05 03:58:00 -07:00
  • db2200eb99 feat(studio): ramp, swell and dip generators for automation selections Vance Ingalls 2026-08-05 03:57:12 -07:00
  • 71a0538b6b fix(studio): let an automation range keep Delete from the clip Vance Ingalls 2026-08-05 14:42:32 -07:00
  • a12cae4473 test(studio): cover the automation selection stale-target guard Vance Ingalls 2026-08-05 03:50:06 -07:00
  • cd036dc609 feat(studio): delete an automation selection from the keyboard Vance Ingalls 2026-08-05 03:41:01 -07:00
  • 90195e4b03 feat(studio): drag-select a time range on an automation lane Vance Ingalls 2026-08-05 03:23:49 -07:00
  • d59d7b5219 feat(studio): automation selection slice Vance Ingalls 2026-08-05 03:12:59 -07:00
  • 800e579f79 fix(studio): budget replaceRange's inner points before capping, not after Vance Ingalls 2026-08-05 03:05:23 -07:00
  • 046ec25bc4 feat(studio): pure range ops for automation lane selections Vance Ingalls 2026-08-05 02:53:56 -07:00
  • 01cb7c03b8 feat(studio): curve, snap and type a value in an automation lane Vance Ingalls 2026-08-04 16:31:42 -07:00
  • 48c5dde3bd feat(engine): let an FX tail decay instead of cutting it at the clip Vance Ingalls 2026-08-04 15:32:51 -07:00
  • 47c147eecf fix(studio): keep FX panel writes from clobbering each other Vance Ingalls 2026-08-04 15:15:55 -07:00
  • bb345bfa6c test(studio): cover carve visibility through the real element Vance Ingalls 2026-08-04 13:21:33 -07:00
  • 7554e95648 feat(studio): only offer voiceover carve when there is a voice to carve against Vance Ingalls 2026-08-04 12:56:17 -07:00
  • 4e94ad5ef1 feat(studio): automate and un-automate each effect parameter Vance Ingalls 2026-08-04 10:42:21 -07:00
  • 5295a35c78 fix(studio): stop the last two automation writes reloading the preview Vance Ingalls 2026-08-04 15:06:55 -07:00
  • be84bac54b feat(studio): automate a parameter without reloading the preview Vance Ingalls 2026-08-04 10:40:58 -07:00