pyrekordbox 0.3.1__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 (84) 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 +227 -143
  11. pyrekordbox/db6/registry.py +1 -0
  12. pyrekordbox/db6/smartlist.py +375 -0
  13. pyrekordbox/db6/tables.py +81 -20
  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.1.dist-info → pyrekordbox-0.4.0.dist-info}/LICENSE +1 -1
  20. {pyrekordbox-0.3.1.dist-info → pyrekordbox-0.4.0.dist-info}/METADATA +26 -42
  21. pyrekordbox-0.4.0.dist-info/RECORD +25 -0
  22. {pyrekordbox-0.3.1.dist-info → pyrekordbox-0.4.0.dist-info}/WHEEL +1 -1
  23. {pyrekordbox-0.3.1.dist-info → pyrekordbox-0.4.0.dist-info}/top_level.txt +0 -2
  24. docs/Makefile +0 -20
  25. docs/make.bat +0 -35
  26. docs/source/_static/images/anlz_beat.svg +0 -53
  27. docs/source/_static/images/anlz_file.svg +0 -204
  28. docs/source/_static/images/anlz_pco2.svg +0 -138
  29. docs/source/_static/images/anlz_pcob.svg +0 -148
  30. docs/source/_static/images/anlz_pcp2.svg +0 -398
  31. docs/source/_static/images/anlz_pcpt.svg +0 -263
  32. docs/source/_static/images/anlz_ppth.svg +0 -123
  33. docs/source/_static/images/anlz_pqt2.svg +0 -324
  34. docs/source/_static/images/anlz_pqt2_2.svg +0 -253
  35. docs/source/_static/images/anlz_pqtz.svg +0 -140
  36. docs/source/_static/images/anlz_pssi.svg +0 -192
  37. docs/source/_static/images/anlz_pssi_entry.svg +0 -191
  38. docs/source/_static/images/anlz_pvbr.svg +0 -125
  39. docs/source/_static/images/anlz_pwav.svg +0 -130
  40. docs/source/_static/images/anlz_pwv3.svg +0 -139
  41. docs/source/_static/images/anlz_pwv4.svg +0 -139
  42. docs/source/_static/images/anlz_pwv5.svg +0 -139
  43. docs/source/_static/images/anlz_pwv5_entry.svg +0 -100
  44. docs/source/_static/images/anlz_pwv6.svg +0 -130
  45. docs/source/_static/images/anlz_pwv7.svg +0 -139
  46. docs/source/_static/images/anlz_pwvc.svg +0 -125
  47. docs/source/_static/images/anlz_tag.svg +0 -110
  48. docs/source/_static/images/x64dbg_rb_key.png +0 -0
  49. docs/source/_static/logos/dark/logo_primary.svg +0 -75
  50. docs/source/_static/logos/light/logo_primary.svg +0 -75
  51. docs/source/_static/logos/mid/logo_primary.svg +0 -75
  52. docs/source/_templates/apidoc/module.rst_t +0 -8
  53. docs/source/_templates/apidoc/package.rst_t +0 -57
  54. docs/source/_templates/apidoc/toc.rst_t +0 -7
  55. docs/source/_templates/autosummary/class.rst +0 -32
  56. docs/source/_templates/autosummary/module.rst +0 -55
  57. docs/source/api.md +0 -18
  58. docs/source/conf.py +0 -178
  59. docs/source/development/changes.md +0 -3
  60. docs/source/development/contributing.md +0 -3
  61. docs/source/formats/anlz.md +0 -634
  62. docs/source/formats/db6.md +0 -1233
  63. docs/source/formats/mysetting.md +0 -392
  64. docs/source/formats/xml.md +0 -376
  65. docs/source/index.md +0 -103
  66. docs/source/installation.md +0 -271
  67. docs/source/key.md +0 -103
  68. docs/source/quickstart.md +0 -185
  69. docs/source/requirements.txt +0 -7
  70. docs/source/tutorial/anlz.md +0 -7
  71. docs/source/tutorial/configuration.md +0 -66
  72. docs/source/tutorial/db6.md +0 -178
  73. docs/source/tutorial/index.md +0 -20
  74. docs/source/tutorial/mysetting.md +0 -124
  75. docs/source/tutorial/xml.md +0 -140
  76. pyrekordbox/db6/smart_playlist.py +0 -333
  77. pyrekordbox/xml.py +0 -8
  78. pyrekordbox-0.3.1.dist-info/RECORD +0 -84
  79. tests/__init__.py +0 -3
  80. tests/test_anlz.py +0 -206
  81. tests/test_config.py +0 -175
  82. tests/test_db6.py +0 -1115
  83. tests/test_mysetting.py +0 -203
  84. tests/test_xml.py +0 -629
@@ -1,11 +1,11 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: pyrekordbox
3
- Version: 0.3.1
3
+ Version: 0.4.0
4
4
  Summary: Inofficial Python package for interacting with the library of Pioneers Rekordbox DJ software.
5
5
  Author-email: Dylan Jones <dylanljones94@gmail.com>
6
6
  License: MIT License
7
7
 
8
- Copyright (c) 2022-2023, Dylan Jones
8
+ Copyright (c) 2022-2024, Dylan Jones
9
9
 
10
10
  Permission is hereby granted, free of charge, to any person obtaining a copy
11
11
  of this software and associated documentation files (the "Software"), to deal
@@ -47,19 +47,20 @@ Classifier: Topic :: Multimedia :: Sound/Audio
47
47
  Requires-Python: >=3.8
48
48
  Description-Content-Type: text/markdown
49
49
  License-File: LICENSE
50
- Requires-Dist: bidict >=0.21.0
51
- Requires-Dist: blowfish >=0.6.0
52
- Requires-Dist: construct >=2.10.0
53
- Requires-Dist: numpy >=1.19.0
50
+ Requires-Dist: bidict>=0.21.0
51
+ Requires-Dist: blowfish>=0.6.0
52
+ Requires-Dist: construct>=2.10.0
53
+ Requires-Dist: numpy>=1.19.0
54
54
  Requires-Dist: packaging
