Package org.deepsymmetry.cratedigger.pdb
Generated classes for parsing rekordbox database export and track analysis files, along with support classes.
Most of these classes are generated by the Kaitai Struct Compiler project to parse the files containing track and
artwork information. They are not ideal for human consumption, but are used by
Database
, which provides the API for taking advantage of them.
The Kaitai Struct source code for these classes, which is much more readable than the classes themselves, can be found here.
The song structure tag, RekordboxAnlz.SongStructureTag
, is also now
exposed as the official API for working with phrase analysis information. Going forward, new tag types are likely
to be modeled in this way, because they are accessible through the general tag query via dbserver queries as well
as by parsing the downloaded analysis files themselves.
- Author:
- James Elliott
-
Class Summary Class Description RekordboxAnlz These files are created by rekordbox when analyzing audio tracks to facilitate DJ performance.RekordboxAnlz.BeatGridBeat Describes an individual beat in a beat grid.RekordboxAnlz.BeatGridTag Holds a list of all the beats found within the track, recording their bar position, the time at which they occur, and the tempo at that point.RekordboxAnlz.CueEntry A cue list entry.RekordboxAnlz.CueExtendedEntry A cue extended list entry.RekordboxAnlz.CueExtendedTag A variation of cue_tag which was introduced with the nxs2 line, and adds descriptive names.RekordboxAnlz.CueTag Stores either a list of ordinary memory cues and loop points, or a list of hot cues and loop points.RekordboxAnlz.PathTag Stores the file path of the audio file to which this analysis applies.RekordboxAnlz.PhraseHigh RekordboxAnlz.PhraseLow RekordboxAnlz.PhraseMid RekordboxAnlz.SongStructureBody Stores the rest of the song structure tag, which can only be parsed after unmasking.RekordboxAnlz.SongStructureEntry A song structure entry, represents a single phrase.RekordboxAnlz.SongStructureTag Stores the song structure, also known as phrases (intro, verse, bridge, chorus, up, down, outro).RekordboxAnlz.TaggedSection A type-tagged file section, identified by a four-byte magic sequence, with a header specifying its length, and whose payload is determined by the type tag.RekordboxAnlz.UnknownTag RekordboxAnlz.VbrTag Stores an index allowing rapid seeking to particular times within a variable-bitrate audio file.RekordboxAnlz.WaveColorPreviewTag A larger, colorful waveform preview image suitable for display above the touch strip for jumping to a track position on newer high-resolution players.RekordboxAnlz.WaveColorScrollTag A larger, colorful waveform image suitable for scrolling along as a track plays on newer high-resolution hardware.RekordboxAnlz.WavePreviewTag Stores a waveform preview image suitable for display above the touch strip for jumping to a track position.RekordboxAnlz.WaveScrollTag A larger waveform image suitable for scrolling along as a track plays.RekordboxPdb This is a relational database format designed to be efficiently used by very low power devices (there were deployments on 16 bit devices with 32K of RAM).RekordboxPdb.AlbumRow A row that holds an album name and ID.RekordboxPdb.ArtistRow A row that holds an artist name and ID.RekordboxPdb.ArtworkRow A row that holds the path to an album art image file and the associated artwork ID.RekordboxPdb.ColorRow A row that holds a color name and the associated ID.RekordboxPdb.DeviceSqlLongAscii An ASCII-encoded string preceded by a two-byte length field in a four-byte header.RekordboxPdb.DeviceSqlLongUtf16le A UTF-16LE-encoded string preceded by a two-byte length field in a four-byte header.RekordboxPdb.DeviceSqlShortAscii An ASCII-encoded string up to 127 bytes long.RekordboxPdb.DeviceSqlString A variable length string which can be stored in a variety of different encodings.RekordboxPdb.GenreRow A row that holds a genre name and the associated ID.RekordboxPdb.HistoryEntryRow A row that associates a track with a position in a history playlist.RekordboxPdb.HistoryPlaylistRow A row that holds a history playlist ID and name, linking to the track IDs captured during a performance on the player.RekordboxPdb.KeyRow A row that holds a musical key and the associated ID.RekordboxPdb.LabelRow A row that holds a label name and the associated ID.RekordboxPdb.Page A table page, consisting of a short header describing the content of the page and linking to the next page, followed by a heap in which row data is found.RekordboxPdb.PageRef An index which points to a table page (its offset can be found by multiplying the index by the `page_len` value in the file header).RekordboxPdb.PlaylistEntryRow A row that associates a track with a position in a playlist.RekordboxPdb.PlaylistTreeRow A row that holds a playlist name, ID, indication of whether it is an ordinary playlist or a folder of other playlists, a link to its parent folder, and its sort order.RekordboxPdb.RowGroup A group of row indices, which are built backwards from the end of the page.RekordboxPdb.RowRef An offset which points to a row in the table, whose actual presence is controlled by one of the bits in `row_present_flags`.RekordboxPdb.Table Each table is a linked list of pages containing rows of a single type.RekordboxPdb.TrackRow A row that describes a track that can be played, with many details about the music, and links to other tables like artists, albums, keys, etc.