[CM] MCL 5 with CLM / openmcl plotters?

Orm Finnendahl finnendahl@folkwang-hochschule.de
Thu, 16 Oct 2003 19:20:37 +0200


--uAKRQypu60I7Lcqm
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline

Am 15. Oktober 2003, 12:23 Uhr (-0500) schrieb Rick Taube:
> that sounds interesting! can you post a .png what it looks like? 

I attached a couple of pngs (the ones with "n" appended to the name
are in reverse video which I prefer for online viewing).

I hope it's clear, how it works. An example how to create it is given
below the mail.

> maybe this or gunplot should become a standard output syntax in cm.

That would be great. I actually wanted to do an io class definition,
but didn't have the time to find out how to do that properly...

> On a related note, a student of mine has written a nice lisp ->
> Music XML package. xml expressions are output to files and then
> input into Finale via some shareware plugin, along the lines of what
> IRCAM does. His orchestral scores look quite nice.

I'm very interested. Can you send me some more information?  I worked
on a custom export system to Finale but didn't finish it yet. I'd be
very interested to see how it works. Is it possible to control
beaming, measure-widths, timesigs, note-expressions and such from
lisp?

Let me know if somebody is interested in the sources. It is not
exactly pretty code, but fairly readable I think...

--
Orm


-------------------------------------------------------------------------
; the events contain the parameters '(pitch time duration depth
; channel/color amp). Events can be grouped together recursively in
; lists giving nested groups of grapical objects in xfig.

(define *events* 
  '((59 0 1 1 4 76) (27.3 0.25 3.125 1 1 76) (43.7 0.5 1 1 2 76)
    (62 2.125 1 1 2 76) (46 3.25 0.25 1 3 76) (30 2.25 3.25 1 0 76)
    (68 3.75  0.5 1 0 76) (52 4.0 1.75 1 4 76) (36 4.25 1.5 1 4 76)))

; A time signature list, represented in the graphical output as vertical lines.
; Barlines are thicker than beatlines. In addition a tempomap can be 
; superimposed to keep the graphics in sync with the timeline.

(define *timesiglist* 
        (timesig-to-xfig 
          '((4 4) (3 4) (5 8) (7 8) (4 4) (4 4) (4 4) (3 4) (1 16) (1 16))))

; make a timeline of 10 seconds with ticks on every second

(define *timeline* 
 (make-zeitlinie :secs 10 :view '(#t #t #t #t #t))

; label the timeline (:view is a flaglist for the timeunits to label:
; (full_minutes half_minutes 10_seconds 5_seconds every_second)
; (#t #t #t #t #f) thus labels every five seconds

(define *timelinelabel*
 (make-zeitbeschriftung :secs 10 :view '(#t #t #t #t #f)))

; here is the procedure which generates the xfig file:

(create-xfig-file
 (format #f "~a.fig" fname)  ; filename
 (list
  *events*      ; this alone gives test-1.png
  *notensystem* ; a list containing the staff system lines (test-2.png)
  *timesiglist*  ; including this gives test-3.png
  *timeline*    ; including this gives test-4.png
  *timelinelabel* ; including this gives test-5.png
 )
 :linewidth *xfig-width*
 :dur #t
)

the second argument to create-xfig-file is a list with all items to
display. It is evaluated recursively and nested lists give nested
groups of objects in xfig (that's very handy for viewing and editing).

--------------------------------------------------------------------

--uAKRQypu60I7Lcqm
Content-Type: application/x-gtar
Content-Disposition: attachment; filename="png-examples.tgz"
Content-Transfer-Encoding: base64

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
Aw6+Nv4Nhwzj5gCgAAA=

--uAKRQypu60I7Lcqm--