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))))