55
- Requires-Dist: psutil >=5.9.0
56
- Requires-Dist: sqlalchemy >=2.0.0
55
+ Requires-Dist: psutil>=5.9.0
56
+ Requires-Dist: sqlalchemy>=2.0.0
57
+ Requires-Dist: sqlcipher3-wheels
57
58
  Requires-Dist: frida-tools
58
59
  Requires-Dist: python-dateutil
59
60
  Provides-Extra: test
60
- Requires-Dist: hypothesis >=6.0.0 ; extra == 'test'
61
- Requires-Dist: pytest >=6.2.0 ; extra == 'test'
62
- Requires-Dist: pytest-cov ; extra == 'test'
61
+ Requires-Dist: hypothesis>=6.0.0; extra == "test"
62
+ Requires-Dist: pytest>=6.2.0; extra == "test"
63
+ Requires-Dist: pytest-cov; extra == "test"
63
64
 
64
65
 
65
66
  <p align="center">
@@ -85,7 +86,7 @@ Pioneers Rekordbox DJ Software. It currently supports
85
86
  - Analysis files (ANLZ)
86
87
  - My-Setting files
87
88
 
88
- Tested Rekordbox versions: ``5.8.6 | 6.5.3 | 6.7.7``
89
+ Tested Rekordbox versions: ``5.8.6 | 6.7.7 | 7.0.9``
89
90
 
90
91
 
91
92
  |⚠️| This project is still under development and might contain bugs or have breaking API changes in the future. Check the [changelog][CHANGELOG] for recent changes! |
@@ -107,32 +108,10 @@ where `VERSION` is a release, tag or branch name.
107
108
 
108
109
  ### Dependencies
109
110
 
110
- Unlocking the new Rekordbox 6 `master.db` database file requires [SQLCipher][sqlcipher].
111
- Pyrekordbox makes no attempt to download/install SQLCipher, as it is a
112
- pure Python package - whereas the SQLCipher/sqlcipher3 installation is
113
- platform-dependent and can not be installed via ``pip``.
114
-
115
- #### Windows
116
-
117
- SQLCipher can be used by building the libary against an amalgamation with [sqlcipher3].
118
- For a detailed instruction, see the [installation guide][installation].
119
-
120
- #### MacOS
121
111
 
122
- For MacOS follow these steps:
123
-
124
- 1) Install [Homebrew](https://brew.sh) if you do not have it on your machine.
125
- 2) Install SQLCipher with `brew install SQLCipher`.
126
- 3) With the python environment you are using to run pyrekordbox active execute the following:
127
- ```shell
128
- git clone https://github.com/coleifer/sqlcipher3
129
- cd sqlcipher3
130
- SQLCIPHER_PATH=$(brew info sqlcipher | awk 'NR==4 {print $1; exit}'); C_INCLUDE_PATH="$SQLCIPHER_PATH"/include LIBRARY_PATH="$SQLCIPHER_PATH"/lib python setup.py build
131
- SQLCIPHER_PATH=$(brew info sqlcipher | awk 'NR==4 {print $1; exit}'); C_INCLUDE_PATH="$SQLCIPHER_PATH"/include LIBRARY_PATH="$SQLCIPHER_PATH"/lib python setup.py install
132
- ```
133
- Make sure the `C_INCLUDE` and `LIBRARY_PATH` point to the installed SQLCipher path. It may differ on your machine.
134
- If you are having issues installing [sqlcipher3] on M1 Macs please refer to the
135
- [installation guide][installation].
112
+ Unlocking the new Rekordbox 6 `master.db` database file requires [SQLCipher][sqlcipher].
113
+ Pyrekordbox tries to install pre-built wheels with included sqlcipher binaries via the [sqlcipher3-wheels] package.
114
+ If this fails, it can be installed manually following the [installation guide][installation].
136
115
 
137
116
 
138
117
  ## 🚀 Quick-Start
@@ -166,10 +145,10 @@ Alternatively the two paths can be specified in a configuration file under the s
166
145
  pyrekordbox.cfg and pyrekordbox.yaml.
167
146
 
168
147
 
169
- ### Rekordbox 6 database
148
+ ### Rekordbox 6/7 database
170
149
 
171
- Rekordbox 6 now uses a SQLite database for storing the collection content.
172
- Unfortunatly, the new `master.db` SQLite database is encrypted using
150
+ Rekordbox 6 and 7 use a SQLite database for storing the collection content.
151
+ Unfortunatly, the `master.db` SQLite database is encrypted using
173
152
  [SQLCipher][sqlcipher], which means it can't be used without the encryption key.
174
153
  However, since your data is stored and used locally, the key must be present on the
175
154
  machine running Rekordbox.
@@ -199,8 +178,13 @@ content.Title = "New Title"
199
178
  Some fields are stored as references to other tables, for example the artist of a track.
200
179
  Check the [documentation][db6-doc] of the corresponding object for more information.
201
180
  So far only a few tables support adding or deleting entries:
181
+ - ``DjmdContent``: Tracks
202
182
  - ``DjmdPlaylist``: Playlists/Playlist Folders
203
183
  - ``DjmdSongPlaylist``: Songs in a playlist
184
+ - ``DjmdAlbum``: Albums
185
+ - ``DjmdArtist``: Artists
186
+ - ``DjmdGenre``: Genres
187
+ - ``DjmdLabel``: Labels
204
188
 
205
189
  If the automatic key extraction fails the command line interface of ``pyrekordbox``
206
190
  provides a command for downloading the key from known sources and writing it to the
@@ -384,7 +368,7 @@ the CI setup since it requires a working Rekordbox installation.
384
368
 
385
369
  [repo]: https://github.com/dylanljones/pyrekordbox
386
370
  [sqlcipher]: https://www.zetetic.net/sqlcipher/open-source/
