Repository navigation
Releases: shizuon/rb2engine
Release list
rb2engine v0.8.0
新增可选的 「尝试修复 Grid 偏移(实验性)」 开关,默认关闭。
开启后可选择 「严格」 或 「宽松」,默认严格。
使用方式
- 选择 U 盘并读取曲库。
- 勾选「尝试修复 Grid 偏移(实验性)」,选择严格或宽松。
- 转换完成后可以查看报告,确认哪些曲目进行了调整、哪些保留了原网格。
保持原 BPM、拍间距、Cue、Loop 和音频。只对判断一致的曲目调整拍点的
整体时间偏移或小节第一拍位置。原始网格保留在数据库中,关闭开关后
重新转换可恢复;桌面端重建现有数据库时会先备份。
校准网格线用到的模型已随 Windows 和 macOS 安装包提供,可离线运行。
下载
- Windows x64:解压
rb2engine-0.8.0-windows-x64.zip,运行rb2engine.exe。 - macOS Apple Silicon:解压
rb2engine-0.8.0-macos-arm64.zip,打开应用。 - Python CLI:
rb2engine-0.8.0-py3-none-any.whl;此功能需安装grid-repair
可选依赖和音频解码工具。
验证与范围
节奏不明确、偏移过大或检测结果冲突时保留原网格。详细报告记录所用
档位和检测依据,便于回看具体调整。
这是实验性修复。模型一致不等于音乐上的判断一定正确;物理 DJ 播放器
上的显示和播放未由这些测试验证,演出前仍需试听检查。
包含此前的首拍编号、可选 ANLZ/封面回退和 macOS 版本显示修复。
完整算法、离线模型来源和验证边界见
Grid alignment。
CLI: rb2engine convert /path/to/USB --repair-grid --grid-mode strict,宽松档使用
--grid-mode majority。默认转换及 --dry-run 不加载模型。
rb2engine v0.7.2
This release includes the 0.7.1 downbeat and metadata recovery fixes and
corrects the macOS Finder version display. Previous desktop bundles retained
a 0.0.0 bundle version despite containing the correct application version.
Fixes
-
macOS display/build version fields now match the application version. The
desktop workflow checks both fields in the actual built app. -
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.2-windows-x64.zipand runrb2engine.exe. - macOS Apple Silicon: extract
rb2engine-0.7.2-macos-arm64.zipand open the app. - Python CLI: install
rb2engine-0.7.2-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.
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.
rb2engine v0.7.0
Desktop conversion, missing-key analysis and Engine overview completion are now
available together in a compact Chinese/English interface.
Downloads
- Windows 10/11 x64: extract the complete
rb2engine-0.7.0-windows-x64.zip
and runrb2engine.exe. Keep_internalalongside it. WebView2 is required;
Microsoft's signed setup bootstrapper is included. - macOS Apple Silicon: extract
rb2engine-0.7.0-macos-arm64.zipand open
rb2engine.app. - Python CLI: install
rb2engine-0.7.0-py3-none-any.whl. The source archive
is also provided. This fork publishes GitHub releases and does not replace
the separately maintained upstream PyPI package.
New desktop features
- Choose a rekordbox USB, inspect tracks/playlists, convert and verify in one window.
- Optionally fill empty keys through a separately installed OpenKeyScan analyzer.
Standard macOS/Windows installations are detected; existing keys are retained. - Generate 1,024-point three-band and RGB whole-track overview waveforms during
conversion, or fill missing overviews in an existing Engine library without
rebuilding its metadata. Standalone completion preserves existing waveforms. - Windows/macOS packages include Python, NumPy, FFmpeg, the AAC helper and DSP
components. Waveform generation needs no separate compiler or FFmpeg installation.
rekordbox exports, their ANLZ waveforms and original audio remain read-only.
Database backups, source hashes, protected metadata checks, publication journals
and waveform readback verification cover Engine writes. Repeated conversion
backs up and regenerates RGB files retained from the previous database.
Validation and scope
- The local suite passed 995 tests plus 19 subtests, with 85.72% coverage;
physical-drive tests were excluded. - CI covers nine OS/Python combinations, Apple Silicon native integration, and
both desktop builds. Each desktop build exercises 13 bundled-runtime tests. - Actual frozen applications exercise native UI controls, conversion, waveforms,
verification, restore, standalone completion and AAC Unicode paths. Windows
also exercises the official OpenKeyScan analyzer. Source hashes stay unchanged. - Release publication waits for Python and both desktop builds, checks archive
integrity, component/source presence and hashes, then suppliesSHA256SUMS.
These are whole-track overview waveforms; scrolling high-resolution waveforms
are not generated. Existing-library waveform publication requires Engine schema
3.0.2; conversion with waveform completion enabled selects that schema. Real
DJ-player playback/display acceptance remains unverified.
Desktop packages are not signed for public distribution: macOS uses ad-hoc
signing without Developer ID notarization; Windows has no Authenticode signature.
FFmpeg LGPL licenses, complete corresponding source and build configuration are
included. OpenKeyScan itself is not redistributed.
Changes: PR #2.
rb2engine 0.6.1
rb2engine 0.6.1
This release continues the Last-Xuan-ai fork under shizuon/rb2engine, preserving its history and existing conversion and overview features. Install this build from the GitHub assets below; the upstream PyPI project is separately maintained.
Fixes
- Preserve source Unicode spelling when macOS FAT directory enumeration decomposes names, while retaining actual filename casing and requiring the proposed path to resolve to the same file.
- Preserve verified macOS FAT/SMB SFM special-character aliases. Alias paths must resolve to the same non-symlink file; ordinary filenames are not blindly rewritten.
- Recover materially inaccurate duration estimates for unindexed VBR MP3 files only when a complete, contiguous MPEG frame scan exactly matches decoded PCM. Partial frames, skipped junk, stream changes and decoder warnings still fail validation.
- Keep indexed/native audio clocks unchanged and avoid truncating audio tails based on a faulty bitrate estimate.
- Correct platform gating for literal-colon filename tests on Windows.
Validation and scope
Local validation: 969 tests plus 19 subtests passed, 6 physical-stick tests excluded; coverage 89.24%. Ruff and mypy passed. Release CI runs nine OS/Python combinations and an Apple Silicon native waveform integration job.
The converter leaves source audio and the Pioneer export unchanged. This release does not automatically rename source files, deduplicate libraries, or publish private USB contents. Windows filename checks and automated CI do not establish playback in Windows Engine DJ/rekordbox or on physical players. Waveform generation retains its existing platform limitations.
Install
Download rb2engine-0.6.1-py3-none-any.whl and verify it against SHA256SUMS, then run:
python -m pip install ./rb2engine-0.6.1-py3-none-any.whlFor optional waveform generation, install the waveforms extra and the external audio dependencies described in the README.