This gist holds the off-repo material used to produce the audio fixtures and
master.db files for the rekordbox-edit end-to-end suite. The audio files
themselves live in the repo under tests/e2e/fixtures/audio/.
NN-<codec>-<rate>-<depth-or-bitrate>[-encmode].<ext>
Codec stays in the filename even when the extension is unambiguous, so the
convention is uniform and disambiguates ALAC vs AAC inside .m4a. 44_1k uses
underscore so the dot doesn't fight extension parsing.
Only required if you need to rebuild the fixtures from scratch (e.g. the spec
changes). The committed .flac/.m4a/.aiff/.wav/.mp3 files are the source of truth.
brew install ffmpeg
curl -fsSL https://gist.githubusercontent.com/jviall/18107ca35e0e7f38cf02ba50e3b9cc77/raw/generate.sh -o generate.sh
chmod +x generate.sh
./generate.sh path/to/rekordbox-edit/tests/e2e/fixtures/audiowinget install Gyan.FFmpeg
Invoke-WebRequest -Uri "https://gist.githubusercontent.com/jviall/18107ca35e0e7f38cf02ba50e3b9cc77/raw/generate.sh" -OutFile "generate.sh"
Set-Content -Path "generate.sh" -Value (Get-Content "generate.sh" -Raw | Out-String)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
& .\generate.sh "path\to\rekordbox-edit\tests\e2e\fixtures\audio"Verify each file with ffprobe -v error -show_streams <file> and confirm the
codec / sample rate / bit depth against the fixture library table below before
committing.
| # | Filename | Codec | Rate / depth or bitrate | Title | Artist | Album |
|---|---|---|---|---|---|---|
| 1 | 01-flac-44_1k-16b.flac |
flac | 44.1 kHz / 16-bit | Wave Alpha | Alpha | Lossless Vol 1 |
| 2 | 02-flac-96k-24b.flac |
flac | 96 kHz / 24-bit | Wave Beta | Beta | Lossless Vol 1 |
| 3 | 03-alac-44_1k-16b.m4a |
alac | 44.1 kHz / 16-bit | Apple Alpha | Alpha | Apple Lossless |
| 4 | 04-alac-48k-24b.m4a |
alac | 48 kHz / 24-bit | Apple Beta | Beta | Apple Lossless |
| 5 | 05-aiff-44_1k-16b.aiff |
pcm_s16be | 44.1 kHz / 16-bit | Interchange | Gamma | AIFF Sampler |
| 6 | 06-wav-96k-24b.wav |
pcm_s24le | 96 kHz / 24-bit | Studio Master | Delta | WAV Masters |
| 7 | 07-mp3-44_1k-320cbr.mp3 |
mp3 | 44.1 kHz / 320 kbps CBR | High Quality | Epsilon | Compressed |
| 8 | 08-mp3-44_1k-v0vbr.mp3 |
mp3 | 44.1 kHz / V0 VBR | Variable Rate | Zeta | Compressed |
| 9 | 09-aac-44_1k-256kbps.m4a |
aac | 44.1 kHz / 256 kbps | Modern Lossy | Eta | AAC Collection |
| 10 | 10-üñîcödé-flac-44_1k-16b.flac |
flac | 44.1 kHz / 16-bit | Üñîcödé Mañana | Théta | (blank) |
Run once per target OS (macOS and Windows are independent; either order).
- Start with a clean Rekordbox installation (see How to do a clean uninstall of Rekordbox).
- Remove all files from the default library, delete all playlists.
- Stage the audio at the canonical path:
- macOS:
mkdir -p /tmp/rbedit-e2e/music && cp <repo>/tests/e2e/fixtures/audio/* /tmp/rbedit-e2e/music/ - Windows:
mkdir C:\rbedit-e2e\music; copy <repo>\tests\e2e\fixtures\audio\* C:\rbedit-e2e\music\
- macOS:
- Launch Rekordbox. Import the folder. Confirm all 10 tracks land with metadata per the table above; manually fix any field Rekordbox failed to read from the file tags.
- Build two playlists:
Lossless Only— tracks 1–6.Compressed— tracks 7, 8, 9.
- Save and quit Rekordbox.
- Copy the resulting DB into the repo, embedding the rekordbox version in the database filename. e.g.:
- macOS:
cp "$HOME/Library/Application Support/Pioneer/rekordbox6/master.db" <repo>/tests/e2e/fixtures/macos/master.6.8.6.dborcp "$HOME/Library/Pioneer/rekordbox/master.6.8.6.db" <repo>/tests/e2e/fixtures/macos/master.db - Windows:
Copy-Item "$env:AppData\Roaming\Pioneer\rekordbox\master.db" <repo>\tests\e2e\fixtures\windows\master.7.2.1.db
- macOS:
- Capture the
DjmdContent.IDvalues for track 1 (convert source) and track 10 (edit target) and include them in the PR body:uv run rekordbox-edit search --database-path <repo>/tests/e2e/fixtures/macos/master.db --print json | jq '.tracks[] | {ID, Title}'
- Commit
master.dbin a single PR per OS.