Background
Feedback from musician tester during alpha testing period.
Problem
Even when audio classification is accurate, slight timing imperfections
in onset detection cause notes to be placed at incorrect positions in
the score. For example, a snare hit detected at 0.503s instead of
exactly 0.500s may be notated in the wrong rhythmic position or
generate spurious rests.
Proposed Solution
Implement onset quantisation — snapping detected onset times to the
nearest musical grid position within a tolerance window.
Example approach:
- Define grid positions based on detected BPM (8th notes, 16th notes)
- For each detected onset, find the nearest grid position
- If within tolerance (e.g. ±30ms), snap to that grid position
- If outside tolerance, flag as off-beat/grace note
Test Data
Piers has provided structured test files covering:
- Quarter, 8th and 16th note patterns
- Mixed rhythms
- Concurrent hits (multiple drums simultaneously)
- Triplets
- Multiple voice combinations
Files: MP3 (input), MIDI (ground truth digital), PDF (ground truth score)
References
- Standard ADT quantisation approaches
- mir_eval onset tolerance window (currently 50ms in nanaoto's benchmark)
Acceptance Criteria
Background
Feedback from musician tester during alpha testing period.
Problem
Even when audio classification is accurate, slight timing imperfections
in onset detection cause notes to be placed at incorrect positions in
the score. For example, a snare hit detected at 0.503s instead of
exactly 0.500s may be notated in the wrong rhythmic position or
generate spurious rests.
Proposed Solution
Implement onset quantisation — snapping detected onset times to the
nearest musical grid position within a tolerance window.
Example approach:
Test Data
Piers has provided structured test files covering:
Files: MP3 (input), MIDI (ground truth digital), PDF (ground truth score)
References
Acceptance Criteria