[CM] MCL 5 with CLM / openmcl plotters?
Orm Finnendahl
finnendahl at folkwang-hochschule.de
Thu Oct 16 10:20:37 PDT 2003
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).
--------------------------------------------------------------------
-------------- next part --------------
A non-text attachment was scrubbed...
Name: png-examples.tgz
Type: application/x-gtar
Size: 13622 bytes
Desc: not available
URL: <https://cm-mail.stanford.edu/pipermail/cmdist/attachments/20031016/fd1cd8cc/attachment.gtar>
More information about the Cmdist
mailing list