Repository navigation
rb2engine v0.7.1
This maintenance release preserves downbeat numbering and recovers usable
analysis data and cover images when optional metadata is malformed.
Fixes
- A source grid beginning on beat 2, 3 or 4 now keeps that position within its
bar. Previously the first stored beat was always numbered as a downbeat,
even when its timestamp was correct. Beat and Cue times remain unchanged. - Unsupported or malformed optional PQT2 bodies no longer discard valid
PQTZ grids or later Cue tags. Invalid tag boundaries still fail explicitly. - A malformed front-cover frame no longer hides another recognizable image
embedded in the same file. Existing ID3v2.4 decoding safeguards are retained.
No new variable-tempo analysis or PQT2 microsecond adjustment is enabled.
The converter continues to preserve the source grid rather than re-detecting it.
Downloads
- Windows x64: extract
rb2engine-0.7.1-windows-x64.zipand runrb2engine.exe. - macOS Apple Silicon: extract
rb2engine-0.7.1-macos-arm64.zipand open the app. - Python CLI: install
rb2engine-0.7.1-py3-none-any.whl. - Verify downloaded files against the supplied
SHA256SUMS.
Python and the waveform runtime are included in the desktop archives. This
fork publishes on GitHub; the upstream PyPI project is separately maintained.
Validation and scope
The local non-hardware suite passed 1,023 tests plus 19 subtests, with 85.87%
coverage. The three new regression groups failed against the previous source
before the fixes. Release CI repeats the cross-platform suite, builds both
desktop packages and exercises the actual frozen applications.
The packaged-app fixture now includes a pickup starting on bar beat 3, an
unsupported PQT2 body and a later Cue. Its written database must retain both
the downbeat and Cue at exactly 1.25 seconds, at 120 BPM, with source hashes
unchanged. Physical DJ-player playback/display remains a separate acceptance
step and was not verified by these tests.
Existing libraries receive these conversion fixes on reconversion. Filling
overview waveforms alone does not rewrite beatgrids or cues. Conversion keeps
its existing database backup behavior.
See grid alignment and downbeat research for the
difference between source timing, bar numbering and audio-based correction.
Thanks to kjekac's upstream #12
and #13 for the fallback cases.