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.
Files changed (83) hide show
  1. pyrekordbox/__init__.py +8 -8
  2. pyrekordbox/__main__.py +3 -2
  3. pyrekordbox/_version.py +2 -2
  4. pyrekordbox/anlz/__init__.py +3 -2
  5. pyrekordbox/anlz/file.py +4 -2
  6. pyrekordbox/anlz/tags.py +3 -1
  7. pyrekordbox/config.py +79 -23
  8. pyrekordbox/db6/__init__.py +2 -2
  9. pyrekordbox/db6/aux_files.py +3 -2
  10. pyrekordbox/db6/database.py +101 -111
  11. pyrekordbox/db6/registry.py +1 -0
  12. pyrekordbox/db6/smartlist.py +7 -6
  13. pyrekordbox/db6/tables.py +44 -16
  14. pyrekordbox/logger.py +0 -1
  15. pyrekordbox/mysettings/__init__.py +5 -4
  16. pyrekordbox/mysettings/file.py +3 -1
  17. pyrekordbox/rbxml.py +5 -3
  18. pyrekordbox/utils.py +4 -3
  19. {pyrekordbox-0.3.2.dist-info → pyrekordbox-0.4.0.dist-info}/METADATA +21 -41
  20. pyrekordbox-0.4.0.dist-info/RECORD +25 -0
  21. {pyrekordbox-0.3.2.dist-info → pyrekordbox-0.4.0.dist-info}/WHEEL +1 -1
  22. {pyrekordbox-0.3.2.dist-info → pyrekordbox-0.4.0.dist-info}/top_level.txt +0 -2
  23. docs/Makefile +0 -20
  24. docs/make.bat +0 -35
  25. docs/source/_static/images/anlz_beat.svg +0 -53
  26. docs/source/_static/images/anlz_file.svg +0 -204
  27. docs/source/_static/images/anlz_pco2.svg +0 -138
  28. docs/source/_static/images/anlz_pcob.svg +0 -148
  29. docs/source/_static/images/anlz_pcp2.svg +0 -398
  30. docs/source/_static/images/anlz_pcpt.svg +0 -263
  31. docs/source/_static/images/anlz_ppth.svg +0 -123
  32. docs/source/_static/images/anlz_pqt2.svg +0 -324
  33. docs/source/_static/images/anlz_pqt2_2.svg +0 -253
  34. docs/source/_static/images/anlz_pqtz.svg +0 -140
  35. docs/source/_static/images/anlz_pssi.svg +0 -192
  36. docs/source/_static/images/anlz_pssi_entry.svg +0 -191
  37. docs/source/_static/images/anlz_pvbr.svg +0 -125
  38. docs/source/_static/images/anlz_pwav.svg +0 -130
  39. docs/source/_static/images/anlz_pwv3.svg +0 -139
  40. docs/source/_static/images/anlz_pwv4.svg +0 -139
  41. docs/source/_static/images/anlz_pwv5.svg +0 -139
  42. docs/source/_static/images/anlz_pwv5_entry.svg +0 -100
  43. docs/source/_static/images/anlz_pwv6.svg +0 -130
  44. docs/source/_static/images/anlz_pwv7.svg +0 -139
  45. docs/source/_static/images/anlz_pwvc.svg +0 -125
  46. docs/source/_static/images/anlz_tag.svg +0 -110
  47. docs/source/_static/images/x64dbg_rb_key.png +0 -0
  48. docs/source/_static/logos/dark/logo_primary.svg +0 -75
  49. docs/source/_static/logos/light/logo_primary.svg +0 -75
  50. docs/source/_static/logos/mid/logo_primary.svg +0 -75
  51. docs/source/_templates/apidoc/module.rst_t +0 -8
  52. docs/source/_templates/apidoc/package.rst_t +0 -57
  53. docs/source/_templates/apidoc/toc.rst_t +0 -7
  54. docs/source/_templates/autosummary/class.rst +0 -32
  55. docs/source/_templates/autosummary/module.rst +0 -55
  56. docs/source/api.md +0 -18
  57. docs/source/conf.py +0 -178
  58. docs/source/development/changes.md +0 -3
  59. docs/source/development/contributing.md +0 -3
  60. docs/source/formats/anlz.md +0 -634
  61. docs/source/formats/db6.md +0 -1233
  62. docs/source/formats/mysetting.md +0 -392
  63. docs/source/formats/xml.md +0 -376
  64. docs/source/index.md +0 -103
  65. docs/source/installation.md +0 -271
  66. docs/source/key.md +0 -103
  67. docs/source/quickstart.md +0 -189
  68. docs/source/requirements.txt +0 -7
  69. docs/source/tutorial/anlz.md +0 -7
  70. docs/source/tutorial/configuration.md +0 -66
  71. docs/source/tutorial/db6.md +0 -178
  72. docs/source/tutorial/index.md +0 -20
  73. docs/source/tutorial/mysetting.md +0 -124
  74. docs/source/tutorial/xml.md +0 -140
  75. pyrekordbox/xml.py +0 -8
  76. pyrekordbox-0.3.2.dist-info/RECORD +0 -84
  77. tests/__init__.py +0 -3
  78. tests/test_anlz.py +0 -206
  79. tests/test_config.py +0 -175
  80. tests/test_db6.py +0 -1193
  81. tests/test_mysetting.py +0 -203
  82. tests/test_xml.py +0 -629
  83. {pyrekordbox-0.3.2.dist-info → pyrekordbox-0.4.0.dist-info}/LICENSE +0 -0
