Skip to content

Commit 152b731

Browse files
committed
docs: add Phase 6 tasks and refine roadmap from Serato Sample analysis
1 parent 1ecaadd commit 152b731

2 files changed

Lines changed: 46 additions & 3 deletions

File tree

docs/engineering/implementation-plan.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,3 +185,45 @@ Baseline verification for each code task is `pnpm tsc`. The repo has no test run
185185
**Acceptance criteria**: A recorded source can be saved as project audio, chopped, assigned to pack slots as snapshots, and exported through profiles; `pnpm tsc` passes.
186186

187187
**Depends on**: Phase 4.
188+
189+
## Phase 6: Audio Intelligence and Melodic Sampling
190+
191+
### Task 6.1 - Smart chop suggestions
192+
193+
**Goal**: Surface a ranked list of candidate chop points so producers do not have to scan long sources manually.
194+
195+
**Scope**: Extend `src/lib/audioAnalysis.ts` to score candidate points by transient density, energy level, and musical phrasing. Expose the ranked list as a UI affordance in the Chop view that the user can accept, reject, or adjust. Do not auto-apply — suggestions are proposals, not decisions. The reference is Serato Sample's "Auto-Sample" (up to 25 ranked candidates).
196+
197+
**Acceptance criteria**: Chop view shows proposed points ranked by musical interest; user can accept individual suggestions or dismiss all; accepted suggestions become normal editable regions; `pnpm tsc` passes.
198+
199+
**Depends on**: Phase 5.
200+
201+
### Task 6.2 - Pitch shift and time stretch on export
202+
203+
**Goal**: Let producers tune or tempo-match samples without opening a DAW.
204+
205+
**Scope**: Add pitch shift and time stretch parameters to pack slot export settings. Implement via ffmpeg's `rubberband` or `atempo`/`asetrate` filters in `electron/main/`, or evaluate a higher-quality native library. Quality is the key constraint — the market benchmark is Serato Pitch 'n Time; the feature should be competitive, not just present.
206+
207+
**Acceptance criteria**: Pack slot export settings accept semitone pitch offset and BPM ratio; exported files are audibly correct at moderate shifts (±4 semitones, 80–130% tempo); quality is acceptable for production use; `pnpm tsc` passes.
208+
209+
**Depends on**: Phase 4.
210+
211+
### Task 6.3 - Stem separation before chopping
212+
213+
**Goal**: Let producers isolate drums, bass, melody, or vocals from a mixed source before marking chop points.
214+
215+
**Scope**: Integrate a stem separation library (e.g. Demucs via a child process in Electron main, or a WebAssembly port) and expose it as a source pre-processing step in the Chop view. The separated stems become separate source audio that feeds the normal chop workflow. Serato Sample v2.0 proved producer demand — this is a first-class feature, not a fringe utility.
216+
217+
**Acceptance criteria**: User can separate a source into stems from the Chop view; each stem opens as a separate source for chopping; separation runs locally with no external service dependency; `pnpm tsc` passes.
218+
219+
**Depends on**: Phase 5.
220+
221+
### Task 6.4 - Keyboard / melodic sampling mode
222+
223+
**Goal**: Allow a chop or sample to be played chromatically across a keyboard range.
224+
225+
**Scope**: Add a keyboard mode to the Chop view or Pack Builder that maps a selected region to a pitch range (C2–C5 or similar). In the renderer, use Web Audio API pitch shifting to preview pitched versions. On export, generate one file per semitone step (or a multi-sample format) through the target profile.
226+
227+
**Acceptance criteria**: User can assign a chop to a keyboard range; previewing plays the correct pitch; export writes correctly named files per the selected target profile; `pnpm tsc` passes.
228+
229+
**Depends on**: Task 6.2.

docs/product/roadmap.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,15 @@ Phase 3 intelligence work is mostly complete: BPM detection, key detection, and
2323
- [ ] Batch folder import and source-agnostic ingestion - bring existing sample folders into the workflow quickly.
2424
- [x] Update-from-source affordance - show when a pack slot's original chop has changed and let the user refresh intentionally.
2525
- [ ] Library management tools - support tagging, cleanup, auditioning, and metadata maintenance.
26-
- [ ] Pitch shift/time stretch export options - tune or tempo-match exported packs without requiring a DAW.
26+
- [ ] Pitch shift/time stretch export options - tune or tempo-match exported packs without requiring a DAW. Quality should be competitive with Serato Pitch 'n Time as the market benchmark — the goal is not just having the feature but being good enough that producers do not feel they are downgrading from their DAW.
27+
- [ ] Stem separation before chopping - isolate drums, bass, melody, or vocals from a mixed source (vinyl, full mixes, DAW bounces) before marking chop points. Serato Sample v2.0 made this a first-class feature and proved producer demand is real; not a fringe use case.
2728
- [ ] More target profiles - add hardware/software presets such as Teenage Engineering EP-133, Elektron Digitakt, Polyend Play, Isla Instruments S2400, DAW folder layouts, and generic pad-controller mappings when the export model supports them cleanly.
2829

2930
## Nice-to-have
3031

3132
- [ ] AI auto-tagging and similar sound search - speed up library organization and pack discovery.
32-
- [ ] Smart chop suggestions - propose useful chop points while keeping user control.
33-
- [ ] Stem separation - isolate material before chopping when the source contains mixed audio.
33+
- [ ] Smart chop suggestions - propose a ranked list of chop points sorted by musical interest (transient density, energy, musical phrasing). Serato Sample's "Auto-Sample" finds up to 25 candidate points automatically; the goal here is a surfaced suggestion list the user can accept, reject, or refine rather than raw transient markers.
34+
- [ ] Keyboard / melodic sampling mode - spread a chop or sample across a keyboard range for melodic and pitched use. Relevant for producers who work outside drum-machine pad workflows and want to play a sample chromatically.
3435
- [ ] Pack coherence analysis - flag samples that clash tonally or rhythmically.
3536
- [ ] MIDI export or DAW-oriented companion outputs - make packs easier to use outside hardware workflows.
3637
- [ ] Waveform comparison - compare two samples visually for alignment or complementary pad placement.

0 commit comments

Comments
 (0)