annotate implementations/midi-db/batch-midifiles-db.lisp @ 310:f99fd6a7bbfc

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
author j.forth <j.forth@gold.ac.uk>
date Tue, 23 Feb 2010 15:27:03 +0000
parents
children
rev   line source
j@310 1 (cl:in-package #:amuse-midi-db)
j@310 2
j@310 3 (defun import-midifiles (path collection-identifier database)
j@310 4 "<Path> should be a string or pathname object, which designates a
j@310 5 directory containing midifiles to be imported,
j@310 6 e.g. '/home/foo/my-midi-files/' (note trailing slash)."
j@310 7 (let ((midifile-paths
j@310 8 (append (directory (merge-pathnames path "*.mid*"))
j@310 9 (directory (merge-pathnames path "*.MID*")))))
j@310 10 (unless midifile-paths
j@310 11 (warn "No midifiles in: ~A" path)
j@310 12 (return-from import-midifiles nil))
j@310 13 (loop for midifile-path in midifile-paths
j@310 14 for i from 1
j@310 15 do (import-composition
j@310 16 (get-composition
j@310 17 (make-midifile-identifier midifile-path))
j@310 18 collection-identifier database)
j@310 19 finally (format t "~S midifiles added to database.~%" i))))