Mercurial > hg > amuse
diff implementations/midi-db/batch-midifiles-db.lisp @ 236:a5d065905f6d
Add midi-db.
Ignore-this: c6f4fc32efa4453ddbdc478793eedd52
A basic implementation for working with MIDI files stored in the database.
It is a test case for `versioned' data, but only partially implemented at the moment.
darcs-hash:20100223152703-16a00-4388d2720907d777a1c6c6b3a010885ce0fe06a7.gz
committer: Jamie Forth <j.forth@gold.ac.uk>
author | j.forth <j.forth@gold.ac.uk> |
---|---|
date | Thu, 24 Feb 2011 11:23:18 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/implementations/midi-db/batch-midifiles-db.lisp Thu Feb 24 11:23:18 2011 +0000 @@ -0,0 +1,19 @@ +(cl:in-package #:amuse-midi-db) + +(defun import-midifiles (path collection-identifier database) + "<Path> should be a string or pathname object, which designates a + directory containing midifiles to be imported, + e.g. '/home/foo/my-midi-files/' (note trailing slash)." + (let ((midifile-paths + (append (directory (merge-pathnames path "*.mid*")) + (directory (merge-pathnames path "*.MID*"))))) + (unless midifile-paths + (warn "No midifiles in: ~A" path) + (return-from import-midifiles nil)) + (loop for midifile-path in midifile-paths + for i from 1 + do (import-composition + (get-composition + (make-midifile-identifier midifile-path)) + collection-identifier database) + finally (format t "~S midifiles added to database.~%" i))))