[CM] cm and quicktime: instrumentation

George Smith smithg@rz.uni-potsdam.de
Thu, 15 Jan 2004 09:44:47 +0100 (CET)

I'm new to cm and midi, being an acoustic musician who programs
in lisp at work (linguist), so bear with me.

I'm using cm 2.3.4 on an older imac with system 8.6 and quicktime
5. I'm encountering two difficulties.

1.  When I try to play directly to the midi port, I get rhythmic
	inaccuracy, sometimes more, sometimes less. I assume there
	must be some sort of real time mode that I haven't figured
	out yet.

2.  When I use instruments other than the default acoustic piano,
	I do hear them when I play them to the midi port, but when I
	try to write this to a midi file and play the file using
	quicktime, which involves converting the file to a quicktime
	movie, the instrumentation gets lost and I only hear acoustic
	piano. Here is some code to show what I've been trying to do.

(defun test-play-scale (channel)
  (process repeat 8 with time = 0
           with key = (new pattern of (list 'c3 'd3 'e3 'f3 'g3 'a3 'b3 
                           in cycle)
           do (progn
                (output (new midi time time channel channel
                             keynum (next key) duration .5 amplitude .7))
                (incf time .5))))

(loop for ch from 0 to 8
      for pr in (list 0
                      +Acoustic-Guitar-Nylon+ +Acoustic-Guitar-Steel+
                      +Electric-Guitar-Jazz+ +Electric-Guitar-Clean+
                      +Electric-Guitar-Muted+ +Acoustic-Bass+
                      +Electric-Bass-Finger+ +Fretless-Bass+)
      for pan in '(0 0 0 0 0 0 127 127 127) do
      (midi-write-message (make-program-change ch pr))
      (midi-write-message (make-control-change ch 10 pan)))

(let ((output (io "Macintosh 
   (test-play-scale 6) output :tempo 60))

At this point, cm plays the scale with +Acoustic-Bass+. But when I
play the midi file using quicktime, I get acoustic piano.

What do I need to do to hear the instrumentation when playing the
midi file with quicktime?