Database management¶
Having Installed and started IDyOM and connected to a database, you can edit and examine the contents of the database and import/export data to/from it.
Importing data¶
Before you can do anything you will need to import some data. Methods exist for **kern files (see Kernscores) and midi files.
CL-USER> (idyom-db:import-data :krn "/home/mas01mtp/research/data/kern/shanxi237/" "A test dataset" 31) Inserting data into database: dataset 31. NIL CL-USER> (idyom-db:describe-dataset 31) A test dataset ----------------------------------------------------------------------------- ID No. Compositions No. events Mean events/composition 31 237 11056 46.649788 ----------------------------------------------------------------------------- NIL CL-USER>
CL-USER> (idyom-db:import-data :mid "/home/marcusp/research/data/midi/Witchcraft/" "Melodies used in an experiment by de Noojier et al. (2008)" 32) Inserting data into database: dataset 32. NIL CL-USER> (idyom-db:describe-dataset 32) Melodies used in de Noojier et al. (2008) ----------------------------------------------------------------------------- ID No. Compositions No. events Mean events/composition 32 10 313 31.3 -----------------------------------------------------------------------------
Describing the database¶
A quick way of listing the database contents is:
CL-USER> (idyom-db:describe-database) 0 Songs and ballads from Nova Scotia, Canada. 1 Chorale melodies harmonised by J.S. Bach. 2 Chorale soprano melodies harmonised by J.S. Bach. 3 Alsatian folk songs from the Essen Folk Song Collection. ...
Datasets can be examine in more detail using the verbose option in describe-database
and describe-dataset
:
CL-USER> (idyom-db:describe-database :verbose t) Songs and ballads from Nova Scotia, Canada. ----------------------------------------------------------------------------- ID No. Compositions No. events Mean events/composition 0 152 8552 56.263157 ----------------------------------------------------------------------------- Chorale melodies harmonised by J.S. Bach. ----------------------------------------------------------------------------- ID No. Compositions No. events Mean events/composition 1 185 9227 49.875675 ----------------------------------------------------------------------------- Chorale soprano melodies harmonised by J.S. Bach. ----------------------------------------------------------------------------- ID No. Compositions No. events Mean events/composition 2 100 4693 46.93 ----------------------------------------------------------------------------- Alsatian folk songs from the Essen Folk Song Collection. ----------------------------------------------------------------------------- ID No. Compositions No. events Mean events/composition 3 91 4496 49.406593 ----------------------------------------------------------------------------- ... Pop melodies used in a segmentation experiment with Daniel Muellensiefen. ----------------------------------------------------------------------------- ID No. Compositions No. events Mean events/composition 29 15 1265 84.333336 ----------------------------------------------------------------------------- Hymn melodies from Hymns Ancient and Modern. ----------------------------------------------------------------------------- ID No. Compositions No. events Mean events/composition 30 120 4280 35.666668 ----------------------------------------------------------------------------- (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)
CL-USER> (idyom-db:describe-dataset 0 :verbose t) Songs and ballads from Nova Scotia, Canada. ----------------------------------------------------------------------------- ID No. Compositions No. events Mean events/composition 0 152 8552 56.263157 ----------------------------------------------------------------------------- CPITCH (26): (54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 81) MPITCH (17): (31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47) ACCIDENTAL (3): (-1 0 1) DUR (14): (3 4 6 8 12 16 18 24 36 48 60 72 96 120) DELTAST (7): (0 12 24 36 48 60 72) BIOI (17): (1 3 4 6 8 12 16 18 24 30 36 48 60 72 84 96 120) KEYSIG (9): (-4 -3 -2 -1 0 1 2 3 4) MODE (2): (0 9) BARLENGTH (7): (36 48 72 96 120 144 168) PULSES (6): (2 3 4 5 6 7) PHRASE (3): (-1 0 1) DYN (1): (NIL) TEMPO (19): (52 54 60 64 76 80 82 84 92 96 100 108 110 112 120 132 144 152 172) VOICE (1): (1) -----------------------------------------------------------------------------NIL CL-USER>
Exporting data¶
There are functions for exporting compositions from the database in a range of formats including midi. PDF scores can be created using third-party software called Lilypond.
CL-USER> (idyom-db:export-data (idyom-db:get-composition 31 0) :mid "/tmp/") NIL
Produces a midi file in the "/tmp/" directory.
CL-USER> (idyom-db:export-data (idyom-db:get-composition 31 0) :lisp "/tmp/") NIL
Produces a lisp readable representation of the dataset (useful if one wants to read it back into the database).
CL-USER> (idyom-db:export-data (idyom-db:get-composition 31 0) :ly "/tmp/") NIL
Produces a lilypond file.
CL-USER> (idyom-db:export-data (idyom-db:get-composition 31 0) :pdf "/tmp/") NIL
Produces a pdf score (via lilypond).
These functions also work for entire datasets. For example,
CL-USER> (idyom-db:export-data (idyom-db:get-dataset 31) :mid "/tmp/") NIL
exports the whole of dataset 31 to the "/tmp/" directory as midi files.
Deleting a dataset¶
CL-USER> (idyom-db:delete-dataset 735)
deletes dataset 735 from the database.
Copying and combining datasets¶
CL-USER> (idyom-db:copy-datasets 4 '(1 2 3) "Combination of datasets 1 2 3.")
This will create a new dataset 4 which is the result of combining existing datasets 1, 2 and 3.