Releases: Deep-Symmetry/crate-digger
v0.2.1-SNAPSHOT preview
🚧 This is pre-release code for people who want to help test what is going into the next release.
Don’t download this if you aren’t comfortable testing code while it is under active development! Instead, look at the latest release.
The API docs for the latest preview release can be viewed here.
v0.2.0
Changed
- Upgraded Kaitai Struct to version 0.10, which includes a number of fixes and adds linting of mapped values.
🔧 This is a backwards-incompatible change. - Since we are already backwards incompatible with pervious releases, changed some mapped value names to correspond to the KSY style guide and fix linter errors reported by KSC 0.10:
- In
rekordbox_pdb.ksy
renamednum_groups
tonum_row_groups
.
This means thatPage.numGroups
is nowPage.numRowGroups
in the generated Java class. - In
rekordbox_pdb.ksy
renamedautoload_hotcues
toautoload_hot_cues
.
This means thatTrackRow.autoloadHotcues
is nowTrackRow.autoloadHotCues
in the generated Java class. - In
rekordbox_anlz.ksy
renamedlen_preview
tolen_data
.
This means thatWavePreviewTag.lenPreview
is nowWavePreviewTag.lenData
in the generated Java class. - In
rekordbox_anlz.ksy
renamedlen_beats
tonum_beats
.
This means thatBeatGridTag.lenBeats
is nowBeatGridTag.numBeats
in the generated Java class. - In
rekordbox_anlz.ksy
renamedlen_cues
tonum_cues
.
This means thatCueTag.lenCues
andExtendedCueTag.lenCues
are nowCueTag.numCues
andExtendedCueTag.numCues
in the generated Java classes.
- In
- Also upgraded to Java 11 as a compilation target, in order to be able to work with the new IO API, among other things.
Added
- New API to create an archive of all the metadata from a media export volume needed to support Beat Link (to support working with the Opus Quad, which cannot provide metadata itself).
Fixed
- With the help of new linting in the latest unreleased version of KSC, changed all character encoding names to use their soon-to-be-canonical uppercase versions.
0.1.6
Added
- Ability to parse
PSSI
(song structure/phrase analysis) tags now exported by rekordbox 6. - Ability to parse the history playlist names and entries found in rekordbox database exports.
Changed
-
Upgraded Kaitai Struct to version 0.9, which fixes a bug that prevented us from using enums for the four-character-codes in track analysis files. This makes the parsed values more readable in the Web IDE, and in the generated classes as well.
🔧 This is a backwards-incompatible change.
-
@Swiftb0y improved our understanding of the format of DeviceSQL strings in export files, which simplified the Kaitai Struct
definitions for them, and greatly improved the documentation.
Fixed
- The offset numbers in table page diagrams were incorrect (the documentation did not accurately reflect the Kaitai Struct parser).
0.1.5
Fixed
- DeviceSQL Strings with kind
90
are actually stored as UTF-16LE with an unknown00
byte between the length and text. - The structure analysis documentation and diagram for database table pages neglected a pair of unknown bytes at the end, so the locations of the row presence flags and row offsets were shown incorrectly.
0.1.4
Fixed
- The colors assigned to ordinary memory points and loops use a completely separate mechanism, which was discovered by @ehendrikd.
- Apparently some
DAT
files can be created by mixers somehow? And apparently these have incorrectly-formatted vestigialPWAV
andPWV2
tags that claim to have the normal number of preview bytes, but whose tag size is equal to their header size, so they have no actual data at all. This was causing the Kaitai Struct parser to crash. This change allows the parse to succeed, and instead these tags will returnnil
when you ask for theirdata()
. - Rekordbox 6 seems to have at least one new phrase style in it, and this was also crashing the parser. For now, until KSC can handle switching on possibly-null enum values in Java, give up on using an enum for this.
0.1.3
A small analysis file mapping fix.
Fixed
- The parsing of
DAT
files would crash on some cue lists because we originally assumed the cue count was a four byte value, but it appears to actually only be two bytes (which is more than enough)and sometimes non-zero values would appear in the high bytes, causing us to try to read vastly more cues than actually existed. Thanks to @drummerclint for reporting this and sharing the problem file that enabled me to figure it out.
0.1.2
A small fix and an improved build process.
Fixed
- Some extended cue entries found in the field were missing the color bytes which are expected to follow the comment text, and this was causing the parsing of
EXT
files to fail. These values are now treated as optional. - Now builds properly under current JDKs, including Amazon Corretto 11 (which is a long-term support release). The minimum JDK for building is now Java 9, but the resulting build is still compatible back to
Java 1.6. Building under Java 11 results in much nicer JavaDoc, with search support.
0.1.1
A release to support the display of hot cue colors, and named cues and loops.
Added
- Ability to parse
PCO2
tags, which hold cues and loops along with DJ-assigned comment labels and colors, displayable on nxs2 players. - Ability to parse
PSSI
tags, which hold phrase structure analysis performed by rekord box with a Performance license. (As this is not currently included when tracks are exported to removable media, nor available through adbserver
query, it cannot be used by Beat Link.) Many thanks to @mganss for this contribution! - More explanation of the interpretation of waveform color preview tags.