Commit Graph
34 Commits
Author SHA1 Message Date
Brandon Thomas afa850d697 Merge main into #319
# Conflicts:
#	ROADMAP.md
2026-10-13 06:32:14 -04:00
Brandon Thomas 844830bf6f Merge main into #322
# Conflicts:
#	ROADMAP.md
2026-10-13 06:31:36 -04:00
Brandon Thomas 1dcd6aa064 Merge #322's latest into the landing branch 2026-10-13 06:25:57 -04:00
Brandon Thomas 94390f49fa Merge #319's latest into the landing branch 2026-10-13 06:25:57 -04:00
Brandon Thomas 20927d7684 Merge #315's latest into the landing branch 2026-10-13 06:25:56 -04:00
Brandon Thomas c2f052715d Merge main into #319 2026-10-13 06:16:54 -04:00
Brandon Thomas edd1787353 Merge main into #322 2026-10-13 06:13:17 -04:00
Brandon Thomas b0daf3213e Merge main into #315 2026-10-13 06:08:18 -04:00
Limestudio90andClaude Opus 5.5 3b7a1f2b33 ROADMAP: no blank line inside the progress log (rebase leftover)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-13 11:47:49 +02:00
Limestudio90andClaude Opus 5.5 6d910609e1 Docs: Mix in a separate window
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-13 11:47:42 +02:00
Limestudio90andClaude Opus 5.5 0e6f5accb4 ROADMAP: no blank line inside the progress log (rebase leftover)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-13 11:47:30 +02:00
Limestudio90andClaude Opus 5.5 0a2492b610 Audio device settings: system, devices, sample rate, buffer size; opt-in ASIO
Setup > Playback Engine now chooses the audio system (cpal host), output
and input device, device sample rate and buffer size, kept per machine
with the UI preferences and applied by reopening the devices (refused
while recording; the transport position is kept). ui.audio_device does
the same for agents and lists every system with its devices, channels,
rates and buffer range.

Player and recorder open the chosen device, fall back to the defaults
for anything unavailable (unplugged device, unsupported rate), retry
with the device's default buffer when the chosen one is refused, and
convert 32/16-bit integer devices from and to the f32 mix through
scratch buffers allocated up front (no allocation in the callbacks).

ASIO is behind an opt-in 'asio' feature (playback and app): building it
downloads Steinberg's ASIO SDK (proprietary licence or GPLv3) and needs
LLVM, so it stays off by default. Verified on Windows with an SSL 2+:
WASAPI output/input switching and buffer 256, ASIO duplex at 128.

Docs: G-01 shrunk, hardware-parity rows, roadmap log.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-13 11:46:55 +02:00
Limestudio90andClaude Opus 5.5 fbee545a5e ROADMAP: no blank line inside the progress log (rebase leftover)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-13 11:44:51 +02:00
Limestudio90andClaude Opus 5.5 7eb643fc5e clap-host: host embedded plugin editors on Windows
Plugins that offer no floating editor (most CLAP plugins on Windows) now
get a host window of SoundCraft's: the GUI is created embedded, parented
to a top-level HWND owned by the app window, sized from get_size, resized
on request_resize (applied by the editor's idle on the main thread, then
set_size), and torn down when the user closes the window. Floating
editors work as before; other platforms still report embedded editors
as unsupported.

Docs: plugin-parity editor rows and the roadmap log.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-13 11:44:15 +02:00
Brandon Thomas c7a4c544c0 Merge pull request #261 from Silvertree2010/fix/cli-convert-validation
Reject invalid --rate and --bit-depth in convert (#256)
2026-10-13 04:33:02 -04:00
Brandon Thomas 7c061de737 Merge main into #261
# Conflicts:
#	ROADMAP.md
2026-10-13 04:30:18 -04:00
Brandon Thomas f4233dc8f7 Merge main into #259
# Conflicts:
#	ROADMAP.md
#	contributors/people.toml
2026-10-13 04:30:18 -04:00
Limestudio90andClaude Opus 5.5 992d715493 Docs: Mix in a separate window
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-12 18:58:10 +02:00
NetterSilver 6d626adf9f Docs: update the progress docs for this change 2026-10-12 18:31:37 +02:00
NetterSilver ec41f804ff Docs: update the progress docs for this change 2026-10-12 18:26:37 +02:00
Limestudio90andClaude Opus 5.5 a1e9660e60 Audio device settings: system, devices, sample rate, buffer size; opt-in ASIO
Setup > Playback Engine now chooses the audio system (cpal host), output
and input device, device sample rate and buffer size, kept per machine
with the UI preferences and applied by reopening the devices (refused
while recording; the transport position is kept). ui.audio_device does
the same for agents and lists every system with its devices, channels,
rates and buffer range.

Player and recorder open the chosen device, fall back to the defaults
for anything unavailable (unplugged device, unsupported rate), retry
with the device's default buffer when the chosen one is refused, and
convert 32/16-bit integer devices from and to the f32 mix through
scratch buffers allocated up front (no allocation in the callbacks).

ASIO is behind an opt-in 'asio' feature (playback and app): building it
downloads Steinberg's ASIO SDK (proprietary licence or GPLv3) and needs
LLVM, so it stays off by default. Verified on Windows with an SSL 2+:
WASAPI output/input switching and buffer 256, ASIO duplex at 128.

Docs: G-01 shrunk, hardware-parity rows, roadmap log.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-12 18:22:41 +02:00
NetterSilver 8c73d9c8b3 Docs: update the progress docs for this change 2026-10-12 18:15:38 +02:00
Limestudio90andClaude Opus 5.5 434c60047d clap-host: host embedded plugin editors on Windows
Plugins that offer no floating editor (most CLAP plugins on Windows) now
get a host window of SoundCraft's: the GUI is created embedded, parented
to a top-level HWND owned by the app window, sized from get_size, resized
on request_resize (applied by the editor's idle on the main thread, then
set_size), and torn down when the user closes the window. Floating
editors work as before; other platforms still report embedded editors
as unsupported.

Docs: plugin-parity editor rows and the roadmap log.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-12 17:44:36 +02:00
skylar taylor-barrick 5589d97257 UI.9: reconcile upstream before shared UI landing 2026-10-10 18:14:05 -06:00
skylar taylor-barrick 63b487589c UI.9: preserve SoundCraft workflows with shared docking 2026-10-10 15:37:36 -06:00
Brandon ThomasandClaude Opus 5.5 330a698397 Progress docs: target-app parity, gaps, alpha gate, readiness by audience (#155)
* Progress docs to the craftrules standard; full re-measure against Pro Tools 2026.4.1

Stage: alpha. Menu breadth 482/512 (94.1%, measured), feature breadth ~70%,
ready for real work ~40%; ~350-570 agent-hours to beta, ~950-1,450 to full parity,
calibrated on this repo's PR history.

- ROADMAP.md rewritten: stage banner, two numbers, dimension/feature/language tables
- docs/target-app-parity.md: authoritative assessment (area table moved from ROADMAP)
- docs/gaps.md: 22 ranked gaps with evidence and estimates
- docs/roadmap.md: milestones, current focus, beta plan
- docs/ui-, file-format-, hardware-, plugin-, localization-parity.md: new checklists
- docs/parity.md -> docs/parity-checklist.md (generated by cargo xtask parity)
- architecture.md: video, vst3-host, au-host crates; device I/O limits

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Stage: pre-alpha under the core-workflow gate

Add the alpha gate to docs/roadmap.md: interface recording at a chosen buffer
size, MIDI recording, and session interchange with Pro Tools fail, so the stage
moves from alpha to pre-alpha (~5 points and ~110-180 agent-hours to alpha).
Mark the alpha blockers in docs/gaps.md; update ROADMAP.md, target-app-parity.md
and README.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Add mainstream-practitioner and essentials-user readiness numbers

Mainstream practitioner ~36% (weekly-area depth 50.6% x 0.90 interaction x 0.92
stability x 0.85 file exchange) and essentials user ~57% (core-feature depth
72.4% x 0.90 launch/stability x 0.90 discoverability x 0.97 files), with written
weights, discounts and GitHub user evidence. Full ready-for-real-work checked
against its written dimension weights (40.6%); unchanged at ~40%, stage unchanged.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Readiness by audience: hours to ~95% for full, mainstream and essentials

Full ~40% / 950-1,450 h, mainstream ~36% / 380-600 h, essentials ~57% / 110-200 h,
calibrated on this repo's PR history. The full number is already an additive
weighted sum over the written dimension table; method unchanged.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

---------

Co-authored-by: Claude Opus 5.5 <[email protected]>
2026-10-10 14:08:49 -04:00
reoniazx b44aaade42 macOS: move application menus to the system menu bar 2026-10-08 14:10:03 +08:00
Brandon ThomasandClaude Opus 5.5 876b098a20 Roadmap: alpha and parity estimates; README: video, surround and notation screenshots
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-06 01:48:45 -04:00
Brandon ThomasandClaude Opus 5.5 cdf86b0fd8 Roadmap: VST3
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-06 00:40:11 -04:00
Brandon ThomasandClaude Opus 5.5 cc86842abe Surround mixing, VST3 hosting, and hardening against hostile inputs
Surround:
- main and bus formats up to 9.1.6 and Ambisonics; pairwise constant-power
  surround panner (divergence, centre, LFE, height) per track and send;
  ITU fold-down; multichannel bounce with correct WAV channel masks;
  multichannel device output; surround panner and multichannel meters in the
  Mix window; setup.main_format, mix.surround_pan, mix.send_surround_pan

VST3:
- soundcraft-vst3-host: isolated unsafe crate (vst3 bindings, MIT), scans
  standard folders, hosts components/processors/controllers, params,
  latency, notes; VST3 menu; engine.vst3_plugins; e2e tests with a fixture

Hardening:
- positions from parameters clamped; offline renders capped and bounded to
  track material; loop/transport limits; hostile-parameter property test

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-06 00:39:59 -04:00
Brandon ThomasandClaude Opus 5.5 013df329eb Roadmap: recording status
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-05 23:44:40 -04:00
Brandon ThomasandClaude Opus 5.5 2f7f87b69e Roadmap update
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-05 23:44:35 -04:00
Brandon ThomasandClaude Opus 5.5 720373c0c6 Engine parity batch (76% engine, 90% with UI), comping, fades, universe, automation writing, loop record
- ~200 new commands across Edit/View/Track/Clip/Event/Options/Setup/File
  (copy/paste special, playlists, TCE, tempo operations, beat detective,
  chords, MIDI performance, view flags, setup settings, import session data)
- explicit targets bypass selection-based enablement; undo coalescing for
  gestures (faders, knobs, sliders)
- live Write/Touch/Latch volume automation passes; loop recording into
  playlists; playlist lanes with promote-to-main comping; smart-tool fade
  handles; Universe overview; VCA masters; routing-folder busses; edit groups
- bounce reports true peak; README with screenshots; parity report

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-05 23:25:09 -04:00
Brandon ThomasandClaude Opus 5.5 04d222069d Release pipeline: signed macOS/Windows, Linux packages, FreeBSD, Web; app icon
- .github/workflows/release.yml: every push to `release` builds a draft
  GitHub Release: macOS universal DMG (Developer ID + notarization),
  Windows x64/x86/arm64 MSI + zips (Azure Trusted Signing), Linux
  x86_64/aarch64 AppImage/deb/rpm/tar.gz + Flatpak manifest, FreeBSD,
  Web/WASM zip; SHA256SUMS; secrets only via the release environment
- packaging/ for every platform; .scraft + audio file associations
- cargo xtask version [set X.Y.Z] and xtask ico
- apps/soundcraft-web (trunk, WebGPU/WebGL2, WebAudio)
- placeholder app icon (original nightingale), window icon, Windows resources
- ROADMAP.md

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-05 23:17:59 -04:00