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,