From 048dde39b5bf116b7d25079c60417293340f233d Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Tue, 14 Jul 2026 09:26:17 +0200 Subject: [PATCH] Update export options to include keeping unused patterns --- src/hooks/useExportProject.ts | 7 ++++--- src/routes/home/Export/ExportOptions.tsx | 6 +++--- src/routes/home/Export/ExportProjectDialog.tsx | 5 ++++- src/routes/home/Export/exportFormSchema.ts | 2 ++ 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/hooks/useExportProject.ts b/src/hooks/useExportProject.ts index 67d25f0..4a80296 100644 --- a/src/hooks/useExportProject.ts +++ b/src/hooks/useExportProject.ts @@ -105,16 +105,17 @@ function useExportProject() { const exportFn = await getExporterFn(format); - const filteredData = filterScenes(projectRawData, exporterParams); + const exportData = + format === 'ableton' ? projectRawData : filterScenes(projectRawData, exporterParams); const customSceneNames = getCustomSceneNames( projectId, - filteredData.scenes.map((s) => s.name), + exportData.scenes.map((s) => s.name), ); const result = await exportFn( projectId, - filteredData, + exportData, (stat: ExportStatus) => { setPercentage(stat.progress); setPendingStatus(stat.status); diff --git a/src/routes/home/Export/ExportOptions.tsx b/src/routes/home/Export/ExportOptions.tsx index 5745e88..b9ff8c2 100644 --- a/src/routes/home/Export/ExportOptions.tsx +++ b/src/routes/home/Export/ExportOptions.tsx @@ -110,10 +110,10 @@ function ExportOptions({ disabled = false }: { disabled?: boolean }) { helperText="Export all samples and create tracks for all pads with assigned samples, even if they are not used in patterns" /> = { - ableton: `When samples are included, suitable single-pitch pads are automatically organized into Drum Racks, while chromatic or expressive pads remain on separate MIDI tracks. Recorded fader automation is exported for LVL, PTC, LPF, HPF, FX, ATK, REL, PAN, TUNE, VEL and MOD. Choke groups work between pads in the same Drum Rack. TIM automation, the EP effects and stretching algorithms remain approximations.`, + ableton: `Every genuine EP scene is exported to Session View. When the project has an authored EP Song, it is additionally laid out in Arrangement View. The device's default one-position Scene 1 state is treated as no authored Song, so it leaves Arrangement View empty. + +When samples are included, suitable single-pitch pads are automatically organized into Drum Racks, while chromatic or expressive pads remain on separate MIDI tracks. Recorded fader automation is exported for LVL, PTC, LPF, HPF, FX, ATK, REL, PAN, TUNE, VEL and MOD. Choke groups work between pads in the same Drum Rack. TIM automation, the EP effects and stretching algorithms remain approximations.`, dawproject: `Unfortunately, the DAWproject format does not currently support the "Sampler" instrument, so you will need to manually assign the samples in your DAW.`, midi: `The simplest format supported by any DAW. But you have to assign the samples manually.`, reaper: `Only basic sampler features are supported`, @@ -46,6 +48,7 @@ function ExportProjectDialog({ projectName: `Project${projectId}`, includeArchivedSamples: true, exportAllPadsWithSamples: false, + keepUnusedPatterns: true, clips: false, groupTracks: true, drumRackGroupA: false, diff --git a/src/routes/home/Export/exportFormSchema.ts b/src/routes/home/Export/exportFormSchema.ts index 60e7a3a..a5f5ce3 100644 --- a/src/routes/home/Export/exportFormSchema.ts +++ b/src/routes/home/Export/exportFormSchema.ts @@ -14,6 +14,7 @@ export const exportFormSchema = z.object({ projectName: z.string(), includeArchivedSamples: z.boolean(), exportAllPadsWithSamples: z.boolean(), + keepUnusedPatterns: z.boolean(), clips: z.boolean(), groupTracks: z.boolean(), drumRackGroupA: z.boolean(), @@ -32,6 +33,7 @@ export const PERSISTED_FIELDS: (keyof ExportFormValues)[] = [ 'abletonVersion', 'includeArchivedSamples', 'exportAllPadsWithSamples', + 'keepUnusedPatterns', 'clips', 'groupTracks', 'drumRackGroupA',