Am 16. März 2006, 19:10 Uhr (-0500) schrieb Doug Geers:
> I'm sorry if this is another newbie question, but I'm looking for help
> parsing existing MIDI files into a format that is easier for CM to
> handle, such as lists of (pitch velocity), or, even better, (pitch
> velocity duration) for all notes per channel.

It used to be possible with map-subobjects, using the :type keyword,
but this function seems to have disappeared although still somewhat
documented in the dictionary.

Try this instead:

(let ((result nil)
      (file "/tmp/test.midi"))
      (map-objects 
       #'(lambda (x) 
           (when (eq 'MIDI (object-name x))
             (push (list (sv x time) 
                         (sv x keynum) 
                         (sv x amplitude) 
                         (sv x duration)) nums)))
       (import-events file))
       (nreverse result))

You can adopt to your needs if you want to filter channels, remap etc...

--
Orm

_______________________________________________
Cmdist mailing list
[email protected]
http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist

Reply via email to