@@ -1,376 +0,0 @@
1
- # XML Database Format
2
-
3
- The Rekordbox XML format is well documented by Pioneer in [^footnote-1] and [^footnote-2].
4
-
5
- The first entry of the XML file should be displayed as follows:
6
-
7
- ```xml
8
- <?xml version="1.0" encoding="UTF-8" ?>
9
- ```
10
-
11
- ```{warning}
12
- In order to save playlists and their information to Rekordbox, all rows from the
13
- second row and beyond must follow a format which rekordbox supports.
14
- ```
15
-
16
- ## General structure
17
-
18
- The general structure of the Rekordbox XML file is as follows:
19
-
20
- ```xml
21
- <?xml version="1.0" encoding="UTF-8" ?>
22
-
23
- <DJ_PLAYLISTS Version="1.0.0">
24
- <PRODUCT Name="rekordbox" Version="5.4.3" Company="Pioneer DJ"/>
25
- <COLLECTION Entries="1234">
26
- <TRACK TrackID="1" Name="NOISE" Artist="" Composer="" Album="" Grouping=""
27
- Genre="" Kind="WAV File" Size="1382226" TotalTime="5" DiscNumber="0"
28
- TrackNumber="0" Year="0" AverageBpm="0.00" DateAdded="2017-09-07"
29
- BitRate="2116" SampleRate="44100" Comments="" PlayCount="0" Rating="0"
30
- Location="file://localhost/C:/Users/user/Music/PioneerDJ/Sampler/OSC_SAMPLER/PRESET%20ONESHOT/NOISE.wav"
31
- Remixer="" Tonality="" Label="" Mix=""/>
32
- <TRACK TrackID="2" Name="SINEWAVE" Artist="" Composer="" Album="" Grouping=""
33
- Genre="" Kind="WAV File" Size="1515258" TotalTime="5" DiscNumber="0"
34
- TrackNumber="0" Year="0" AverageBpm="0.00" DateAdded="2017-09-07"
35
- BitRate="2116" SampleRate="44100" Comments="" PlayCount="0" Rating="0"
36
- Location="file://localhost/C:/Users/user/Music/PioneerDJ/Sampler/OSC_SAMPLER/PRESET%20ONESHOT/SINEWAVE.wav"
37
- Remixer="" Tonality="" Label="" Mix="">
38
- <TEMPO Inizio="0.232" Bpm="172.00" Metro="4/4" Battito="1"/>
39
- <POSITION_MARK Name="" Type="0" Start="0.232" Num="-1"/>
40
- ...
41
- </TRACK>
42
- ...
43
- </COLLECTION>
44
- <PLAYLISTS>
45
- <NODE Type="0" Name="ROOT" Count="11">
46
- <NODE Name="Favourites" Type="1" KeyType="0" Entries="56">
47
- <TRACK Key="1"/>
48
- <TRACK Key="2"/>
49
- ...
50
- </NODE>
51
- </NODE>
52
- ...
53
- </PLAYLISTS>
54
- </DJ_PLAYLISTS>
55
- ```
56
-
57
- ## Supported Elements and Attributes
58
-
59
- ```{eval-rst}
60
- .. list-table:: Supported Rekordbox XML elements and attributes
61
- :widths: 1 1 1 1
62
- :header-rows: 1
63
-
64
- * - Element
65
- - Description
66
- - Type
67
- - Notes
68
- * - **DJ_PLAYLIST**
69
- -
70
- -
71
- -
72
- * - *Version*
73
- - Version of XML format
74
- - utf-8
75
- - The latest version is 1.0.0
76
- * - **PRODUCT**
77
- -
78
- -
79
- -
80
- * - *Name*
81
- - Name of product
82
- - utf-8
83
- - This name will be displayed in each application software.
84
- * - *Version*
85
- - Version of application
86
- - utf-8
87
- -
88
- * - *Company*
89
- - Name of company
90
- - utf-8
91
- -
92
- * - **COLLECTION**
93
- -
94
- -
95
- -
96
- * - *Entries*
97
- - Number of TRACK in COLLECTION
98
- - sint32
99
- -
100
- * - **TRACK**
101
- -
102
- -
103
- - "Location" is essential for each track
104
- * - *TrackID*
105
- - Identification of track
106
- - utf-8
107
- -
108
- * - *Name*
109
- - Name of track
110
- - utf-8
111
- -
112
- * - *Artist*
113
- - Name of artist
114
- - utf-8
115
- -
116
- * - *Composer*
117
- - Name of composer (or producer)
118
- - utf-8
119
- -
120
- * - *Album*
121
- - Name of album
122
- - utf-8
123
- -
124
- * - *Grouping*
125
- - Name of group
126
- - utf-8
127
- -
128
- * - *Genre*
129
- - Name of genre
130
- - utf-8
131
- -
132
- * - *Kind*
133
- - Type of audio file
134
- - utf-8
135
- -
136
- * - *Size*
137
- - Size of audio file
138
- - sint64
139
- - Unit: Octet
140
- * - *TotalTime*
141
- - Duration of track
142
- - float64
143
- - Unit: Second (without decimal numbers)
144
- * - *DiscNumber*
145
- - Number of the disc of the album
146
- - sint32
147
- -
148
- * - *TrackNumber*
149
- - Number of the track of the album
150
- - sint32
151
- -
152
- * - *Year*
153
- - Year of release
154
- - sint32
155
- -
156
- * - *AverageBpm*
157
- - Value of average BPM
158
- - float64
159
- - Unit: Second (with decimal numbers)
160
- * - *DateModified*
161
- - Date of last modification
162
- - utf-8
163
- - Format: yyyy-mm-dd; ex.: 2010-08-21
164
- * - *DateAdded*
165
- - Date of addition
166
- - utf-8
167
- - Format: yyyy-mm-dd; ex.: 2010-08-21
168
- * - *BitRate*
169
- - Encoding bit rate
170
- - sint32
171
- - Unit: Kbps
172
- * - *SampleRate*
173
- - Frequency of sampling
174
- - float64
175
- - Unit: Hertz
176
- * - *Comments*
177
- - Comments
178
- - utf-8
179
- -
180
- * - *PlayCount*
181
- - Play count of the track
182
- - sint32
183
- -
184
- * - *LastPlayed*
185
- - Date of last playing
186
- - utf-8
187
- - Format: yyyy-mm-dd; ex.: 2010-08-21
188
- * - *Rating*
189
- - Rating of the track
190
- - sint32
191
- - 0="0", 1="51", 2="102", 3="153", 4="204", 5="255"
192
- * - *Location*
193
- - Location of the file
194
- - utf-8 (URI)
195
- - includes the file name
196
- * - *Remixer*
197
- - Name of remixer
198
- - utf-8
199
- -
200
- * - *Tonality*
201
- - Tonality (Kind of musical key)
202
- - utf-8
203
- -
204
- * - *Label*
205
- - Name of record label
206
- - utf-8
207
- -
208
- * - *Mix*
209
- - Name of mix
210
- - utf-8
211
- -
212
- * - *Colour*
213
- - Colour for track grouping
214
- - utf-8
215
- - RGB format (3 bytes)
216
- * - **TEMPO**
217
- -
218
- -
219
- - BeatGrid; More than two "TEMPO" can exist for each track
220
- * - *Inizio*
221
- - Start position of BeatGrid
222
- - float64
223
- - Unit: Second (with decimal numbers)
224
- * - *Bpm*
225
- - Value of BPM
226
- - float64
227
- - Unit: Second (with decimal numbers)
228
- * - *Metro*
229
- - Kind of musical meter
230
- - utf-8
231
- - ex. 3/4, 4/4, 7/8 ...
232
- * - *Battito*
233
- - Beat number in the bar
234
- - sint32
235
- - If "Metro" is 4/4, the value should be 1, 2, 3 or 4
236
- * - **POSITION_MARK**
237
- -
238
- -
239
- - More than two "POSITION MARK" can exist for each track
240
- * - *Name*
241
- - Name of position mark
242
- - utf-8
243
- -
244
- * - *Type*
245
- - Type of position mark
246
- - sint32
247
- - Cue="0", Fade-In="1", Fade-Out="2", Load="3", Loop="4"
248
- * - *Start*
249
- - Start position of position mark
250
- - float64
251
- - Unit: Second (with decimal numbers)
252
- * - *End*
253
- - End position of position mark
254
- - float64
255
- - Unit: Second (with decimal numbers)
256
- * - *Num*
257
- - Number of the position mark
258
- - sint32
259
- - Hot Cue: A="0", B="1", C="2"; Memory Cue: "-1"
260
-
261
- ```
262
-
263
- Playlists are a bit more complex since they are nested:
264
-
265
- ```{eval-rst}
266
- .. list-table:: Supported Rekordbox XML playlist elements and attributes
267
- :widths: 1 1 1 1
268
- :header-rows: 1
269
-
270
- * - Element
271
- - Description
272
- - Type
273
- - Notes
274
- * - **NODE**
275
- -
276
- -
277
- -
278
- * - *Type*
279
- - Type of NODE
280
- - sint32
281
- - "0" (FOLDER)
282
- * - *Name*
283
- - Name of NODE
284
- - utf-8
285
- - ("ROOT")
286
- * - *Count*
287
- - Number of items in the NODE
288
- - sint32
289
- -
290
- * - **NODE**
291
- -
292
- -
293
- -
294
- * - *Type*
295
- - Type of NODE
296
- - sint32
297
- - "0" (FOLDER)
298
- * - *Name*
299
- - Name of NODE
300
- - utf-8
301
- - ("ROOT")
302
- * - (if "Type" == "1")
303
- -
304
- -
305
- - Node is a PLAYLIST
306
- * - *Entries*
307
- - Number of TRACK in PLAYLIST
308
- - sint32
309
- -
310
- * - *KeyType*
311
- - Kind of identification
312
- - sint32
313
- - "0" (Track ID) or "1"(Location)
314
- * - **TRACK**
315
- -
316
- -
317
- -
318
- * - *Key*
319
- - Identification of track
320
- - sint32/utf-8
321
- -
322
- * - (if "Type" == "0")
323
- -
324
- -
325
- - Node is a FOLDER
326
- * - *Count*
327
- - Number of items in the NODE
328
- - sint32
329
- -
330
-
331
- ```
332
-
333
- Rekordbox track colors:
334
-
335
- ```{eval-rst}
336
- .. list-table:: Rekordbox group colors
337
- :widths: 1 1 1
338
- :header-rows: 1
339
-
340
- * - Name
341
- - Hex
342
- - RGB
343
- * - Rose
344
- - 0xFF007F
345
- - 255, 0, 127
346
- * - Red
347
- - 0xFF0000
348
- - 255, 0, 0
349
- * - Orange
350
- - 0xFFA500
351
- - 255, 165, 0
352
- * - Lemon
353
- - 0xFFFF00
354
- - 255, 255, 0
355
- * - Green
356
- - 0x00FF00
357
- - 0, 255, 0
358
- * - Turquoise
359
- - 0x25FDE9
360
- - 37, 253, 233
361
- * - Blue
362
- - 0x0000FF
363
- - 0, 0, 255
364
- * - Violet
365
- - 0x660099
366
- - 102, 0, 153
367
-
368
- ```
369
-
370
- ## References
371
-
372
- [^footnote-1]: Rekordbox for developers.
373
- <https://rekordbox.com/en/support/developer/>
374
-
375
- [^footnote-2]: Rekordbox XML format
376
- <https://cdn.rekordbox.com/files/20200410160904/xml_format_list.pdf>
docs/source/index.md DELETED
@@ -1,103 +0,0 @@
1
- <!--
2
- pyrekordbox documentation master file, created by
3
- sphinx-quickstart on Thu Apr 7 15:06:50 2022.
4
- -->
5
-
6
- # Pyrekordbox documentation
7
-
8
- [![Tests][tests-badge]][tests-link]
9
- [![Codecov][codecov-badge]][codecov-link]
10
- [![Version][pypi-badge]][pypi-link]
11
- [![Python][python-badge+]][pypi-link]
12
- [![Platform][platform-badge]][pypi-link]
13
- [![license: MIT][license-badge]][license-link]
14
-
15
- ```{admonition} Disclaimer
16
- This project is not affiliated with Pioneer Corp. or its related companies
17
- in any way or form and has been written independently! Pyrekordbox is licensed
18
- under the [MIT license][license-link].
19
- The maintainers of the project are not liable for any damages to your Rekordbox library.
20
- ```
21
-
22
- Pyrekordbox is a Python package for interacting with the library and export data of
23
- Pioneer's Rekordbox DJ Software. It currently supports
24
-
25
- - Rekordbox 6 `master.db` database
26
- - Rekordbox XML database
27
- - Analysis files (ANLZ)
28
- - My-Settings files
29
-
30
- Tested Rekordbox versions: `5.8.6 | 6.5.3 | 6.7.7`
31
-
32
- ```{warning}
33
- This project is still under development and might contain bugs or
34
- have breaking API changes in the future.
35
- ```
36
-
37
- ## Contents
38
-
39
- ```{toctree}
40
- ---
41
- maxdepth: 2
42
- caption: User Guide
43
- ---
44
-
45
- quickstart
46
- installation
47
- key
48
- tutorial/index
49
- api
50
- ```
51
-
52
- ```{toctree}
53
- ---
54
- maxdepth: 2
55
- caption: File formats
56
- ---
57
-
58
- formats/db6
59
- formats/xml
60
- formats/anlz
61
- formats/mysetting
62
- ```
63
-
64
- ```{toctree}
65
- ---
66
- maxdepth: 1
67
- caption: Development
68
- ---
69
-
70
- development/contributing
71
- development/changes
72
- ```
73
-
74
- ```{toctree}
75
- ---
76
- hidden:
77
- caption: Project Links
78
- ---
79
-
80
- GitHub <https://github.com/dylanljones/pyrekordbox>
81
- PyPI <https://pypi.org/project/pyrekordbox/>
82
- ```
83
-
84
- # Indices and tables
85
-
86
- - {ref}`genindex`
87
- - {ref}`search`
88
-
89
-
90
- [tests-badge]: https://img.shields.io/github/actions/workflow/status/dylanljones/pyrekordbox/tests.yml?branch=master&label=tests&logo=github&style=flat
91
- [codecov-badge]: https://codecov.io/gh/dylanljones/pyrekordbox/branch/master/graph/badge.svg?token=5Z2KVGL7N3
92
- [python-badge]: https://img.shields.io/pypi/pyversions/pyrekordbox?style=flat
93
- [python-badge+]: https://img.shields.io/badge/python-3.8+-blue.svg
94
- [platform-badge]: https://img.shields.io/badge/platform-win%20%7C%20osx-blue?style=flat
95
- [pypi-badge]: https://img.shields.io/pypi/v/pyrekordbox?style=flat
96
- [license-badge]: https://img.shields.io/pypi/l/pyrekordbox?color=lightgrey
97
-
98
- [pypi-link]: https://pypi.org/project/pyrekordbox/
99
- [license-link]: https://github.com/dylanljones/pyrekordbox/blob/master/LICENSE
100
- [tests-link]: https://github.com/dylanljones/pyrekordbox/actions/workflows/tests.yml
101
- [codecov-link]: https://app.codecov.io/gh/dylanljones/pyrekordbox/tree/master
102
-
103
- [issue]: https://github.com/dylanljones/pyrekordbox/issues/64