Description
Currently, the tool reorders tracks by duration to achieve the best A/B balance. This works well for mixtapes, but breaks the intended listening experience for full albums or any recording where track sequence must be maintained.
Proposed behaviour
Add a --preserve-order flag (or an interactive prompt option) that:
- Keeps tracks in their original filesystem/tag order
- Only determines the optimal split point between Side A and Side B
- Minimises the time difference between the two sides without reordering
Use case
Dubbing a full studio album to cassette where the original track sequence and any gapless transitions must be preserved.
Suggested implementation note
In preserve-order mode, the bin-packing algorithm can be simplified to a single-pass prefix-sum search for the split index that minimises |duration(A) - duration(B)|, since no reordering is allowed.
Origin
Suggested by u/klonopinwafers in r/cassetteculture.
Description
Currently, the tool reorders tracks by duration to achieve the best A/B balance. This works well for mixtapes, but breaks the intended listening experience for full albums or any recording where track sequence must be maintained.
Proposed behaviour
Add a
--preserve-orderflag (or an interactive prompt option) that:Use case
Dubbing a full studio album to cassette where the original track sequence and any gapless transitions must be preserved.
Suggested implementation note
In preserve-order mode, the bin-packing algorithm can be simplified to a single-pass prefix-sum search for the split index that minimises
|duration(A) - duration(B)|, since no reordering is allowed.Origin
Suggested by u/klonopinwafers in r/cassetteculture.