pyrekordbox 0.3.2__py3-none-any.whl → 0.4.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pyrekordbox/__init__.py +8 -8
- pyrekordbox/__main__.py +3 -2
- pyrekordbox/_version.py +2 -2
- pyrekordbox/anlz/__init__.py +3 -2
- pyrekordbox/anlz/file.py +4 -2
- pyrekordbox/anlz/tags.py +3 -1
- pyrekordbox/config.py +79 -23
- pyrekordbox/db6/__init__.py +2 -2
- pyrekordbox/db6/aux_files.py +3 -2
- pyrekordbox/db6/database.py +101 -111
- pyrekordbox/db6/registry.py +1 -0
- pyrekordbox/db6/smartlist.py +7 -6
- pyrekordbox/db6/tables.py +44 -16
- pyrekordbox/logger.py +0 -1
- pyrekordbox/mysettings/__init__.py +5 -4
- pyrekordbox/mysettings/file.py +3 -1
- pyrekordbox/rbxml.py +5 -3
- pyrekordbox/utils.py +4 -3
- {pyrekordbox-0.3.2.dist-info → pyrekordbox-0.4.0.dist-info}/METADATA +21 -41
- pyrekordbox-0.4.0.dist-info/RECORD +25 -0
- {pyrekordbox-0.3.2.dist-info → pyrekordbox-0.4.0.dist-info}/WHEEL +1 -1
- {pyrekordbox-0.3.2.dist-info → pyrekordbox-0.4.0.dist-info}/top_level.txt +0 -2
- docs/Makefile +0 -20
- docs/make.bat +0 -35
- docs/source/_static/images/anlz_beat.svg +0 -53
- docs/source/_static/images/anlz_file.svg +0 -204
- docs/source/_static/images/anlz_pco2.svg +0 -138
- docs/source/_static/images/anlz_pcob.svg +0 -148
- docs/source/_static/images/anlz_pcp2.svg +0 -398
- docs/source/_static/images/anlz_pcpt.svg +0 -263
- docs/source/_static/images/anlz_ppth.svg +0 -123
- docs/source/_static/images/anlz_pqt2.svg +0 -324
- docs/source/_static/images/anlz_pqt2_2.svg +0 -253
- docs/source/_static/images/anlz_pqtz.svg +0 -140
- docs/source/_static/images/anlz_pssi.svg +0 -192
- docs/source/_static/images/anlz_pssi_entry.svg +0 -191
- docs/source/_static/images/anlz_pvbr.svg +0 -125
- docs/source/_static/images/anlz_pwav.svg +0 -130
- docs/source/_static/images/anlz_pwv3.svg +0 -139
- docs/source/_static/images/anlz_pwv4.svg +0 -139
- docs/source/_static/images/anlz_pwv5.svg +0 -139
- docs/source/_static/images/anlz_pwv5_entry.svg +0 -100
- docs/source/_static/images/anlz_pwv6.svg +0 -130
- docs/source/_static/images/anlz_pwv7.svg +0 -139
- docs/source/_static/images/anlz_pwvc.svg +0 -125
- docs/source/_static/images/anlz_tag.svg +0 -110
- docs/source/_static/images/x64dbg_rb_key.png +0 -0
- docs/source/_static/logos/dark/logo_primary.svg +0 -75
- docs/source/_static/logos/light/logo_primary.svg +0 -75
- docs/source/_static/logos/mid/logo_primary.svg +0 -75
- docs/source/_templates/apidoc/module.rst_t +0 -8
- docs/source/_templates/apidoc/package.rst_t +0 -57
- docs/source/_templates/apidoc/toc.rst_t +0 -7
- docs/source/_templates/autosummary/class.rst +0 -32
- docs/source/_templates/autosummary/module.rst +0 -55
- docs/source/api.md +0 -18
- docs/source/conf.py +0 -178
- docs/source/development/changes.md +0 -3
- docs/source/development/contributing.md +0 -3
- docs/source/formats/anlz.md +0 -634
- docs/source/formats/db6.md +0 -1233
- docs/source/formats/mysetting.md +0 -392
- docs/source/formats/xml.md +0 -376
- docs/source/index.md +0 -103
- docs/source/installation.md +0 -271
- docs/source/key.md +0 -103
- docs/source/quickstart.md +0 -189
- docs/source/requirements.txt +0 -7
- docs/source/tutorial/anlz.md +0 -7
- docs/source/tutorial/configuration.md +0 -66
- docs/source/tutorial/db6.md +0 -178
- docs/source/tutorial/index.md +0 -20
- docs/source/tutorial/mysetting.md +0 -124
- docs/source/tutorial/xml.md +0 -140
- pyrekordbox/xml.py +0 -8
- pyrekordbox-0.3.2.dist-info/RECORD +0 -84
- tests/__init__.py +0 -3
- tests/test_anlz.py +0 -206
- tests/test_config.py +0 -175
- tests/test_db6.py +0 -1193
- tests/test_mysetting.py +0 -203
- tests/test_xml.py +0 -629
- {pyrekordbox-0.3.2.dist-info → pyrekordbox-0.4.0.dist-info}/LICENSE +0 -0
docs/source/formats/db6.md
DELETED
@@ -1,1233 +0,0 @@
|
|
1
|
-
(db6-format)=
|
2
|
-
# Rekordbox 6 Database Format
|
3
|
-
|
4
|
-
With Rekordbox 6 Pioneer switched from using a DeviceSQL database (`.edb`) to SQLite.
|
5
|
-
This is an [SQLite3] database encrypted with [SQLCipher4].
|
6
|
-
|
7
|
-
## Encryption
|
8
|
-
|
9
|
-
The new SQLite database is encrypted which means it can't be used without
|
10
|
-
the encryption key. Pioneer did this because they prefer that no one outside of
|
11
|
-
Pioneer touches it (there is a forum post by Pulse).
|
12
|
-
Since your data is stored and used locally, we know that the key must be present
|
13
|
-
on our machine. Knowing the key must be local somewhere, gives good hope that you
|
14
|
-
can find it. It appears that the key is not license or machine dependent and all
|
15
|
-
databases are encrypted with the same key [^cite_ref6].
|
16
|
-
|
17
|
-
## Database structure
|
18
|
-
|
19
|
-
The new SQLite database is clearly structured and easy to parse once it is unlocked.
|
20
|
-
Most tables in the database seem to have a few default columns used by Rekordbox
|
21
|
-
internally. The last columns of most tables usually are
|
22
|
-
|
23
|
-
```{eval-rst}
|
24
|
-
.. list-table:: Default columns of database tables
|
25
|
-
:widths: 25 75
|
26
|
-
:header-rows: 1
|
27
|
-
|
28
|
-
* - Table Name
|
29
|
-
- Description
|
30
|
-
* - `UUID`
|
31
|
-
- Universally Unique Identifier
|
32
|
-
* - `rb_data_status`
|
33
|
-
- Unknown
|
34
|
-
* - `rb_local_data_status`
|
35
|
-
- Unknown
|
36
|
-
* - `rb_local_deleted`
|
37
|
-
- Unknown
|
38
|
-
* - `rb_local_synced`
|
39
|
-
- If the entry is synced with the cloud
|
40
|
-
* - `usn`
|
41
|
-
- Update sequence number
|
42
|
-
* - `rb_local_usn`
|
43
|
-
- Local update sequence number
|
44
|
-
* - `created_at`
|
45
|
-
- Creation time of the entry
|
46
|
-
* - `updated_at`
|
47
|
-
- Last update time of the entry
|
48
|
-
```
|
49
|
-
|
50
|
-
If a table *does not* use these default columns it is noted in the description of the
|
51
|
-
table.
|
52
|
-
|
53
|
-
### Collection
|
54
|
-
|
55
|
-
The main track data of the Rekordbox collection is stored in the `djmdContent` table.
|
56
|
-
Some tags are linked to other tables in the database via the `ID` column. These include
|
57
|
-
|
58
|
-
| Tag | ID | Table |
|
59
|
-
|----------|--------------|--------------|
|
60
|
-
| Album | `AlbumID` | `djmdAlbum` |
|
61
|
-
| Artist | `ArtistID` | `djmdArtist` |
|
62
|
-
| Composer | `ComposerID` | `djmdArtist` |
|
63
|
-
| Genre | `GenreID` | `djmdGenre` |
|
64
|
-
| Key | `KeyID` | `djmdKey` |
|
65
|
-
| Label | `LabelID` | `djmdLabel` |
|
66
|
-
| Remixer | `RemixerID` | `djmdArtist` |
|
67
|
-
|
68
|
-
### Playlists and Histories
|
69
|
-
|
70
|
-
Playlist-like objects like Playlists and Histories are each stored in two tables,
|
71
|
-
`djmd<NAME>` and `djmdSong<NAME>`. Regular playlists, for example, are stored in the tables
|
72
|
-
`djmdPlaylist` and `djmdSongPlaylist`.
|
73
|
-
|
74
|
-
The first table contains the information about each playlist or playlist folder, similar
|
75
|
-
to the nodes of the Rekordbox XML format. Each entry contains a `ID`. The second table
|
76
|
-
contains the tracks which are contained in all the corresponding playlists. Each entry
|
77
|
-
contains a `<NAME>ID`, which links it to a playlist in the first table. The track
|
78
|
-
is linked to the `djmdContent` table via the `ContentID`.
|
79
|
-
|
80
|
-
## Tables
|
81
|
-
|
82
|
-
### djmdActiveCensor
|
83
|
-
|
84
|
-
This table stores the Active Censor data of Rekordbox. It contains information for
|
85
|
-
actively censoring explicit content of tracks in the Rekordbox collection.
|
86
|
-
Active Censor items behave like two cue points, between which an effect is applied to
|
87
|
-
the audio of a track. The table has the following columns:
|
88
|
-
|
89
|
-
```{eval-rst}
|
90
|
-
.. list-table:: djmdActiveCensor columns
|
91
|
-
:widths: 25 75
|
92
|
-
:header-rows: 1
|
93
|
-
|
94
|
-
* - Table Name
|
95
|
-
- Description
|
96
|
-
* - `ID`
|
97
|
-
- The ID of the Active Censor entry
|
98
|
-
* - `ContentID`
|
99
|
-
- The ID of the corresponding track
|
100
|
-
* - `InMsec`
|
101
|
-
- The start time of the section in milli-seconds
|
102
|
-
* - `OutMsec`
|
103
|
-
- The end time of the section in milli-seconds
|
104
|
-
* - `Info`
|
105
|
-
-
|
106
|
-
* - `ParameterList`
|
107
|
-
-
|
108
|
-
* - `ContentUUID`
|
109
|
-
-
|
110
|
-
|
111
|
-
```
|
112
|
-
|
113
|
-
### djmdAlbum
|
114
|
-
|
115
|
-
This table stores the Album data of Rekordbox. Since multiple tracks can be in the
|
116
|
-
same album this data is stored in its own table. The table contains all albums found in
|
117
|
-
the collection.
|
118
|
-
|
119
|
-
```{eval-rst}
|
120
|
-
.. list-table:: djmdAlbum columns
|
121
|
-
:widths: 25 100
|
122
|
-
:header-rows: 1
|
123
|
-
|
124
|
-
* - Table Name
|
125
|
-
- Description
|
126
|
-
* - `ID`
|
127
|
-
- The ID of the album.
|
128
|
-
* - `Name`
|
129
|
-
- The name of the album.
|
130
|
-
* - `AlbumArtistID`
|
131
|
-
- The ID of the album-artist (djmdArtist table)
|
132
|
-
* - `ImagePath`
|
133
|
-
- The path to the album artwork
|
134
|
-
* - `Compilation`
|
135
|
-
- Flag if the album is a compilation
|
136
|
-
* - `SearchStr`
|
137
|
-
- A string somehow used for searching (mostly None)
|
138
|
-
|
139
|
-
```
|
140
|
-
|
141
|
-
### djmdArtist
|
142
|
-
|
143
|
-
This table stores the Artist data of Rekordbox. Since multiple tracks can be made by
|
144
|
-
the same artist this data is stored in its own table. The table contains all artists
|
145
|
-
found in the collection.
|
146
|
-
|
147
|
-
```{eval-rst}
|
148
|
-
.. list-table:: djmdArtist columns
|
149
|
-
:widths: 25 100
|
150
|
-
:header-rows: 1
|
151
|
-
|
152
|
-
* - Column Name
|
153
|
-
- Description
|
154
|
-
* - `ID`
|
155
|
-
- The ID of the artist.
|
156
|
-
* - `Name`
|
157
|
-
- The name of the artist.
|
158
|
-
* - `SearchStr`
|
159
|
-
- A string somehow used for searching (mostly None)
|
160
|
-
|
161
|
-
|
162
|
-
```
|
163
|
-
|
164
|
-
### djmdCategory
|
165
|
-
|
166
|
-
This table stores the Category data of Rekordbox.
|
167
|
-
|
168
|
-
```{eval-rst}
|
169
|
-
.. list-table:: djmdCategory columns
|
170
|
-
:widths: 25 100
|
171
|
-
:header-rows: 1
|
172
|
-
|
173
|
-
* - Column Name
|
174
|
-
- Description
|
175
|
-
* - `ID`
|
176
|
-
- The ID of the category.
|
177
|
-
* - `MenuItemID`
|
178
|
-
-
|
179
|
-
* - `Seq`
|
180
|
-
-
|
181
|
-
* - `Disable`
|
182
|
-
-
|
183
|
-
* - `InfoOrder`
|
184
|
-
-
|
185
|
-
|
186
|
-
```
|
187
|
-
|
188
|
-
### djmdCloudProperty
|
189
|
-
|
190
|
-
This table contains no data and consists of reserved columns.
|
191
|
-
|
192
|
-
### djmdColor
|
193
|
-
|
194
|
-
This table stores the Color data of Rekordbox. The table contains all colors used by
|
195
|
-
Rekordbox and for tagging tracks:
|
196
|
-
|
197
|
-
```{eval-rst}
|
198
|
-
.. list-table:: djmdCategory columns
|
199
|
-
:widths: 25 100
|
200
|
-
:header-rows: 1
|
201
|
-
|
202
|
-
* - Column Name
|
203
|
-
- Description
|
204
|
-
* - `ID`
|
205
|
-
- The ID of the color
|
206
|
-
* - `ColorCode`
|
207
|
-
- Some code for the color
|
208
|
-
* - `SortKey`
|
209
|
-
- A key used for sorting colors
|
210
|
-
* - `Commnt`
|
211
|
-
- The name of the color
|
212
|
-
|
213
|
-
```
|
214
|
-
|
215
|
-
### djmdContent
|
216
|
-
|
217
|
-
This table stores the main track data of Rekordbox. The table contains most information
|
218
|
-
about each track in the collection. Some columns are linked to other tables by the
|
219
|
-
corresponding ID.
|
220
|
-
|
221
|
-
```{eval-rst}
|
222
|
-
.. list-table:: djmdContent columns
|
223
|
-
:widths: 1 1 1
|
224
|
-
:header-rows: 1
|
225
|
-
|
226
|
-
* - Column Name
|
227
|
-
- Description
|
228
|
-
- Notes
|
229
|
-
* - `ID`
|
230
|
-
- The ID of the content
|
231
|
-
- referenced as `ContentID` in other tables
|
232
|
-
* - `FolderPath`
|
233
|
-
- The full path of the file
|
234
|
-
-
|
235
|
-
* - `FileNameL`
|
236
|
-
- The long file name
|
237
|
-
- This is the normal file name
|
238
|
-
* - `FileNameS`
|
239
|
-
- The short file name
|
240
|
-
- mostly empty
|
241
|
-
* - `Title`
|
242
|
-
- The title of the track
|
243
|
-
-
|
244
|
-
* - `ArtistID`
|
245
|
-
- The ID of the artist of the track
|
246
|
-
- Links to `ID` in the `djmdArtist` table
|
247
|
-
* - `AlbumID`
|
248
|
-
- The album of the track
|
249
|
-
- Links to `ID` in the `djmdAlbum` table
|
250
|
-
* - `GenreID`
|
251
|
-
- The genre of the track
|
252
|
-
- Links to `ID` in the `djmdGenre` table
|
253
|
-
* - `BPM`
|
254
|
-
- The average BPM of the track
|
255
|
-
- Unit: Second
|
256
|
-
* - `Length`
|
257
|
-
- The length of the track
|
258
|
-
- Unit: seconds
|
259
|
-
* - `TrackNo`
|
260
|
-
- Number of the track of the album
|
261
|
-
-
|
262
|
-
* - `BitRate`
|
263
|
-
- Encoding bit rate
|
264
|
-
- Unit: Kbps
|
265
|
-
* - `BitDepth`
|
266
|
-
- Encoding bit depth
|
267
|
-
- Unit: Bits
|
268
|
-
* - `Commnt`
|
269
|
-
- The comments of the track
|
270
|
-
-
|
271
|
-
* - `FileType`
|
272
|
-
- Type of audio file
|
273
|
-
- mp3= `0` / `1` , m4a= `4` , wav= `11` , aiff= `12`
|
274
|
-
* - `Rating`
|
275
|
-
- Rating of the track
|
276
|
-
-
|
277
|
-
* - `ReleaseYear`
|
278
|
-
- Year of release
|
279
|
-
-
|
280
|
-
* - `RemixerID`
|
281
|
-
- The remixer of the track
|
282
|
-
- Links to `ID` in the `djmdArtist` table
|
283
|
-
* - `LabelID`
|
284
|
-
- The record label
|
285
|
-
- Links to `ID` in the `djmdLabel` table
|
286
|
-
* - `OrgArtistID`
|
287
|
-
- The original artist (for remixes)
|
288
|
-
- Links to `ID` in the `djmdArtist` table
|
289
|
-
* - `KeyID`
|
290
|
-
- Tonality (Kind of musical key)
|
291
|
-
- Links to `ID` in the `djmdKey` table
|
292
|
-
* - `StockDate`
|
293
|
-
- ?
|
294
|
-
-
|
295
|
-
* - `ColorID`
|
296
|
-
- Colour for track grouping
|
297
|
-
- Links to `ID` in the `djmdColor` table
|
298
|
-
* - `DJPlayCount`
|
299
|
-
- Play count of the track
|
300
|
-
- Not sure if plays in Rekordbox count
|
301
|
-
* - `ImagePath`
|
302
|
-
- Path to the tracks album artwork
|
303
|
-
- The path is relative to the Rekordbox database root
|
304
|
-
* - `MasterDBID`
|
305
|
-
- The master-ID of the track
|
306
|
-
- Not sure whats the difference to `ID`
|
307
|
-
* - `MasterSongID`
|
308
|
-
- The master-song-ID of the track
|
309
|
-
- Not sure whats the difference to `ID` and `MasterDBID`
|
310
|
-
* - `AnalysisDataPath`
|
311
|
-
- Path to the tracks analysis files (ANLZ)
|
312
|
-
- The path is relative to the Rekordbox database root
|
313
|
-
* - `SearchStr`
|
314
|
-
- Some string used for searching?
|
315
|
-
-
|
316
|
-
* - `FileSize`
|
317
|
-
- The file size of the track
|
318
|
-
- Unit: Octet
|
319
|
-
* - `DiscNo`
|
320
|
-
- Number of the disc of the album
|
321
|
-
-
|
322
|
-
* - `ComposerID`
|
323
|
-
- The composer (or producer) of the track
|
324
|
-
- Links to `ID` in the `djmdArtist` table
|
325
|
-
* - `Subtitle`
|
326
|
-
- The track subtitles
|
327
|
-
-
|
328
|
-
* - `SampleRate`
|
329
|
-
- Frequency of sampling
|
330
|
-
- Unit: Hertz
|
331
|
-
* - `DisableQuantize`
|
332
|
-
- Individual quantize setting fro track
|
333
|
-
- If None the global setting is used
|
334
|
-
* - `Analysed`
|
335
|
-
- Some code how the trck is analyzed
|
336
|
-
- Guessing not analyzed= `0` , standard= `105` , advanced= `121`, locked = `233`
|
337
|
-
* - `ReleaseDate`
|
338
|
-
- Date of track release
|
339
|
-
- Format: yyyy-mm-dd; ex.: 2010-08-21
|
340
|
-
* - `DateCreated`
|
341
|
-
- Date of file creation
|
342
|
-
- Format: yyyy-mm-dd; ex.: 2010-08-21
|
343
|
-
* - `ContentLink`
|
344
|
-
- ?
|
345
|
-
-
|
346
|
-
* - `Tag`
|
347
|
-
- My tag value
|
348
|
-
-
|
349
|
-
* - `ModifiedByRBM`
|
350
|
-
- ?
|
351
|
-
-
|
352
|
-
* - `HotCueAutoLoad`
|
353
|
-
- Individual hot cue auto-load settin
|
354
|
-
- Either `'on'` or `'off'`
|
355
|
-
* - `DeliveryControl`
|
356
|
-
- ?
|
357
|
-
-
|
358
|
-
* - `DeliveryComment`
|
359
|
-
- ?
|
360
|
-
-
|
361
|
-
* - `CueUpdated`
|
362
|
-
- Maybe number of times cues where changed?
|
363
|
-
-
|
364
|
-
* - `AnalysisUpdated`
|
365
|
-
- Flag if track is analyzed in advanced mode
|
366
|
-
- advanced= `1`, normal= `0`
|
367
|
-
* - `TrackInfoUpdated`
|
368
|
-
- Maybe number of times cues where changed?
|
369
|
-
-
|
370
|
-
* - `Lyricist`
|
371
|
-
- The lyricist of the track
|
372
|
-
-
|
373
|
-
* - `ISRC`
|
374
|
-
- The ISRC code of the track
|
375
|
-
-
|
376
|
-
* - `SamplerTrackInfo`
|
377
|
-
- ?
|
378
|
-
-
|
379
|
-
* - `SamplerPlayOffset`
|
380
|
-
- ?
|
381
|
-
-
|
382
|
-
* - `SamplerGain`
|
383
|
-
- ?
|
384
|
-
-
|
385
|
-
* - `VideoAssociate`
|
386
|
-
- ?
|
387
|
-
-
|
388
|
-
* - `LyricStatus`
|
389
|
-
- ?
|
390
|
-
-
|
391
|
-
* - `ServiceID`
|
392
|
-
- ?
|
393
|
-
-
|
394
|
-
* - `OrgFolderPath`
|
395
|
-
- ?
|
396
|
-
- Mostly same as `FolderPath`
|
397
|
-
* - `Reserved1`
|
398
|
-
-
|
399
|
-
-
|
400
|
-
* - `Reserved2`
|
401
|
-
-
|
402
|
-
-
|
403
|
-
* - `Reserved3`
|
404
|
-
-
|
405
|
-
-
|
406
|
-
* - `Reserved4`
|
407
|
-
-
|
408
|
-
-
|
409
|
-
* - `ExtInfo`
|
410
|
-
- ?
|
411
|
-
-
|
412
|
-
* - `rb_file_id`
|
413
|
-
- The Rekordbox ID of the file
|
414
|
-
-
|
415
|
-
* - `DeviceID`
|
416
|
-
- ?
|
417
|
-
-
|
418
|
-
* - `rb_LocalFolderPath`
|
419
|
-
- ?
|
420
|
-
-
|
421
|
-
* - `SrcID`
|
422
|
-
- ?
|
423
|
-
-
|
424
|
-
* - `SrcTitle`
|
425
|
-
- ?
|
426
|
-
-
|
427
|
-
* - `SrcArtistName`
|
428
|
-
- ?
|
429
|
-
-
|
430
|
-
* - `SrcAlbumName`
|
431
|
-
- ?
|
432
|
-
-
|
433
|
-
* - `SrcLength`
|
434
|
-
- ?
|
435
|
-
-
|
436
|
-
|
437
|
-
```
|
438
|
-
|
439
|
-
### djmdCue
|
440
|
-
|
441
|
-
This table stores the cue points (memory and hotcues) of the tracks in Rekordbox.
|
442
|
-
|
443
|
-
```{note}
|
444
|
-
Rekordbox internally represents time in "frames", each being 1/150th of a second (6.666ms).
|
445
|
-
The `InFrame` and `OutFrame` values use this unit of time. However, when a track is encoded with
|
446
|
-
variable bit-rate (VBR) or average bit-rate (ABR), the `InMpegFrame` and `OutMpegFrame` values
|
447
|
-
are filled out to assist with correctly seeking. Despite the names, these values are **not** the
|
448
|
-
frame indices within the MPEG file, but instead use an alternative timing scheme that is typically
|
449
|
-
around 1/75th of a second (13.333ms) per frame, i.e. about half the granularity of normal frames.
|
450
|
-
```
|
451
|
-
|
452
|
-
```{eval-rst}
|
453
|
-
.. list-table:: djmdCue columns
|
454
|
-
:widths: 1 1 1
|
455
|
-
:header-rows: 1
|
456
|
-
|
457
|
-
* - Column Name
|
458
|
-
- Description
|
459
|
-
- Notes
|
460
|
-
* - `ID`
|
461
|
-
- The ID of the cue point
|
462
|
-
-
|
463
|
-
* - `ContentID`
|
464
|
-
- The corresponding track of the cue
|
465
|
-
- Links to `ID` in the `djmdContent` table
|
466
|
-
* - `InMsec`
|
467
|
-
- Start time of the cue point
|
468
|
-
- Unit: Millisecond
|
469
|
-
* - `InFrame`
|
470
|
-
- The frame number of the start time
|
471
|
-
- One frame is 1/150th of a second
|
472
|
-
* - `InMpegFrame`
|
473
|
-
- The MPEG frame number of the start time
|
474
|
-
- See note above. `0` if not a VBR/ABR MPEG file.
|
475
|
-
* - `InMpegAbs`
|
476
|
-
- The offset (bytes) in the file where the starting frame appears.
|
477
|
-
- `0` if not a VBR/ABR MPEG file.
|
478
|
-
* - `OutMsec`
|
479
|
-
- End time of the cue point (for loops)
|
480
|
-
- Unit: Millisecond, `-1` if not a loop
|
481
|
-
* - `OutFrame`
|
482
|
-
- The frame number of the end time (for loops)
|
483
|
-
- One frame is 1/150th of a second. `0` if not a loop
|
484
|
-
* - `OutMpegFrame`
|
485
|
-
- The MPEG frame number of the end time (for loops)
|
486
|
-
- See note above. `0` if not a loop or VBR/ABR MPEG file
|
487
|
-
* - `OutMpegAbs`
|
488
|
-
- The offset (bytes) in the file where the ending frame appears.
|
489
|
-
- `0` if not a loop or VBR/ABR MPEG file
|
490
|
-
* - `Kind`
|
491
|
-
- Type and/or number of cue point
|
492
|
-
- `0` if memory cue, otherwise the number of Hot Cue
|
493
|
-
* - `Color`
|
494
|
-
- The color ID of the cue point
|
495
|
-
- `-1` if no color
|
496
|
-
* - `ColorTableIndex`
|
497
|
-
- ?
|
498
|
-
-
|
499
|
-
* - `ActiveLoop`
|
500
|
-
- ?
|
501
|
-
-
|
502
|
-
* - `Comment`
|
503
|
-
- Name of comment of cue point
|
504
|
-
-
|
505
|
-
* - `BeatLoopSize`
|
506
|
-
- ?
|
507
|
-
-
|
508
|
-
* - `CueMicrosec`
|
509
|
-
- ?
|
510
|
-
-
|
511
|
-
* - `InPointSeekInfo`
|
512
|
-
- ?
|
513
|
-
-
|
514
|
-
* - `OutPointSeekInfo`
|
515
|
-
- ?
|
516
|
-
-
|
517
|
-
* - `ContentUUID`
|
518
|
-
- The UUID of the track
|
519
|
-
- Links to `UUID` in `djmdContent` table
|
520
|
-
|
521
|
-
```
|
522
|
-
|
523
|
-
### djmdDevice
|
524
|
-
|
525
|
-
This table stores information about the device(s) where Rekordbox is installed.
|
526
|
-
|
527
|
-
```{eval-rst}
|
528
|
-
.. list-table:: djmdDevice columns
|
529
|
-
:widths: 1 1 1
|
530
|
-
:header-rows: 1
|
531
|
-
|
532
|
-
* - Column Name
|
533
|
-
- Description
|
534
|
-
- Notes
|
535
|
-
* - `ID`
|
536
|
-
- The ID of the device
|
537
|
-
-
|
538
|
-
* - `MasterDBID`
|
539
|
-
- The ID of the `master.db` database
|
540
|
-
-
|
541
|
-
* - `Name`
|
542
|
-
- The name of the device
|
543
|
-
-
|
544
|
-
|
545
|
-
```
|
546
|
-
|
547
|
-
### djmdGenre
|
548
|
-
|
549
|
-
This table stores the genre data of Rekordbox. Since multiple tracks can be the same
|
550
|
-
genre data is stored in its own table. The table contains all genres found in the
|
551
|
-
collection.
|
552
|
-
|
553
|
-
```{eval-rst}
|
554
|
-
.. list-table:: djmdDevice columns
|
555
|
-
:widths: 1 1 1
|
556
|
-
:header-rows: 1
|
557
|
-
|
558
|
-
* - Column Name
|
559
|
-
- Description
|
560
|
-
- Notes
|
561
|
-
* - `ID`
|
562
|
-
- The ID of the genre
|
563
|
-
-
|
564
|
-
* - `Name`
|
565
|
-
- The name of the genre
|
566
|
-
-
|
567
|
-
|
568
|
-
```
|
569
|
-
|
570
|
-
### djmdHistory
|
571
|
-
|
572
|
-
This table stores the history playlist data of Rekordbox. It does *not* store the
|
573
|
-
tracks in the history playlists. These are stored in the `djmdSongHistory` table.
|
574
|
-
The items in the table can either be a playlist folder or an actual playlist containing
|
575
|
-
tracks.
|
576
|
-
|
577
|
-
```{eval-rst}
|
578
|
-
.. list-table:: djmdHistory columns
|
579
|
-
:widths: 1 1 1
|
580
|
-
:header-rows: 1
|
581
|
-
|
582
|
-
* - Column Name
|
583
|
-
- Description
|
584
|
-
- Notes
|
585
|
-
* - `ID`
|
586
|
-
- The ID of the history playlist
|
587
|
-
-
|
588
|
-
* - `Seq`
|
589
|
-
- The number of the the history playlist in the parent folder
|
590
|
-
-
|
591
|
-
* - `Name`
|
592
|
-
- The name of the history playlist
|
593
|
-
-
|
594
|
-
* - `Attribute`
|
595
|
-
- The attributes of the history playlist
|
596
|
-
-
|
597
|
-
* - `ParentID`
|
598
|
-
- The `ID` of the parent history playlist folder
|
599
|
-
-
|
600
|
-
* - `DateCreated`
|
601
|
-
- The date of creation
|
602
|
-
-
|
603
|
-
|
604
|
-
```
|
605
|
-
|
606
|
-
### djmdHotCueBanklist
|
607
|
-
|
608
|
-
This table stores the history the hot-cue bank list. It does *not* store the
|
609
|
-
actual hot-cues. These are stored in the `djmdSongHotCueBanklist` table.
|
610
|
-
|
611
|
-
```{eval-rst}
|
612
|
-
.. list-table:: djmdHistory columns
|
613
|
-
:widths: 1 1 1
|
614
|
-
:header-rows: 1
|
615
|
-
|
616
|
-
* - Column Name
|
617
|
-
- Description
|
618
|
-
- Notes
|
619
|
-
* - `ID`
|
620
|
-
- The ID of the hot-cue bank list
|
621
|
-
-
|
622
|
-
* - `Seq`
|
623
|
-
- The number of the the hot-cue bank list in the parent folder
|
624
|
-
-
|
625
|
-
* - `Name`
|
626
|
-
- The name of the hot-cue bank list
|
627
|
-
-
|
628
|
-
* - `ImagePath`
|
629
|
-
- The path of the image of the hot-cue bank list
|
630
|
-
-
|
631
|
-
* - `Attribute`
|
632
|
-
- The attributes of the hot-cue bank list
|
633
|
-
-
|
634
|
-
* - `ParentID`
|
635
|
-
- The `ID` of the parent hot-cue bank list folder
|
636
|
-
-
|
637
|
-
|
638
|
-
```
|
639
|
-
|
640
|
-
### djmdKey
|
641
|
-
|
642
|
-
This table stores the musical key data of Rekordbox. Since multiple tracks can be
|
643
|
-
written in the same key the data is stored in its own table. The table contains all
|
644
|
-
keys found in the collection.
|
645
|
-
|
646
|
-
```{eval-rst}
|
647
|
-
.. list-table:: djmdKey columns
|
648
|
-
:widths: 1 1 1
|
649
|
-
:header-rows: 1
|
650
|
-
|
651
|
-
* - Column Name
|
652
|
-
- Description
|
653
|
-
- Notes
|
654
|
-
* - `ID`
|
655
|
-
- The ID of the key
|
656
|
-
-
|
657
|
-
* - `ScaleName`
|
658
|
-
- The name of the key
|
659
|
-
-
|
660
|
-
* - `Seq`
|
661
|
-
- The number of the key when sorted
|
662
|
-
-
|
663
|
-
|
664
|
-
```
|
665
|
-
|
666
|
-
### djmdLabel
|
667
|
-
|
668
|
-
This table stores the label data of Rekordbox. Since multiple tracks can be
|
669
|
-
realeased on the same key the data is stored in its own table. The table contains all
|
670
|
-
labels found in the collection.
|
671
|
-
|
672
|
-
```{eval-rst}
|
673
|
-
.. list-table:: djmdLabel columns
|
674
|
-
:widths: 1 1 1
|
675
|
-
:header-rows: 1
|
676
|
-
|
677
|
-
* - Column Name
|
678
|
-
- Description
|
679
|
-
- Notes
|
680
|
-
* - `ID`
|
681
|
-
- The ID of the label
|
682
|
-
-
|
683
|
-
* - `Name`
|
684
|
-
- The name of the label
|
685
|
-
-
|
686
|
-
|
687
|
-
```
|
688
|
-
|
689
|
-
### djmdMenuItems
|
690
|
-
|
691
|
-
This table stores the configurable menu items shown in the Rekordbox application.
|
692
|
-
|
693
|
-
```{eval-rst}
|
694
|
-
.. list-table:: djmdDevice columns
|
695
|
-
:widths: 1 1 1
|
696
|
-
:header-rows: 1
|
697
|
-
|
698
|
-
* - Column Name
|
699
|
-
- Description
|
700
|
-
- Notes
|
701
|
-
* - `ID`
|
702
|
-
- The ID of the menu item
|
703
|
-
-
|
704
|
-
* - `Class`
|
705
|
-
- The class of the menu item
|
706
|
-
-
|
707
|
-
* - `Name`
|
708
|
-
- The name of the menu item
|
709
|
-
-
|
710
|
-
|
711
|
-
|
712
|
-
```
|
713
|
-
|
714
|
-
### djmdMixerParam
|
715
|
-
|
716
|
-
This table stores the mixer parameters of tracks in the Rekordbox collection.
|
717
|
-
|
718
|
-
Each of the two gain values are represented by a 32-bit floating point number that is packed into a
|
719
|
-
pair of 16-bit integers. The floating point value represents the linear gain factor, which can be
|
720
|
-
converted into decibels (dB) by calculating `20.0 * math.log10(f)` where `f` is the gain factor.
|
721
|
-
|
722
|
-
The auto-gain value is the one shown in the grid edit panel. The peak value does not appear to be
|
723
|
-
displayed anywhere in the program, and is most likely used internally for limiting and/or waveform
|
724
|
-
scaling.
|
725
|
-
|
726
|
-
```{eval-rst}
|
727
|
-
.. list-table:: djmdMixerParam columns
|
728
|
-
:widths: 1 1 1
|
729
|
-
:header-rows: 1
|
730
|
-
|
731
|
-
* - Column Name
|
732
|
-
- Description
|
733
|
-
- Notes
|
734
|
-
* - `ID`
|
735
|
-
- The ID of the mixer parameters
|
736
|
-
-
|
737
|
-
* - `ContentID`
|
738
|
-
- The `ID` of the corrsponding track
|
739
|
-
-
|
740
|
-
* - `GainHigh`
|
741
|
-
- The upper 16 bits of an IEEE754 single-precision floating point number representing the gain.
|
742
|
-
- Auto-gain for the track. See note above.
|
743
|
-
* - `GainLow`
|
744
|
-
- The lower 16 bits of an IEEE754 single-precision floating point number representing the gain.
|
745
|
-
- Auto-gain for the track. See note above.
|
746
|
-
* - `PeakHigh`
|
747
|
-
- The upper 16 bits of an IEEE754 single-precision floating point number representing the peak.
|
748
|
-
- Unknown functionality. Maybe some sort of limiter setting. See note above.
|
749
|
-
* - `PeakLow`
|
750
|
-
- The lower 16 bits of an IEEE754 single-precision floating point number representing the peak.
|
751
|
-
- Unknown functionality. Maybe some sort of limiter setting. See note above.
|
752
|
-
|
753
|
-
```
|
754
|
-
|
755
|
-
### djmdMyTag
|
756
|
-
|
757
|
-
This table stores the My-Tag data of Rekordbox. It does *not* store the
|
758
|
-
tracks for which the My-Tag values are set. These are stored in the `djmdSongMyTag`
|
759
|
-
table. The items in the table can either be a My-Tag section or an actual My-Tag value.
|
760
|
-
|
761
|
-
```{eval-rst}
|
762
|
-
.. list-table:: djmdMyTag columns
|
763
|
-
:widths: 1 1 1
|
764
|
-
:header-rows: 1
|
765
|
-
|
766
|
-
* - Column Name
|
767
|
-
- Description
|
768
|
-
- Notes
|
769
|
-
* - `ID`
|
770
|
-
- The ID of the My-Tag
|
771
|
-
-
|
772
|
-
* - `Seq`
|
773
|
-
- The number of the My-Tag entry
|
774
|
-
- Used for sorting
|
775
|
-
* - `Name`
|
776
|
-
- The name of the My-Tag
|
777
|
-
-
|
778
|
-
* - `Attribute`
|
779
|
-
- The attributes of the My-Tag
|
780
|
-
-
|
781
|
-
* - `ParentID`
|
782
|
-
- The `ID` of the parent My-Tag section
|
783
|
-
-
|
784
|
-
|
785
|
-
```
|
786
|
-
|
787
|
-
### djmdPlaylist
|
788
|
-
|
789
|
-
This table stores the playlist data of Rekordbox. It does *not* store the tracks in the
|
790
|
-
playlists. These are stored in the `djmdSongPlaylist` table. The items in the table can
|
791
|
-
either be a playlist folder or an actual playlist containing tracks.
|
792
|
-
|
793
|
-
```{eval-rst}
|
794
|
-
.. list-table:: djmdPlaylist columns
|
795
|
-
:widths: 1 1 1
|
796
|
-
:header-rows: 1
|
797
|
-
|
798
|
-
* - Column Name
|
799
|
-
- Description
|
800
|
-
- Notes
|
801
|
-
* - `ID`
|
802
|
-
- The ID of the playlist
|
803
|
-
-
|
804
|
-
* - `Seq`
|
805
|
-
- The number of the the playlist in the parent folder
|
806
|
-
-
|
807
|
-
* - `Name`
|
808
|
-
- The name of the playlist
|
809
|
-
-
|
810
|
-
* - `ImagePath`
|
811
|
-
- The path to the image file of the playlist
|
812
|
-
-
|
813
|
-
* - `Attribute`
|
814
|
-
- The type of playlist
|
815
|
-
- 0: playlist, 1: folder, 4: smart playlist
|
816
|
-
* - `ParentID`
|
817
|
-
- The `ID` of the parent playlist folder
|
818
|
-
-
|
819
|
-
* - `SmartList`
|
820
|
-
- The conditions for a smart list (if used)
|
821
|
-
- Saved as a XML string
|
822
|
-
|
823
|
-
```
|
824
|
-
|
825
|
-
### djmdProperty
|
826
|
-
|
827
|
-
This table stores internal properties of the Rekordbox application. Most columns of it
|
828
|
-
are reserved.
|
829
|
-
|
830
|
-
```{important}
|
831
|
-
This table does not use the default columns the other tables use. Therefore *all*
|
832
|
-
columns in the table are shown below
|
833
|
-
```
|
834
|
-
|
835
|
-
```{eval-rst}
|
836
|
-
.. list-table:: djmdProperty columns
|
837
|
-
:widths: 1 1 1
|
838
|
-
:header-rows: 1
|
839
|
-
|
840
|
-
* - Column Name
|
841
|
-
- Description
|
842
|
-
- Notes
|
843
|
-
* - `DBID`
|
844
|
-
- The ID of the `master.db` database
|
845
|
-
-
|
846
|
-
* - `DBVersion`
|
847
|
-
- The version of the `master.db` database
|
848
|
-
-
|
849
|
-
* - `BaseDBDrive`
|
850
|
-
- The default drive where the `master.db` database is located
|
851
|
-
-
|
852
|
-
* - `CurrentDBDrive`
|
853
|
-
- The current drive where the `master.db` database is located
|
854
|
-
-
|
855
|
-
* - `Reserved1`
|
856
|
-
-
|
857
|
-
-
|
858
|
-
* - `Reserved2`
|
859
|
-
-
|
860
|
-
-
|
861
|
-
* - `Reserved3`
|
862
|
-
-
|
863
|
-
-
|
864
|
-
* - `Reserved4`
|
865
|
-
-
|
866
|
-
-
|
867
|
-
* - `Reserved5`
|
868
|
-
-
|
869
|
-
-
|
870
|
-
* - `created_at`
|
871
|
-
- Creation time of the entry
|
872
|
-
-
|
873
|
-
* - `updated_at`
|
874
|
-
- Last update time of the entry
|
875
|
-
-
|
876
|
-
|
877
|
-
```
|
878
|
-
|
879
|
-
### djmdRelatedTracks
|
880
|
-
|
881
|
-
This table stores the related tracks of the tracks in Rekordbox. It does *not* store
|
882
|
-
the actual related tracks, but rather behaves like a playlist.
|
883
|
-
The related tracks are stored in the `djmdSongRelatedTracks` table. The items in the table can
|
884
|
-
either be a folder or an actual list containing the related tracks.
|
885
|
-
|
886
|
-
```{eval-rst}
|
887
|
-
.. list-table:: djmdRelatedTracks columns
|
888
|
-
:widths: 1 1 1
|
889
|
-
:header-rows: 1
|
890
|
-
|
891
|
-
* - Column Name
|
892
|
-
- Description
|
893
|
-
- Notes
|
894
|
-
* - `ID`
|
895
|
-
- The ID of the related tracks list
|
896
|
-
-
|
897
|
-
* - `Seq`
|
898
|
-
- The number of the related tracks list in the parent folder
|
899
|
-
-
|
900
|
-
* - `Name`
|
901
|
-
- The name of the related tracks list
|
902
|
-
-
|
903
|
-
* - `Attribute`
|
904
|
-
- The attributes of the related tracks list
|
905
|
-
-
|
906
|
-
* - `ParentID`
|
907
|
-
- The `ID` of the parent related tracks list
|
908
|
-
-
|
909
|
-
* - `Criteria`
|
910
|
-
- The criteria used for finding the lated tracks in the list
|
911
|
-
-
|
912
|
-
|
913
|
-
```
|
914
|
-
|
915
|
-
### djmdSampler
|
916
|
-
|
917
|
-
This table stores the sampler items of Rekordbox. It does *not* store the actual
|
918
|
-
samples, but rather behaves like a playlist of samples. The samples are stored in the
|
919
|
-
`djmdSongSampler` table. The items in the table can either be a folder or an actual list
|
920
|
-
containing the samples.
|
921
|
-
|
922
|
-
```{eval-rst}
|
923
|
-
.. list-table:: djmdSampler columns
|
924
|
-
:widths: 1 1 1
|
925
|
-
:header-rows: 1
|
926
|
-
|
927
|
-
* - Column Name
|
928
|
-
- Description
|
929
|
-
- Notes
|
930
|
-
* - `ID`
|
931
|
-
- The ID of the sample list
|
932
|
-
-
|
933
|
-
* - `Seq`
|
934
|
-
- The number of the sample list in the parent folder
|
935
|
-
-
|
936
|
-
* - `Name`
|
937
|
-
- The name of the sample list
|
938
|
-
-
|
939
|
-
* - `Attribute`
|
940
|
-
- The attributes of the sample list
|
941
|
-
-
|
942
|
-
* - `ParentID`
|
943
|
-
- The `ID` of the parent sample list
|
944
|
-
-
|
945
|
-
|
946
|
-
```
|
947
|
-
|
948
|
-
### djmdSongHistory
|
949
|
-
|
950
|
-
This table stores tracks contained in the history lists in the `djmdHistory` table.
|
951
|
-
|
952
|
-
```{eval-rst}
|
953
|
-
.. list-table:: djmdSongHistory columns
|
954
|
-
:widths: 1 1 1
|
955
|
-
:header-rows: 1
|
956
|
-
|
957
|
-
* - Column Name
|
958
|
-
- Description
|
959
|
-
- Notes
|
960
|
-
* - `ID`
|
961
|
-
- The ID of the track in a history
|
962
|
-
-
|
963
|
-
* - `HistoryID`
|
964
|
-
- The ID of the history containing the track
|
965
|
-
- Links to `ID` in the `djmdHistory` table
|
966
|
-
* - `ContentID`
|
967
|
-
- The corresponding track
|
968
|
-
- Links to `ID` in the `djmdContent` table
|
969
|
-
* - `TrackNo`
|
970
|
-
- The number of the track in the history list
|
971
|
-
-
|
972
|
-
|
973
|
-
```
|
974
|
-
|
975
|
-
### djmdSongHotCueBanklist
|
976
|
-
|
977
|
-
This table stores the hot cue entries contained in the hot-cue bank lists in the
|
978
|
-
`djmdHotCueBanklist` table.
|
979
|
-
|
980
|
-
```{note}
|
981
|
-
Rekordbox internally represents time in "frames", each being 1/150th of a second (6.666ms).
|
982
|
-
The `InFrame` and `OutFrame` values use this unit of time. However, when a track is encoded with
|
983
|
-
variable bit-rate (VBR) or average bit-rate (ABR), the `InMpegFrame` and `OutMpegFrame` values
|
984
|
-
are filled out to assist with correctly seeking. Despite the names, these values are **not** the
|
985
|
-
frame indices within the MPEG file, but instead use an alternative timing scheme that is typically
|
986
|
-
around 1/75th of a second (13.333ms) per frame, i.e. about half the granularity of normal frames.
|
987
|
-
```
|
988
|
-
|
989
|
-
```{eval-rst}
|
990
|
-
.. list-table:: djmdSongHotCueBanklist columns
|
991
|
-
:widths: 1 1 1
|
992
|
-
:header-rows: 1
|
993
|
-
|
994
|
-
* - Column Name
|
995
|
-
- Description
|
996
|
-
- Notes
|
997
|
-
* - `ID`
|
998
|
-
- The ID of the hot-cue bank list entry
|
999
|
-
-
|
1000
|
-
* - `HotCueBanklistID`
|
1001
|
-
- The ID of the hot-cue bank list containing the entry
|
1002
|
-
- Links to `ID` in the `djmdHotCueBanklist` table
|
1003
|
-
* - `ContentID`
|
1004
|
-
- The corresponding track
|
1005
|
-
- Links to `ID` in the `djmdContent` table
|
1006
|
-
* - `TrackNo`
|
1007
|
-
- The number of the hot-cue bank list entry
|
1008
|
-
-
|
1009
|
-
* - `CueID`
|
1010
|
-
- The ID of the corresponding cue item
|
1011
|
-
- Links to `ID` in the `djmdCues` table
|
1012
|
-
* - `InMsec`
|
1013
|
-
- Start time of the cue point
|
1014
|
-
- Unit: Millisecond
|
1015
|
-
* - `InFrame`
|
1016
|
-
- The frame number of the start time
|
1017
|
-
- One frame is 1/150th of a second.
|
1018
|
-
* - `InMpegFrame`
|
1019
|
-
- The MPEG frame number of the start time
|
1020
|
-
- See note above. `0` if not a VBR/ABR MPEG file
|
1021
|
-
* - `InMpegAbs`
|
1022
|
-
- ?
|
1023
|
-
- `0` if not a VBR/ABR MPEG file
|
1024
|
-
* - `OutMsec`
|
1025
|
-
- End time of the cue point (for loops)
|
1026
|
-
- Unit: Millisecond, `-1` if not a loop
|
1027
|
-
* - `OutFrame`
|
1028
|
-
- The frame number of the end time (for loops)
|
1029
|
-
- One frame is 1/150th of a second. `0` if not a loop
|
1030
|
-
* - `OutMpegFrame`
|
1031
|
-
- The MPEG frame number of the end time (for loops)
|
1032
|
-
- See note above. `0` if not a VBR/ABR MPEG file or if not a loop.
|
1033
|
-
* - `OutMpegAbs`
|
1034
|
-
- ?
|
1035
|
-
- `0` if not a loop or VBR/ABR MPEG file
|
1036
|
-
* - `Color`
|
1037
|
-
- The color ID of the cue point
|
1038
|
-
- `-1` if no color
|
1039
|
-
* - `ColorTableIndex`
|
1040
|
-
- ?
|
1041
|
-
-
|
1042
|
-
* - `ActiveLoop`
|
1043
|
-
- ?
|
1044
|
-
-
|
1045
|
-
* - `Comment`
|
1046
|
-
- Name of comment of cue point
|
1047
|
-
-
|
1048
|
-
* - `BeatLoopSize`
|
1049
|
-
- ?
|
1050
|
-
-
|
1051
|
-
* - `CueMicrosec`
|
1052
|
-
- ?
|
1053
|
-
-
|
1054
|
-
* - `InPointSeekInfo`
|
1055
|
-
- ?
|
1056
|
-
-
|
1057
|
-
* - `OutPointSeekInfo`
|
1058
|
-
- ?
|
1059
|
-
-
|
1060
|
-
* - `HotCueBanklistUUID`
|
1061
|
-
- The UUID of the hot-cue bank list
|
1062
|
-
- Links to `UUID` in `djmdHotCueBanklist` table
|
1063
|
-
|
1064
|
-
```
|
1065
|
-
|
1066
|
-
### djmdSongMyTag
|
1067
|
-
|
1068
|
-
This table stores the My-tag values of tracks linked to in the `djmdMyTag` table.
|
1069
|
-
|
1070
|
-
```{eval-rst}
|
1071
|
-
.. list-table:: djmdSongMyTag columns
|
1072
|
-
:widths: 1 1 1
|
1073
|
-
:header-rows: 1
|
1074
|
-
|
1075
|
-
* - Column Name
|
1076
|
-
- Description
|
1077
|
-
- Notes
|
1078
|
-
* - `ID`
|
1079
|
-
- The ID of the My-Tag value
|
1080
|
-
-
|
1081
|
-
* - `MyTagID`
|
1082
|
-
- The ID of the My-Tag group containing the item
|
1083
|
-
- Links to `ID` in the `djmdMyTag` table
|
1084
|
-
* - `ContentID`
|
1085
|
-
- The corresponding track
|
1086
|
-
- Links to `ID` in the `djmdContent` table
|
1087
|
-
* - `TrackNo`
|
1088
|
-
- The number of the My-Tag for a track
|
1089
|
-
-
|
1090
|
-
|
1091
|
-
```
|
1092
|
-
|
1093
|
-
### djmdSongPlaylist
|
1094
|
-
|
1095
|
-
This table stores tracks contained in the playlists in the `djmdPlaylist` table.
|
1096
|
-
|
1097
|
-
```{eval-rst}
|
1098
|
-
.. list-table:: djmdSongPlaylist columns
|
1099
|
-
:widths: 1 1 1
|
1100
|
-
:header-rows: 1
|
1101
|
-
|
1102
|
-
* - Column Name
|
1103
|
-
- Description
|
1104
|
-
- Notes
|
1105
|
-
* - `ID`
|
1106
|
-
- The ID of the track entry in a playlist
|
1107
|
-
-
|
1108
|
-
* - `PlaylistID`
|
1109
|
-
- The ID of the playlist containing the track
|
1110
|
-
- Links to `ID` in the `djmdHistory` table
|
1111
|
-
* - `ContentID`
|
1112
|
-
- The corresponding track
|
1113
|
-
- Links to `ID` in the `djmdContent` table
|
1114
|
-
* - `TrackNo`
|
1115
|
-
- The number of the track in the playlist
|
1116
|
-
-
|
1117
|
-
|
1118
|
-
```
|
1119
|
-
|
1120
|
-
### djmdSongRelatedTracks
|
1121
|
-
|
1122
|
-
This table stores tracks contained in the related tracks lists in the `djmdRelatedTracks`
|
1123
|
-
table.
|
1124
|
-
|
1125
|
-
```{eval-rst}
|
1126
|
-
.. list-table:: djmdSongRelatedTracks columns
|
1127
|
-
:widths: 1 1 1
|
1128
|
-
:header-rows: 1
|
1129
|
-
|
1130
|
-
* - Column Name
|
1131
|
-
- Description
|
1132
|
-
- Notes
|
1133
|
-
* - `ID`
|
1134
|
-
- The ID of the related track entry
|
1135
|
-
-
|
1136
|
-
* - `SongRelatedTracksID`
|
1137
|
-
- The ID of the related tracks list containing the entry
|
1138
|
-
- Links to `ID` in the `djmdRelatedTracks` table
|
1139
|
-
* - `ContentID`
|
1140
|
-
- The corresponding track
|
1141
|
-
- Links to `ID` in the `djmdContent` table
|
1142
|
-
* - `TrackNo`
|
1143
|
-
- The number of the track in the related tracks list
|
1144
|
-
-
|
1145
|
-
|
1146
|
-
```
|
1147
|
-
|
1148
|
-
### djmdSongSampler
|
1149
|
-
|
1150
|
-
This table stores samples contained in the samples lists in the `djmdSampler` table.
|
1151
|
-
|
1152
|
-
```{eval-rst}
|
1153
|
-
.. list-table:: djmdSongSampler columns
|
1154
|
-
:widths: 1 1 1
|
1155
|
-
:header-rows: 1
|
1156
|
-
|
1157
|
-
* - Column Name
|
1158
|
-
- Description
|
1159
|
-
- Notes
|
1160
|
-
* - `ID`
|
1161
|
-
- The ID of the sample entry
|
1162
|
-
-
|
1163
|
-
* - `SamplerID`
|
1164
|
-
- The ID of the samples list containing the entry
|
1165
|
-
- Links to `ID` in the `djmdSampler` table
|
1166
|
-
* - `ContentID`
|
1167
|
-
- The corresponding track (or sample)
|
1168
|
-
- Links to `ID` in the `djmdContent` table
|
1169
|
-
* - `TrackNo`
|
1170
|
-
- The number of the sample in the sample list
|
1171
|
-
-
|
1172
|
-
|
1173
|
-
```
|
1174
|
-
|
1175
|
-
### djmdSongTagList
|
1176
|
-
|
1177
|
-
This table is not well understood.
|
1178
|
-
|
1179
|
-
```{eval-rst}
|
1180
|
-
.. list-table:: djmdSongTagList columns
|
1181
|
-
:widths: 1 1 1
|
1182
|
-
:header-rows: 1
|
1183
|
-
|
1184
|
-
* - Column Name
|
1185
|
-
- Description
|
1186
|
-
- Notes
|
1187
|
-
* - `ID`
|
1188
|
-
- The ID of the entries in the tag list
|
1189
|
-
-
|
1190
|
-
* - `ContentID`
|
1191
|
-
- The corresponding track
|
1192
|
-
- Links to `ID` in the `djmdContent` table
|
1193
|
-
* - `TrackNo`
|
1194
|
-
- The number of the entry in the tag list
|
1195
|
-
-
|
1196
|
-
|
1197
|
-
```
|
1198
|
-
|
1199
|
-
### djmdSort
|
1200
|
-
|
1201
|
-
This table stores information for sorting menu items contained in the `djmdMenuItems`
|
1202
|
-
table in Rekordbox.
|
1203
|
-
|
1204
|
-
```{eval-rst}
|
1205
|
-
.. list-table:: djmdSort columns
|
1206
|
-
:widths: 1 1 1
|
1207
|
-
:header-rows: 1
|
1208
|
-
|
1209
|
-
* - Column Name
|
1210
|
-
- Description
|
1211
|
-
- Notes
|
1212
|
-
* - `ID`
|
1213
|
-
- The ID of the sorting entry
|
1214
|
-
-
|
1215
|
-
* - `MenuItemID`
|
1216
|
-
- The ID of the corresponding menu item
|
1217
|
-
- Links to `ID` in the `djmdMenuItems` table
|
1218
|
-
* - `Seq`
|
1219
|
-
- The number of the entry in the list
|
1220
|
-
-
|
1221
|
-
* - `Disable`
|
1222
|
-
- Flag if the menu item is disabled or not
|
1223
|
-
-
|
1224
|
-
|
1225
|
-
```
|
1226
|
-
|
1227
|
-
## References
|
1228
|
-
|
1229
|
-
[^cite_ref6]: Technical inspection of Rekordbox 6 and its new internals. Christiaan Maks. 2020.
|
1230
|
-
<https://rekord.cloud/blog/technical-inspection-of-rekordbox-6-and-its-new-internals>.
|
1231
|
-
|
1232
|
-
[sqlcipher4]: https://www.zetetic.net/sqlcipher
|
1233
|
-
[sqlite3]: https://www.sqlite.org/index.html
|