fix: sidechain CC11 — pass kick_cache to build_bass_track + absolute position projection
Root cause: build_bass_track() never received the kick_cache in main(). Second issue: kick times were WAV-relative (0-12 beats) but bass expects absolute positions (16+ beats). Added loop-duration projection to convert relative → absolute positions across clip duration. 285 CC11 events now generated in output. 302/302 tests pass.
This commit is contained in:
@@ -23,6 +23,14 @@ def main() -> None:
|
||||
"--output", default="output/song.rpp", help="Output .rpp path (default: output/song.rpp)"
|
||||
)
|
||||
parser.add_argument("--seed", type=int, default=42, help="Random seed (default: 42)")
|
||||
parser.add_argument(
|
||||
"--emotion", default="romantic",
|
||||
help="Chord emotion: romantic|dark|club|classic (default: romantic)"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--inversion", default="root",
|
||||
help="Chord inversion: root|first|second (default: root)"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--validate", action="store_true", help="Run validator after generation"
|
||||
)
|
||||
@@ -43,6 +51,8 @@ def main() -> None:
|
||||
"--key", args.key,
|
||||
"--output", str(output_path),
|
||||
"--seed", str(args.seed),
|
||||
"--emotion", args.emotion,
|
||||
"--inversion", args.inversion,
|
||||
]
|
||||
compose.main()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user