view implementations/midi-db/batch-midifiles-db.lisp @ 242:66f9c2913ac7

twiddle midi-db import example Ignore-this: cf975529b1d8ad8af507e7dd2144ccea darcs-hash:20100416180846-16a00-a91855cc12370a9198448353f4438647d4cdfdae.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 a5d065905f6d
children
line wrap: on
line source
(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))))