From benmca at gmail.com Mon Feb 15 22:58:17 2016 From: benmca at gmail.com (Ben McAllister) Date: Mon, 15 Feb 2016 22:58:17 -0800 Subject: [CM] Grace + Csound: Sandboxing issue on Mac Message-ID: Hello List, In working through the tutorials in the 3.9 release through the App Store, I discovered I'm not able to run Csound from Grace. Looks like the app is built with sandboxing enabled, which prohibits it from executing my csound binary. Maybe this is compulsory when submitting? I'm a developer, but haven't ever deployed a Mac app.. Grepping through the Grace binary, I see the key com.apple.security.app-sandbox is set to true, at any rate, hence my guess. So - I figured I'd build my own Grace from source, but JUCE compilation seems to be broken, perhaps on OS X 10.11 only? make gets a lot of complaints on a missing Point definition like so: /System/Library/Frameworks/ApplicationServices.framework/Frameworks/QD.framework/Headers/Quickdraw.h:286:102: error: unknown type name 'Point' typedef CALLBACK_API( short , QDTxMeasProcPtr )(short byteCount, const void *textAddr, Point *numer, Point *denom, FontInfo *info); A recent poster on JUCE's forum mentions the issue: http://www.juce.com/forum/topic/unknown-type-name-point Any help/workarounds appreciated. Thanks! Ben McAllister listenfaster.com ^ From aykut_caglayan at yahoo.com Tue Feb 16 12:14:53 2016 From: aykut_caglayan at yahoo.com (Aykut Caglayan) Date: Tue, 16 Feb 2016 20:14:53 +0000 (UTC) Subject: [CM] Grace + Csound: Sandboxing issue on Mac References: <613985788.5544404.1455653693254.JavaMail.yahoo.ref@mail.yahoo.com> Message-ID: <613985788.5544404.1455653693254.JavaMail.yahoo@mail.yahoo.com> You could download earlier releases via this link: http://camil.music.illinois.edu/software/grace/ I'm using 3.9-beta6, which is working like 'Grace' unlike App Store release ---------------------------------------------------------------------- Message: 1 Date: Mon, 15 Feb 2016 22:58:17 -0800 From: Ben McAllister To: cm list Subject: [CM] Grace + Csound: Sandboxing issue on Mac Message-ID: ??? Content-Type: text/plain; charset=UTF-8 Hello List, In working through the tutorials in the 3.9 release through the App Store, I discovered I'm not able to run Csound from Grace. Looks like the app is built with sandboxing enabled, which prohibits it from executing my csound binary.? Maybe this is compulsory when submitting? I'm a developer, but haven't ever deployed a Mac app.. Grepping through the Grace binary, I see the key com.apple.security.app-sandbox? is set to true, at any rate, hence my guess. So - I figured I'd build my own Grace from source, but JUCE compilation seems to be broken, perhaps on OS X 10.11 only?? make gets a lot of complaints on a missing Point definition like so: /System/Library/Frameworks/ApplicationServices.framework/Frameworks/QD.framework/Headers/Quickdraw.h:286:102: error: unknown type name ? ? ? 'Point' typedef CALLBACK_API( short , QDTxMeasProcPtr )(short byteCount, const void *textAddr, Point *numer, Point *denom, FontInfo *info); A recent poster on JUCE's forum mentions the issue: http://www.juce.com/forum/topic/unknown-type-name-point Any help/workarounds appreciated. Thanks! Ben McAllister listenfaster.com ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ^ ------------------------------ _______________________________________________ Cmdist mailing list Cmdist at ccrma.stanford.edu https://cm-mail.stanford.edu/mailman/listinfo/cmdist End of Cmdist Digest, Vol 94, Issue 1 ************************************* From benmca at gmail.com Tue Feb 16 19:16:29 2016 From: benmca at gmail.com (Ben McAllister) Date: Tue, 16 Feb 2016 19:16:29 -0800 Subject: [CM] Grace + Csound: Sandboxing issue on Mac In-Reply-To: <613985788.5544404.1455653693254.JavaMail.yahoo@mail.yahoo.com> References: <613985788.5544404.1455653693254.JavaMail.yahoo.ref@mail.yahoo.com> <613985788.5544404.1455653693254.JavaMail.yahoo@mail.yahoo.com> Message-ID: Perfect! Thanks so much. On Tue, Feb 16, 2016 at 12:14 PM, Aykut Caglayan wrote: > You could download earlier releases via this link: > http://camil.music.illinois.edu/software/grace/ > > I'm using 3.9-beta6, which is working like 'Grace' unlike App Store release > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Mon, 15 Feb 2016 22:58:17 -0800 > From: Ben McAllister > To: cm list > Subject: [CM] Grace + Csound: Sandboxing issue on Mac > Message-ID: > > > Content-Type: text/plain; charset=UTF-8 > > Hello List, > > In working through the tutorials in the 3.9 release through > the App > Store, I discovered I'm not able to run Csound from Grace. > Looks like > the app is built with sandboxing enabled, which prohibits it > from > executing my csound binary. Maybe this is compulsory > when submitting? > I'm a developer, but haven't ever deployed a Mac app.. > Grepping > through the Grace binary, I see the key > com.apple.security.app-sandbox > is set to true, at any > rate, hence my guess. > > So - I figured I'd build my own Grace from source, but JUCE > compilation seems to be broken, perhaps on OS X 10.11 > only? make gets > a lot of complaints on a missing Point definition like so: > > /System/Library/Frameworks/ApplicationServices.framework/Frameworks/QD.framework/Headers/Quickdraw.h:286:102: > error: unknown type name > > 'Point' > > typedef CALLBACK_API( short , QDTxMeasProcPtr )(short > byteCount, const > void *textAddr, Point *numer, Point *denom, FontInfo > *info); > > A recent poster on JUCE's forum mentions the issue: > http://www.juce.com/forum/topic/unknown-type-name-point > > Any help/workarounds appreciated. Thanks! > Ben McAllister > listenfaster.com > > > > ^ > > > ------------------------------ > > _______________________________________________ > Cmdist mailing list > Cmdist at ccrma.stanford.edu > https://cm-mail.stanford.edu/mailman/listinfo/cmdist > > > End of Cmdist Digest, Vol 94, Issue 1 > ************************************* > -- Ben McAllister | listenfaster.com | @listenfaster | tuktuband.com | c: 206.849.3183 From jwmatthys at yahoo.com Tue Feb 16 21:13:55 2016 From: jwmatthys at yahoo.com (Joel Matthys) Date: Tue, 16 Feb 2016 23:13:55 -0600 Subject: [CM] Scheme errors in fresh Grace build Message-ID: <56C40193.7030003@yahoo.com> Hello all. I just built Grace from source and all compiled fine, but when I open Grace I get: Starting Grace... Common Music 3.9.1 [Config=Debug] Creating Windows Skin...Creating Console...OK! Creating Preferences...OK! applicationSupportDirectory=/home/jwmatthys/Grace Creating OpenSoundControl...OK! Creating Scheme...OK! Creating AudioManager... ;play: unbound variable ; ; (set! *clm-player* play); ((set! *clm-srate* 44100) (set! *clm-chan... ;set! *clm-header-type*: unbound variable ; ; (set! *clm-header-type* mus-riff); ((set! *clm-data-format* mus-lshort) (set... ; ((set! *clm-srate* 44100) (set! *clm-chan... Very little works now; "sprout" comes back as unbound, for instance. Any suggestions for tracking down what is broken? Thanks, Joel From taube at illinois.edu Wed Feb 17 04:26:49 2016 From: taube at illinois.edu (Taube, Heinrich K) Date: Wed, 17 Feb 2016 12:26:49 +0000 Subject: [CM] Scheme errors in fresh Grace build In-Reply-To: <56C40193.7030003@yahoo.com> References: <56C40193.7030003@yahoo.com> Message-ID: <574A31AC-3361-4DC2-BC18-DF308A233900@illinois.edu> not sure about the unbounds, Ill have to try to build it and take a look. On the sandboxing ? if you build grace but don?t add entitlements for apple store distruibution it should work fine but then you wont be able to distribute it. > On Feb 16, 2016, at 11:13 PM, Joel Matthys wrote: > > Hello all. I just built Grace from source and all compiled fine, but when I open Grace I get: > > Starting Grace... > Common Music 3.9.1 [Config=Debug] > Creating Windows Skin...Creating Console...OK! > Creating Preferences...OK! > applicationSupportDirectory=/home/jwmatthys/Grace > Creating OpenSoundControl...OK! > Creating Scheme...OK! > Creating AudioManager... > ;play: unbound variable > ; > ; (set! *clm-player* play); ((set! *clm-srate* 44100) (set! *clm-chan... > > > ;set! *clm-header-type*: unbound variable > ; > ; (set! *clm-header-type* mus-riff); ((set! *clm-data-format* mus-lshort) (set... > ; ((set! *clm-srate* 44100) (set! *clm-chan... > > Very little works now; "sprout" comes back as unbound, for instance. > > Any suggestions for tracking down what is broken? > > Thanks, > Joel > _______________________________________________ > Cmdist mailing list > Cmdist at ccrma.stanford.edu > https://cm-mail.stanford.edu/mailman/listinfo/cmdist > From treegestalt at gmail.com Wed Feb 17 10:02:45 2016 From: treegestalt at gmail.com (Forrest Curo) Date: Wed, 17 Feb 2016 10:02:45 -0800 Subject: [CM] installation problem on 64-bit ubuntu Message-ID: Trying to follow the common music installation instructions from that site I end up needing a later version of cmake than their package system supports (cmake4.3) and the cmake instructions for installing that later version fail also. (The new cmake, despite a successful chmoding to 777, ends up returning 'no such file or directory'.) Help? Forrest Curo San Diego -------------- next part -------------- An HTML attachment was scrubbed... URL: From treegestalt at gmail.com Wed Feb 17 12:30:02 2016 From: treegestalt at gmail.com (Forrest Curo) Date: Wed, 17 Feb 2016 12:30:02 -0800 Subject: [CM] installation problem on 64-bit ubuntu In-Reply-To: References: Message-ID: A new development... I've found an ubuntu Grace binary at https://sourceforge.net/projects/commonmusic/?source=typ_redirect and this too returns, 'No such file or directory' ? On Wed, Feb 17, 2016 at 10:02 AM, Forrest Curo wrote: > Trying to follow the common music installation instructions from that site > I end up needing a later version of cmake than their package system > supports (cmake4.3) > and the cmake instructions for installing that later version fail also. > (The new cmake, despite a successful chmoding to 777, ends up returning 'no > such file or directory'.) > > Help? > Forrest Curo > San Diego > -------------- next part -------------- An HTML attachment was scrubbed... URL: From treegestalt at gmail.com Wed Feb 17 16:07:24 2016 From: treegestalt at gmail.com (Forrest Curo) Date: Wed, 17 Feb 2016 16:07:24 -0800 Subject: [CM] installation problem on 64-bit ubuntu In-Reply-To: References: Message-ID: Okay, the following works. After copying Grace into /usr/bin, a 64-bit system will still not be happy with it. So, I did: sudo apt-get install libc6-i386 to generate the next error message and then: sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 and since it was still whining about libsound.so.something: sudo apt-get install libasound2:i386 As the missing libraries get more and more obscure, it helps to start up synaptic package manager, search for the name of the library and then exit from synaptic, go back to the terminal and put in sudo apt-get-install [another !%@&*^# missing library's package]:i386 [repeat until done] Finally one sees delight at the end of the tunnel (and now, to see if it plays music after all!) Forrest Curo On Wed, Feb 17, 2016 at 12:30 PM, Forrest Curo wrote: > A new development... I've found an ubuntu Grace binary at > https://sourceforge.net/projects/commonmusic/?source=typ_redirect > > and this too returns, 'No such file or directory' > > ? > > On Wed, Feb 17, 2016 at 10:02 AM, Forrest Curo > wrote: > >> Trying to follow the common music installation instructions from that site >> I end up needing a later version of cmake than their package system >> supports (cmake4.3) >> and the cmake instructions for installing that later version fail also. >> (The new cmake, despite a successful chmoding to 777, ends up returning 'no >> such file or directory'.) >> >> Help? >> Forrest Curo >> San Diego >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From treegestalt at gmail.com Wed Feb 17 21:57:30 2016 From: treegestalt at gmail.com (Forrest Curo) Date: Wed, 17 Feb 2016 21:57:30 -0800 Subject: [CM] cm rendering audio through csound in real time? Message-ID: What I have in mind would take notes generated-by or received (via midi) by cm, send them in real-time to a running instance of csound (which would handle the audio rendering) while cm records notes & timing, fnurgles these in interesting ways, and plays back the resulting notes through csound. (I've noticed that specialized music programs & languages tend to hoard the system's audio resources, which complicates things when one tries to run two musical applications at once. cm -- if I've got this right -- doesn't do that. And seems to have advantages for manipulating note values, timing, etc., things which can be done directly in csound, but relatively clumsily. ) -------------- The two programs could be linked via OSC, but the simplest way I've found to send notes to csound is to run it with "-L somefifo" in the command line, then throw score lines into that fifo. [Is there some easier built-in provision for real-time csound in cm, or is it pretty much limited to producing scores to be run later?] -------------------------- Will I need to keep opening-&-closing the fifo, to keep it clearing the buffer as soon as it's time for a new score line to play? (Many programs tend to hang on to a file they're writing to, which leads to all the notes being held until the file is closed, when they all burst out at once.) Suggestions? Forrest Curo San Diego -------------- next part -------------- An HTML attachment was scrubbed... URL: From treegestalt at gmail.com Thu Feb 18 13:09:33 2016 From: treegestalt at gmail.com (Forrest Curo) Date: Thu, 18 Feb 2016 13:09:33 -0800 Subject: [CM] installation problem on 64-bit ubuntu In-Reply-To: References: Message-ID: On 2nd computer (where I volunteer at a church computer lab) also running ubuntu 15.10 I've done the same messy installation process and can run Grace as root. If I'm not in my Superuser suit it simply exits, no error messages. ? On Wed, Feb 17, 2016 at 4:07 PM, Forrest Curo wrote: > Okay, the following works. > After copying Grace into /usr/bin, a 64-bit system will still not be happy > with it. > > So, I did: > sudo apt-get install libc6-i386 > > to generate the next error message and then: > sudo dpkg --add-architecture i386 > sudo apt-get update > sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 > > and since it was still whining about libsound.so.something: > sudo apt-get install libasound2:i386 > > As the missing libraries get more and more obscure, it helps to start up > synaptic package manager, search for the name of the library and then exit > from synaptic, go back to the terminal > and put in > sudo apt-get-install [another !%@&*^# missing library's package]:i386 > > [repeat until done] > > Finally one sees delight at the end of the tunnel (and now, to see if it > plays music after all!) > > Forrest Curo > > On Wed, Feb 17, 2016 at 12:30 PM, Forrest Curo > wrote: > >> A new development... I've found an ubuntu Grace binary at >> https://sourceforge.net/projects/commonmusic/?source=typ_redirect >> >> and this too returns, 'No such file or directory' >> >> ? >> >> On Wed, Feb 17, 2016 at 10:02 AM, Forrest Curo >> wrote: >> >>> Trying to follow the common music installation instructions from that >>> site >>> I end up needing a later version of cmake than their package system >>> supports (cmake4.3) >>> and the cmake instructions for installing that later version fail also. >>> (The new cmake, despite a successful chmoding to 777, ends up returning 'no >>> such file or directory'.) >>> >>> Help? >>> Forrest Curo >>> San Diego >>> >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From treegestalt at gmail.com Thu Feb 18 21:10:16 2016 From: treegestalt at gmail.com (Forrest Curo) Date: Thu, 18 Feb 2016 21:10:16 -0800 Subject: [CM] midi-received functions Message-ID: I see a tutorial on sending midi out and ways to declare a function to be receiving midi in with specific opcodes but I'm not at all clear on how such a function should be written to extract the data when a midi message comes in. Examples anywhere? -------------- next part -------------- An HTML attachment was scrubbed... URL: From rhowiler at presby.edu Fri Feb 19 05:56:40 2016 From: rhowiler at presby.edu (Rob Howiler) Date: Fri, 19 Feb 2016 08:56:40 -0500 Subject: [CM] newbie question (sorry) Message-ID: <44585F03-380A-4A94-8039-1C76F4678CA5@presby.edu> The following (define one (new midi :time 0 :keynum 60 :duration 2)) gives ?new? as an unbound variable. I?m taking this straight from the Notes From the Metalevel book?..am I missing something? Also, when I save a .lisp file, it doesn?t track changes. I can ?save as?? with the same filename & it?ll save the changes, but a regular ?save? command won?t save any changes. Thanks in advance & sorry for such a low-level question. Rob ------------------------------------------------------ Dr. Rob Howiler Academic Computing Services Coordinator Assisstant Professor of Music rhowiler at presby.edu (864) 833-8324 ------------------------------------------------------- -- ------------------------------ From treegestalt at gmail.com Fri Feb 19 07:59:43 2016 From: treegestalt at gmail.com (Forrest Curo) Date: Fri, 19 Feb 2016 07:59:43 -0800 Subject: [CM] midi-received functions In-Reply-To: References: Message-ID: Okay, among 'examples' there is a section titled 'Output Hooks' (not, to my mind, the most obvious titles to look for) and the examples have errors: ie ; An opcode receiver that plays a major or minor chord whenever a ; Note On arrives function mychord (data) with channel = second(data), keynum = third(data), velocity = fourth(data) send("mp:midi", key: key, vel: vel, chan: chan) send("mp:midi", key: key + pick(3,4), vel: vel, chan: chan) send("mp:midi", key: key + 7, vel: vel, chan: chan) end ;; assign receiver for the mm:on opcode (Note Ons) send("mp:receive", mm:on, mychord) ;; when you are done clear it... send("mp:receive", mm:on, #f) ----------------------------------------------------------- It can be fixed, however. This works: ------------------------------------------------------------- function mychord (data) with channel = second(data), keynum = third(data), velocity = fourth(data) send("mp:midi", key: keynum, amp: velocity, chan: channel) send("mp:midi", key: keynum + pick(3,4), amp: velocity, chan: channel) send("mp:midi", key: keynum + 7, amp: velocity, chan: channel) end ;; assign receiver for the mm:on opcode (Note Ons) send("mp:receive", mm:on, mychord) On Thu, Feb 18, 2016 at 9:10 PM, Forrest Curo wrote: > I see a tutorial on sending midi out > > and ways to declare a function to be receiving midi in with specific > opcodes > > but I'm not at all clear on how such a function should be written to > extract the data when a midi message comes in. > > Examples anywhere? > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From treegestalt at gmail.com Fri Feb 19 08:04:56 2016 From: treegestalt at gmail.com (Forrest Curo) Date: Fri, 19 Feb 2016 08:04:56 -0800 Subject: [CM] midi-received functions In-Reply-To: References: Message-ID: The section is "Input Hooks" (speaking of errors... but still not the first title I'd look for this under.) On Fri, Feb 19, 2016 at 7:59 AM, Forrest Curo wrote: > Okay, among 'examples' there is a section titled 'Output Hooks' (not, to > my mind, the most obvious titles to look for) > and the examples have errors: > ie > > ; An opcode receiver that plays a major or minor chord whenever a > ; Note On arrives > > function mychord (data) > with channel = second(data), > keynum = third(data), > velocity = fourth(data) > send("mp:midi", key: key, vel: vel, chan: chan) > send("mp:midi", key: key + pick(3,4), vel: vel, chan: chan) > send("mp:midi", key: key + 7, vel: vel, chan: chan) > end > > ;; assign receiver for the mm:on opcode (Note Ons) > > send("mp:receive", mm:on, mychord) > > ;; when you are done clear it... > > send("mp:receive", mm:on, #f) > ----------------------------------------------------------- > > It can be fixed, however. This works: > ------------------------------------------------------------- > function mychord (data) > with channel = second(data), > keynum = third(data), > velocity = fourth(data) > send("mp:midi", key: keynum, amp: velocity, chan: channel) > send("mp:midi", key: keynum + pick(3,4), amp: velocity, chan: channel) > send("mp:midi", key: keynum + 7, amp: velocity, chan: channel) > end > > ;; assign receiver for the mm:on opcode (Note Ons) > > send("mp:receive", mm:on, mychord) > > > On Thu, Feb 18, 2016 at 9:10 PM, Forrest Curo > wrote: > >> I see a tutorial on sending midi out >> >> and ways to declare a function to be receiving midi in with specific >> opcodes >> >> but I'm not at all clear on how such a function should be written to >> extract the data when a midi message comes in. >> >> Examples anywhere? >> >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From aykut_caglayan at yahoo.com Fri Feb 19 09:19:50 2016 From: aykut_caglayan at yahoo.com (Aykut Caglayan) Date: Fri, 19 Feb 2016 17:19:50 +0000 (UTC) Subject: [CM] newbie question (sorry) References: <54886047.7003046.1455902390773.JavaMail.yahoo.ref@mail.yahoo.com> Message-ID: <54886047.7003046.1455902390773.JavaMail.yahoo@mail.yahoo.com> Hi there, > (define one (new midi :time 0 >??? ??? :keynum 60 :duration 2)) I assume you are trying to define a function which sends a midi note out.If this is the case, first define it as follows: (define (one ) (send "mp:midi" :time 0 :key 60 :dur 1) ;and fire ; (one ) Sincerely,Ike PS: I tested it on Grace 3.8, I doubt it if it works with older cm-emacs environment -------------- next part -------------- An HTML attachment was scrubbed... URL: From bil at ccrma.Stanford.EDU Fri Feb 19 09:46:01 2016 From: bil at ccrma.Stanford.EDU (bil at ccrma.Stanford.EDU) Date: Fri, 19 Feb 2016 09:46:01 -0800 Subject: [CM] Snd 16.3 Message-ID: <86f5dffea2046548dd660334e6b4f514@ccrma.stanford.edu> Snd 16.3 added s7 profiler if WITH_PROFILE is set, profile.scm. moved multiple-value-set! macro to stuff.scm port-line-number is settable (for fancy #readers) *cload-directory* (a string) for cload output files (default is "") removed quasiquoted vector support (it was disabled by default) checked: gtk 3.19.7|8|9, sbcl 1.3.2 Thanks!: Kjetil Matheussen, Nando, IOhannes m zm?lnig, Mike Scholz. (all my time goes to lint.scm) From taube at illinois.edu Fri Feb 19 10:43:25 2016 From: taube at illinois.edu (Taube, Heinrich K) Date: Fri, 19 Feb 2016 18:43:25 +0000 Subject: [CM] midi-received functions In-Reply-To: References: Message-ID: <08C79CAC-B367-4FD9-9984-B9CACCED9407@illinois.edu> its not clear to me what the issue is. does it not work. BTW no need to use send() and just call the function directly so > send("mp:midi", key: key, vel: vel, chan: chan) can be written mp:midi(key: key, vel: vel, chan: chan) i thought I got rid of all that in the documentation and help files. > On Feb 19, 2016, at 10:04 AM, Forrest Curo wrote: > > The section is "Input Hooks" (speaking of errors... but still not the first title I'd look for this under.) > > On Fri, Feb 19, 2016 at 7:59 AM, Forrest Curo wrote: > Okay, among 'examples' there is a section titled 'Output Hooks' (not, to my mind, the most obvious titles to look for) > and the examples have errors: > ie > > ; An opcode receiver that plays a major or minor chord whenever a > ; Note On arrives > > function mychord (data) > with channel = second(data), > keynum = third(data), > velocity = fourth(data) > send("mp:midi", key: key, vel: vel, chan: chan) > send("mp:midi", key: key + pick(3,4), vel: vel, chan: chan) > send("mp:midi", key: key + 7, vel: vel, chan: chan) > end > > ;; assign receiver for the mm:on opcode (Note Ons) > > send("mp:receive", mm:on, mychord) > > ;; when you are done clear it... > > send("mp:receive", mm:on, #f) > ----------------------------------------------------------- > > It can be fixed, however. This works: > ------------------------------------------------------------- > function mychord (data) > with channel = second(data), > keynum = third(data), > velocity = fourth(data) > send("mp:midi", key: keynum, amp: velocity, chan: channel) > send("mp:midi", key: keynum + pick(3,4), amp: velocity, chan: channel) > send("mp:midi", key: keynum + 7, amp: velocity, chan: channel) > end > > ;; assign receiver for the mm:on opcode (Note Ons) > > send("mp:receive", mm:on, mychord) > > > On Thu, Feb 18, 2016 at 9:10 PM, Forrest Curo wrote: > I see a tutorial on sending midi out > > and ways to declare a function to be receiving midi in with specific opcodes > > but I'm not at all clear on how such a function should be written to extract the data when a midi message comes in. > > Examples anywhere? > > > > > _______________________________________________ > Cmdist mailing list > Cmdist at ccrma.stanford.edu > https://cm-mail.stanford.edu/mailman/listinfo/cmdist From taube at illinois.edu Fri Feb 19 10:45:00 2016 From: taube at illinois.edu (Taube, Heinrich K) Date: Fri, 19 Feb 2016 18:45:00 +0000 Subject: [CM] newbie question (sorry) In-Reply-To: <44585F03-380A-4A94-8039-1C76F4678CA5@presby.edu> References: <44585F03-380A-4A94-8039-1C76F4678CA5@presby.edu> Message-ID: <1A4975DA-529F-458D-944B-D72597FF9F66@illinois.edu> Are you using scheme, or common lisp? The book is many years old now and meanwhile the software has evolved. once you tell me what version so fthe software you are using and the example you are using I can help you > On Feb 19, 2016, at 7:56 AM, Rob Howiler wrote: > > The following > > (define one (new midi :time 0 > :keynum 60 :duration 2)) > > gives ?new? as an unbound variable. I?m taking this straight from the Notes From the Metalevel book?..am I missing something? > > Also, when I save a .lisp file, it doesn?t track changes. I can ?save as?? with the same filename & it?ll save the changes, but a regular ?save? command won?t save any changes. > > Thanks in advance & sorry for such a low-level question. > Rob > > ------------------------------------------------------ > Dr. Rob Howiler > Academic Computing Services Coordinator > Assisstant Professor of Music > rhowiler at presby.edu > (864) 833-8324 > ------------------------------------------------------- > > > -- > > ------------------------------ > > > _______________________________________________ > Cmdist mailing list > Cmdist at ccrma.stanford.edu > https://cm-mail.stanford.edu/mailman/listinfo/cmdist From rhowiler at presby.edu Fri Feb 19 10:51:49 2016 From: rhowiler at presby.edu (Rob Howiler) Date: Fri, 19 Feb 2016 13:51:49 -0500 Subject: [CM] newbie question (sorry) In-Reply-To: <1A4975DA-529F-458D-944B-D72597FF9F66@illinois.edu> References: <44585F03-380A-4A94-8039-1C76F4678CA5@presby.edu> <1A4975DA-529F-458D-944B-D72597FF9F66@illinois.edu> Message-ID: I?m using version 3.9.0 - I?m pretty sure I?m using common lisp. The example is ?interaction 2. Generating a MIDI event to a MIDI file.? in chapter 12 (Etudes, Op.4: Score Generation). I?ve noticed that some of the examples in the book don?t work anymore - perfectly understandable. To be honest, it?s been ?fun? trying to chase down some of the problems on my own. Helps me learn the language and concepts. I just can?t seem to chase this one down on my own. My plan is to write to a MIDI file and then dump that into Logic for playback. (eventually I plan to use CM to control CSound, but it seems to be a ways off?.) Thanks for any help. Rob > On Feb 19, 2016, at 1:45 PM, Taube, Heinrich K wrote: > > Are you using scheme, or common lisp? > The book is many years old now and meanwhile the software has evolved. > > once you tell me what version so fthe software you are using and the example you are using I can help you > > > >> On Feb 19, 2016, at 7:56 AM, Rob Howiler wrote: >> >> The following >> >> (define one (new midi :time 0 >> :keynum 60 :duration 2)) >> >> gives ?new? as an unbound variable. I?m taking this straight from the Notes From the Metalevel book?..am I missing something? >> >> Also, when I save a .lisp file, it doesn?t track changes. I can ?save as?? with the same filename & it?ll save the changes, but a regular ?save? command won?t save any changes. >> >> Thanks in advance & sorry for such a low-level question. >> Rob >> >> ------------------------------------------------------ >> Dr. Rob Howiler >> Academic Computing Services Coordinator >> Assisstant Professor of Music >> rhowiler at presby.edu >> (864) 833-8324 >> ------------------------------------------------------- >> >> >> -- >> >> ------------------------------ >> >> >> _______________________________________________ >> Cmdist mailing list >> Cmdist at ccrma.stanford.edu >> https://cm-mail.stanford.edu/mailman/listinfo/cmdist > ------------------------------------------------------ Dr. Rob Howiler Academic Computing Services Coordinator Assisstant Professor of Music rhowiler at presby.edu (864) 833-8324 ------------------------------------------------------- -- ------------------------------ From taube at illinois.edu Fri Feb 19 11:08:49 2016 From: taube at illinois.edu (Taube, Heinrich K) Date: Fri, 19 Feb 2016 19:08:49 +0000 Subject: [CM] newbie question (sorry) In-Reply-To: References: <44585F03-380A-4A94-8039-1C76F4678CA5@presby.edu> <1A4975DA-529F-458D-944B-D72597FF9F66@illinois.edu> Message-ID: if you are on a mac no need to write files -- just send midi to the IAC Driver bus and then have logic read from it. . > On Feb 19, 2016, at 12:51 PM, Rob Howiler wrote: > > My plan is to write to a MIDI file and then dump that into Logic for playback. (eventually I plan to use CM to control CSound, but it seems to be a ways off?.) > Thanks for any help. From treegestalt at gmail.com Fri Feb 19 14:19:09 2016 From: treegestalt at gmail.com (Forrest Curo) Date: Fri, 19 Feb 2016 14:19:09 -0800 Subject: [CM] midi-received functions In-Reply-To: <08C79CAC-B367-4FD9-9984-B9CACCED9407@illinois.edu> References: <08C79CAC-B367-4FD9-9984-B9CACCED9407@illinois.edu> Message-ID: function mychord (data) with channel = second(data), keynum = third(data), velocity = fourth(data) send("mp:midi", key: key, vel: vel, chan: chan) send("mp:midi", key: key + pick(3,4), vel: vel, chan: chan) send("mp:midi", key: key + 7, vel: vel, chan: chan) end ------------- response: 'mychord' ------------- send("mp:receive", mm:on, mychord) ------------------ response: '#t' ------------------- [play note] ------------------ response: >>> Error: :vel not a valid keyword argument in (:key key :vel vel :chan chan) ------------------------------------ That is, it doesn't work in that example because it needs a variable 'velocity' rather than 'vel'. (?) If I fix that and likewise put the variable 'channel' in place of 'chan', 'keynum' rather than 'key' -- *then it works*. Since I'm working with an ubuntu binary of 3.8.0 I might not be using the latest examples available(?) [I couldn't install a more recent Grace because my system seems to be allergic to cmake > cmake4.3 -- (perhaps for similar 32-bit --> 64-bit issues?) ------------- If I get rid of the 'send's in the mp.midi lines the error instead is: >>> Error: vel: unbound variable and changing everything as before yields: >>> Error: mp:midi: unknown key: (:vel 91 :chan 0) in (:key 59 :vel 91 :chan 0) The 'send' and the 'mp:midi' ought to be equivalent; but it's working with the 'send' version, while I don't see why: mp:midi(key: keynum, vel: velocity, chan: channel) is not. (?) On Fri, Feb 19, 2016 at 10:43 AM, Taube, Heinrich K wrote: > its not clear to me what the issue is. does it not work. > BTW no need to use send() and just call the function directly so > > > send("mp:midi", key: key, vel: vel, chan: chan) > > can be written > > mp:midi(key: key, vel: vel, chan: chan) > > i thought I got rid of all that in the documentation and help files. > > > > On Feb 19, 2016, at 10:04 AM, Forrest Curo > wrote: > > > > The section is "Input Hooks" (speaking of errors... but still not the > first title I'd look for this under.) > > > > On Fri, Feb 19, 2016 at 7:59 AM, Forrest Curo > wrote: > > Okay, among 'examples' there is a section titled 'Output Hooks' (not, to > my mind, the most obvious titles to look for) > > and the examples have errors: > > ie > > > > ; An opcode receiver that plays a major or minor chord whenever a > > ; Note On arrives > > > > function mychord (data) > > with channel = second(data), > > keynum = third(data), > > velocity = fourth(data) > > send("mp:midi", key: key, vel: vel, chan: chan) > > send("mp:midi", key: key + pick(3,4), vel: vel, chan: chan) > > send("mp:midi", key: key + 7, vel: vel, chan: chan) > > end > > > > ;; assign receiver for the mm:on opcode (Note Ons) > > > > send("mp:receive", mm:on, mychord) > > > > ;; when you are done clear it... > > > > send("mp:receive", mm:on, #f) > > ----------------------------------------------------------- > > > > It can be fixed, however. This works: > > ------------------------------------------------------------- > > function mychord (data) > > with channel = second(data), > > keynum = third(data), > > velocity = fourth(data) > > send("mp:midi", key: keynum, amp: velocity, chan: channel) > > send("mp:midi", key: keynum + pick(3,4), amp: velocity, chan: channel) > > send("mp:midi", key: keynum + 7, amp: velocity, chan: channel) > > end > > > > ;; assign receiver for the mm:on opcode (Note Ons) > > > > send("mp:receive", mm:on, mychord) > > > > > > On Thu, Feb 18, 2016 at 9:10 PM, Forrest Curo > wrote: > > I see a tutorial on sending midi out > > > > and ways to declare a function to be receiving midi in with specific > opcodes > > > > but I'm not at all clear on how such a function should be written to > extract the data when a midi message comes in. > > > > Examples anywhere? > > > > > > > > > > _______________________________________________ > > Cmdist mailing list > > Cmdist at ccrma.stanford.edu > > https://cm-mail.stanford.edu/mailman/listinfo/cmdist > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From treegestalt at gmail.com Fri Feb 19 20:46:20 2016 From: treegestalt at gmail.com (Forrest Curo) Date: Fri, 19 Feb 2016 20:46:20 -0800 Subject: [CM] midi-received functions In-Reply-To: References: <08C79CAC-B367-4FD9-9984-B9CACCED9407@illinois.edu> Message-ID: Given that the error isn't from the current distribution, I suppose there's no issue... Ah, I seem to have finally bumbled through installing 3.9.0, thanks! On Fri, Feb 19, 2016 at 2:19 PM, Forrest Curo wrote: > function mychord (data) > with channel = second(data), > keynum = third(data), > velocity = fourth(data) > send("mp:midi", key: key, vel: vel, chan: chan) > send("mp:midi", key: key + pick(3,4), vel: vel, chan: chan) > send("mp:midi", key: key + 7, vel: vel, chan: chan) > end > ------------- > response: 'mychord' > ------------- > send("mp:receive", mm:on, mychord) > ------------------ > response: '#t' > ------------------- > [play note] > ------------------ > response: > >>> Error: :vel not a valid keyword argument in > (:key key :vel vel :chan chan) > ------------------------------------ > > That is, it doesn't work in that example because it needs a variable > 'velocity' rather than 'vel'. (?) > > If I fix that and likewise put the variable 'channel' in place of 'chan', > 'keynum' rather than 'key' -- *then it works*. > > Since I'm working with an ubuntu binary of 3.8.0 I might not be using the > latest examples available(?) [I couldn't install a more recent Grace > because my system seems to be allergic to cmake > cmake4.3 -- > (perhaps for similar 32-bit --> 64-bit issues?) > ------------- > If I get rid of the 'send's in the mp.midi lines > the error instead is: > >>> Error: vel: unbound variable > and changing everything as before yields: > > >>> Error: mp:midi: unknown key: (:vel 91 :chan 0) > in (:key 59 :vel 91 :chan 0) > > The 'send' and the 'mp:midi' ought to be equivalent; but it's working with > the 'send' version, while I don't see why: > mp:midi(key: keynum, vel: velocity, chan: channel) > is not. > (?) > > > > > On Fri, Feb 19, 2016 at 10:43 AM, Taube, Heinrich K > wrote: > >> its not clear to me what the issue is. does it not work. >> BTW no need to use send() and just call the function directly so >> >> > send("mp:midi", key: key, vel: vel, chan: chan) >> >> can be written >> >> mp:midi(key: key, vel: vel, chan: chan) >> >> i thought I got rid of all that in the documentation and help files. >> >> >> > On Feb 19, 2016, at 10:04 AM, Forrest Curo >> wrote: >> > >> > The section is "Input Hooks" (speaking of errors... but still not the >> first title I'd look for this under.) >> > >> > On Fri, Feb 19, 2016 at 7:59 AM, Forrest Curo >> wrote: >> > Okay, among 'examples' there is a section titled 'Output Hooks' (not, >> to my mind, the most obvious titles to look for) >> > and the examples have errors: >> > ie >> > >> > ; An opcode receiver that plays a major or minor chord whenever a >> > ; Note On arrives >> > >> > function mychord (data) >> > with channel = second(data), >> > keynum = third(data), >> > velocity = fourth(data) >> > send("mp:midi", key: key, vel: vel, chan: chan) >> > send("mp:midi", key: key + pick(3,4), vel: vel, chan: chan) >> > send("mp:midi", key: key + 7, vel: vel, chan: chan) >> > end >> > >> > ;; assign receiver for the mm:on opcode (Note Ons) >> > >> > send("mp:receive", mm:on, mychord) >> > >> > ;; when you are done clear it... >> > >> > send("mp:receive", mm:on, #f) >> > ----------------------------------------------------------- >> > >> > It can be fixed, however. This works: >> > ------------------------------------------------------------- >> > function mychord (data) >> > with channel = second(data), >> > keynum = third(data), >> > velocity = fourth(data) >> > send("mp:midi", key: keynum, amp: velocity, chan: channel) >> > send("mp:midi", key: keynum + pick(3,4), amp: velocity, chan: channel) >> > send("mp:midi", key: keynum + 7, amp: velocity, chan: channel) >> > end >> > >> > ;; assign receiver for the mm:on opcode (Note Ons) >> > >> > send("mp:receive", mm:on, mychord) >> > >> > >> > On Thu, Feb 18, 2016 at 9:10 PM, Forrest Curo >> wrote: >> > I see a tutorial on sending midi out >> > >> > and ways to declare a function to be receiving midi in with specific >> opcodes >> > >> > but I'm not at all clear on how such a function should be written to >> extract the data when a midi message comes in. >> > >> > Examples anywhere? >> > >> > >> > >> > >> > _______________________________________________ >> > Cmdist mailing list >> > Cmdist at ccrma.stanford.edu >> > https://cm-mail.stanford.edu/mailman/listinfo/cmdist >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From taube at illinois.edu Sat Feb 20 05:37:17 2016 From: taube at illinois.edu (Taube, Heinrich K) Date: Sat, 20 Feb 2016 13:37:17 +0000 Subject: [CM] midi-received functions In-Reply-To: References: <08C79CAC-B367-4FD9-9984-B9CACCED9407@illinois.edu> Message-ID: <8B7283A8-1643-4A64-8909-FF93CB78DC10@illinois.edu> if you are in 3.9.0 and its working as you expect im happy! > On Feb 19, 2016, at 10:46 PM, Forrest Curo wrote: > > Given that the error isn't from the current distribution, I suppose there's no issue... > > Ah, I seem to have finally bumbled through installing 3.9.0, thanks! > > On Fri, Feb 19, 2016 at 2:19 PM, Forrest Curo wrote: > function mychord (data) > with channel = second(data), > keynum = third(data), > velocity = fourth(data) > send("mp:midi", key: key, vel: vel, chan: chan) > send("mp:midi", key: key + pick(3,4), vel: vel, chan: chan) > send("mp:midi", key: key + 7, vel: vel, chan: chan) > end > ------------- > response: 'mychord' > ------------- > send("mp:receive", mm:on, mychord) > ------------------ > response: '#t' > ------------------- > [play note] > ------------------ > response: > >>> Error: :vel not a valid keyword argument in > (:key key :vel vel :chan chan) > ------------------------------------ > > That is, it doesn't work in that example because it needs a variable 'velocity' rather than 'vel'. (?) > > If I fix that and likewise put the variable 'channel' in place of 'chan', 'keynum' rather than 'key' -- then it works. > > Since I'm working with an ubuntu binary of 3.8.0 I might not be using the latest examples available(?) [I couldn't install a more recent Grace because my system seems to be allergic to cmake > cmake4.3 -- > (perhaps for similar 32-bit --> 64-bit issues?) > ------------- > If I get rid of the 'send's in the mp.midi lines > the error instead is: > >>> Error: vel: unbound variable > and changing everything as before yields: > > >>> Error: mp:midi: unknown key: (:vel 91 :chan 0) > in (:key 59 :vel 91 :chan 0) > > The 'send' and the 'mp:midi' ought to be equivalent; but it's working with the 'send' version, while I don't see why: > mp:midi(key: keynum, vel: velocity, chan: channel) > is not. > (?) > > > > > On Fri, Feb 19, 2016 at 10:43 AM, Taube, Heinrich K wrote: > its not clear to me what the issue is. does it not work. > BTW no need to use send() and just call the function directly so > > > send("mp:midi", key: key, vel: vel, chan: chan) > > can be written > > mp:midi(key: key, vel: vel, chan: chan) > > i thought I got rid of all that in the documentation and help files. > > > > On Feb 19, 2016, at 10:04 AM, Forrest Curo wrote: > > > > The section is "Input Hooks" (speaking of errors... but still not the first title I'd look for this under.) > > > > On Fri, Feb 19, 2016 at 7:59 AM, Forrest Curo wrote: > > Okay, among 'examples' there is a section titled 'Output Hooks' (not, to my mind, the most obvious titles to look for) > > and the examples have errors: > > ie > > > > ; An opcode receiver that plays a major or minor chord whenever a > > ; Note On arrives > > > > function mychord (data) > > with channel = second(data), > > keynum = third(data), > > velocity = fourth(data) > > send("mp:midi", key: key, vel: vel, chan: chan) > > send("mp:midi", key: key + pick(3,4), vel: vel, chan: chan) > > send("mp:midi", key: key + 7, vel: vel, chan: chan) > > end > > > > ;; assign receiver for the mm:on opcode (Note Ons) > > > > send("mp:receive", mm:on, mychord) > > > > ;; when you are done clear it... > > > > send("mp:receive", mm:on, #f) > > ----------------------------------------------------------- > > > > It can be fixed, however. This works: > > ------------------------------------------------------------- > > function mychord (data) > > with channel = second(data), > > keynum = third(data), > > velocity = fourth(data) > > send("mp:midi", key: keynum, amp: velocity, chan: channel) > > send("mp:midi", key: keynum + pick(3,4), amp: velocity, chan: channel) > > send("mp:midi", key: keynum + 7, amp: velocity, chan: channel) > > end > > > > ;; assign receiver for the mm:on opcode (Note Ons) > > > > send("mp:receive", mm:on, mychord) > > > > > > On Thu, Feb 18, 2016 at 9:10 PM, Forrest Curo wrote: > > I see a tutorial on sending midi out > > > > and ways to declare a function to be receiving midi in with specific opcodes > > > > but I'm not at all clear on how such a function should be written to extract the data when a midi message comes in. > > > > Examples anywhere? > > > > > > > > > > _______________________________________________ > > Cmdist mailing list > > Cmdist at ccrma.stanford.edu > > https://cm-mail.stanford.edu/mailman/listinfo/cmdist > > > > _______________________________________________ > Cmdist mailing list > Cmdist at ccrma.stanford.edu > https://cm-mail.stanford.edu/mailman/listinfo/cmdist From treegestalt at gmail.com Sat Feb 20 08:10:07 2016 From: treegestalt at gmail.com (Forrest Curo) Date: Sat, 20 Feb 2016 08:10:07 -0800 Subject: [CM] midi-received functions In-Reply-To: <8B7283A8-1643-4A64-8909-FF93CB78DC10@illinois.edu> References: <08C79CAC-B367-4FD9-9984-B9CACCED9407@illinois.edu> <8B7283A8-1643-4A64-8909-FF93CB78DC10@illinois.edu> Message-ID: I'm quite happy! -- and given how much blundering & hassle an inexperienced user can enjoy in the installation process -- Would my compiled binary be useful on sourceforge -- What's the proper way to check that possibility out? On Sat, Feb 20, 2016 at 5:37 AM, Taube, Heinrich K wrote: > if you are in 3.9.0 and its working as you expect im happy! > > > On Feb 19, 2016, at 10:46 PM, Forrest Curo > wrote: > > > > Given that the error isn't from the current distribution, I suppose > there's no issue... > > > > Ah, I seem to have finally bumbled through installing 3.9.0, thanks! > > > > On Fri, Feb 19, 2016 at 2:19 PM, Forrest Curo > wrote: > > function mychord (data) > > with channel = second(data), > > keynum = third(data), > > velocity = fourth(data) > > send("mp:midi", key: key, vel: vel, chan: chan) > > send("mp:midi", key: key + pick(3,4), vel: vel, chan: chan) > > send("mp:midi", key: key + 7, vel: vel, chan: chan) > > end > > ------------- > > response: 'mychord' > > ------------- > > send("mp:receive", mm:on, mychord) > > ------------------ > > response: '#t' > > ------------------- > > [play note] > > ------------------ > > response: > > >>> Error: :vel not a valid keyword argument in > > (:key key :vel vel :chan chan) > > ------------------------------------ > > > > That is, it doesn't work in that example because it needs a variable > 'velocity' rather than 'vel'. (?) > > > > If I fix that and likewise put the variable 'channel' in place of > 'chan', 'keynum' rather than 'key' -- then it works. > > > > Since I'm working with an ubuntu binary of 3.8.0 I might not be using > the latest examples available(?) [I couldn't install a more recent Grace > because my system seems to be allergic to cmake > cmake4.3 -- > > (perhaps for similar 32-bit --> 64-bit issues?) > > ------------- > > If I get rid of the 'send's in the mp.midi lines > > the error instead is: > > >>> Error: vel: unbound variable > > and changing everything as before yields: > > > > >>> Error: mp:midi: unknown key: (:vel 91 :chan 0) > > in (:key 59 :vel 91 :chan 0) > > > > The 'send' and the 'mp:midi' ought to be equivalent; but it's working > with the 'send' version, while I don't see why: > > mp:midi(key: keynum, vel: velocity, chan: channel) > > is not. > > (?) > > > > > > > > > > On Fri, Feb 19, 2016 at 10:43 AM, Taube, Heinrich K > wrote: > > its not clear to me what the issue is. does it not work. > > BTW no need to use send() and just call the function directly so > > > > > send("mp:midi", key: key, vel: vel, chan: chan) > > > > can be written > > > > mp:midi(key: key, vel: vel, chan: chan) > > > > i thought I got rid of all that in the documentation and help files. > > > > > > > On Feb 19, 2016, at 10:04 AM, Forrest Curo > wrote: > > > > > > The section is "Input Hooks" (speaking of errors... but still not the > first title I'd look for this under.) > > > > > > On Fri, Feb 19, 2016 at 7:59 AM, Forrest Curo > wrote: > > > Okay, among 'examples' there is a section titled 'Output Hooks' (not, > to my mind, the most obvious titles to look for) > > > and the examples have errors: > > > ie > > > > > > ; An opcode receiver that plays a major or minor chord whenever a > > > ; Note On arrives > > > > > > function mychord (data) > > > with channel = second(data), > > > keynum = third(data), > > > velocity = fourth(data) > > > send("mp:midi", key: key, vel: vel, chan: chan) > > > send("mp:midi", key: key + pick(3,4), vel: vel, chan: chan) > > > send("mp:midi", key: key + 7, vel: vel, chan: chan) > > > end > > > > > > ;; assign receiver for the mm:on opcode (Note Ons) > > > > > > send("mp:receive", mm:on, mychord) > > > > > > ;; when you are done clear it... > > > > > > send("mp:receive", mm:on, #f) > > > ----------------------------------------------------------- > > > > > > It can be fixed, however. This works: > > > ------------------------------------------------------------- > > > function mychord (data) > > > with channel = second(data), > > > keynum = third(data), > > > velocity = fourth(data) > > > send("mp:midi", key: keynum, amp: velocity, chan: channel) > > > send("mp:midi", key: keynum + pick(3,4), amp: velocity, chan: > channel) > > > send("mp:midi", key: keynum + 7, amp: velocity, chan: channel) > > > end > > > > > > ;; assign receiver for the mm:on opcode (Note Ons) > > > > > > send("mp:receive", mm:on, mychord) > > > > > > > > > On Thu, Feb 18, 2016 at 9:10 PM, Forrest Curo > wrote: > > > I see a tutorial on sending midi out > > > > > > and ways to declare a function to be receiving midi in with specific > opcodes > > > > > > but I'm not at all clear on how such a function should be written to > extract the data when a midi message comes in. > > > > > > Examples anywhere? > > > > > > > > > > > > > > > _______________________________________________ > > > Cmdist mailing list > > > Cmdist at ccrma.stanford.edu > > > https://cm-mail.stanford.edu/mailman/listinfo/cmdist > > > > > > > > _______________________________________________ > > Cmdist mailing list > > Cmdist at ccrma.stanford.edu > > https://cm-mail.stanford.edu/mailman/listinfo/cmdist > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From benmca at gmail.com Sun Feb 21 10:48:13 2016 From: benmca at gmail.com (Ben McAllister) Date: Sun, 21 Feb 2016 10:48:13 -0800 Subject: [CM] Community of Grace/CM users? Message-ID: Hi All, I studied Computer Music with Richard Karpen in the 90s at University of Washington, where CM 1.4 and Csound were the tools of the day. I've been having a blast these past few weeks re-writing my CM 1.x pieces in Grace / CM3! Really great job on Grace - thanks so much for the documentation and examples in Grace. I found the tutorials and examples very easy to follow. I'd like to find a way to contribute more examples as I work through resuscitating my old work :) I build software for a living, but haven't used Lisp for anything except music. It would be helpful for me to have a better view of where Common Music sits alongside Lisp, Scheme, and S7. If I understand correctly, Scheme is a 'dialect' of Lisp with a rich community of users, and S7 is an extension of Scheme. Have I got that right? So, specifically to Grace, does this mean any Scheme code should run from a Grace editor window? As I refresh my memory on how to do relatively simple things in Scheme, I'm not sure if they're intended to be supported in Scheme. To take one random example, I assume I can consult the latest Scheme docs online to figure out whether or not there's an (nth x y) function in Scheme like there is in CL - there isn't, but it's straightforward to code up: (define (nth n l) (if (or (> n (length l)) (< n 0)) (error "Index out of bounds.") (if (eq? n 0) (car l) (nth (- n 1) (cdr l))))) Lastly, besides maybe Stack Overflow, it doesn't look like there is a place online where users can convene and share experiences and code except this mailing list. True? Thanks for reading and once again, great work! -- Ben McAllister | listenfaster.com | @listenfaster From bil at ccrma.Stanford.EDU Sun Feb 21 12:35:52 2016 From: bil at ccrma.Stanford.EDU (bil at ccrma.Stanford.EDU) Date: Sun, 21 Feb 2016 12:35:52 -0800 Subject: [CM] =?utf-8?q?Community_of_Grace/CM_users=3F?= In-Reply-To: References: Message-ID: A small typo: I think you meant (define (nth n l) (if (or (>= n (length l)) (< n 0)) (error "Index out of bounds.") (if (eq? n 0) (car l) (nth (- n 1) (cdr l))))) The various Schemes are less alike than the various Common Lisps -- Scheme exists in something like 40 implementations, and the implementors tend to be cantankerous and disdainful of standards. So online docs can be misleading. s7.html describes s7, and I try to stay within shouting distance of the r7rs standard, but I'd say s7 is a hybrid of what Scheme ought to be and what Common Lisp mostly is. There is often an "apropos" or "help" function to check if something is already defined. From andersvi at notam02.no Sun Feb 21 14:40:31 2016 From: andersvi at notam02.no (andersvi at notam02.no) Date: Sun, 21 Feb 2016 23:40:31 +0100 Subject: [CM] Community of Grace/CM users? References: Message-ID: <87mvqt7km8.fsf@bek.no> >>>>> "B" == Ben McAllister writes: B> As I refresh my memory on how to do relatively simple things in B> Scheme, I'm not sure if they're intended to be supported in Scheme. To B> take one random example, I assume I can consult the latest Scheme docs B> online to figure out whether or not there's an (nth x y) function in B> Scheme like there is in CL - there isn't, but it's straightforward to B> code up: Scheme is 'schemed', but many of the obvious higher level constructs are standardised through the various rNrs'es. You might have to look for different names (and possibly different semantics) from CL, fex. list-ref in scheme. -anders From treegestalt at gmail.com Sun Feb 21 16:34:34 2016 From: treegestalt at gmail.com (Forrest Curo) Date: Sun, 21 Feb 2016 16:34:34 -0800 Subject: [CM] cm rendering audio through csound in real time? In-Reply-To: References: Message-ID: If I name my fifo 'fefi.sco' I ought to be able to write to it from Grace ... but so far I'm not succeeding. I'm assuming (!) Grace would open this in 'append' mode (?) and have some provision for closing the file. Exiting the program? Stopping evaluation? So far, no luck! ? On Wed, Feb 17, 2016 at 9:57 PM, Forrest Curo wrote: > What I have in mind would take notes generated-by or received (via midi) > by cm, send them in real-time > > to a running instance of csound (which would handle the audio rendering) > > while cm records notes & timing, fnurgles these in interesting ways, and > plays back the resulting notes through csound. > > (I've noticed that specialized music programs & languages tend to hoard > the system's audio resources, which complicates things when one tries to > run two musical applications at once. > cm -- if I've got this right -- doesn't do that. And seems to have > advantages for manipulating note values, timing, etc., things which can be > done directly in csound, but relatively clumsily. ) > -------------- > The two programs could be linked via OSC, but the simplest way I've found > to send notes to csound is to run it with "-L somefifo" in the command > line, then throw score lines into that fifo. > > [Is there some easier built-in provision for real-time csound in cm, or is > it pretty much limited to producing scores to be run later?] > > -------------------------- > Will I need to keep opening-&-closing the fifo, to keep it clearing the > buffer as soon as it's time for a new score line to play? (Many programs > tend to hang on to a file they're writing to, which leads to all the notes > being held until the file is closed, when they all burst out at once.) > > Suggestions? > > Forrest Curo > San Diego > -------------- next part -------------- An HTML attachment was scrubbed... URL: From rhowiler at presby.edu Mon Feb 22 05:54:54 2016 From: rhowiler at presby.edu (Rob Howiler) Date: Mon, 22 Feb 2016 08:54:54 -0500 Subject: [CM] newbie question (sorry) In-Reply-To: <54886047.7003046.1455902390773.JavaMail.yahoo@mail.yahoo.com> References: <54886047.7003046.1455902390773.JavaMail.yahoo.ref@mail.yahoo.com> <54886047.7003046.1455902390773.JavaMail.yahoo@mail.yahoo.com> Message-ID: <78AB9FB8-AC20-4DB8-82BF-2E55FA835BF8@presby.edu> Thanks. That worked like a charm. Is there any documentation for the ?mp:midi? syntax? I imagine there is more that are more parameters I could control?.? I don?t want to keep posting newbie questions to the list, but I want to get started on making some real music. I?m still learning the language of Lisp/Common Music, but I feel like I?m ready to start making some music. Also, I?ve found an example to write a midi file that seems to work great, but again I?d like to know some more about the with-midi and mp:midi ?commands?. (with-midi (?test.mid?) (loop for t to 4 by .25 do (mp:midi t 5 (between 48 84) .1))) Thanks a whole bunch for getting me this far. Rob > On Feb 19, 2016, at 12:19 PM, Aykut Caglayan wrote: > > > Hi there, > > > (define one (new midi :time 0 > > :keynum 60 :duration 2)) > > I assume you are trying to define a function which sends a midi note out. > If this is the case, > first define it as follows: > > (define (one ) (send "mp:midi" :time 0 :key 60 :dur 1) > > ;and fire ; > > (one ) > > Sincerely, > Ike > > PS: I tested it on Grace 3.8, I doubt it if it works with older cm-emacs environment ------------------------------------------------------ Dr. Rob Howiler Academic Computing Services Coordinator Assisstant Professor of Music rhowiler at presby.edu (864) 833-8324 ------------------------------------------------------- -- ------------------------------ -------------- next part -------------- An HTML attachment was scrubbed... URL: From gary at music.mcgill.ca Mon Feb 22 09:04:54 2016 From: gary at music.mcgill.ca (Gary Scavone) Date: Mon, 22 Feb 2016 12:04:54 -0500 Subject: [CM] snd for OS-X? Message-ID: <012512AE-DD16-4F1B-9195-5DA9D54EF21A@music.mcgill.ca> Many years ago, Bill created binary versions of snd that worked on OS-X. I see some older pages on the CCRMA website about compiling it with Fink, but it seems these may be out-of-date. Do you know if anyone has done this lately and/or if someone is providing binary versions of snd for OS-X? Regards, ?gary From bil at ccrma.Stanford.EDU Mon Feb 22 09:53:34 2016 From: bil at ccrma.Stanford.EDU (bil at ccrma.Stanford.EDU) Date: Mon, 22 Feb 2016 09:53:34 -0800 Subject: [CM] =?utf-8?q?snd_for_OS-X=3F?= In-Reply-To: <012512AE-DD16-4F1B-9195-5DA9D54EF21A@music.mcgill.ca> References: <012512AE-DD16-4F1B-9195-5DA9D54EF21A@music.mcgill.ca> Message-ID: Since fink days, I tried darwinports(?) and brew, and managed to make a complete mess of my Mac. I think I have brew (or is it homebrew?) installed, and with that it used to be possible to get gtk on the Mac, but the result was very disappointing. But that was a long time ago. I'll try to get up the courage to run (home)brew again and see what happens. From k.s.matheussen at gmail.com Mon Feb 22 10:02:52 2016 From: k.s.matheussen at gmail.com (Kjetil Matheussen) Date: Mon, 22 Feb 2016 19:02:52 +0100 Subject: [CM] snd for OS-X? In-Reply-To: References: <012512AE-DD16-4F1B-9195-5DA9D54EF21A@music.mcgill.ca> Message-ID: You can also cross-compile on Linux, if you don't want to mess up a real mac: https://github.com/tpoechtrager/osxcross osxcross provides macports, so you can do for instance "osxcross-macports install gtk2" to install gtk2. (hopefully) https://github.com/tpoechtrager/osxcross/blob/master/README.MACPORTS.md I use this one to compile Radium. It was painless to set up, but maybe I was lucky. On Mon, Feb 22, 2016 at 6:53 PM, wrote: > Since fink days, I tried darwinports(?) and > brew, and managed to make a complete mess > of my Mac. I think I have brew (or is it homebrew?) > installed, and with that it used to be possible > to get gtk on the Mac, but the result was > very disappointing. But that was a long > time ago. I'll try to get up the courage to > run (home)brew again and see what happens. > > > _______________________________________________ > Cmdist mailing list > Cmdist at ccrma.stanford.edu > https://cm-mail.stanford.edu/mailman/listinfo/cmdist > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From benmca at gmail.com Mon Feb 22 23:23:57 2016 From: benmca at gmail.com (Ben McAllister) Date: Mon, 22 Feb 2016 23:23:57 -0800 Subject: [CM] sprout + csound question Message-ID: I have a process which works fine when I sprout a single time like so: (define (remix len tem) (process repeat len ... )) (sprout (remix 20 180) "remix.sco" :play #t :orchestra "sndwarp.orc" :header "my header string") Is there a way to sprout multiple processes to be played back in csound - something like: (sprout (list (remix 10 180) (remix 10 90) )) or (sprout (list (remix 10 90) "remix.sco" :play #t :orchestra "sndwarp.orc" :header "f1 0 262144 1 \"jam.aif\" 0 0 0\nf2 0 16384 9 .5 1 0 \n" (remix 10 90) "remix.sco" :play #t :orchestra "sndwarp.orc" :header "f1 0 262144 1 \"jam.aif\" 0 0 0\nf2 0 16384 9 .5 1 0 \n" )) ? I'm on Mac OS 10.11, I see my csound orc and header correctly initialized in the Audio Settings dialog, and I'm getting csound audio just fine when calling sprout with a single process - just unsure if this is supported syntax for sprout. Thanks in advance! b From rhowiler at presby.edu Tue Feb 23 05:51:59 2016 From: rhowiler at presby.edu (Rob Howiler) Date: Tue, 23 Feb 2016 08:51:59 -0500 Subject: [CM] basic question (newbie still) Message-ID: I?m trying to work through this exercise. This works as it should?.. ------------------- (define (strum2 key1 key2 rate dur amp) (let ((step (if (< key2 key1) -1 1)) (diff (abs (- key2 key1)))) (process repeat (+ diff 14) for key from key1 by 1 for beg from 0 by rate do (mp:midi :key key :time beg)))) ;;(execute) (sprout (strum2 60 72 .15 .25 .1)) ??????????? This works, but it gives an immediate chord instead of a ?scale??. -------------------- (define (strum3 key1 key2 beat dur amp) (let ((step (if (< key2 key1) -1 1)) (diff (abs (- key2 key1)))) (process repeat (+ diff 1) for key from key1 by step for beg = (now) do (mp:midi :key key) wait beat))) ;;;execute (sprout (strum3 60 63 10 10 .1)) ???????????? This seems to work, but I get no sound at all. No errors, just no sound. ???????????? (define (strum3 key1 key2 beat dur amp) (let ((step (if (< key2 key1) -1 1)) (diff (abs (- key2 key1)))) (process repeat (+ diff 1) for key from key1 by step for beg = (now) do (mp:midi :key key :time beg) wait beat))) ;;;execute (sprout (strum3 60 63 10 10 .1)) ??????????????? Any help would be appreciated. I?m going by an outdated example in the Notes From the Metalevel Book which suggests using the output (new midi :time (now) :duration?.. etc. The "new midi" isn?t being recognized. I understand the language has changed since the book was written, so I?m trying to get my head around the way things work now. Thanks again in advance. Rob ------------------------------------------------------ Dr. Rob Howiler Academic Computing Services Coordinator Assisstant Professor of Music rhowiler at presby.edu (864) 833-8324 ------------------------------------------------------- -- ------------------------------ From rhowiler at presby.edu Tue Feb 23 08:37:57 2016 From: rhowiler at presby.edu (Rob Howiler) Date: Tue, 23 Feb 2016 11:37:57 -0500 Subject: [CM] Fwd: basic question (newbie still) References: Message-ID: I?ve worked out the problem a bit. Thanks. Like I said, I?m sort of flying my the seat of my pants here?. This: ???? > (define (strum3 key1 key2 beat dur amp) > (let ((step (if (< key2 key1) -1 1)) > (diff (abs (- key2 key1)))) > (process repeat (+ diff 1) > for key from key1 by step > for beg = (now) > do > (mp:midi :key key) > wait beat))) > ;;;execute > (sprout (strum3 60 63 10 10 .1)) should be this??with wait enclose like (wait) ???????? > (define (strum3 key1 key2 beat dur amp) > (let ((step (if (< key2 key1) -1 1)) > (diff (abs (- key2 key1)))) > (process repeat (+ diff 1) > for key from key1 by step > for beg = (now) > do > (mp:midi :key key) > (wait beat)))) > ;;;execute > (sprout (strum3 60 63 10 10 .1)) That seems to do the trick to get playback as a ?scale? & not a chord. But this still gives no output: ?????????? > (define (strum3 key1 key2 beat dur amp) > (let ((step (if (< key2 key1) -1 1)) > (diff (abs (- key2 key1)))) > (process repeat (+ diff 1) > for key from key1 by step > for beg = (now) > do > (mp:midi :key key) > wait beat))) > ;;;execute > (sprout (strum3 60 63 10 10 .1)) > > > Any help would be appreciated. I?m going by an outdated example in the Notes From the Metalevel Book which suggests using the output (new midi :time (now) :duration?.. etc. The "new midi" isn?t being recognized. I understand the language has changed since the book was written, so I?m trying to get my head around the way things work now. > > Thanks again in advance. > Rob > > > > ------------------------------------------------------ > Dr. Rob Howiler > Academic Computing Services Coordinator > Assisstant Professor of Music > rhowiler at presby.edu > (864) 833-8324 > ------------------------------------------------------- > ------------------------------------------------------ Dr. Rob Howiler Academic Computing Services Coordinator Assisstant Professor of Music rhowiler at presby.edu (864) 833-8324 ------------------------------------------------------- -- ------------------------------ From rhowiler at presby.edu Tue Feb 23 13:05:04 2016 From: rhowiler at presby.edu (Rob Howiler) Date: Tue, 23 Feb 2016 16:05:04 -0500 Subject: [CM] help with repeated notes not running through a list... Message-ID: Hi - When I execute this last bit, I don't get a random distribution of octaves the way I *think* I am supposed to. It doesn't seem to cycle through the row, it just puts out a repeated pitch. Also, when I try to use :time (now) in the mp:midi section, I get no sound. If I use :time 0, things work fine. Any help would really be appreciated. Rob ----------------------------------------- (define (chance? prob) (< (random 1.0) prob)) (define (keynum->pc k) (mod k 12)) (define (retrograde-row row) (reverse row)) (define (transpose-row row to) (loop for pc in row collect (keynum->pc (+ pc)))) (define (invert-row row) (loop for pc in row collect (keynum->pc (- 12 pc)))) (define row1 '(0 1 6 7 10 11 5 4 3 9 2 8)) (define row2 (invert-row row1)) (define row3 (retrograde-row row1)) (define row4 (retrograde-row row2)) (define (ttone reps row key beat amp) (process with len = (length row) repeat reps for i from 0 for p = (mod i len) for pc = (list-ref row p) ; i mod 12 for k = (+ key pc) do (mp:midi :key k :time 0 :dur beat) (wait beat))) ;;execute (sprout (ttone 13 row1 60 2 .2)) ;;;;;;;;;This returns repeated note on execution (define (ttone2 len row key beat amp) (process repeat len for i from 0 for p = (mod i len) for pc = (list-ref row p) for n = (if (chance? .5) (+ key 12) (- key 12)) for k = (+ n pc) do (mp:midi :time 0 :key key :dur 1 :amp amp) (wait beat))) ;;;;;;;;;just a repeated note. doesn't run through row (sprout (ttone2 12 row1 55 2 .2)) (define (ttone3 len row key beat amp) (process repeat len for i from 0 for pc = (list-ref row (mod i 12)) for w = (* beat (random 4)) for n = (if (= w 0) (if (chance? .5) (+ key 12) (- key 12)) key) for k = (+ n pc) do (mp:midi :time 0 :dur beat :key key :amp amp) (wait w))) (sprout (ttone3 12 row1 55 2 .2)) -- ------------------------------ -------------- next part -------------- An HTML attachment was scrubbed... URL: From rhowiler at presby.edu Wed Feb 24 06:29:04 2016 From: rhowiler at presby.edu (Rob Howiler) Date: Wed, 24 Feb 2016 09:29:04 -0500 Subject: [CM] sprouting multiple processes Message-ID: <10FE1AE3-8534-4D79-A206-D39F499FE195@presby.edu> Hi - I am sorry to bombard the list with questions every day. It?s been helpful, though. Thanks to those who have helped me already. I?m trying to sprout multiple processes at the same time?. I?m using this syntax - the ttone3 process has already been defined and running one instance of sprout works fine. I?m trying this syntax (sprout (ttone3 arg1 arg2?.) (ttone3 arg1 arg 2?.)) It?s not working, though. Just running (sprout (ttone3 arg1 arg2?.)) works fine. Thanks for any help. Rob ------------------------------------------------------ Dr. Rob Howiler Academic Computing Services Coordinator Assisstant Professor of Music rhowiler at presby.edu (864) 833-8324 ------------------------------------------------------- -- ------------------------------ From taube at illinois.edu Wed Feb 24 06:47:43 2016 From: taube at illinois.edu (Taube, Heinrich K) Date: Wed, 24 Feb 2016 14:47:43 +0000 Subject: [CM] sprouting multiple processes In-Reply-To: <10FE1AE3-8534-4D79-A206-D39F499FE195@presby.edu> References: <10FE1AE3-8534-4D79-A206-D39F499FE195@presby.edu> Message-ID: shoud be (sprout (list (ttone3 arg1 arg2?.) (ttone3 arg1 arg 2?.) ?) ?(optional lists of start times?) ) > On Feb 24, 2016, at 8:29 AM, Rob Howiler wrote: > > (sprout (ttone3 arg1 arg2?.) > (ttone3 arg1 arg 2?.)) > From artaslynn at gmail.com Wed Feb 24 07:44:55 2016 From: artaslynn at gmail.com (Lynn Artas) Date: Wed, 24 Feb 2016 08:44:55 -0700 Subject: [CM] Cmdist Digest, Vol 94, Issue 8 In-Reply-To: References: Message-ID: Hey there, Ben?I'm an old schoolmate of yours from that time and place. I use a pseudonym on discussion lists so as not to embarrass myself or our beloved teacher with my silly questions. ; ) I'm in the same situation?starting up Grace/CM after well over a decade of doing little to nothing with it. Bill Schottstaedt just gave me the names of the following handy resources a few weeks ago on the list. Here are some links: "The Scheme Programming Language" by Dybvig http://www.scheme.com/tspl2d/ Peter Seibel's Practical Common Lisp http://www.gigamonkeys.com/book/ I think you're right about "Scheme is a 'dialect' of Lisp...and S7 is an extension of Scheme." but I'll let an expert confirm or correct. Yes, there's an (nth x y) function in Scheme. I banged my head on this one too?It's backwards from what we remember: (nth listname index) instead of (nth index listname) Cheers to middle aged dogs re-learning old tricks! On Sun, Feb 21, 2016 at 1:00 PM, wrote: > Send Cmdist mailing list submissions to > cmdist at ccrma.stanford.edu > > To subscribe or unsubscribe via the World Wide Web, visit > https://cm-mail.stanford.edu/mailman/listinfo/cmdist > or, via email, send a message with subject or body 'help' to > cmdist-request at ccrma.stanford.edu > > You can reach the person managing the list at > cmdist-owner at ccrma.stanford.edu > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of Cmdist digest..." > > > Today's Topics: > > 1. Community of Grace/CM users? (Ben McAllister) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Sun, 21 Feb 2016 10:48:13 -0800 > From: Ben McAllister > To: cm list > Subject: [CM] Community of Grace/CM users? > Message-ID: > H09Xhbw_smw at mail.gmail.com> > Content-Type: text/plain; charset=UTF-8 > > Hi All, > > I studied Computer Music with Richard Karpen in the 90s at University > of Washington, where CM 1.4 and Csound were the tools of the day. I've > been having a blast these past few weeks re-writing my CM 1.x pieces > in Grace / CM3! Really great job on Grace - thanks so much for the > documentation and examples in Grace. I found the tutorials and > examples very easy to follow. I'd like to find a way to contribute > more examples as I work through resuscitating my old work :) > > I build software for a living, but haven't used Lisp for anything > except music. It would be helpful for me to have a better view of > where Common Music sits alongside Lisp, Scheme, and S7. If I > understand correctly, Scheme is a 'dialect' of Lisp with a rich > community of users, and S7 is an extension of Scheme. Have I got that > right? > > So, specifically to Grace, does this mean any Scheme code should run > from a Grace editor window? > > As I refresh my memory on how to do relatively simple things in > Scheme, I'm not sure if they're intended to be supported in Scheme. To > take one random example, I assume I can consult the latest Scheme docs > online to figure out whether or not there's an (nth x y) function in > Scheme like there is in CL - there isn't, but it's straightforward to > code up: > > (define (nth n l) > (if (or (> n (length l)) (< n 0)) > (error "Index out of bounds.") > (if (eq? n 0) > (car l) > (nth (- n 1) (cdr l))))) > > > Lastly, besides maybe Stack Overflow, it doesn't look like there is a > place online where users can convene and share experiences and code > except this mailing list. True? > > Thanks for reading and once again, great work! > -- > Ben McAllister | listenfaster.com | @listenfaster > > > ------------------------------ > > _______________________________________________ > Cmdist mailing list > Cmdist at ccrma.stanford.edu > https://cm-mail.stanford.edu/mailman/listinfo/cmdist > > > End of Cmdist Digest, Vol 94, Issue 8 > ************************************* > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From aykut_caglayan at yahoo.com Wed Feb 24 09:43:59 2016 From: aykut_caglayan at yahoo.com (Aykut Caglayan) Date: Wed, 24 Feb 2016 17:43:59 +0000 Subject: [CM] help with repeated notes not running through a list... Message-ID: Hi Rob, > ;;;;;;;;;This returns repeated note on execution > (define (ttone2 len row key beat amp) > (process repeat len > for i from 0 > for p = (mod i len) > for pc = (list-ref row p) > for n = (if (chance? .5) > (+ key 12) > (- key 12)) > for k = (+ n pc) > do (mp:midi :time 0 :key key :dur 1 :amp amp) > (wait beat))) the updated key value - k - within the loop doesn't seem to be passed to (mp:midi :key ..). it had to be - do (mp:midi :key k :dur 1 :amp amp) and you don't need to put :time value when you are using 'process', which deals with timing by itself Ike From rhowiler at presby.edu Wed Feb 24 10:28:53 2016 From: rhowiler at presby.edu (Rob Howiler) Date: Wed, 24 Feb 2016 13:28:53 -0500 Subject: [CM] help with repeated notes not running through a list... In-Reply-To: References: Message-ID: Yep. I saw the error of my ways. I set up ?k" to be keynum, but then used ?key" in the argument list. Makes sense now. Just didn?t realize what I was doing. Still new to this?. Thanks again Rob > On Feb 24, 2016, at 12:43 PM, Aykut Caglayan wrote: > > Hi Rob, > >> ;;;;;;;;;This returns repeated note on execution >> (define (ttone2 len row key beat amp) >> (process repeat len >> for i from 0 >> for p = (mod i len) >> for pc = (list-ref row p) >> for n = (if (chance? .5) >> (+ key 12) >> (- key 12)) >> for k = (+ n pc) >> do (mp:midi :time 0 :key key :dur 1 :amp amp) >> (wait beat))) > > the updated key value - k - within the loop doesn't seem to be passed to (mp:midi :key ..). > it had to be - do (mp:midi :key k :dur 1 :amp amp) > > and you don't need to put :time value when you are using 'process', which deals with timing by itself > > Ike ------------------------------------------------------ Dr. Rob Howiler Academic Computing Services Coordinator Assisstant Professor of Music rhowiler at presby.edu (864) 833-8324 ------------------------------------------------------- -- ------------------------------ From rhowiler at presby.edu Wed Feb 24 10:59:05 2016 From: rhowiler at presby.edu (Rob Howiler) Date: Wed, 24 Feb 2016 13:59:05 -0500 Subject: [CM] MIDI channels.... Message-ID: <7160AB65-9FE8-4313-8F7F-1A323E75212A@presby.edu> Hi - This may be a Logic Pro issue, so forgive me if it turns out to be non-CM related. I?m using this code, but the separate MIDI channels don?t seem to be working. When I try it in ?real-time?, it all comes out on one channel. If I have all three MIDI tracks record-enabled in Logic, all three get all MIDI channels. That is probably a Logic/software synth issue. But when I write it to a MIDI file, it?s all on one channel, too. Thanks in advance for any help. Rob (define functions??) - these are all fine... (define (ttone3 len row key beat amp chan) (process repeat len for i from 0 for pc = (list-ref row (mod i 12)) for w = (* beat (random 4)) for n = (if (= w 0) (if (chance? .5) (+ key 12) (- key 12)) key) for k = (+ n pc) do (mp:midi :dur beat :key k :amp amp :chan chan) (wait w))) (sprout (list (ttone3 36 row1 55 .175 .2 0) (ttone3 2 row4 72 4 .2 1) (ttone3 10 row2 67 .25 .2 2)) '(0 1 12), "rowDone.mid") -- ------------------------------ From aykut_caglayan at yahoo.com Wed Feb 24 12:13:51 2016 From: aykut_caglayan at yahoo.com (Aykut Caglayan) Date: Wed, 24 Feb 2016 20:13:51 +0000 Subject: [CM] MIDI channels.... Message-ID: Did you try to activate "Auto demix by channel if multitrack recording" under Project Settings/Recording.? From rhowiler at presby.edu Wed Feb 24 14:05:41 2016 From: rhowiler at presby.edu (Rob Howiler) Date: Wed, 24 Feb 2016 17:05:41 -0500 Subject: [CM] MIDI channels.... In-Reply-To: References: Message-ID: <4701481277748781333@unknownmsgid> I didn't know that setting existed. That fixed everything. Thank you so very much! It's working like a charm now. ---------- Sent from my iPhone. Please forgive any erroneous auto-completions. ---------- > On Feb 24, 2016, at 3:13 PM, Aykut Caglayan wrote: > > Did you try to activate "Auto demix by channel if multitrack recording" under Project Settings/Recording.? -- ------------------------------