From xmajbsf76 at gmail.com Mon May 2 01:35:20 2011 From: xmajbsf76 at gmail.com (JOSE IGNACIO QUEVEDO) Date: Mon, 2 May 2011 03:35:20 -0500 Subject: [CM] Fw: Learn CM - Sal or Scheme Message-ID: <5BEBC37340BC483A9C08380908B7DFE0@usuario0981e55> ----- Original Message ----- From: "JOSE IGNACIO QUEVEDO" To: "Heinrich Taube" Sent: Monday, May 02, 2011 3:28 AM Subject: Re: [CM] Learn CM - Sal or Scheme > Hi: > > Henrich Taube: > > Im a begginer in the list and from this position i was trying to run CLM: > > so It was very difficult to me, indeed some months ago I send to you or to > Bill Schoestad, a mail into here about how to run the software: > > > well as it is developed and works with the aid of Common Lisp: > > Im a person who is understandying now the basic syntax of Lisp: > > So; It coul be a good Idea to start understanding Lisp to a wide range and > after that begin to learn CLM? > > > thanks! > > ----- Original Message ----- > From: "Heinrich Taube" > To: "publst" > Cc: "cm list" > Sent: Friday, April 29, 2011 5:06 PM > Subject: Re: [CM] Learn CM - Sal or Scheme > > >> >> On Apr 29, 2011, at 4:16 AM, publst wrote: >> >>> When learning Common Music from scratch which is the recommended >>> language: Sal or Scheme? >> >> hi, if you are comfortable with prefix notation or have programmed in >> the past then use scheme, if not i would use sal since its easier to >> learn. ive taught with both and can definitely say that students pick >> it up much faster and more easily than scheme, my first semester >> course gets lots more done than it did using lisp syntax >> >> that said, if you need the full expressive features of scheme then >> there is no substitute. >> >>> >>> Given that all the examples in 'Notes from the Metalevel' are in >>> Scheme: what are the advantages of learning Sal? >> >> infix, easy to learn (very little syntax) >> >>> >>> Is one language more functionally capable than the other? >> >> hard to beat scheme for expressive power! the question is: do you >> need that. >> >>> >>> Will 'Notes from the Metalevel' be updated to include Sal? >> >> not sure, maybe on sabbatical! >> if you boot Grace you can give both a try , look in the Help menu for >> examples and tutorials for both >> >> >> >>> Thanks >>> _______________________________________________ >>> Cmdist mailing list >>> Cmdist at ccrma.stanford.edu >>> http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist >> >> _______________________________________________ >> Cmdist mailing list >> Cmdist at ccrma.stanford.edu >> http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist >> > > From torsten.anders at beds.ac.uk Mon May 2 07:13:05 2011 From: torsten.anders at beds.ac.uk (Torsten Anders) Date: Mon, 2 May 2011 15:13:05 +0100 Subject: [CM] Fomus and saving a string into a file Message-ID: Dear Rick, Just installed the latest version of Common Music. I haven't used your software for many years, and it looks meanwhile very much cleaned up. Installation and getting started was very easy, thanks for that. I have two brief questions. - It appears Fomus is not working, and I could not find menu entry for configuring it. - Is it perhaps possible to save a string into a text file. (I realise that I could print into the console and then copy/paste from there, though.) Thank you! Best wishes, Torsten -- Dr Torsten Anders Course Leader, Music Technology University of Bedfordshire Park Square, Room A315 http://strasheela.sourceforge.net http://www.torsten-anders.de From torsten.anders at beds.ac.uk Mon May 2 08:37:05 2011 From: torsten.anders at beds.ac.uk (Torsten Anders) Date: Mon, 2 May 2011 16:37:05 +0100 Subject: [CM] Loop collecting list elements in Sal Message-ID: <9DB956A2-A941-459A-8B86-DC462365CBAA@beds.ac.uk> Dear Rick, I am probably missing something rather simple, but I am unable to write a loop in Sal where the accumulated results are returned and bound to a variable. For example, how can I translate the following Scheme code into Sal? (define test (loop for i from 1 to 10 collect i)) Alternatively, how do I translate the following? (define test (loop with res = '() for i from 1 to 10 do (set! res (cons i res)) finally (return res))) When I translate it then the variable test remains undefined. Thank you! Best, Torsten From torsten.anders at beds.ac.uk Mon May 2 09:47:04 2011 From: torsten.anders at beds.ac.uk (Torsten Anders) Date: Mon, 2 May 2011 17:47:04 +0100 Subject: [CM] Fomus and saving a string into a file In-Reply-To: <838CC652-2FDD-4CCF-AEBF-FB3D954E1229@uiuc.edu> References: <838CC652-2FDD-4CCF-AEBF-FB3D954E1229@uiuc.edu> Message-ID: <36A0FCE8-088E-40CB-BF5D-8E7AA5BEC02F@beds.ac.uk> Dear Rick, Thank you for your quick response. > hmmm Fomus menu should definitely be there Oops, fomus was indeed not installed (swapped laptops recently). Apology for this confusion. > ok in scheme you can do something like this: The Scheme code works fine for me, thank you! I could not find with-output-to-file in the documentation of s7, and I missed the remark "Although it is a descendant of tinyScheme, s7 is closest as a Scheme dialect to Guile 1.8. I believe it is compatible with r5rs". For the record, I rewrote your macro to the following. (define-macro (format-to-file file . args) `(with-output-to-file ,file (lambda () (format #t ,(first args) ,@(rest args))))) ;; test ; (format-to-file "test.txt" "my magic number is ~S~%" (random 1000)) Best wishes, Torsten On 2 May 2011, at 16:38, Heinrich Taube wrote: > hi torsten, nice to hear from you! > >> - It appears Fomus is not working, and I could not find menu entry for configuring it. > > > hmmm Fomus menu should definitely be there (in the Audio menu) if you are using the binary version of Grace and if you have fomus framework installed. i know you are on the fomus list so im assuming that you have fomus installed. > > If you built Grace from sources then fomus will only be there if you specified '--fomus /usr/local/' option to the premake. for example, this is what I type to compile things on my mac: > > $ premake --verbose --target gnu --sndlib ../sndlib --liblo ../liblo-0.26/ --fomus /usr/local > $ make > > if things work you will see Fomus listed in the herald when the console window opens, for ecample this is what I see as the first few lines in the Console (Im using my developer sources so the version might be different that what you see: > > Grace 3.8.0 [svn:1933:1934M] (c) 2011 Rick Taube > JUCE v1.52.110 (c) 2011 Julian Storer > S7 Scheme 1.83 (14-Mar-11) (c) 2011 William Schottstaedt > FOMUS 0.1.17-alpha (c) 2011 David Psenicka > [...] > >> - Is it perhaps possible to save a string into a text file. (I realise that I could print into the console and then copy/paste from there, though.) > > > ok in scheme you can do something like this: > > (with-output-to-file "hiho.text" > (lambda () > (format #t "hiho!~%" ) > (format #t "my magic number is ~S~%" (random 1000) ))) > > > or if you do this a lot you could define a helper macro like this: > > (define-macro (dribble file . args) > `(with-output-to-file ,file > (lambda () > , at args > ,file))) > > (dribble "hiho2.text" > (format #t "hiho2!~%" ) > (format #t "my other magic number is ~S~%" (random 1000) ) > ) > > From taube at uiuc.edu Mon May 2 10:35:38 2011 From: taube at uiuc.edu (Heinrich Taube) Date: Mon, 2 May 2011 12:35:38 -0500 Subject: [CM] svn trunk Message-ID: <96419125-6F0D-4FA1-922D-1629179A6A8A@uiuc.edu> svn trunk is now development for next version (3.8) and the current release is now in the 3.7 branch: svn co http://commonmusic.svn.sf.net/svnroot/commonmusic/branches/3.7 cm trunk already has a nice midifile player working. Ill be adding major improvements to plotter and probably support for reading and writing SDIF files. if i have the strength i may try to get liblo compiling on windows too... From publst at btconnect.com Tue May 3 06:18:30 2011 From: publst at btconnect.com (publst) Date: Tue, 3 May 2011 14:18:30 +0100 Subject: [CM] Learn CM - Sal or Scheme In-Reply-To: References: <5E3BA9F2-C2F2-4D7F-BEEC-BFED7D75473D@btconnect.com> Message-ID: <70F6F072-A606-4058-9BB1-A3E60F25218D@btconnect.com> Thanks for the response. Is 'Notes from the Metalevel' still relevant to learning the current version of CM3? On 29 Apr 2011, at 23:06, Heinrich Taube wrote: > > On Apr 29, 2011, at 4:16 AM, publst wrote: > >> When learning Common Music from scratch which is the recommended language: Sal or Scheme? > > hi, if you are comfortable with prefix notation or have programmed in the past then use scheme, if not i would use sal since its easier to learn. ive taught with both and can definitely say that students pick it up much faster and more easily than scheme, my first semester course gets lots more done than it did using lisp syntax > > that said, if you need the full expressive features of scheme then there is no substitute. > >> >> Given that all the examples in 'Notes from the Metalevel' are in Scheme: what are the advantages of learning Sal? > > infix, easy to learn (very little syntax) > >> >> Is one language more functionally capable than the other? > > hard to beat scheme for expressive power! the question is: do you need that. > >> >> Will 'Notes from the Metalevel' be updated to include Sal? > > not sure, maybe on sabbatical! > if you boot Grace you can give both a try , look in the Help menu for examples and tutorials for both > > > >> Thanks >> _______________________________________________ >> Cmdist mailing list >> Cmdist at ccrma.stanford.edu >> http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist > -------------- next part -------------- An HTML attachment was scrubbed... URL: From taube at uiuc.edu Tue May 3 06:39:10 2011 From: taube at uiuc.edu (Heinrich Taube) Date: Tue, 3 May 2011 08:39:10 -0500 Subject: [CM] Learn CM - Sal or Scheme In-Reply-To: <70F6F072-A606-4058-9BB1-A3E60F25218D@btconnect.com> References: <5E3BA9F2-C2F2-4D7F-BEEC-BFED7D75473D@btconnect.com> <70F6F072-A606-4058-9BB1-A3E60F25218D@btconnect.com> Message-ID: yes, the concepts are the same as well as most of the functions . but the code examples in the book are cm2. when i have time i will move them to scheme and/or sal. its not hard to do this, but it is time that i dont currently have. alternately you can use the book as is with CM2/Emacs, or -- if you look in earler releases of Grace on sourceforge -- you might find an app called GraceCL that you could use in place of Emacs. On May 3, 2011, at 8:18 AM, publst wrote: > Thanks for the response. > > Is 'Notes from the Metalevel' still relevant to learning the current > version of CM3? ] From publst at btconnect.com Tue May 3 06:57:50 2011 From: publst at btconnect.com (publst) Date: Tue, 3 May 2011 14:57:50 +0100 Subject: [CM] Learn CM - Sal or Scheme In-Reply-To: References: <5E3BA9F2-C2F2-4D7F-BEEC-BFED7D75473D@btconnect.com> <70F6F072-A606-4058-9BB1-A3E60F25218D@btconnect.com> Message-ID: Thanks. It would probably be a useful learning exercise for me to rewrite the examples in CM3 Scheme. Are there any major differences between CM2 and CM3 that may hinder the above? On 3 May 2011, at 14:39, Heinrich Taube wrote: > yes, the concepts are the same as well as most of the functions . but the code examples in the book are cm2. when i have time i will move them to scheme and/or sal. its not hard to do this, but it is time that i dont currently have. > alternately you can use the book as is with CM2/Emacs, or -- if you look in earler releases of Grace on sourceforge -- you might find an app called GraceCL that you could use in place of Emacs. > > On May 3, 2011, at 8:18 AM, publst wrote: > >> Thanks for the response. >> >> Is 'Notes from the Metalevel' still relevant to learning the current version of CM3? > ] -------------- next part -------------- An HTML attachment was scrubbed... URL: From publst at btconnect.com Thu May 5 04:49:52 2011 From: publst at btconnect.com (publst) Date: Thu, 5 May 2011 12:49:52 +0100 Subject: [CM] Realtime MIDI in CM3 Message-ID: <7BCF86C5-40C1-4816-8827-7D089D3EE0AB@btconnect.com> Is it within the capabilities of CM3 to remap realtime MIDI note input: immediately outputting the altered notes to the MIDI out port? -------------- next part -------------- An HTML attachment was scrubbed... URL: From ricardogh at esdebian.org Wed May 11 07:41:10 2011 From: ricardogh at esdebian.org (Ricardo Gabriel Herdt) Date: Wed, 11 May 2011 11:41:10 -0300 Subject: [CM] Problem with octave signs (Fomus bug?) Message-ID: Hi, I've noticed an inconsistency with octave signs, possibly a fomus bug, as shown in the following example. ;;============================================ (let ((parts '((:id "vla" :name "Viola" :inst "viola" :clef "alto")))) (sprout (process for rhy in '(5 2) for k = (key 'bf5) do (send "fms:note" :pitch k :dur rhy :part "vla") (wait rhy)) "test.ly" :parts parts)) ;;============================================ It might be related to the forced alto clef. Running Common Music 3.7.2 , Fomus 0.1.17-alpha under Debian 6.0. Best regards, Ricardo -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: test.png Type: image/png Size: 6647 bytes Desc: not available URL: From ricardogh at esdebian.org Thu May 12 16:12:57 2011 From: ricardogh at esdebian.org (Ricardo Gabriel Herdt) Date: Thu, 12 May 2011 20:12:57 -0300 Subject: [CM] Problem with octave signs (Fomus bug?) In-Reply-To: References: Message-ID: Sorry for asking at the wrong place. Redirecting the question to the fomus-user mailing list. -------------- next part -------------- An HTML attachment was scrubbed... URL: From taube at uiuc.edu Thu May 12 16:44:47 2011 From: taube at uiuc.edu (Heinrich Taube) Date: Thu, 12 May 2011 18:44:47 -0500 Subject: [CM] Problem with octave signs (Fomus bug?) In-Reply-To: References: Message-ID: <053FB198-00DE-4D2B-8F16-8D829735E64C@uiuc.edu> its probably a fomus issue but david gets this list too. of course ill fix any problem thats scheme or cm related in the example On May 12, 2011, at 6:12 PM, Ricardo Gabriel Herdt wrote: > Sorry for asking at the wrong place. > Redirecting the question to the fomus-user mailing list. > > _______________________________________________ > Cmdist mailing list > Cmdist at ccrma.stanford.edu > http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist From dpsenick at gmail.com Thu May 12 21:48:54 2011 From: dpsenick at gmail.com (David Psenicka) Date: Thu, 12 May 2011 23:48:54 -0500 Subject: [CM] [fomus-user] Problem with octave signs (bug?) In-Reply-To: References: Message-ID: <1305262134.2690.1.camel@fred> I'll take a look at this, thanks. -David On Thu, 2011-05-12 at 20:11 -0300, Ricardo Gabriel Herdt wrote: > > > Hi, > > I've noticed an inconsistency with octave signs, possibly a bug, as > shown in the following example. > > ;;============================================ > > (let ((parts '((:id "vla" :name "Viola" :inst "viola" :clef "alto")))) > (sprout (process > for rhy in '(5 2) > for k = (key 'bf5) > do (send "fms:note" > :pitch k > :dur rhy > :part "vla") > (wait rhy)) > "test.ly" :parts parts)) > > ;;============================================ > > It might be related to the forced alto clef. > > Running Common Music 3.7.2 , Fomus 0.1.17-alpha under Debian 6.0. > > Best regards, > > Ricardo > > > > > ------------------------------------------------------------------------------ > Achieve unprecedented app performance and reliability > What every C/C++ and Fortran developer should know. > Learn how Intel has extended the reach of its next-generation tools > to help boost performance applications - inlcuding clusters. > http://p.sf.net/sfu/intel-dev2devmay > _______________________________________________ fomus-user mailing list fomus-user at lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/fomus-user -------------- next part -------------- An HTML attachment was scrubbed... URL: From ricardogh at esdebian.org Thu May 12 17:28:00 2011 From: ricardogh at esdebian.org (Ricardo Gabriel Herdt) Date: Thu, 12 May 2011 21:28:00 -0300 Subject: [CM] timesigs problem Message-ID: Another question (now I think I'm at the right mailing list). In the following test example, when I comment out the "fms:meas" process, I get the result shown in the attached "without_timesigs" file. If I enable the process to change the time signatures, I get the weird result shown in "with_timesigs". Any idea? BTW (this one I think is something relative obvious I'm missing), I've never understood why I have to use the "with" declaration in the first process so that I don't get all the notes on a single staff. Changing ':part inst ' to ':part p' produces the "last-example" file. (let ((parts '((:id "vln1" :name "Violino I" :inst "violin") (:id "vln2" :name "Violino 2" :inst "violin")))) (sprout (list (process for p in '("vln1" "vln2") do (sprout (process with inst = p for k = (between 60 80) with pat = (make-cycle '(1 0.5 0.5 1/3 1/3 1/3 1/4 1/4 1/4 1/4 6)) for rhy = (next pat) repeat 20 do (send "fms:note" :pitch k :dur rhy :part inst) (wait rhy)))) (process for dur in '(4 6 4) do (send "fms:meas" :dur dur :beat 1/4) (wait dur))) "timesigs.ly" :parts parts)) Running Common Music 3.7.2 with FOMUS 0.1.17-alpha under Debian 6.0 Thanks in advance! Ricardo -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: without_timesigs.png Type: image/png Size: 26839 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: with_timesigs.png Type: image/png Size: 37221 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: last-example.png Type: image/png Size: 37870 bytes Desc: not available URL: From dpsenick at gmail.com Sat May 14 23:01:19 2011 From: dpsenick at gmail.com (David Psenicka) Date: Sun, 15 May 2011 01:01:19 -0500 Subject: [CM] timesigs problem In-Reply-To: References: Message-ID: <1305439279.6267.9.camel@fritz> The `send fms:meas' function isn't getting the time stamp from the process for some reason (so measures are getting assigned times that don't belong to them). This should be easy to track down, I'll get a fix out shortly -David On Thu, 2011-05-12 at 21:28 -0300, Ricardo Gabriel Herdt wrote: > Another question (now I think I'm at the right mailing list). > In the following test example, when I comment out the "fms:meas" > process, I get the result shown in the attached "without_timesigs" > file. If I enable the process to change the time signatures, I get the > weird result shown in "with_timesigs". Any idea? > > BTW (this one I think is something relative obvious I'm missing), I've > never understood why I have to use the "with" declaration in the first > process so that I don't get all the notes on a single staff. Changing > ':part inst ' to ':part p' produces the "last-example" file. > > > (let ((parts '((:id "vln1" :name "Violino I" :inst "violin") > (:id "vln2" :name "Violino 2" :inst "violin")))) > (sprout > (list (process for p in '("vln1" "vln2") > do (sprout > (process with inst = p > for k = (between 60 80) > with pat = (make-cycle '(1 0.5 0.5 1/3 1/3 1/3 1/4 > 1/4 1/4 1/4 6)) > for rhy = (next pat) > repeat 20 > do (send "fms:note" > :pitch k > :dur rhy > :part inst) > (wait rhy)))) > (process for dur in '(4 6 4) > do (send "fms:meas" > :dur dur > :beat 1/4) > (wait dur))) > "timesigs.ly" :parts parts)) > > Running Common Music 3.7.2 with FOMUS 0.1.17-alpha under Debian 6.0 > > Thanks in advance! > > Ricardo > > _______________________________________________ > Cmdist mailing list > Cmdist at ccrma.stanford.edu > http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist -------------- next part -------------- An HTML attachment was scrubbed... URL: From ricardogh at esdebian.org Sun May 15 06:08:20 2011 From: ricardogh at esdebian.org (Ricardo Gabriel Herdt) Date: Sun, 15 May 2011 10:08:20 -0300 Subject: [CM] timesigs problem In-Reply-To: <1305439279.6267.9.camel@fritz> References: <1305439279.6267.9.camel@fritz> Message-ID: 2011/5/15 David Psenicka > The `send fms:meas' function isn't getting the time stamp from the process > for some reason (so measures are getting assigned times that don't belong to > them). This should be easy to track down, I'll get a fix out shortly > -David > Thanks David! -------------- next part -------------- An HTML attachment was scrubbed... URL: From bil at ccrma.Stanford.EDU Wed May 25 12:29:37 2011 From: bil at ccrma.Stanford.EDU (Bill Schottstaedt) Date: Wed, 25 May 2011 12:29:37 -0700 Subject: [CM] int samples in Snd Message-ID: <20110525192738.M92344@ccrma.Stanford.EDU> Is anyone still using the integer sample option in Snd/sndlib? You'd have to build --without-float-samples to get it. From bil at ccrma.Stanford.EDU Sat May 28 14:18:29 2011 From: bil at ccrma.Stanford.EDU (Bill Schottstaedt) Date: Sat, 28 May 2011 14:18:29 -0700 Subject: [CM] Snd 12.2 Message-ID: <20110528211756.M72513@ccrma.Stanford.EDU> Snd 12.2: s7 is about 35% faster in most cases. run is smarter about implicit indexing, so I've cleaned up a lot of the instruments. s7_procedure_setter|getter in s7.h. checked: gsl 1.15, gtk 3.1.4, sbcl 1.0.48 Thanks!: Rick Taube From rbastian at free.fr Mon May 30 00:42:03 2011 From: rbastian at free.fr (R. Bastian) Date: Mon, 30 May 2011 09:42:03 +0200 Subject: [CM] cmn, fixed length Message-ID: <20110530094203.2c2229e8@KUBUNTU64> Hello, in order to insert instrumental music notation in an electronic music score, i need that all measures to have an equal length. Is there a way to forbid justification (varying the free-expansion-factor, to adapt the length) ? best regards, -- Ren? Bastian www.pythoneon.org www.musiques-rb.org From bil at ccrma.Stanford.EDU Mon May 30 08:50:18 2011 From: bil at ccrma.Stanford.EDU (Bill Schottstaedt) Date: Mon, 30 May 2011 08:50:18 -0700 Subject: [CM] cmn, fixed length In-Reply-To: <20110530094203.2c2229e8@KUBUNTU64> References: <20110530094203.2c2229e8@KUBUNTU64> Message-ID: <20110530154852.M55626@ccrma.Stanford.EDU> > Is there a way to forbid justification (varying the free-expansion-factor, > to adapt the length) ? I think you can use spacing-hook, as in pmn.lisp. Here's an example: (in-package :cmn) (defvar *pmn-line-thickness* 0.1) (defvar *pmn-stem-choice* :none) (defun xmn (&rest args) (apply #'cmn (automatic-ties nil) (automatic-rests nil) (spacing-hook #'(lambda (score) (let ((beat-scl 0.0)) (let ((cur-fx 0.0)) (loop for td in (time-line score) do (incf cur-fx (tld-fx0 td)) (setf (tld-acc-x td) (+ (tld-cx td) cur-fx)) (incf cur-fx (tld-fx1 td)))) (let* ((td0 (first (time-line score))) (t0 (tld-time td0)) (x0 (tld-acc-x td0)) (cur-min-t 100.0) (cur-max-x 0.0)) (loop for td1 in (cdr (time-line score)) do (when (> (tld-time td1) t0) (let ((dt (- (tld-time td1) t0)) (dx (- (tld-acc-x td1) x0))) (when (<= dt cur-min-t) (setf cur-min-t dt) (when (> dx cur-max-x) (setf cur-max-x dx))) (setf td0 td1) (setf t0 (tld-time td0)) (setf x0 (tld-acc-x td0))))) (setf beat-scl (* (/ cur-max-x cur-min-t)))) (loop for td in (time-line score) do (let ((dx0 (- (tld-cx td) (tld-x td)))) (setf (tld-cx td) (* beat-scl (tld-time td))) (setf (tld-x td) (- (tld-cx td) dx0))))))) args)) ;;; (xmn staff treble c4 q e4 h bf4 q bar) ;;; (xmn staff treble (chord (notes c4 e4 g4) q) e4 h bf4 q bar) ;;; (xmn (size 16) (free-expansion-factor 1.5) (staff treble c4 q c4 e c4 q c4 s c4 s c4 q bar) (staff bass c4 e c4 e c4 q c4 q c4 e bar)) ;;; (xmn staff treble (c4 h (onset 0)) (e4 h (onset .5)) (chord h (notes c4 g4) (onset 4.0)))