69 lines
3.1 KiB
Markdown
69 lines
3.1 KiB
Markdown
## ADDED Requirements
|
|
|
|
### Requirement: Support Unified Suno Music Edit Actions In The Music Analyzer
|
|
|
|
The system SHALL expose Suno music generation, continuation, and infill as action variants within one unified music creation flow.
|
|
|
|
#### Scenario: User switches from generate to continue in one unified form
|
|
|
|
- **GIVEN** the user is editing music in the music analyzer generation page
|
|
- **WHEN** the user changes the action from `generate` to `continue`
|
|
- **THEN** the UI SHALL keep the user in the same unified form
|
|
- **AND** SHALL reveal only the continuation parameters relevant to the selected action
|
|
|
|
#### Scenario: User switches from continue to infill in one unified form
|
|
|
|
- **GIVEN** the user is editing music in the music analyzer generation page
|
|
- **WHEN** the user changes the action from `continue` to `infill`
|
|
- **THEN** the UI SHALL remain in the same unified form
|
|
- **AND** SHALL reveal `infill_start_s` and `infill_end_s`
|
|
- **AND** SHALL preserve any compatible shared fields such as `prompt`, `title`, `tags`, and `mv`
|
|
|
|
### Requirement: Use clip_id As The Source Of Truth For Continuation Targets
|
|
|
|
The system SHALL use the Suno polling result field `clip_id` as the source-of-truth identifier for continuation and infill requests.
|
|
|
|
#### Scenario: Polling response discovers continuation clip ids before audio is ready
|
|
|
|
- **GIVEN** `/suno/fetch/{task_id}` returns generated items that already include `clip_id`
|
|
- **WHEN** playable audio URLs are not yet fully available
|
|
- **THEN** the system SHALL still remember those `clip_id` values
|
|
- **AND** SHALL reuse them in later normalized results for continuation actions
|
|
|
|
#### Scenario: User launches continuation from a generated clip card
|
|
|
|
- **GIVEN** the music analyzer displays generated clips
|
|
- **WHEN** the user chooses to continue or infill a clip
|
|
- **THEN** the system SHALL use that clip's remembered `clip_id`
|
|
- **AND** SHALL not substitute the list row `id` in place of `clip_id`
|
|
|
|
### Requirement: Scope Suno Music Parameters By Edit Action
|
|
|
|
The system SHALL validate and submit Suno music parameters according to the selected unified edit action.
|
|
|
|
#### Scenario: Basic generation omits continuation parameters
|
|
|
|
- **GIVEN** the selected action is `generate`
|
|
- **WHEN** the user submits the request
|
|
- **THEN** the system SHALL send `prompt`, `mv`, `title`, and `tags` when provided
|
|
- **AND** SHALL omit `continue_clip_id`, `continue_at`, `infill_start_s`, and `infill_end_s`
|
|
|
|
#### Scenario: Continuation requires clip id and continue time
|
|
|
|
- **GIVEN** the selected action is `continue`
|
|
- **WHEN** the user submits the request
|
|
- **THEN** the system SHALL require `continue_clip_id`
|
|
- **AND** SHALL require `continue_at`
|
|
- **AND** SHALL submit both fields to `/suno/submit/music`
|
|
|
|
#### Scenario: Infill requires continuation anchor and infill window
|
|
|
|
- **GIVEN** the selected action is `infill`
|
|
- **WHEN** the user submits the request
|
|
- **THEN** the system SHALL require `continue_clip_id`
|
|
- **AND** SHALL require `continue_at`
|
|
- **AND** SHALL require `infill_start_s`
|
|
- **AND** SHALL require `infill_end_s`
|
|
- **AND** SHALL ensure `infill_start_s` is less than `infill_end_s`
|
|
|