387
- [sqlcipher3]: https://github.com/coleifer/sqlcipher3
371
+ [sqlcipher3-wheels]: https://github.com/laggykiller/sqlcipher3
388
372
  [rekordcrate]: https://github.com/Holzhaus/rekordcrate
389
373
  [crate-digger]: https://github.com/Deep-Symmetry/crate-digger
390
374
  [supbox]: https://github.com/gabek/supbox
@@ -0,0 +1,25 @@
1
+ pyrekordbox/__init__.py,sha256=hvg2dB7qhgGB6SmcRg8AION6mTGdlsThdHhsDZ9WYfs,622
2
+ pyrekordbox/__main__.py,sha256=BtyDwVSGyoURY9Cy004vRL5Tgkwt4F7eXX_GD_vVYNQ,5976
3
+ pyrekordbox/_version.py,sha256=j90u3VVU4UrJf1fgMUhaZarHK_Do2XGYXr-vZvOFzVo,411
4
+ pyrekordbox/config.py,sha256=_mbzXaykU184XB2hxIBkFu0jlfmen1FKjufMrsZW7o8,27314
5
+ pyrekordbox/logger.py,sha256=dq1BtXBGavuAjuc45mvjF6mOWaeZqZFzo2aBOJdJ0Ik,483
6
+ pyrekordbox/rbxml.py,sha256=IfFjpuzcuX5pMs7eZEuC5GDA1dXE-BgkPz9EIQmQRhU,38390
7
+ pyrekordbox/utils.py,sha256=hkYIgG5U4rzl2tjN9ESzLnf8OysEFybRQgmr6J7xq-k,4363
8
+ pyrekordbox/anlz/__init__.py,sha256=SEVY0oPX9ohCVViUbsoOLTrBrFewTh-61qJxwXgAJKg,3155
9
+ pyrekordbox/anlz/file.py,sha256=F6axHmprnp0j3pZkqmmp5iiJBUpqtWiAhSzlAJp2H6Y,6951
10
+ pyrekordbox/anlz/structs.py,sha256=Lt4fkb3SAE8w146eWeWGnpgRoP6jhLMWrSMoMwPjG04,7925
11
+ pyrekordbox/anlz/tags.py,sha256=2JfideIkjzAnxXwSPWCi-Nb3t6waUszv_nGd6AJQZYM,14097
12
+ pyrekordbox/db6/__init__.py,sha256=TZX_BPGZIkc4zSTULIc8yd_bf91MAezGtZevKNh3kZ0,856
13
+ pyrekordbox/db6/aux_files.py,sha256=MehdQSc4iryiHvH8RfE9_9xMnD5qjRRDhTo0o0KRLw0,7592
14
+ pyrekordbox/db6/database.py,sha256=Qx_prD3wF8laH7gMoJpG-iLM6l3Y_1JMkW1CSrw34Og,80960
15
+ pyrekordbox/db6/registry.py,sha256=zYq_B7INM97de7vUTxqmA4N_P53loDkBkYdzdoeSnvY,9725
16
+ pyrekordbox/db6/smartlist.py,sha256=gmD8koOIrzAHEiqQ90EHmx7WWZMuhrx4FO8k3r-YXeA,12204
17
+ pyrekordbox/db6/tables.py,sha256=KDEqPVZ63VAyqUNBfBTqLp-xZ0RYLBcovs7iIUczt4M,68362
18
+ pyrekordbox/mysettings/__init__.py,sha256=6iLTQ1KIjuoq8Zt3thmkjqJSxrRVIi7BrQpxNcsQK04,706
19
+ pyrekordbox/mysettings/file.py,sha256=JBfVe3jsmah_mGJjyC20_EqJZyJ7ftcOcCkRDKcWgv0,12671
20
+ pyrekordbox/mysettings/structs.py,sha256=5Y1F3qTmsP1fRB39_BEHpQVxKx2DO9BytEuJUG_RNcY,8472
21
+ pyrekordbox-0.4.0.dist-info/LICENSE,sha256=VwG9ZgC2UZnI0gTezGz1qkcAZ7sknBUQ1M62Z2nht54,1074
22
+ pyrekordbox-0.4.0.dist-info/METADATA,sha256=u6RWvAqSJpF0rD2Rq7inisM4YKlhFG40stdSZuzAigk,15799
23
+ pyrekordbox-0.4.0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
24
+ pyrekordbox-0.4.0.dist-info/top_level.txt,sha256=bUHkyxIHZDgSB6zhYnF1o4Yf1EQlTGGIkVRq9uEtsa4,12
25
+ pyrekordbox-0.4.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.42.0)
2
+ Generator: setuptools (75.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,3 +1 @@
1
- docs
2
1
  pyrekordbox
3
- tests
docs/Makefile DELETED
@@ -1,20 +0,0 @@
1
- # Minimal makefile for Sphinx documentation
2
- #
3
-
4
- # You can set these variables from the command line, and also
5
- # from the environment for the first two.
6
- SPHINXOPTS ?=
7
- SPHINXBUILD ?= sphinx-build
8
- SOURCEDIR = source
9
- BUILDDIR = build
10
-
11
- # Put it first so that "make" without argument is like "make help".
12
- help:
13
- @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
14
-
15
- .PHONY: help Makefile
16
-
17
- # Catch-all target: route all unknown targets to Sphinx using the new
18
- # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
19
- %: Makefile
20
- @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
docs/make.bat DELETED
@@ -1,35 +0,0 @@
1
- @ECHO OFF
2
-
3
- pushd %~dp0
4
-
5
- REM Command file for Sphinx documentation
6
-
7
- if "%SPHINXBUILD%" == "" (
8
- set SPHINXBUILD=sphinx-build
9
- )
10
- set SOURCEDIR=source
11
- set BUILDDIR=build
12
-
13
- if "%1" == "" goto help
14
-
15
- %SPHINXBUILD% >NUL 2>NUL
16
- if errorlevel 9009 (
17
- echo.
18
- echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
19
- echo.installed, then set the SPHINXBUILD environment variable to point
20
- echo.to the full path of the 'sphinx-build' executable. Alternatively you
21
- echo.may add the Sphinx directory to PATH.
22
- echo.
23
- echo.If you don't have Sphinx installed, grab it from
24
- echo.https://www.sphinx-doc.org/
25
- exit /b 1
26
- )
27
-
28
- %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
29
- goto end
30
-
31
- :help
32
- %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
33
-
34
- :end
35
- popd
@@ -1,53 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg"
2
- version="1.0" width="322" height="46"
3
- viewBox="0 0 322 46">
4
- <text x="21" y="8" font-family="Courier New, monospace" font-size="11"
5
- dominant-baseline="middle" text-anchor="middle">0
6
- </text>
7
- <text x="61" y="8" font-family="Courier New, monospace" font-size="11"
8
- dominant-baseline="middle" text-anchor="middle">1
9
- </text>
10
- <text x="101" y="8" font-family="Courier New, monospace" font-size="11"
11
- dominant-baseline="middle" text-anchor="middle">2
12
- </text>
13
- <text x="141" y="8" font-family="Courier New, monospace" font-size="11"
14
- dominant-baseline="middle" text-anchor="middle">3
15
- </text>
16
- <text x="181" y="8" font-family="Courier New, monospace" font-size="11"
17
- dominant-baseline="middle" text-anchor="middle">4
18
- </text>
19
- <text x="221" y="8" font-family="Courier New, monospace" font-size="11"
20
- dominant-baseline="middle" text-anchor="middle">5
21
- </text>
22
- <text x="261" y="8" font-family="Courier New, monospace" font-size="11"
23
- dominant-baseline="middle" text-anchor="middle">6
24
- </text>
25
- <text x="301" y="8" font-family="Courier New, monospace" font-size="11"
26
- dominant-baseline="middle" text-anchor="middle">7
27
- </text>
28
- <line x1="1" y1="15" x2="81" y2="15" stroke="#000000" stroke-width="1"/>
29
- <line x1="1" y1="45" x2="81" y2="45" stroke="#000000" stroke-width="1"/>
30
- <line x1="81" y1="15" x2="81" y2="45" stroke="#000000" stroke-width="1"/>
31
- <line x1="1" y1="15" x2="1" y2="45" stroke="#000000" stroke-width="1"/>
32
- <text font-size="18" font-family="Palatino, Georgia, Times New Roman, serif"
33
- font-style="italic" x="41" y="31" text-anchor="middle"
34
- dominant-baseline="middle">b
35
- <tspan font-size="70%" dy="0.5ex" dominant-baseline="middle">num</tspan>
36
- </text>
37
- <line x1="81" y1="15" x2="161" y2="15" stroke="#000000" stroke-width="1"/>
38
- <line x1="81" y1="45" x2="161" y2="45" stroke="#000000" stroke-width="1"/>
39
- <line x1="161" y1="15" x2="161" y2="45" stroke="#000000" stroke-width="1"/>
40
- <line x1="81" y1="15" x2="81" y2="45" stroke="#000000" stroke-width="1"/>
41
- <text font-size="18" font-family="Palatino, Georgia, Times New Roman, serif"
42
- font-style="italic" x="121" y="31" text-anchor="middle"
43
- dominant-baseline="middle">tempo
44
- </text>
45
- <line x1="161" y1="15" x2="321" y2="15" stroke="#000000" stroke-width="1"/>
46
- <line x1="161" y1="45" x2="321" y2="45" stroke="#000000" stroke-width="1"/>
47
- <line x1="321" y1="15" x2="321" y2="45" stroke="#000000" stroke-width="1"/>
48
- <line x1="161" y1="15" x2="161" y2="45" stroke="#000000" stroke-width="1"/>
49
- <text font-size="18" font-family="Palatino, Georgia, Times New Roman, serif"
50
- font-style="italic" x="241" y="31" text-anchor="middle"
51
- dominant-baseline="middle">time
52
- </text>
53
- </svg>
@@ -1,204 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" version="1.0" width="681" height="176"
2
- viewBox="0 0 681 176">
3
- <text x="60" y="8" font-family="Courier New, monospace" font-size="11"
4
- dominant-baseline="middle" text-anchor="middle">0
5
- </text>
6
- <text x="100" y="8" font-family="Courier New, monospace" font-size="11"
7
- dominant-baseline="middle" text-anchor="middle">1
8
- </text>
9
- <text x="140" y="8" font-family="Courier New, monospace" font-size="11"
10
- dominant-baseline="middle" text-anchor="middle">2
11
- </text>
12
- <text x="180" y="8" font-family="Courier New, monospace" font-size="11"
13
- dominant-baseline="middle" text-anchor="middle">3
14
- </text>
15
- <text x="220" y="8" font-family="Courier New, monospace" font-size="11"
16
- dominant-baseline="middle" text-anchor="middle">4
17
- </text>
18
- <text x="260" y="8" font-family="Courier New, monospace" font-size="11"
19
- dominant-baseline="middle" text-anchor="middle">5
20
- </text>
21
- <text x="300" y="8" font-family="Courier New, monospace" font-size="11"
22
- dominant-baseline="middle" text-anchor="middle">6
23
- </text>
24
- <text x="340" y="8" font-family="Courier New, monospace" font-size="11"
25
- dominant-baseline="middle" text-anchor="middle">7
26
- </text>
27
- <text x="380" y="8" font-family="Courier New, monospace" font-size="11"
28
- dominant-baseline="middle" text-anchor="middle">8
29
- </text>
30
- <text x="420" y="8" font-family="Courier New, monospace" font-size="11"
31
- dominant-baseline="middle" text-anchor="middle">9
32
- </text>
33
- <text x="460" y="8" font-family="Courier New, monospace" font-size="11"
34
- dominant-baseline="middle" text-anchor="middle">a
35
- </text>
36
- <text x="500" y="8" font-family="Courier New, monospace" font-size="11"
37
- dominant-baseline="middle" text-anchor="middle">b
38
- </text>
39
- <text x="540" y="8" font-family="Courier New, monospace" font-size="11"
40
- dominant-baseline="middle" text-anchor="middle">c
41
- </text>
42
- <text x="580" y="8" font-family="Courier New, monospace" font-size="11"
43
- dominant-baseline="middle" text-anchor="middle">d
44
- </text>
45
- <text x="620" y="8" font-family="Courier New, monospace" font-size="11"
46
- dominant-baseline="middle" text-anchor="middle">e
47
- </text>
48
- <text x="660" y="8" font-family="Courier New, monospace" font-size="11"
49
- dominant-baseline="middle" text-anchor="middle">f
50
- </text>
51
- <line x1="40" y1="15" x2="200" y2="15" stroke="#000000" stroke-width="1"/>
52
- <line x1="40" y1="45" x2="200" y2="45" stroke="#000000" stroke-width="1"/>
53
- <line x1="200" y1="15" x2="200" y2="45" stroke="#000000" stroke-width="1"/>
54
- <line x1="40" y1="15" x2="40" y2="45" stroke="#000000" stroke-width="1"/>
55
- <text font-size="18" font-family="Courier New, monospace" x="120" y="31"
56
- text-anchor="middle" dominant-baseline="middle">PMAI
57
- </text>
58
- <line x1="200" y1="15" x2="360" y2="15" stroke="#000000" stroke-width="1"/>
59
- <line x1="200" y1="45" x2="360" y2="45" stroke="#000000" stroke-width="1"/>
60
- <line x1="360" y1="15" x2="360" y2="45" stroke="#000000" stroke-width="1"/>
61
- <line x1="200" y1="15" x2="200" y2="45" stroke="#000000" stroke-width="1"/>
62
- <text font-size="18" font-family="Palatino, Georgia, Times New Roman, serif"
63
- font-style="italic" x="280" y="31" text-anchor="middle"
64
- dominant-baseline="middle">len_header
65
- </text>
66
- <line x1="360" y1="15" x2="520" y2="15" stroke="#000000" stroke-width="1"/>
67
- <line x1="360" y1="45" x2="520" y2="45" stroke="#000000" stroke-width="1"/>
68
- <line x1="520" y1="15" x2="520" y2="45" stroke="#000000" stroke-width="1"/>
69
- <line x1="360" y1="15" x2="360" y2="45" stroke="#000000" stroke-width="1"/>
70
- <text font-size="18" font-family="Palatino, Georgia, Times New Roman, serif"
71
- font-style="italic" x="440" y="31" text-anchor="middle"
72
- dominant-baseline="middle">len_file
73
- </text>
74
- <line x1="520" y1="15" x2="560" y2="15" stroke="#000000" stroke-width="1"/>
75
- <line x1="520" y1="45" x2="560" y2="45" stroke="#000000" stroke-width="1"/>
76
- <line stroke-dasharray="1,3" x1="560" y1="15" x2="560" y2="45" stroke="#000000"
77
- stroke-width="1"/>
78
- <line x1="520" y1="15" x2="520" y2="45" stroke="#000000" stroke-width="1"/>
79
- <line x1="560" y1="15" x2="600" y2="15" stroke="#000000" stroke-width="1"/>
80
- <line x1="560" y1="45" x2="600" y2="45" stroke="#000000" stroke-width="1"/>
81
- <line stroke-dasharray="1,3" x1="600" y1="15" x2="600" y2="45" stroke="#000000"
82
- stroke-width="1"/>
83
- <line stroke-dasharray="1,3" x1="560" y1="15" x2="560" y2="45" stroke="#000000"
84
- stroke-width="1"/>
85
- <line x1="600" y1="15" x2="640" y2="15" stroke="#000000" stroke-width="1"/>
86
- <line x1="600" y1="45" x2="640" y2="45" stroke="#000000" stroke-width="1"/>
87
- <line stroke-dasharray="1,3" x1="640" y1="15" x2="640" y2="45" stroke="#000000"
88
- stroke-width="1"/>
89
- <line stroke-dasharray="1,3" x1="600" y1="15" x2="600" y2="45" stroke="#000000"
90
- stroke-width="1"/>
91
- <line x1="640" y1="15" x2="680" y2="15" stroke="#000000" stroke-width="1"/>
92
- <line x1="640" y1="45" x2="680" y2="45" stroke="#000000" stroke-width="1"/>
93
- <line x1="680" y1="15" x2="680" y2="45" stroke="#000000" stroke-width="1"/>
94
- <line stroke-dasharray="1,3" x1="640" y1="15" x2="640" y2="45" stroke="#000000"
95
- stroke-width="1"/>
96
- <text font-size="11" font-family="Courier New, monospace"
97
- dominant-baseline="middle" x="35" y="30" text-anchor="end">00
98
- </text>
99
- <text font-size="11" font-family="Courier New, monospace"
100
- dominant-baseline="middle" x="35" y="60" text-anchor="end">10
101
- </text>
102
- <line x1="40" y1="45" x2="80" y2="45" stroke="#000000" stroke-width="1"/>
103
- <line x1="40" y1="75" x2="80" y2="75" stroke="#000000" stroke-width="1"/>
104
- <line stroke-dasharray="1,3" x1="80" y1="45" x2="80" y2="75" stroke="#000000"
105
- stroke-width="1"/>
106
- <line x1="40" y1="45" x2="40" y2="75" stroke="#000000" stroke-width="1"/>
107
- <line x1="80" y1="45" x2="120" y2="45" stroke="#000000" stroke-width="1"/>
108
- <line x1="80" y1="75" x2="120" y2="75" stroke="#000000" stroke-width="1"/>
109
- <line stroke-dasharray="1,3" x1="120" y1="45" x2="120" y2="75" stroke="#000000"
110
- stroke-width="1"/>
111
- <line stroke-dasharray="1,3" x1="80" y1="45" x2="80" y2="75" stroke="#000000"
112
- stroke-width="1"/>
113
- <line x1="120" y1="45" x2="160" y2="45" stroke="#000000" stroke-width="1"/>
114
- <line x1="120" y1="75" x2="160" y2="75" stroke="#000000" stroke-width="1"/>
115
- <line stroke-dasharray="1,3" x1="160" y1="45" x2="160" y2="75" stroke="#000000"
116
- stroke-width="1"/>
117
- <line stroke-dasharray="1,3" x1="120" y1="45" x2="120" y2="75" stroke="#000000"
118
- stroke-width="1"/>
119
- <line x1="160" y1="45" x2="200" y2="45" stroke="#000000" stroke-width="1"/>
120
- <line x1="160" y1="75" x2="200" y2="75" stroke="#000000" stroke-width="1"/>
121
- <line stroke-dasharray="1,3" x1="200" y1="45" x2="200" y2="75" stroke="#000000"
122
- stroke-width="1"/>
123
- <line stroke-dasharray="1,3" x1="160" y1="45" x2="160" y2="75" stroke="#000000"
124
- stroke-width="1"/>
125
- <line x1="200" y1="45" x2="240" y2="45" stroke="#000000" stroke-width="1"/>
126
- <line x1="200" y1="75" x2="240" y2="75" stroke="#000000" stroke-width="1"/>
127
- <line stroke-dasharray="1,3" x1="240" y1="45" x2="240" y2="75" stroke="#000000"
128
- stroke-width="1"/>
129
- <line stroke-dasharray="1,3" x1="200" y1="45" x2="200" y2="75" stroke="#000000"
130
- stroke-width="1"/>
131
- <line x1="240" y1="45" x2="280" y2="45" stroke="#000000" stroke-width="1"/>
132
- <line x1="240" y1="75" x2="280" y2="75" stroke="#000000" stroke-width="1"/>
133
- <line stroke-dasharray="1,3" x1="280" y1="45" x2="280" y2="75" stroke="#000000"
134
- stroke-width="1"/>
135
- <line stroke-dasharray="1,3" x1="240" y1="45" x2="240" y2="75" stroke="#000000"
136
- stroke-width="1"/>
137
- <line x1="280" y1="45" x2="320" y2="45" stroke="#000000" stroke-width="1"/>
138
- <line x1="280" y1="75" x2="320" y2="75" stroke="#000000" stroke-width="1"/>
139
- <line stroke-dasharray="1,3" x1="320" y1="45" x2="320" y2="75" stroke="#000000"
140
- stroke-width="1"/>
141
- <line stroke-dasharray="1,3" x1="280" y1="45" x2="280" y2="75" stroke="#000000"
142
- stroke-width="1"/>
143
- <line x1="320" y1="45" x2="360" y2="45" stroke="#000000" stroke-width="1"/>
144
- <line x1="320" y1="75" x2="360" y2="75" stroke="#000000" stroke-width="1"/>
145
- <line stroke-dasharray="1,3" x1="360" y1="45" x2="360" y2="75" stroke="#000000"
146
- stroke-width="1"/>
147
- <line stroke-dasharray="1,3" x1="320" y1="45" x2="320" y2="75" stroke="#000000"
148
- stroke-width="1"/>
149
- <line x1="360" y1="45" x2="400" y2="45" stroke="#000000" stroke-width="1"/>
150
- <line x1="360" y1="75" x2="400" y2="75" stroke="#000000" stroke-width="1"/>
151
- <line stroke-dasharray="1,3" x1="400" y1="45" x2="400" y2="75" stroke="#000000"
152
- stroke-width="1"/>
153
- <line stroke-dasharray="1,3" x1="360" y1="45" x2="360" y2="75" stroke="#000000"
154
- stroke-width="1"/>
155
- <line x1="400" y1="45" x2="440" y2="45" stroke="#000000" stroke-width="1"/>
156
- <line x1="400" y1="75" x2="440" y2="75" stroke="#000000" stroke-width="1"/>
157
- <line stroke-dasharray="1,3" x1="440" y1="45" x2="440" y2="75" stroke="#000000"
158
- stroke-width="1"/>
159
- <line stroke-dasharray="1,3" x1="400" y1="45" x2="400" y2="75" stroke="#000000"
160
- stroke-width="1"/>
161
- <line x1="440" y1="45" x2="480" y2="45" stroke="#000000" stroke-width="1"/>
162
- <line x1="440" y1="75" x2="480" y2="75" stroke="#000000" stroke-width="1"/>
163
- <line stroke-dasharray="1,3" x1="480" y1="45" x2="480" y2="75" stroke="#000000"
164
- stroke-width="1"/>
165
- <line stroke-dasharray="1,3" x1="440" y1="45" x2="440" y2="75" stroke="#000000"
166
- stroke-width="1"/>
167
- <line x1="480" y1="45" x2="520" y2="45" stroke="#000000" stroke-width="1"/>
168
- <line x1="480" y1="75" x2="520" y2="75" stroke="#000000" stroke-width="1"/>
169
- <line x1="520" y1="45" x2="520" y2="75" stroke="#000000" stroke-width="1"/>
170
- <line stroke-dasharray="1,3" x1="480" y1="45" x2="480" y2="75" stroke="#000000"
171
- stroke-width="1"/>
172
- <line x1="520" y1="45" x2="680" y2="45" stroke="#000000" stroke-width="1"/>
173
- <line x1="680" y1="45" x2="680" y2="75" stroke="#000000" stroke-width="1"/>
174
- <line x1="520" y1="45" x2="520" y2="75" stroke="#000000" stroke-width="1"/>
175
- <text font-size="11" font-family="Courier New, monospace"
176
- dominant-baseline="middle" x="35" y="90" text-anchor="end">20
177
- </text>
178
- <line x1="680" y1="75" x2="680" y2="105" stroke="#000000" stroke-width="1"/>
179
- <line x1="40" y1="75" x2="40" y2="105" stroke="#000000" stroke-width="1"/>
180
- <text font-size="18" font-family="Palatino, Georgia, Times New Roman, serif" x="360"
181
- y="91" text-anchor="middle" dominant-baseline="middle">Tagged sections
182
- </text>
183
- <text font-size="11" font-family="Courier New, monospace"
184
- dominant-baseline="middle" x="35" y="120" text-anchor="end">30
185
- </text>
186
- <line x1="40" y1="105" x2="40" y2="120" stroke="#000000" stroke-width="1"/>
187
- <line x1="680" y1="105" x2="680" y2="120" stroke="#000000" stroke-width="1"/>
188
- <line stroke-dasharray="1,1" x1="40" y1="120" x2="680" y2="150" stroke="#000000"
189
- stroke-width="1"/>
190
- <line x1="680" y1="105" x2="680" y2="150" stroke="#000000" stroke-width="1"/>
191
- <line stroke-dasharray="1,1" x1="40" y1="130" x2="680" y2="160" stroke="#000000"
192
- stroke-width="1"/>
193
- <line x1="40" y1="130" x2="40" y2="160" stroke="#000000" stroke-width="1"/>
194
- <line x1="40" y1="160" x2="40" y2="175" stroke="#000000" stroke-width="1"/>
195
- <line x1="680" y1="160" x2="680" y2="175" stroke="#000000" stroke-width="1"/>
196
- <text font-size="11" font-family="Palatino, Georgia, Times New Roman, serif"
197
- font-style="italic" dominant-baseline="middle" x="35" y="190"
198
- text-anchor="end">i+
199
- <tspan font-size="11" font-family="Courier New, monospace"
200
- dominant-baseline="middle">00
201
- </tspan>
202
- </text>
203
- <line x1="40" y1="175" x2="680" y2="175" stroke="#000000" stroke-width="1"/>
204
- </svg>
@@ -1,138 +0,0 @@
1
- <svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
2
- xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" width="681" height="146"
3
- viewBox="0 0 681 146">
4
- <text x="60" y="8" font-family="Courier New, monospace" font-size="11"
5
- dominant-baseline="middle" text-anchor="middle">0
6
- </text>
7
- <text x="100" y="8" font-family="Courier New, monospace" font-size="11"
8
- dominant-baseline="middle" text-anchor="middle">1
9
- </text>
10
- <text x="140" y="8" font-family="Courier New, monospace" font-size="11"
11
- dominant-baseline="middle" text-anchor="middle">2
12
- </text>
13
- <text x="180" y="8" font-family="Courier New, monospace" font-size="11"
14
- dominant-baseline="middle" text-anchor="middle">3
15
- </text>
16
- <text x="220" y="8" font-family="Courier New, monospace" font-size="11"
17
- dominant-baseline="middle" text-anchor="middle">4
18
- </text>
19
- <text x="260" y="8" font-family="Courier New, monospace" font-size="11"
20
- dominant-baseline="middle" text-anchor="middle">5
21
- </text>
22
- <text x="300" y="8" font-family="Courier New, monospace" font-size="11"
23
- dominant-baseline="middle" text-anchor="middle">6
24
- </text>
25
- <text x="340" y="8" font-family="Courier New, monospace" font-size="11"
26
- dominant-baseline="middle" text-anchor="middle">7
27
- </text>
28
- <text x="380" y="8" font-family="Courier New, monospace" font-size="11"
29
- dominant-baseline="middle" text-anchor="middle">8
30
- </text>
31
- <text x="420" y="8" font-family="Courier New, monospace" font-size="11"
32
- dominant-baseline="middle" text-anchor="middle">9
33
- </text>
34
- <text x="460" y="8" font-family="Courier New, monospace" font-size="11"
35
- dominant-baseline="middle" text-anchor="middle">a
36
- </text>
37
- <text x="500" y="8" font-family="Courier New, monospace" font-size="11"
38
- dominant-baseline="middle" text-anchor="middle">b
39
- </text>
40
- <text x="540" y="8" font-family="Courier New, monospace" font-size="11"
41
- dominant-baseline="middle" text-anchor="middle">c
42
- </text>
43
- <text x="580" y="8" font-family="Courier New, monospace" font-size="11"
44
- dominant-baseline="middle" text-anchor="middle">d
45
- </text>
46
- <text x="620" y="8" font-family="Courier New, monospace" font-size="11"
47
- dominant-baseline="middle" text-anchor="middle">e
48
- </text>
49
- <text x="660" y="8" font-family="Courier New, monospace" font-size="11"
50
- dominant-baseline="middle" text-anchor="middle">f
51
- </text>
52
- <rect x="40" y="15" height="30" width="160" fill="#ffffa0"></rect>
53
- <line x1="40" y1="15" x2="200" y2="15" stroke="#000000" stroke-width="1"/>
54
- <line x1="40" y1="45" x2="200" y2="45" stroke="#000000" stroke-width="1"/>
55
- <line x1="200" y1="15" x2="200" y2="45" stroke="#000000" stroke-width="1"/>
56
- <line x1="40" y1="15" x2="40" y2="45" stroke="#000000" stroke-width="1"/>
57
- <text font-size="18" font-family="Courier New, monospace" x="120" y="31"
58
- text-anchor="middle" dominant-baseline="middle">PCO2
59
- </text>
60
- <rect x="200" y="15" height="30" width="160" fill="#ffffa0"></rect>
61
- <line x1="200" y1="15" x2="360" y2="15" stroke="#000000" stroke-width="1"/>
62
- <line x1="200" y1="45" x2="360" y2="45" stroke="#000000" stroke-width="1"/>
63
- <line x1="360" y1="15" x2="360" y2="45" stroke="#000000" stroke-width="1"/>
64
- <line x1="200" y1="15" x2="200" y2="45" stroke="#000000" stroke-width="1"/>
65
- <text font-size="18" font-family="Palatino, Georgia, Times New Roman, serif"
66
- font-style="italic" x="280" y="31" text-anchor="middle"
67
- dominant-baseline="middle">len_header
68
- </text>
69
- <rect x="360" y="15" height="30" width="160" fill="#ffffa0"></rect>
70
- <line x1="360" y1="15" x2="520" y2="15" stroke="#000000" stroke-width="1"/>
71
- <line x1="360" y1="45" x2="520" y2="45" stroke="#000000" stroke-width="1"/>
72
- <line x1="520" y1="15" x2="520" y2="45" stroke="#000000" stroke-width="1"/>
73
- <line x1="360" y1="15" x2="360" y2="45" stroke="#000000" stroke-width="1"/>
74
- <text font-size="18" font-family="Palatino, Georgia, Times New Roman, serif"
75
- font-style="italic" x="440" y="31" text-anchor="middle"
76
- dominant-baseline="middle">len_tag
77
- </text>
78
- <rect x="520" y="15" height="30" width="160" fill="#ffffa0"></rect>
79
- <line x1="520" y1="15" x2="680" y2="15" stroke="#000000" stroke-width="1"/>
80
- <line x1="520" y1="45" x2="680" y2="45" stroke="#000000" stroke-width="1"/>
81
- <line x1="680" y1="15" x2="680" y2="45" stroke="#000000" stroke-width="1"/>
82
- <line x1="520" y1="15" x2="520" y2="45" stroke="#000000" stroke-width="1"/>
83
- <text font-size="18" font-family="Palatino, Georgia, Times New Roman, serif"
84
- font-style="italic" x="600" y="31" text-anchor="middle"
85
- dominant-baseline="middle">type
86
- </text>
87
- <text font-size="11" font-family="Courier New, monospace" font-style="normal"
88
- dominant-baseline="middle" x="35" y="30" text-anchor="end">00
89
- </text>
90
- <text font-size="11" font-family="Courier New, monospace" font-style="normal"
91
- dominant-baseline="middle" x="35" y="60" text-anchor="end">10
92
- </text>
93
- <rect x="40" y="45" height="30" width="80" fill="#ffffa0"></rect>
94
- <line x1="40" y1="45" x2="120" y2="45" stroke="#000000" stroke-width="1"/>
95
- <line x1="40" y1="75" x2="120" y2="75" stroke="#000000" stroke-width="1"/>
96
- <line x1="120" y1="45" x2="120" y2="75" stroke="#000000" stroke-width="1"/>
97
- <line x1="40" y1="45" x2="40" y2="75" stroke="#000000" stroke-width="1"/>
98
- <text font-size="18" font-family="Palatino, Georgia, Times New Roman, serif"
99
- font-style="italic" x="80" y="61" text-anchor="middle"
100
- dominant-baseline="middle">len
101
- <tspan font-size="70%" dy="0.5ex" dominant-baseline="middle">cues</tspan>
102
- </text>
103
- <rect x="120" y="45" height="30" width="80" fill="#ffffa0"></rect>
104
- <line x1="120" y1="45" x2="200" y2="45" stroke="#000000" stroke-width="1"/>
105
- <line x1="120" y1="75" x2="200" y2="75" stroke="#000000" stroke-width="1"/>
106
- <line x1="200" y1="45" x2="200" y2="75" stroke="#000000" stroke-width="1"/>
107
- <line x1="120" y1="45" x2="120" y2="75" stroke="#000000" stroke-width="1"/>
108
- <text font-size="18" font-family="Courier New, monospace" x="160" y="61"
109
- text-anchor="middle" dominant-baseline="middle">0000
110
- </text>
111
- <line x1="200" y1="45" x2="680" y2="45" stroke="#000000" stroke-width="1"/>
112
- <line x1="680" y1="45" x2="680" y2="75" stroke="#000000" stroke-width="1"/>
113
- <line x1="200" y1="45" x2="200" y2="75" stroke="#000000" stroke-width="1"/>
114
- <text font-size="18" font-family="Palatino, Georgia, Times New Roman, serif" x="440"
115
- y="61" text-anchor="middle" dominant-baseline="middle">Cue entries
116
- </text>
117
- <text font-size="11" font-family="Courier New, monospace" font-style="normal"
118
- dominant-baseline="middle" x="35" y="90" text-anchor="end">20
119
- </text>
120
- <line x1="40" y1="75" x2="40" y2="90" stroke="#000000" stroke-width="1"/>
121
- <line x1="680" y1="75" x2="680" y2="90" stroke="#000000" stroke-width="1"/>
122
- <line stroke-dasharray="1,1" x1="40" y1="90" x2="680" y2="120" stroke="#000000"
123
- stroke-width="1"/>
124
- <line x1="680" y1="75" x2="680" y2="120" stroke="#000000" stroke-width="1"/>
125
- <line stroke-dasharray="1,1" x1="40" y1="100" x2="680" y2="130" stroke="#000000"
126
- stroke-width="1"/>
127
- <line x1="40" y1="100" x2="40" y2="130" stroke="#000000" stroke-width="1"/>
128
- <line x1="40" y1="130" x2="40" y2="145" stroke="#000000" stroke-width="1"/>
129
- <line x1="680" y1="130" x2="680" y2="145" stroke="#000000" stroke-width="1"/>
130
- <text font-size="11" font-family="Palatino, Georgia, Times New Roman, serif"
131
- font-style="italic" dominant-baseline="middle" x="35" y="160"
132
- text-anchor="end">i+
133
- <tspan font-size="11" font-family="Courier New, monospace" font-style="normal"
134
- dominant-baseline="middle">00
135
- </tspan>
136
- </text>
137
- <line x1="40" y1="145" x2="680" y2="145" stroke="#000000" stroke-width="1"/>
138
- </svg>