From nabob_cd at yahoo.com Thu Feb 6 08:18:41 2014 From: nabob_cd at yahoo.com (menno) Date: Thu, 6 Feb 2014 08:18:41 -0800 (PST) Subject: [CM] ubuntu build error Message-ID: <1391703521.57068.YahooMailNeo@web163405.mail.gq1.yahoo.com> Hi, trying to build on BodhiLinux12.04 (=Ubuntu12.04 with E17) i get an error. Premakeversion = premake4 4.4.0-beta4.3 What am i missing?...premake4 Building configurations... Running action 'gmake'... Generating Makefile... Generating s7.make... Generating juce.make... Generating Grace.make... Done. ... make ==== Building s7 (debug) ==== Running pre-build commands res/bin/sndlib.sh === Making Sndlib ==== ==== Building sndlib (debug) ==== headers.c gcc?? -MMD -MP -DWITH_AUDIO -DHAVE_SCHEME -DHAVE_PREMAKE -DHAVE_ALSA -DSIZEOF_VOID_P=8 -DHAVE_CONFIG_H=1 -DDEBUG -I. x86_64 -g? -o "obj/Debug/headers.o" -MF obj/Debug/headers.d -c "headers.c" gcc: error: x86_64: No such file or directory make[3]: *** [obj/Debug/headers.o] Error 1 make[2]: *** [sndlib] Error 2 s7.cpp g++: error: x86_64: No such file or directory make[1]: *** [obj/s7/Debug/s7.o] Error 1 make: *** [s7] Error 2 -------------- next part -------------- An HTML attachment was scrubbed... URL: From ken at nunativs.com Mon Feb 10 09:38:36 2014 From: ken at nunativs.com (Ken Locarnini) Date: Mon, 10 Feb 2014 09:38:36 -0800 Subject: [CM] Grace & OSC Message-ID: <03d901cf2686$ef428160$cdc78420$@nunativs.com> I am new to OSC and am using Ableton Live with Max4Live. I have a couple of basic questions about how it works with Grace. -Will I be able to call Grace functions over OSC and have Grace play the midi back over OSC or a midi port and pipe it into Live? I'm not sure if I have to convert OSC messages to midi or midi is contained with the OSC messages. -Can you synchronize Graces output with Ableton Live's clock over OSC? Thanks for any help on these basic questions! -------------- next part -------------- An HTML attachment was scrubbed... URL: From halimbeere at gmail.com Mon Feb 10 12:02:04 2014 From: halimbeere at gmail.com (Halim Beere) Date: Mon, 10 Feb 2014 14:02:04 -0600 Subject: [CM] Grace & OSC In-Reply-To: <03d901cf2686$ef428160$cdc78420$@nunativs.com> References: <03d901cf2686$ef428160$cdc78420$@nunativs.com> Message-ID: When you set up a Grace OSC receiver, Grace calls a function. That function can do anything, including send a MIDI message. But you'll have to write the function . . . so yes, you'll have to convert OSC messages to midi. Press Cmd-D in Grace, and look at the OSC documentation. You'll need to open a port, and then do osc:receive(function) or osc:receive(path, function) where you can register whatever function you want. As far as synchronizing Grace with Ableton's clock, you can't really do that. Grace has its own metronome, but there's no way presently to completely reset it each time you hit stop and play in Ableton. (This, I think, would be a good feature to add . . . perhaps I'll look into it). In the meantime, you can try to send an OSC message to start Grace at the correct tempo, account for latency, and forget about using Grace's built-in metronomes. You'll need to send enough information, and often enough, to do the syncing yourself. The devil's in the details tho, so it's hard to be more specific. Hope this helps. - Halim Beere On Mon, Feb 10, 2014 at 11:38 AM, Ken Locarnini wrote: > I am new to OSC and am using Ableton Live with Max4Live. I have a couple > of basic questions about how it works with Grace. > > > > -Will I be able to call Grace functions over OSC and have Grace play the > midi back over OSC or a midi port and pipe it into Live? I'm not sure if I > have to convert OSC messages to midi or midi is contained with the OSC > messages. > > > > -Can you synchronize Graces output with Ableton Live's clock over OSC? > > > > Thanks for any help on these basic questions! > > > > _______________________________________________ > 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 bil at ccrma.Stanford.EDU Tue Feb 11 12:41:35 2014 From: bil at ccrma.Stanford.EDU (Bill Schottstaedt) Date: Tue, 11 Feb 2014 12:41:35 -0800 Subject: [CM] Snd 14.4 Message-ID: <20140211203956.M22091@ccrma.Stanford.EDU> Snd 14.4: Mike Scholz updated sndins.c. s7: changed lambda* arg handling slightly to mimic CL. added when and unless (for r7rs; these were macros). CLM: Frank Zalkow donated lw-all.lisp. checked: gtk 3.11.4|5, sbcl 1.1.15. Thanks!: Rick, Mike, Frank Zalkow, James Hearon. Just for your amusement, some timings: version 12.x 13.0 14.4 snd-test 359 275 39.7 (no gui) s7test 1721 1358 974 (hard to optimize) make-index 44300 3291 1382 (hooray for char-position) t455|6 265 89 5.2 (the s7.html torture tester) t502 90 43 13.6 (pure clm) bench 42736 8752 3447 (the standard Gabriel tests) lat 229 63 30.4 (old-style academistry) These are callgrind numbers. Currently if you're running the gtk Snd, nearly all the time is going to gtk and cairo. From dlphillips at woh.rr.com Thu Feb 13 08:58:50 2014 From: dlphillips at woh.rr.com (Dave Phillips) Date: Thu, 13 Feb 2014 11:58:50 -0500 Subject: [CM] CM/Grace problem Message-ID: <52FCF9CA.3070707@woh.rr.com> Greetings, Compiled a git pull from this morning, everything seems fine until I open bin/Grace (see error report below). Did I forget something ? Best, dp >>> Error: define-macro: syntactic keywords (such as unless) tend to behave badly if redefined (define-macro (unless arg . body) ({list} 'if ... (define-macro (unless arg . body) ({list} 'if ... >>> Error: string->keyword: unbound variable key-parse-clause: (string->keyword (symbol->st... ; var: key key-parse-clause: ((key (string->keyword (symb... ((keyc (map (lambda (d) (key-parse-clause d mo... ; mode: {keyp}-19 ; args: {args}-17 ; argn: {argn}-18 ; user: args ; data: (({key}-14 key #f) ({start... (define-expansion (with-optkeys spec . body) (... >>> Error: string->keyword: unbound variable (string->keyword (symbol->string var)) ; var: for ((key (string->keyword (symbol->string var)))) ((keyc (map (lambda (d) (key-parse-clause d mo... ; mode: {keyp}-28 ; args: {args}-26 ; argn: {argn}-27 ; user: args ; data: (({for}-24 for #f) ({limit... (define (reset-period obj) (if (not (pattern? ... >>> Error: string->keyword: unbound variable (string->keyword (symbol->string var)) ; var: tempo ((key (string->keyword (symbol->string var)))) ((keyc (map (lambda (d) (key-parse-clause d mo... ; mode: {keyp}-33 ; args: {args}-31 ; argn: {argn}-32 ; user: args ; data: (({tempo}-29 tempo 60.0) (... (define (decimals value places) (let ((n (expt... >>> Error: string->keyword: unbound variable (string->keyword (symbol->string var)) ; var: fund ((key (string->keyword (symbol->string var)))) ((keyc (map (lambda (d) (key-parse-clause d mo... ; mode: {keyp}-40 ; args: {args}-38 ; argn: {argn}-39 ; user: args ; data: (({fund}-34 fund 1) ({inve... >>> Error: make-eq-hash-table: unbound variable (make-eq-hash-table) (define *rules* (make-eq-hash-table)) >>> Error: string->keyword: unbound variable (string->keyword (symbol->string var)) ; var: out ((key (string->keyword (symbol->string var)))) ((keyc (map (lambda (d) (key-parse-clause d mo... ; mode: {keyp}-45 ; args: {args}-43 ; argn: {argn}-44 ; user: args ; data: (({out}-41 out #f) ({in}-4... (define mm:bend 14) >>> Error: string->keyword: unbound variable (string->keyword (symbol->string var)) ; var: clefs ((key (string->keyword (symbol->string var)))) ((keyc (map (lambda (d) (key-parse-clause d mo... ; mode: {keyp}-49 ; args: {args}-47 ; argn: {argn}-48 ; user: args ; data: (({clefs}-46 clefs '())) (define (fms:make-clef . args) (vector 'clef a... >>> Error: string->keyword: unbound variable (string->keyword (symbol->string var)) ; var: secs ((key (string->keyword (symbol->string var)))) ((keyc (map (lambda (d) (key-parse-clause d mo... ; mode: {keyp}-57 ; args: {args}-55 ; argn: {argn}-56 ; user: args ; data: (({secs}-52 secs 0) ({metr... (define* (make-metro tempo) (if (or (not (numb... >>> Error: make-equal-hash-table: unbound variable (make-equal-hash-table) (define *plot-hooks* (make-equal-hash-table)) >>> Error: string->keyword: unbound variable (string->keyword (symbol->string var)) ; var: window ((key (string->keyword (symbol->string var)))) ((keyc (map (lambda (d) (key-parse-clause d mo... ; mode: {keyp}-68 ; args: {args}-66 ; argn: {argn}-67 ; user: args ; data: (({window}-59 window #f) (... (define (state auto . all) (define (readstate ... Grace - Graphical Realtime Algorithmic Composition Environment (c) 2014 University of Illinois Board of Trustees. JUCE v3.0.2 (c) 2014 Julian Storer S7 Scheme 3.4 (22-Jan-14), Sndlib 23 (c) 2014 William Schottstaedt oscpack 1.1.0 (c) 2014 Ross Bencina FOMUS 0.1.18-alpha (c) 2014 David Psenicka SDIF 3.11.4 (c) 2014 IRCAM /\\\ ---\\\--------- ----\\\-------- ----/\\\------- Common Music 3.9.0 ---/--\\\------ --/----\\\----- / \\\/ From bil at ccrma.Stanford.EDU Thu Feb 13 09:39:02 2014 From: bil at ccrma.Stanford.EDU (Bill Schottstaedt) Date: Thu, 13 Feb 2014 09:39:02 -0800 Subject: [CM] CM/Grace problem In-Reply-To: <52FCF9CA.3070707@woh.rr.com> References: <52FCF9CA.3070707@woh.rr.com> Message-ID: <20140213173612.M66788@ccrma.Stanford.EDU> It looks like that's the new s7 with syntactic when/unless -- I had that error message to warn myself -- I'll remove it, but hopefully Grace's s7 stuff will eventually remove the when/unless macro definitions. From bil at ccrma.Stanford.EDU Thu Feb 13 09:51:25 2014 From: bil at ccrma.Stanford.EDU (Bill Schottstaedt) Date: Thu, 13 Feb 2014 09:51:25 -0800 Subject: [CM] CM/Grace problem In-Reply-To: <52FCF9CA.3070707@woh.rr.com> References: <52FCF9CA.3070707@woh.rr.com> Message-ID: <20140213175022.M38310@ccrma.Stanford.EDU> You can remove them by commenting out the definitions in cm/scm/s7.scm -- around line 63, I think. Please let me know if that breaks anything! From dlphillips at woh.rr.com Thu Feb 13 11:21:18 2014 From: dlphillips at woh.rr.com (Dave Phillips) Date: Thu, 13 Feb 2014 14:21:18 -0500 Subject: [CM] CM/Grace problem In-Reply-To: <20140213175022.M38310@ccrma.Stanford.EDU> References: <52FCF9CA.3070707@woh.rr.com> <20140213175022.M38310@ccrma.Stanford.EDU> Message-ID: <52FD1B2E.7040105@woh.rr.com> On 02/13/2014 12:51 PM, Bill Schottstaedt wrote: > You can remove them by commenting out the definitions > in cm/scm/s7.scm -- around line 63, I think. Please > let me know if that breaks anything! Hi Bill, Thanks for the tip. However, the same code for s7.scm gave me no trouble in previous build on the same machine (Fedora19 x86_64). Could something else be the cause ? Best, dp From taube at illinois.edu Thu Feb 13 14:02:30 2014 From: taube at illinois.edu (Heinrich Taube) Date: Thu, 13 Feb 2014 16:02:30 -0600 Subject: [CM] CM/Grace problem In-Reply-To: <52FD1B2E.7040105@woh.rr.com> References: <52FCF9CA.3070707@woh.rr.com> <20140213175022.M38310@ccrma.Stanford.EDU> <52FD1B2E.7040105@woh.rr.com> Message-ID: oh, you mean s7 has those forms? I will certainly get rid of them and update the sources. It'll take a few days tho, I'm traveling?. On Feb 13, 2014, at 1:21 PM, Dave Phillips wrote: > > On 02/13/2014 12:51 PM, Bill Schottstaedt wrote: >> You can remove them by commenting out the definitions >> in cm/scm/s7.scm -- around line 63, I think. Please >> let me know if that breaks anything! > > Hi Bill, > > Thanks for the tip. However, the same code for s7.scm gave me no trouble > in previous build on the same machine (Fedora19 x86_64). Could something > else be the cause ? > > Best, > > dp > > _______________________________________________ > Cmdist mailing list > Cmdist at ccrma.stanford.edu > http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist From bil at ccrma.Stanford.EDU Thu Feb 13 16:40:31 2014 From: bil at ccrma.Stanford.EDU (Bill Schottstaedt) Date: Thu, 13 Feb 2014 16:40:31 -0800 Subject: [CM] CM/Grace problem In-Reply-To: References: <52FCF9CA.3070707@woh.rr.com> <20140213175022.M38310@ccrma.Stanford.EDU> <52FD1B2E.7040105@woh.rr.com> Message-ID: <20140214003729.M18554@ccrma.Stanford.EDU> > oh, you mean s7 has those forms? yes, I'm slowly trying to become semi-compatible with the new Scheme definition. Now let's see, CL was last revised 30 years ago? Anyway, when and unless are built-in and it's the optimizer that is cranky -- it can be smart about built-in syntax, but worries at night about macros. No other such changes are planned... From dlphillips at woh.rr.com Fri Feb 14 04:21:49 2014 From: dlphillips at woh.rr.com (Dave Phillips) Date: Fri, 14 Feb 2014 07:21:49 -0500 Subject: [CM] CM/Grace problem In-Reply-To: References: <52FCF9CA.3070707@woh.rr.com> <20140213175022.M38310@ccrma.Stanford.EDU> <52FD1B2E.7040105@woh.rr.com> Message-ID: <52FE0A5D.9080208@woh.rr.com> Greetings, I haven't touched any files yet, I wanted to clarify that the problem is not merely one of warnings. This happens when I attempt any of the SAL MIDI output example code : >>> Error: attempt to apply the untyped # to ("; ;; Sending MIDI Output ; ; To run examples put the cursor at the end of each expression and ; press Command-Return. Look in the console window for any output. ; These examples demonstrate how to send data to the MIDI output port. ; If no MIDI output device is visible in the Audio menu, use the Midi ; Devices dialog to open one of the available ports. Once a port is ; open test it using the Test Output command (Command-T) in its menu. ; The mp:midi function sends midi data to the open midi port. ; Following the name of the function comes the data you want to ; send. mp:midi allows up to five (optional) values to be specified. mp:midi(0, .5, 60, .5, 0)" (# # # # # # # # # # # #) #f #f)? (set! *clm-file-name* "test.wav") (begin (set! *clm-header-type* mus-riff) (set!... >>> Error: attempt to apply the untyped # to ("mp:midi()" (# # #) #f #f)? (for-each (lambda (f) (f e)) end) >>> Error: attempt to apply the untyped # to ("mp:midi(1, 3, 72)" (# # # # # # # #) #f #f)? (for-each (lambda (f) (f e)) end) >>> Error: attempt to apply the untyped # to ("mp:midi(amp: .9, key: 71)" (# # # # # # # #) #f #f)? (for-each (lambda (f) (f e)) end) And I get no sound. My MIDI connections are correctly set up, with the output routed to an instance of QSynth. This same arrangement worked a few days ago. I mistakenly deleted my src directory and ran into this problem when I rebuilt CM/Grace from a fresh SVN download. Also, no option for JACK appears in the AudioManager. Is there a JUCE Appconfig file in there somewhere ? Sorry for my confusion, I'm finding it difficult to debug this one. Best, dp From bil at ccrma.Stanford.EDU Sat Feb 15 15:06:56 2014 From: bil at ccrma.Stanford.EDU (Bill Schottstaedt) Date: Sat, 15 Feb 2014 15:06:56 -0800 Subject: [CM] CLM in LispWorks! Message-ID: <20140215230357.M253@ccrma.Stanford.EDU> Anders Vinjar has ported CLM to LispWorks! I made a new ccrma-ftp clm-4 tarball. I was in the midst of other stuff and may have left print statements dangling around -- will check by tomorrow certainly. Thanks a million, Anders! From anders.vinjar at bek.no Sun Feb 16 01:56:24 2014 From: anders.vinjar at bek.no (anders.vinjar at bek.no) Date: Sun, 16 Feb 2014 10:56:24 +0100 Subject: [CM] CLM in LispWorks! References: <20140215230357.M253@ccrma.Stanford.EDU> Message-ID: <874n3zwfcn.fsf@bek.no> B> Anders Vinjar has ported CLM to LispWorks! I made a new B> ccrma-ftp clm-4 tarball. I was in the midst of other stuff and B> may have left print statements dangling around -- will check by B> tomorrow certainly. Thanks a million, Anders! Please report oddities to the list. The port needs more testing and work, esp. w some of CLMs more obscure features (ie. variables passed in/out through run* etc.). Cheers, -anders From anders.vinjar at bek.no Sun Feb 16 04:52:43 2014 From: anders.vinjar at bek.no (anders.vinjar at bek.no) Date: Sun, 16 Feb 2014 13:52:43 +0100 Subject: [CM] CLM in LispWorks! References: <20140215230357.M253@ccrma.Stanford.EDU> Message-ID: <87zjlrusmc.fsf@bek.no> Just tested w. a personal-edition lw (gratis version), and things seem to run fine there (only tested on linux). FLI is lw's FFI, and should behave more or less similar across platforms. To make the same code run on other platforms (Osx, Windows, bsd, Solaris) the various compiler-flags to the c-compiler (in all.lisp) should be made to fit. -anders From tito.01beta at gmail.com Wed Feb 19 09:10:13 2014 From: tito.01beta at gmail.com (Tito Latini) Date: Wed, 19 Feb 2014 18:10:13 +0100 Subject: [CM] Snd Motif crash without a default for listener-font Message-ID: <20140219171013.GA1811@rhk.homenet.telecomitalia.it> Hi, the follow sequence is good: (set! (listener-font) "9x15") (load-from-path "snd-motif.scm") but it fails: ;(set! (listener-font) "9x15") (load-from-path "snd-motif.scm") a boolean/string qui pro quo: diff -ur snd-14~/snd-motif.scm snd-14/snd-motif.scm --- snd-14~/snd-motif.scm 2014-02-19 12:29:54.000000000 +0100 +++ snd-14/snd-motif.scm 2014-02-19 17:34:01.529931252 +0100 @@ -1322,7 +1322,10 @@ ;; graphics stuff (fonts etc) (let* ((gv (XGCValues)) (shell ((main-widgets) 1)) - (button-fontstruct (XLoadQueryFont (XtDisplay shell) (or (listener-font) "9x15")))) + (button-fontstruct (XLoadQueryFont (XtDisplay shell) + (if (string=? (listener-font) "") + "9x15" + (listener-font))))) (set! (.foreground gv) *data-color*) (set! (.background gv) *basic-color*) (if (and button-fontstruct (.fid button-fontstruct)) tito From bil at ccrma.Stanford.EDU Wed Feb 19 09:41:07 2014 From: bil at ccrma.Stanford.EDU (Bill Schottstaedt) Date: Wed, 19 Feb 2014 09:41:07 -0800 Subject: [CM] Snd Motif crash without a default for listener-font In-Reply-To: <20140219171013.GA1811@rhk.homenet.telecomitalia.it> References: <20140219171013.GA1811@rhk.homenet.telecomitalia.it> Message-ID: <20140219173833.M84715@ccrma.Stanford.EDU> Thanks! I missed that case. From tito.01beta at gmail.com Thu Feb 20 01:38:04 2014 From: tito.01beta at gmail.com (Tito Latini) Date: Thu, 20 Feb 2014 10:38:04 +0100 Subject: [CM] explicit linking to dynamic loader for s7 Message-ID: <20140220093804.GA1974@rhk.homenet.telecomitalia.it> Hello, my linux distro is slackware-14.1 (patched to fix a regression in glibc-2.17) with gcc-4.8.2. Grace r2141 compiled with success after diff -ur cm~/premake4.lua cm/premake4.lua --- cm~/premake4.lua 2014-02-19 16:03:18.000000000 +0100 +++ cm/premake4.lua 2014-02-20 10:13:54.085701439 +0100 @@ -150,7 +150,7 @@ configuration("macosx") linkoptions({"-framework CoreAudio", "-framework CoreFoundation", "-framework CoreMidi"}) configuration("linux") - links({"asound"}) + links({"asound", "dl"}) configuration("windows") links({"winmm"}) linkoptions({"/nodefaultlib:libcmt.lib"}) -- stop libcmt.lib from complaining tito From tito.01beta at gmail.com Thu Feb 20 09:13:02 2014 From: tito.01beta at gmail.com (Tito Latini) Date: Thu, 20 Feb 2014 18:13:02 +0100 Subject: [CM] standard input EOF in console app s7 Message-ID: <20140220171302.GA1725@rhk.homenet.telecomitalia.it> s7> [Ctrl-d] s7> s7> s7> s7> ... forever ... [Ctrl-c] GUI side: if a grace-ful musician accidentally clicks on the executable, the loop continues to write "\ns7> " in background. diff -ur cm~/src/s7.cpp cm/src/s7.cpp --- cm~/src/s7.cpp 2014-02-20 16:46:11.069524177 +0100 +++ cm/src/s7.cpp 2014-02-20 16:46:25.488342908 +0100 @@ -37,7 +37,7 @@ std::string str; try { - while (true) + while (std::cin) { std::cout << "\ns7> "; str = ""; s7 <<< :ok s7> :ok s7> Bye! From taube at illinois.edu Thu Feb 20 14:21:41 2014 From: taube at illinois.edu (Heinrich Taube) Date: Thu, 20 Feb 2014 16:21:41 -0600 Subject: [CM] standard input EOF in console app s7 In-Reply-To: <20140220171302.GA1725@rhk.homenet.telecomitalia.it> References: <20140220171302.GA1725@rhk.homenet.telecomitalia.it> Message-ID: <27958149-DD35-49AC-9C98-5A65CEDE407A@illinois.edu> ok thanks, this is not meant as an app, its simply a debugging tool! maybe i should not generate the makefile by default?. On Feb 20, 2014, at 11:13 AM, Tito Latini wrote: > s7> [Ctrl-d] > s7> > s7> > s7> > s7> > ... forever ... > > [Ctrl-c] > > GUI side: if a grace-ful musician accidentally clicks on the > executable, the loop continues to write "\ns7> " in background. > > diff -ur cm~/src/s7.cpp cm/src/s7.cpp > --- cm~/src/s7.cpp 2014-02-20 16:46:11.069524177 +0100 > +++ cm/src/s7.cpp 2014-02-20 16:46:25.488342908 +0100 > @@ -37,7 +37,7 @@ > std::string str; > try > { > - while (true) > + while (std::cin) > { > std::cout << "\ns7> "; > str = ""; > > > s7 <<< :ok > s7> :ok > s7> Bye! > > _______________________________________________ > Cmdist mailing list > Cmdist at ccrma.stanford.edu > http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist From tito.01beta at gmail.com Fri Feb 21 00:46:24 2014 From: tito.01beta at gmail.com (Tito Latini) Date: Fri, 21 Feb 2014 09:46:24 +0100 Subject: [CM] standard input EOF in console app s7 In-Reply-To: <27958149-DD35-49AC-9C98-5A65CEDE407A@illinois.edu> References: <20140220171302.GA1725@rhk.homenet.telecomitalia.it> <27958149-DD35-49AC-9C98-5A65CEDE407A@illinois.edu> Message-ID: <20140221084624.GA1831@rhk.homenet.telecomitalia.it> > ok thanks, this is not meant as an app, its simply a debugging tool! maybe i should not generate the makefile by default?. copy, paste and cut for mail-subject is inspired by cm/readme.txt ;) s7 A console app with ... A binary called s7 is not a big problem, it is enough to fix the `yes "s7>"' feature (also the example in s7.html is to fix). P.S. (to avoid a separate msg for another minor detail) There is a multi-language example in cm/res/doc/midioutput.scm:62, probably generated by the translator machine: (loop with chord = transpose(pick(pick({0 3 7}, {0 4 7}, {0 3 7 10}, {0 4 7 10}, {0 4 7 11}), between(48, 80)) for k in chord mp:midi(key: k) end