Database » History » Version 3
Jeremy Gow, 2013-02-21 03:32 PM
1 | 2 | Jeremy Gow | h1. Database management |
---|---|---|---|
2 | 1 | Jeremy Gow | |
3 | 3 | Jeremy Gow | During [[Installation]] you should have set up the database that IDyOM will use to store musical data. To recap, every time you run the system you will need to connect to the database, e.g. as follows: |
4 | 1 | Jeremy Gow | <pre> |
5 | 3 | Jeremy Gow | (clsql:connect '("DIR/example.db") :if-exists :old :database-type :sqlite3) |
6 | 1 | Jeremy Gow | </pre> |
7 | 3 | Jeremy Gow | The first time you connect to a new database, you need to setup the database tables before you can import any data: |
8 | 1 | Jeremy Gow | <pre> |
9 | 1 | Jeremy Gow | CL-USER> (mtp-admin:initialise-database) |
10 | 1 | Jeremy Gow | </pre> |
11 | 1 | Jeremy Gow | |
12 | 1 | Jeremy Gow | h2. Describing the contents of the database |
13 | 1 | Jeremy Gow | |
14 | 1 | Jeremy Gow | <pre> |
15 | 1 | Jeremy Gow | |
16 | 1 | Jeremy Gow | CL-USER> (mtp-admin:describe-database) |
17 | 1 | Jeremy Gow | |
18 | 1 | Jeremy Gow | Songs and ballads from Nova Scotia, Canada. |
19 | 1 | Jeremy Gow | ----------------------------------------------------------------------------- |
20 | 1 | Jeremy Gow | ID No. Compositions No. events Mean events/composition |
21 | 1 | Jeremy Gow | 0 152 8552 56.263157 |
22 | 1 | Jeremy Gow | ----------------------------------------------------------------------------- |
23 | 1 | Jeremy Gow | |
24 | 1 | Jeremy Gow | Chorale melodies harmonised by J.S. Bach. |
25 | 1 | Jeremy Gow | ----------------------------------------------------------------------------- |
26 | 1 | Jeremy Gow | ID No. Compositions No. events Mean events/composition |
27 | 1 | Jeremy Gow | 1 185 9227 49.875675 |
28 | 1 | Jeremy Gow | ----------------------------------------------------------------------------- |
29 | 1 | Jeremy Gow | |
30 | 1 | Jeremy Gow | Chorale soprano melodies harmonised by J.S. Bach. |
31 | 1 | Jeremy Gow | ----------------------------------------------------------------------------- |
32 | 1 | Jeremy Gow | ID No. Compositions No. events Mean events/composition |
33 | 1 | Jeremy Gow | 2 100 4693 46.93 |
34 | 1 | Jeremy Gow | ----------------------------------------------------------------------------- |
35 | 1 | Jeremy Gow | |
36 | 1 | Jeremy Gow | Alsatian folk songs from the Essen Folk Song Collection. |
37 | 1 | Jeremy Gow | ----------------------------------------------------------------------------- |
38 | 1 | Jeremy Gow | ID No. Compositions No. events Mean events/composition |
39 | 1 | Jeremy Gow | 3 91 4496 49.406593 |
40 | 1 | Jeremy Gow | ----------------------------------------------------------------------------- |
41 | 1 | Jeremy Gow | |
42 | 1 | Jeremy Gow | ... |
43 | 1 | Jeremy Gow | |
44 | 1 | Jeremy Gow | Pop melodies used in a segmentation experiment by Daniel Muellensiefen. |
45 | 1 | Jeremy Gow | ----------------------------------------------------------------------------- |
46 | 1 | Jeremy Gow | ID No. Compositions No. events Mean events/composition |
47 | 1 | Jeremy Gow | 29 15 1265 84.333336 |
48 | 1 | Jeremy Gow | ----------------------------------------------------------------------------- |
49 | 1 | Jeremy Gow | |
50 | 1 | Jeremy Gow | Hymn melodies from Hymns Ancient and Modern. |
51 | 1 | Jeremy Gow | ----------------------------------------------------------------------------- |
52 | 1 | Jeremy Gow | ID No. Compositions No. events Mean events/composition |
53 | 1 | Jeremy Gow | 30 120 4280 35.666668 |
54 | 1 | Jeremy Gow | ----------------------------------------------------------------------------- |
55 | 1 | Jeremy Gow | (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30) |
56 | 1 | Jeremy Gow | </pre> |
57 | 1 | Jeremy Gow | |
58 | 1 | Jeremy Gow | <pre> |
59 | 1 | Jeremy Gow | CL-USER> (mtp-admin:describe-dataset 0 :verbose t) |
60 | 1 | Jeremy Gow | |
61 | 1 | Jeremy Gow | Songs and ballads from Nova Scotia, Canada. |
62 | 1 | Jeremy Gow | ----------------------------------------------------------------------------- |
63 | 1 | Jeremy Gow | ID No. Compositions No. events Mean events/composition |
64 | 1 | Jeremy Gow | 0 152 8552 56.263157 |
65 | 1 | Jeremy Gow | ----------------------------------------------------------------------------- |
66 | 1 | Jeremy Gow | CPITCH (26): (54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
67 | 1 | Jeremy Gow | 72 73 74 75 76 77 79 81) |
68 | 1 | Jeremy Gow | MPITCH (17): (31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47) |
69 | 1 | Jeremy Gow | ACCIDENTAL (3): (-1 0 1) |
70 | 1 | Jeremy Gow | DUR (14): (3 4 6 8 12 16 18 24 36 48 60 72 96 120) |
71 | 1 | Jeremy Gow | DELTAST (7): (0 12 24 36 48 60 72) |
72 | 1 | Jeremy Gow | BIOI (17): (1 3 4 6 8 12 16 18 24 30 36 48 60 72 84 96 120) |
73 | 1 | Jeremy Gow | KEYSIG (9): (-4 -3 -2 -1 0 1 2 3 4) |
74 | 1 | Jeremy Gow | MODE (2): (0 9) |
75 | 1 | Jeremy Gow | BARLENGTH (7): (36 48 72 96 120 144 168) |
76 | 1 | Jeremy Gow | PULSES (6): (2 3 4 5 6 7) |
77 | 1 | Jeremy Gow | PHRASE (3): (-1 0 1) |
78 | 1 | Jeremy Gow | DYN (1): (NIL) |
79 | 1 | Jeremy Gow | TEMPO (19): (52 54 60 64 76 80 82 84 92 96 100 108 110 112 120 132 |
80 | 1 | Jeremy Gow | 144 152 172) |
81 | 1 | Jeremy Gow | VOICE (1): (1) |
82 | 1 | Jeremy Gow | -----------------------------------------------------------------------------NIL |
83 | 1 | Jeremy Gow | CL-USER> |
84 | 1 | Jeremy Gow | |
85 | 1 | Jeremy Gow | </pre> |
86 | 1 | Jeremy Gow | |
87 | 1 | Jeremy Gow | A quick way of listing the database contents is: |
88 | 1 | Jeremy Gow | |
89 | 1 | Jeremy Gow | <pre> |
90 | 1 | Jeremy Gow | (clsql:enable-sql-reader-syntax) |
91 | 1 | Jeremy Gow | (clsql:print-query [select [dataset-id][description] :from [mtp-dataset] :order-by [dataset-id]]) |
92 | 1 | Jeremy Gow | ... |
93 | 1 | Jeremy Gow | </pre> |
94 | 1 | Jeremy Gow | |
95 | 1 | Jeremy Gow | |
96 | 1 | Jeremy Gow | h2. Importing Data |
97 | 1 | Jeremy Gow | |
98 | 1 | Jeremy Gow | Before you can do this you will need to import some data. Methods exist for **kern files and midi files. |
99 | 1 | Jeremy Gow | |
100 | 1 | Jeremy Gow | <pre> |
101 | 1 | Jeremy Gow | CL-USER> (mtp-admin:import-data :krn "/home/mas01mtp/research/data/kern/shanxi237/" "A test dataset" 31) |
102 | 1 | Jeremy Gow | Inserting data into database: dataset 31. |
103 | 1 | Jeremy Gow | NIL |
104 | 1 | Jeremy Gow | CL-USER> (mtp-admin:describe-dataset 31) |
105 | 1 | Jeremy Gow | |
106 | 1 | Jeremy Gow | A test dataset |
107 | 1 | Jeremy Gow | ----------------------------------------------------------------------------- |
108 | 1 | Jeremy Gow | ID No. Compositions No. events Mean events/composition |
109 | 1 | Jeremy Gow | 31 237 11056 46.649788 |
110 | 1 | Jeremy Gow | -----------------------------------------------------------------------------NIL |
111 | 1 | Jeremy Gow | CL-USER> |
112 | 1 | Jeremy Gow | </pre> |
113 | 1 | Jeremy Gow | |
114 | 1 | Jeremy Gow | <pre> |
115 | 1 | Jeremy Gow | CL-USER> (mtp-admin:import-data :mid "/home/marcusp/research/data/midi/Witchcraft/" "Melodies used in de Noojier et al. (2008)" 32) |
116 | 1 | Jeremy Gow | |
117 | 1 | Jeremy Gow | Inserting data into database: dataset 32.NIL |
118 | 1 | Jeremy Gow | CL-USER> (mtp-admin:describe-dataset 32) |
119 | 1 | Jeremy Gow | |
120 | 1 | Jeremy Gow | Melodies used in de Noojier et al. (2008) |
121 | 1 | Jeremy Gow | ----------------------------------------------------------------------------- |
122 | 1 | Jeremy Gow | ID No. Compositions No. events Mean events/composition |
123 | 1 | Jeremy Gow | 32 10 313 31.3 |
124 | 1 | Jeremy Gow | ----------------------------------------------------------------------------- |
125 | 1 | Jeremy Gow | </pre> |
126 | 1 | Jeremy Gow | |
127 | 1 | Jeremy Gow | h2. Exporting Data |
128 | 1 | Jeremy Gow | |
129 | 1 | Jeremy Gow | <pre> |
130 | 1 | Jeremy Gow | CL-USER> (mtp-admin:export-data (mtp-admin:get-composition 31 0) :mid "/tmp/") |
131 | 1 | Jeremy Gow | NIL |
132 | 1 | Jeremy Gow | </pre> |
133 | 1 | Jeremy Gow | |
134 | 1 | Jeremy Gow | Produces a midi file. |
135 | 1 | Jeremy Gow | |
136 | 1 | Jeremy Gow | <pre> |
137 | 1 | Jeremy Gow | CL-USER> (mtp-admin:export-data (mtp-admin:get-composition 31 0) :lisp "/tmp/") |
138 | 1 | Jeremy Gow | NIL |
139 | 1 | Jeremy Gow | </pre> |
140 | 1 | Jeremy Gow | |
141 | 1 | Jeremy Gow | Produces a lisp readable representation of the dataset. |
142 | 1 | Jeremy Gow | |
143 | 1 | Jeremy Gow | <pre> |
144 | 1 | Jeremy Gow | CL-USER> (mtp-admin:export-data (mtp-admin:get-composition 31 0) :ly "/tmp/") |
145 | 1 | Jeremy Gow | NIL |
146 | 1 | Jeremy Gow | </pre> |
147 | 1 | Jeremy Gow | |
148 | 1 | Jeremy Gow | Produces a lilypond file. |
149 | 1 | Jeremy Gow | |
150 | 1 | Jeremy Gow | <pre> |
151 | 1 | Jeremy Gow | CL-USER> (mtp-admin:export-data (mtp-admin:get-composition 31 0) :pdf "/tmp/") |
152 | 1 | Jeremy Gow | NIL |
153 | 1 | Jeremy Gow | </pre> |
154 | 1 | Jeremy Gow | |
155 | 1 | Jeremy Gow | Produces a pdf score (via lilypond). |
156 | 1 | Jeremy Gow | |
157 | 1 | Jeremy Gow | h2. Deleting a dataset |
158 | 1 | Jeremy Gow | |
159 | 1 | Jeremy Gow | <pre> |
160 | 1 | Jeremy Gow | CL-USER> (mtp-admin:delete-dataset 735) |
161 | 1 | Jeremy Gow | </pre> |
162 | 1 | Jeremy Gow | |
163 | 1 | Jeremy Gow | deletes dataset 735 from the database. |