From e208a448d06d17b6eff58899cdc651193bd7c351 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Kr=C3=BCger?= Date: Wed, 19 Nov 2025 09:08:17 +0100 Subject: [PATCH] fix: remove fake FLAC export format MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Removed the non-standard FLAC export option which was causing import issues: **Problem:** - "FLAC" export was actually a custom compressed WAV format - Used fflate (DEFLATE compression) instead of real FLAC encoding - Files couldn't be imported back or opened in other software - No browser-compatible FLAC encoder library exists **Changes:** - Removed FLAC from export format options (WAV and MP3 only) - Removed FLAC quality slider from ExportDialog - Removed audioBufferToFlac function reference - Updated ExportSettings interface to only include 'wav' | 'mp3' - Simplified bit depth selector (WAV only instead of WAV/FLAC) - Updated format descriptions to clarify lossy vs lossless **Export formats now:** - ✅ WAV - Lossless, Uncompressed (16/24/32-bit) - ✅ MP3 - Lossy, Compressed (128/192/256/320 kbps) Users can now successfully export and re-import their audio! 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- components/dialogs/ExportDialog.tsx | 39 +++++------------------------ components/editor/AudioEditor.tsx | 12 ++------- 2 files changed, 8 insertions(+), 43 deletions(-) diff --git a/components/dialogs/ExportDialog.tsx b/components/dialogs/ExportDialog.tsx index 8a232d3..79be4c3 100644 --- a/components/dialogs/ExportDialog.tsx +++ b/components/dialogs/ExportDialog.tsx @@ -6,11 +6,10 @@ import { Button } from '@/components/ui/Button'; import { cn } from '@/lib/utils/cn'; export interface ExportSettings { - format: 'wav' | 'mp3' | 'flac'; + format: 'wav' | 'mp3'; scope: 'project' | 'selection' | 'tracks'; // Export scope bitDepth: 16 | 24 | 32; bitrate: number; // For MP3: 128, 192, 256, 320 kbps - quality: number; // For FLAC: 0-9 normalize: boolean; filename: string; } @@ -29,7 +28,6 @@ export function ExportDialog({ open, onClose, onExport, isExporting, hasSelectio scope: 'project', bitDepth: 16, bitrate: 192, // Default MP3 bitrate - quality: 6, // Default FLAC quality normalize: true, filename: 'mix', }); @@ -81,13 +79,12 @@ export function ExportDialog({ open, onClose, onExport, isExporting, hasSelectio @@ -115,8 +112,8 @@ export function ExportDialog({ open, onClose, onExport, isExporting, hasSelectio

- {/* Bit Depth (WAV and FLAC only) */} - {(settings.format === 'wav' || settings.format === 'flac') && ( + {/* Bit Depth (WAV only) */} + {settings.format === 'wav' && (
)} - {/* FLAC Quality */} - {settings.format === 'flac' && ( -
- -
- Fast - setSettings({ ...settings, quality: parseInt(e.target.value) })} - className="flex-1" - disabled={isExporting} - /> - Small -
-

- Level {settings.quality} (Higher = smaller file, slower encoding) -

-
- )} {/* Normalize */}
diff --git a/components/editor/AudioEditor.tsx b/components/editor/AudioEditor.tsx index 1bb2a29..4e75f39 100644 --- a/components/editor/AudioEditor.tsx +++ b/components/editor/AudioEditor.tsx @@ -34,7 +34,7 @@ import { } from '@/lib/history/commands/multi-track-edit-command'; import { extractBufferSegment } from '@/lib/audio/buffer-utils'; import { mixTracks, getMaxTrackDuration } from '@/lib/audio/track-utils'; -import { audioBufferToWav, audioBufferToMp3, audioBufferToFlac, downloadArrayBuffer } from '@/lib/audio/export'; +import { audioBufferToWav, audioBufferToMp3, downloadArrayBuffer } from '@/lib/audio/export'; export function AudioEditor() { const [importDialogOpen, setImportDialogOpen] = React.useState(false); @@ -746,16 +746,8 @@ export function AudioEditor() { }); mimeType = 'audio/mpeg'; fileExtension = 'mp3'; - } else if (settings.format === 'flac') { - exportedBuffer = await audioBufferToFlac(buffer, { - format: 'flac', - bitDepth: settings.bitDepth, - quality: settings.quality, - normalize: settings.normalize, - }); - mimeType = 'application/octet-stream'; - fileExtension = 'flac'; } else { + // WAV export exportedBuffer = audioBufferToWav(buffer, { format: 'wav', bitDepth: settings.bitDepth,