Skip to content

feat: Export Audio — render resynthesis to AIFF, WAV, FLAC, Ogg, AAC/ALAC - #2

Merged
ideocentric merged 2 commits into
masterfrom
feature/audio-export
May 30, 2026
Merged

feat: Export Audio — render resynthesis to AIFF, WAV, FLAC, Ogg, AAC/ALAC#2
ideocentric merged 2 commits into
masterfrom
feature/audio-export

Conversation

@ideocentric

Copy link
Copy Markdown
Owner

Summary

  • Adds File → Export → Export Audio… — renders unmuted/soloed partials to an audio file using the same synthesis engine as live playback ("what you hear is what you export")
  • Tabbed format dialog (manila-folder style matching the existing SideTabBar) with per-format options: AIFF, WAV, FLAC, Ogg Vorbis, and AAC/ALAC (macOS only)
  • AudioExporter: stateless offline renderer; creates a fresh PartialSynth, renders in 4096-sample blocks via juce::AudioFormatWriter, honours mute and solo flags at render time
  • AudioExportDialog: horizontal tab strip with per-tab option panels (bit depth, compression, quality, bitrate) and a sample-rate selector; launched via DialogWindow::LaunchOptions
  • PartialSynth::setProject tightened to const Project* (synth never mutates the project)
  • Manual §11.7 added with four dialog screenshots; §11 intro updated to distinguish audio export from symbolic data formats; updated Export submenu screenshot

Test plan

  • File → Export → Export Audio… opens the dialog defaulting to the AIFF tab
  • Switching each tab updates the option panel correctly
  • Export AIFF 24-bit — file plays in Finder / QuickTime, duration matches analysis
  • Mute several partials, re-export — muted partials absent in output
  • Test FLAC and Ogg exports — open in DAW or ffprobe
  • macOS: AAC/ALAC tab present; AAC and ALAC exports play back in QuickTime
  • Cancel dismisses without creating a file
  • All-muted warning dialog appears when every partial is muted
  • CI passes on all five targets (macOS universal, Linux x86_64/arm64, Windows x86_64/arm64)

Adds File → Export → Export Audio… — renders the current resynthesis (mute/solo state respected) to AIFF, WAV, FLAC, Ogg Vorbis, or AAC/ALAC (macOS only) via a tabbed dialog matching the app's existing SideTabBar visual style.

- AudioExporter: stateless offline renderer using a fresh PartialSynth; honours mute and solo flags, outputs at full amplitude (no monitor gain)
- AudioExportDialog: horizontal manila-folder tab strip with per-format option panels (bit depth, compression, quality, bitrate) and a sample-rate selector
- PartialSynth::setProject now takes const Project* (no mutation)
- Manual § 11.7 documents the dialog, format options, and macOS note
- Retake S-06_sub_menu.png to show Export Audio at top of submenu
- Add §11.7 Export Audio with four dialog screenshots (AIFF, FLAC, Ogg, AAC/ALAC tabs)
- Update §11 intro to distinguish audio export from symbolic data formats and clarify solo behaviour
- Remove stray section divider between §11.6 and §11.7
@ideocentric
ideocentric merged commit 6e7350d into master May 30, 2026
5 checks passed
@ideocentric
ideocentric deleted the feature/audio-export branch May 30, 2026 06:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant