From cm at jrigg.co.uk Sat Apr 4 11:55:42 2020 From: cm at jrigg.co.uk (John Rigg) Date: Sat, 4 Apr 2020 18:55:42 +0000 Subject: [CM] [snd] Any way to limit no. of sndlib in/out ports? Message-ID: <20200404185542.GA16817@localhost.localdomain> Is there a way to limit the number of input and output jack ports that are created automatically when running snd with jackd? It can get quite awkward when using an audio interface with a lot of channels, eg. a MADI card with 64 inputs and 64 outputs. John From k.s.matheussen at gmail.com Sat Apr 4 12:11:28 2020 From: k.s.matheussen at gmail.com (Kjetil Matheussen) Date: Sat, 4 Apr 2020 21:11:28 +0200 Subject: [CM] [snd] Any way to limit no. of sndlib in/out ports? In-Reply-To: <20200404185542.GA16817@localhost.localdomain> References: <20200404185542.GA16817@localhost.localdomain> Message-ID: On Sat, Apr 4, 2020 at 8:59 PM John Rigg wrote: > > Is there a way to limit the number of input and output > jack ports that are created automatically when running > snd with jackd? It can get quite awkward when using an > audio interface with a lot of channels, eg. a MADI card > with 64 inputs and 64 outputs. > Set the environment variable SNDLIB_NUM_JACK_CHANNELS (https://ccrma.stanford.edu/software/snd/snd/grfsnd.html#sndandjack) From cm at jrigg.co.uk Sat Apr 4 12:24:17 2020 From: cm at jrigg.co.uk (John Rigg) Date: Sat, 4 Apr 2020 19:24:17 +0000 Subject: [CM] [snd] Any way to limit no. of sndlib in/out ports? In-Reply-To: References: <20200404185542.GA16817@localhost.localdomain> Message-ID: <20200404192417.GA17262@localhost.localdomain> On Sat, Apr 04, 2020 at 09:11:28PM +0200, Kjetil Matheussen wrote: > On Sat, Apr 4, 2020 at 8:59 PM John Rigg wrote: > > > > Is there a way to limit the number of input and output > > jack ports that are created automatically when running > > snd with jackd? It can get quite awkward when using an > > audio interface with a lot of channels, eg. a MADI card > > with 64 inputs and 64 outputs. > > > > Set the environment variable SNDLIB_NUM_JACK_CHANNELS > (https://ccrma.stanford.edu/software/snd/snd/grfsnd.html#sndandjack) Thanks! John From iainduncanlists at gmail.com Fri Apr 10 08:23:03 2020 From: iainduncanlists at gmail.com (Iain Duncan) Date: Fri, 10 Apr 2020 08:23:03 -0700 Subject: [CM] Examples of printing out errors in S7? Message-ID: Hi folks, I'm trying to figure out a decent first pass at error handling for scheme-for-max. Right now, if there's an error in a file someone loads into the interpreter, it just silently dies. I'd like to be able to print out some useful diagnostics, but this would be coming from the C host (at least the way I currently have it implemented it would be). If anyone knows of examples of that, that would be luverly. thanks! iain -------------- next part -------------- An HTML attachment was scrubbed... URL: From bil at ccrma.Stanford.EDU Fri Apr 10 10:15:33 2020 From: bil at ccrma.Stanford.EDU (bil at ccrma.Stanford.EDU) Date: Fri, 10 Apr 2020 10:15:33 -0700 Subject: [CM] =?utf-8?q?Examples_of_printing_out_errors_in_S7=3F?= In-Reply-To: References: Message-ID: Normally, s7_error (called either from C or scheme) sends its error message to the current error-port. It defaults to *stderr*, so in GUI-based apps, you may need to redirect the output to your interface. One example is s7/tools/grepl.c. Its evaluator function wraps up the s7_eval_c_string: old_port = s7_set_current_error_port(s7, s7_open_output_string(s7)); ... result = s7_eval_c_string(s7, text); errmsg = s7_get_output_string(s7, s7_current_error_port(s7)); ... and if errmsg is not NULL, it posts it somewhere (via glistener_append_text, since it's using the repl in glistener.c). Snd uses largely the same code (snd-motif.c and glistener.c if in gtk). See also s7.html under "glistener". If you don't want s7's error messages, you can go down a level via *error-hook*. I don't know why your program exits silently, but a first fix might be to wrap the string being evaluated in a catch (s7.html under "errors"). If you're calling s7_apply_function, you may need to make sure a catch exists. In Snd, if I remember right, this involves top_level_catch (snd.c, snd-nogui.c, etc). Or you can use s7_call instead of s7_apply_function. From iainduncanlists at gmail.com Fri Apr 10 10:37:28 2020 From: iainduncanlists at gmail.com (Iain Duncan) Date: Fri, 10 Apr 2020 10:37:28 -0700 Subject: [CM] Examples of printing out errors in S7? In-Reply-To: References: Message-ID: Thanks Bill, I'll chew on all that and see how far I can get. Much appreciated. iain On Fri, Apr 10, 2020 at 10:15 AM wrote: > Normally, s7_error (called either from C or scheme) sends its error > message > to the current error-port. It defaults to *stderr*, so in GUI-based > apps, > you may need to redirect the output to your interface. One example is > s7/tools/grepl.c. Its evaluator function wraps up the s7_eval_c_string: > > old_port = s7_set_current_error_port(s7, s7_open_output_string(s7)); > ... > result = s7_eval_c_string(s7, text); > errmsg = s7_get_output_string(s7, s7_current_error_port(s7)); > ... > > and if errmsg is not NULL, it posts it somewhere (via > glistener_append_text, > since it's using the repl in glistener.c). Snd uses largely the same > code (snd-motif.c and glistener.c if in gtk). See also s7.html under > "glistener". If you don't want s7's error messages, you can go down > a level via *error-hook*. > > I don't know why your program exits silently, but a first fix might be > to wrap the string being evaluated in a catch (s7.html under "errors"). > If you're calling s7_apply_function, you may need to make sure > a catch exists. In Snd, if I remember right, this involves > top_level_catch (snd.c, snd-nogui.c, etc). Or you can use s7_call > instead of s7_apply_function. > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From iainduncanlists at gmail.com Fri Apr 10 19:53:25 2020 From: iainduncanlists at gmail.com (Iain Duncan) Date: Fri, 10 Apr 2020 19:53:25 -0700 Subject: [CM] Examples of printing out errors in S7? In-Reply-To: References: Message-ID: Thanks Bill, the example in grepl.c is working fine for me now. I had been calling s7_load without checking the error port. I do have a question, if you have time to answer. What is the reason we need to do the gc_protect and later unprotect of the old port? If it's not something simple to explain, pointers at where I can learn more about that would be helpful too. thanks for the help, iain On Fri, Apr 10, 2020 at 10:37 AM Iain Duncan wrote: > Thanks Bill, I'll chew on all that and see how far I can get. Much > appreciated. > > iain > > On Fri, Apr 10, 2020 at 10:15 AM wrote: > >> Normally, s7_error (called either from C or scheme) sends its error >> message >> to the current error-port. It defaults to *stderr*, so in GUI-based >> apps, >> you may need to redirect the output to your interface. One example is >> s7/tools/grepl.c. Its evaluator function wraps up the s7_eval_c_string: >> >> old_port = s7_set_current_error_port(s7, s7_open_output_string(s7)); >> ... >> result = s7_eval_c_string(s7, text); >> errmsg = s7_get_output_string(s7, s7_current_error_port(s7)); >> ... >> >> and if errmsg is not NULL, it posts it somewhere (via >> glistener_append_text, >> since it's using the repl in glistener.c). Snd uses largely the same >> code (snd-motif.c and glistener.c if in gtk). See also s7.html under >> "glistener". If you don't want s7's error messages, you can go down >> a level via *error-hook*. >> >> I don't know why your program exits silently, but a first fix might be >> to wrap the string being evaluated in a catch (s7.html under "errors"). >> If you're calling s7_apply_function, you may need to make sure >> a catch exists. In Snd, if I remember right, this involves >> top_level_catch (snd.c, snd-nogui.c, etc). Or you can use s7_call >> instead of s7_apply_function. >> >> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From bil at ccrma.Stanford.EDU Sat Apr 11 05:35:47 2020 From: bil at ccrma.Stanford.EDU (bil at ccrma.Stanford.EDU) Date: Sat, 11 Apr 2020 05:35:47 -0700 Subject: [CM] =?utf-8?q?Examples_of_printing_out_errors_in_S7=3F?= In-Reply-To: References: Message-ID: <3c2636c93a948ee7cca1b5c8518fd184@ccrma.stanford.edu> > What is the reason we need to do the gc_protect and later unprotect of > the old port? It looks like I never addressed that in s7.html. There is a short explanation in s7.h under s7_gc_protect. In s7, the GC can run at any time. If you have stored a reference to an s7 object, and the GC might run during its lifetime, and its lifetime is not really short (there's a lag between the making of an object and its first possible GC), you need to protect it. It will remain protected until you unprotect it, so to avoid an ever-growing heap, you need to unprotect it. From iainduncanlists at gmail.com Sat Apr 11 16:53:04 2020 From: iainduncanlists at gmail.com (Iain Duncan) Date: Sat, 11 Apr 2020 16:53:04 -0700 Subject: [CM] Enabling Common Music in S7 Message-ID: Hi Bill and Rick, I would like to include all the common music functions in the base scheme that loads up with scheme-for-max, and ultimately I'd like to even get it to the point that one could run all the examples in Notes from the Metalevel in scheme-for-max so I can point to the book as an ideal first resource, though this will requires some work on my end to implement sprout of the max clock and so on.. I'm not clear which files scheme files I need to load to do this. Are they all distributed in the s7 tarball? If anyone can help me there, that would be lovely. I'm also wondering if it's safe/reasonable/a good idea to load up everything in stuff.scm and r7rs.scm by default or not. I can see that some of what are in there would be very useful, but I don't know see much in the docs about those two files. Comments most appreciated. thanks iain -------------- next part -------------- An HTML attachment was scrubbed... URL: From iainduncanlists at gmail.com Sat Apr 11 16:55:13 2020 From: iainduncanlists at gmail.com (Iain Duncan) Date: Sat, 11 Apr 2020 16:55:13 -0700 Subject: [CM] Enabling Common Music in S7 In-Reply-To: References: Message-ID: Also, I see that reactive.scm starts with the comment "reimplementation of code formerly in stuff.scm", so any further hints on that would be great too. thanks iain On Sat, Apr 11, 2020 at 4:53 PM Iain Duncan wrote: > Hi Bill and Rick, I would like to include all the common music functions > in the base scheme that loads up with scheme-for-max, and ultimately I'd > like to even get it to the point that one could run all the examples in > Notes from the Metalevel in scheme-for-max so I can point to the book as an > ideal first resource, though this will requires some work on my end to > implement sprout of the max clock and so on.. I'm not clear which files > scheme files I need to load to do this. Are they all distributed in the s7 > tarball? If anyone can help me there, that would be lovely. > > I'm also wondering if it's safe/reasonable/a good idea to load up > everything in stuff.scm and r7rs.scm by default or not. I can see that some > of what are in there would be very useful, but I don't know see much in the > docs about those two files. Comments most appreciated. > > thanks > iain > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bil at ccrma.Stanford.EDU Sun Apr 12 05:30:37 2020 From: bil at ccrma.Stanford.EDU (bil at ccrma.Stanford.EDU) Date: Sun, 12 Apr 2020 05:30:37 -0700 Subject: [CM] Enabling Common Music in S7 In-Reply-To: References: Message-ID: <9b21e765410f0e54dcec439621151d65@ccrma.stanford.edu> Grace's scheme files are in Resources/Scheme, I think. It won't hurt anything to load stuff.scm and r7rs.scm, but I'd recommend simply extracting the functions you need. reactive.scm is more a test of setters -- if you want to try reactive programming, it's something to look at. I don't like this style of work because it hides all the set!'s -- I wouldn't want to debug such code! From juanig at ccrma.Stanford.EDU Sun Apr 12 10:37:52 2020 From: juanig at ccrma.Stanford.EDU (Juan I Reyes) Date: Sun, 12 Apr 2020 10:37:52 -0700 Subject: [CM] Enabling Common Music in S7 Message-ID: Hi all, In the old days of CMv2-CLMv(2-3) there used to be a nice connection between CM and CLM. If I am not mistaken this is what is described on one of the last chapters of 'Notes from the Metalevel'. Also, as far as I know, some of Snd's instruments are loaded into Grace and you have the option of generating note lists (and output) straight from Grace into Snd (S7), which is nice. Nevertheless it gets tedious when you have long scorefiles or notelists, but specially when you want to use your own Snd's instruments because of a myriad of parameters that might arise when using customized instruments. For some time I have thought the other way around, a parser so that we can input CM's or Grace's note lists into Snd's instruments. In other words, what if we just generate a S7 scorefile close enough to read or parse within Snd's 'with-sound()' function. Obvioulsy this scorefile should provide Snd's instrument parameters that are also defined and manipulated within CM or Grace. A data-flow of my thinking could be something like: [Notelist-scorefile generator]--> --> --> --> [definstrument-with-sound] --> --> [audio-processing]--> [render soundfile] --> output. FTR, I am not implying a realtime implementation of the above. I think this falls more into CM-Grace's side of the equation and perhaps I might be thinking against the flow, but it would be great if it could be done. Perhaps somewhere, there is code that already has this functionality. Hope this is not so off-topic. Thanks a lot!, -- Juan Reyes > Hi Bill and Rick, I would like to include all the common music > functions in the base scheme that loads up with scheme-for-max, and > ultimately I'd like to even get it to the point that one could run > all the examples in Notes from the Metalevel in scheme-for-max so I > can point to the book as an ideal first resource, though this will > requires some work on my end to implement sprout of the max clock and > so on.. I'm not clear which files scheme files I need to load to do > this. Are they all distributed in the s7 tarball? If anyone can help > me there, that would be lovely. > > From juanig at ccrma.Stanford.EDU Sun Apr 12 16:02:55 2020 From: juanig at ccrma.Stanford.EDU (Juan I Reyes) Date: Sun, 12 Apr 2020 16:02:55 -0700 Subject: [CM] Enabling Common Music in S7 Message-ID: <7f1e760d4ea2c1e12815bdac6bd48a0d@ccrma.stanford.edu> Should focus and rephrase a bit better. -What I am looking is for a way of getting instrument calls into Snd from note events generated on CM or Grace.- On CM-2, there was an output option that will generate a note stream for a CLM instrument. Recall that in those days we would have have a Lisp image with CM on top of CLM and perhaps CMN. At the time, we were able to generate note lists, and even scorefiles on the same Lisp environment by using CM's 'process' macro and the 'events' scheduler to see or listen CM's output. For CLM's output we needed to load a compiled version of an instrument to listen to an audio file result of note events from CM. Since CLM was part of the same Lisp environment, CLM would render an audio file while the events function on CM would play it on the DAC. This was a straight forward operation once an instrument was loaded. On CM a new object was created with all its parameters, and any of those parameters could be used and manipulated within CM's 'process' macro. For example, let's say we wanted to use the FM-Violin instrument which has more than a dozen of parameters. Being the case, we would compile and load 'v.ins' which had CLM's code for the FM-Violin instrument into the Lisp environment and CM & CLM interacting with each other. We could write a process within CM that will control, say 'periodic-vibrato-rate' on each note produced. Here CM will generate note streams, CLM will render an audio file and CM's events scheduler will trigger an audio file player (DAC). For the above see pages: 325-329 from "Notes from the Metalevel." BUT NOW, we don't have CLM any more. If I remember on CM-2, the 'events' scheduler (function) will allow to generate just a '*.clm' file consisting of note streams and instrument calls. The issue as it is now is that still requires CLM as part of the Lisp image. What about if CM-2 doesn't require CLM to be loaded on the same Lisp image in order to get the '*.clm' file or scorefile?. Same thing with grace. What about if we could get the note stream or instrument calls from grace to be read on Snd?. I know that CM or Grace should know about Snd's instrument and parameters. Could we define a new object inside CM-2 or Grace describing this instrument and its parameters?, Just like we used to do when loading CLM instruments directly into CM?. Reiterating on the FM-Violin example, how can we get a note stream using CM or Grace, to be read by 'v.scm', FM-violin instrument on Snd?. Think this also helps in Iain's question in regards to a possible CM-S7-Snd interface. Thanks a lot, -- Juan > > In the old days of CMv2-CLMv(2-3) there used to be a nice connection > between CM and CLM. If I am not mistaken this is what is described > on one of the last chapters of 'Notes from the Metalevel'. > From taube at illinois.edu Sun Apr 12 16:31:43 2020 From: taube at illinois.edu (Taube, Heinrich K) Date: Sun, 12 Apr 2020 23:31:43 +0000 Subject: [CM] Enabling Common Music in S7 In-Reply-To: <7f1e760d4ea2c1e12815bdac6bd48a0d@ccrma.stanford.edu> References: <7f1e760d4ea2c1e12815bdac6bd48a0d@ccrma.stanford.edu> Message-ID: <7E4B38DA-7301-4F5E-9B07-74CA8C39094B@illinois.edu> scheme has support for writing expressions to files so you can generate note lists to a file in grace. ?Rick > On Apr 12, 2020, at 6:02 PM, Juan I Reyes wrote: > > > Should focus and rephrase a bit better. > > -What I am looking is for a way of getting instrument calls into Snd > from note events generated on CM or Grace.- > > On CM-2, there was an output option that will generate a note stream for > a CLM instrument. > > Recall that in those days we would have have a Lisp image with CM on top > of CLM and perhaps CMN. > > At the time, we were able to generate note lists, and even scorefiles on > the same Lisp environment by using CM's 'process' macro and the 'events' > scheduler to see or listen CM's output. > > For CLM's output we needed to load a compiled version of an instrument > to listen to an audio file result of note events from CM. Since CLM was > part of the same Lisp environment, CLM would render an audio file while > the events function on CM would play it on the DAC. > > This was a straight forward operation once an instrument was loaded. On > CM a new object was created with all its parameters, and any of those > parameters could be used and manipulated within CM's 'process' macro. > > For example, let's say we wanted to use the FM-Violin instrument which > has more than a dozen of parameters. Being the case, we would compile > and load 'v.ins' which had CLM's code for the FM-Violin instrument into > the Lisp environment and CM & CLM interacting with each other. We could > write a process within CM that will control, say 'periodic-vibrato-rate' > on each note produced. Here CM will generate note streams, CLM will > render an audio file and CM's events scheduler will trigger an audio > file player (DAC). > > For the above see pages: 325-329 from "Notes from the Metalevel." > > BUT NOW, we don't have CLM any more. > > If I remember on CM-2, the 'events' scheduler (function) will allow to > generate just a '*.clm' file consisting of note streams and instrument > calls. The issue as it is now is that still requires CLM as part of the > Lisp image. > > What about if CM-2 doesn't require CLM to be loaded on the same Lisp > image in order to get the '*.clm' file or scorefile?. > > Same thing with grace. What about if we could get the note stream or > instrument calls from grace to be read on Snd?. > > I know that CM or Grace should know about Snd's instrument and > parameters. Could we define a new object inside CM-2 or Grace describing > this instrument and its parameters?, Just like we used to do when > loading CLM instruments directly into CM?. > > Reiterating on the FM-Violin example, how can we get a note stream using > CM or Grace, to be read by 'v.scm', FM-violin instrument on Snd?. > > Think this also helps in Iain's question in regards to a possible > CM-S7-Snd interface. > > Thanks a lot, > > -- Juan > >> In the old days of CMv2-CLMv(2-3) there used to be a nice connection >> between CM and CLM. If I am not mistaken this is what is described >> on one of the last chapters of 'Notes from the Metalevel'. > _______________________________________________ > Cmdist mailing list > Cmdist at ccrma.stanford.edu > https://cm-mail.stanford.edu/mailman/listinfo/cmdist > From juanig at ccrma.Stanford.EDU Mon Apr 13 11:31:43 2020 From: juanig at ccrma.Stanford.EDU (Juan I Reyes) Date: Mon, 13 Apr 2020 11:31:43 -0700 Subject: [CM] Enabling Common Music in S7 Message-ID: <6c96879bf68e093051e299fd475a7a53@ccrma.stanford.edu> Thanks Rick. I'll look into it. Checked on CM-3.10.2 'ports.scm', and 'Csound scorefile only' section looks similar to what I want in order to get note-lists into Snd. -- Juan > scheme has support for writing expressions to files so you can > generate note lists to a file in grace. > From taube at illinois.edu Mon Apr 13 13:34:52 2020 From: taube at illinois.edu (Taube, Heinrich K) Date: Mon, 13 Apr 2020 20:34:52 +0000 Subject: [CM] Enabling Common Music in S7 In-Reply-To: <6c96879bf68e093051e299fd475a7a53@ccrma.stanford.edu> References: <6c96879bf68e093051e299fd475a7a53@ccrma.stanford.edu> Message-ID: > On Apr 13, 2020, at 1:31 PM, Juan I Reyes wrote: > > > Thanks Rick. > > I'll look into it. Checked on CM-3.10.2 'ports.scm', and 'Csound > scorefile only' section looks similar to what I want in order to > get note-lists into Snd. > > ? Juan Here is a simple example of writing a note list to a file using s7 and grace (let ((out (open-output-file "/Users/taube/aaaa.scm"))) (let ((cycl (make-cycle '(100 200 300 400 500))) (time 0.0)) (loop repeat 20 do (format out "(frobber :start ~S :freq ~S)~%" time (next cycl)) (set! time (+ time (between .1 .5)))) (close-output-port out)) ) ;------------------------------------------------------------------------------------ (frobber :start 0.0 :freq 100) (frobber :start 0.29972316066265614 :freq 200) (frobber :start 0.41734896938052835 :freq 300) (frobber :start 0.7418096269063896 :freq 400) (frobber :start 0.9555721817253592 :freq 500) (frobber :start 1.2632302658589594 :freq 100) (frobber :start 1.6171133577145071 :freq 200) (frobber :start 1.7517172525929892 :freq 300) (frobber :start 2.0873367070787747 :freq 400) (frobber :start 2.433905572809035 :freq 500) (frobber :start 2.7486108390787396 :freq 100) (frobber :start 3.15146102575253 :freq 200) (frobber :start 3.466651400908205 :freq 300) (frobber :start 3.5819506900247595 :freq 400) (frobber :start 4.005385637586632 :freq 500) (frobber :start 4.206394486537482 :freq 100) (frobber :start 4.620506133304502 :freq 200) (frobber :start 4.767807968224842 :freq 300) (frobber :start 4.971262815032534 :freq 400) (frobber :start 5.0903310715209615 :freq 500) > On Apr 13, 2020, at 1:31 PM, Juan I Reyes wrote: > > > Thanks Rick. > > I'll look into it. Checked on CM-3.10.2 'ports.scm', and 'Csound > scorefile only' section looks similar to what I want in order to > get note-lists into Snd. > > -- Juan > > >> scheme has support for writing expressions to files so you can >> generate note lists to a file in grace. > > > > _______________________________________________ > Cmdist mailing list > Cmdist at ccrma.stanford.edu > https://cm-mail.stanford.edu/mailman/listinfo/cmdist > From juanig at ccrma.Stanford.EDU Mon Apr 13 14:05:02 2020 From: juanig at ccrma.Stanford.EDU (Juan I Reyes) Date: Mon, 13 Apr 2020 14:05:02 -0700 Subject: [CM] Enabling Common Music in S7 Message-ID: Thanks a lot for your example Rick!. This is just what I needed. Wow, much easier than I thought. Just opening an output file and using 'format' to pipe note lists including parameters. Cheers, -- Juan > > Here is a simple example of writing a note list to a file using s7 and > grace > > (let ((out (open-output-file "/Users/taube/aaaa.scm"))) > (let ((cycl (make-cycle '(100 200 300 400 500))) > (time 0.0)) > (loop repeat 20 > do > (format out "(frobber :start ~S :freq ~S)~%" > time (next cycl)) > (set! time (+ time (between .1 .5)))) > > (close-output-port out)) > ) > From iainduncanlists at gmail.com Tue Apr 14 08:39:44 2020 From: iainduncanlists at gmail.com (Iain Duncan) Date: Tue, 14 Apr 2020 08:39:44 -0700 Subject: [CM] Examples of printing out errors in S7? In-Reply-To: <3c2636c93a948ee7cca1b5c8518fd184@ccrma.stanford.edu> References: <3c2636c93a948ee7cca1b5c8518fd184@ccrma.stanford.edu> Message-ID: Thanks Bill, that seems to be all working so far. Thanks for the explanation. I am having a weird occasional issue though, which has me worried that I could have a nasty bug in how I've set things up. In max, I've got it so that multiple s7 interpreters can be running, one in each s4m.scm object. So far no issues on this approach. I've pasted my eval helper below, adapted from the grepl.c example. So yesterday, I had this weird thing happen where one instance of the interpreter started logging a bizarre error message from this function, that didn't seem to have any relevance to what it was doing, and it was also still managing to execute code at the same time. It looked from the outside like s7_eval_string was getting called twice, once with something totally unexpected, and once with what I expect. I just wondered if there are ever cases you've seen where s7_get_output_string and s7_current_error_port could be returning the wrong errors, or stale data of some kind. I know this is all rather vague, but the behaviour has me completely flumoxed. No worries if it's too vague to even comment on. thanks iain // eval string with error logging void scm4max_s7_eval_string(t_scm4max *x, char *string_to_eval){ //post("scm4max_s7_eval_string() %s", string_to_eval); int gc_loc; s7_pointer old_port, result; const char *errmsg = NULL; char *msg = NULL; old_port = s7_set_current_error_port(x->s7, s7_open_output_string(x->s7)); gc_loc = s7_gc_protect(x->s7, old_port); s7_pointer res = s7_eval_c_string(x->s7, string_to_eval); errmsg = s7_get_output_string(x->s7, s7_current_error_port(x->s7)); if ((errmsg) && (*errmsg)){ msg = (char *)calloc(strlen(errmsg) + 1, sizeof(char)); strcpy(msg, errmsg); } s7_close_output_port(x->s7, s7_current_error_port(x->s7)); s7_set_current_error_port(x->s7, old_port); s7_gc_unprotect_at(x->s7, gc_loc); if (msg){ object_error(x, "s4m Error: %s", msg); free(msg); }else{ scm4max_post_s7_res(x, res); } } On Sat, Apr 11, 2020 at 5:35 AM wrote: > > What is the reason we need to do the gc_protect and later unprotect of > > the old port? > > It looks like I never addressed that in s7.html. There is a short > explanation in s7.h under s7_gc_protect. In s7, the GC can run > at any time. If you have stored a reference to an s7 object, > and the GC might run during its lifetime, and its lifetime > is not really short (there's a lag between the making of an object > and its first possible GC), you need to protect it. It will remain > protected until you unprotect it, so to avoid an ever-growing heap, > you need to unprotect it. > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bil at ccrma.Stanford.EDU Tue Apr 14 12:34:06 2020 From: bil at ccrma.Stanford.EDU (bil at ccrma.Stanford.EDU) Date: Tue, 14 Apr 2020 12:34:06 -0700 Subject: [CM] =?utf-8?q?Examples_of_printing_out_errors_in_S7=3F?= In-Reply-To: References: <3c2636c93a948ee7cca1b5c8518fd184@ccrma.stanford.edu> Message-ID: I don't know what happened. It's hard to debug multithreaded code, so I would first get it to work reliably with one interpreter. From iainduncanlists at gmail.com Tue Apr 14 13:27:52 2020 From: iainduncanlists at gmail.com (Iain Duncan) Date: Tue, 14 Apr 2020 13:27:52 -0700 Subject: [CM] Examples of printing out errors in S7? In-Reply-To: References: <3c2636c93a948ee7cca1b5c8518fd184@ccrma.stanford.edu> Message-ID: Thanks for taking a look Bill, it was a long shot, but thought I'd ask in case you went "oh THAT mistake..." ;-) I seem to be able to replicate it now, so there is hope! iain On Tue, Apr 14, 2020 at 12:34 PM wrote: > I don't know what happened. It's hard to debug multithreaded > code, so I would first get it to work reliably with one > interpreter. > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From bil at ccrma.Stanford.EDU Wed Apr 15 03:17:55 2020 From: bil at ccrma.Stanford.EDU (bil at ccrma.Stanford.EDU) Date: Wed, 15 Apr 2020 03:17:55 -0700 Subject: [CM] Snd 20.3 Message-ID: <6fb95e0e89f10872d2f7abdc9ea289cb@ccrma.stanford.edu> Snd 20.3 this version mostly involves internal s7 (and gtk4) changes checked: sbcl 2.0.3 Thanks!: Kjetil Matheussen From iainduncanlists at gmail.com Wed Apr 15 10:58:56 2020 From: iainduncanlists at gmail.com (Iain Duncan) Date: Wed, 15 Apr 2020 10:58:56 -0700 Subject: [CM] Release Announcement, Scheme-for-Max 0.1 Message-ID: Hi everyone, I'm excited to share that the first beta release for Scheme for Max is public. It's available as a downloadable Max 8 Package for osx (I still need to find a windows helper), and as source which should work with the max 7 or 8 SDK for windows or osx. It includes an extensive Max help file demoing all features so far. Bill, I have tried to ensure S7 and yourself are properly credited in all the documentation and pages, and have used the BSD license to ensure license compatibility. If you see anything that you would like written differently, please let me know. Next up is writing a bunch of documentation. :-) GitHub: https://github.com/iainctduncan/scheme-for-max Demo video: https://www.youtube.com/watch?v=ErirIFCTdjg Thanks everyone for the help so far! Iain -------------- next part -------------- An HTML attachment was scrubbed... URL: From bil at ccrma.Stanford.EDU Wed Apr 15 11:32:24 2020 From: bil at ccrma.Stanford.EDU (bil at ccrma.Stanford.EDU) Date: Wed, 15 Apr 2020 11:32:24 -0700 Subject: [CM] Release Announcement, Scheme-for-Max 0.1 In-Reply-To: References: Message-ID: <957d51618a5ba1ca1e88799b35802a4b@ccrma.stanford.edu> I enjoyed your video -- very impressive! I personally don't care about the license -- I just wanted to "do the right thing" by TinyScheme, since I started from their code. As I was watching, I was holding my breath, thinking "this will never work" -- and a big sigh of relief at the end. From iainduncanlists at gmail.com Wed Apr 15 11:48:09 2020 From: iainduncanlists at gmail.com (Iain Duncan) Date: Wed, 15 Apr 2020 11:48:09 -0700 Subject: [CM] Release Announcement, Scheme-for-Max 0.1 In-Reply-To: <957d51618a5ba1ca1e88799b35802a4b@ccrma.stanford.edu> References: <957d51618a5ba1ca1e88799b35802a4b@ccrma.stanford.edu> Message-ID: Thanks Bill, that's really nice to hear. I hear you on the "this will never work", I've been waiting to hit some hard walls for months, and it hasn't happened, to my immense relief! :-) The whole business of gluing S7 to Max has actually worked way better than I expected. To the point that I've been saying to Andy, "Why has no one done this yet??" haha. The multi-threading hasn't thrown up any issues, and has worked perfectly for having multiple objects in a patch (that bug I was stuck on was unrelated, in a Max object actually, and just reared it's head in threaded code) And the simplicity of the FFI has been hugely helpful, it has turned out to plug very well into Max's C SDK, which is all old-school small-talk style object coding in C. I want others to be able to hack on the C code itself too, and the difference in C readability between S7 (and Guile) vs the others (Gambit, Racket, Chez, Chicken) was immense. Even more importantly, the semantics of scheme map really, really well onto Max. I had not originally thought of making runnable s-expressions as Max messages, but it works like a hot damn. Doing something similar in JavaScript would be a nightmare. Overall, it's been a very fun project, and I think for some people it's going to be a really nice way of working in Scheme while taking advantage of things Max gives us out of the box. I'm really enjoying Rick's book and plan on making sure all the examples can run on scheme-for-max eventually too. Thanks again for making this all possible, I'm very glad I chose to do it in S7. :-) iain On Wed, Apr 15, 2020 at 11:32 AM wrote: > I enjoyed your video -- very impressive! I personally don't > care about the license -- I just wanted to "do the right thing" > by TinyScheme, since I started from their code. As I was watching, > I was holding my breath, thinking "this will never work" -- > and a big sigh of relief at the end. > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From iainduncanlists at gmail.com Thu Apr 16 23:00:31 2020 From: iainduncanlists at gmail.com (Iain Duncan) Date: Thu, 16 Apr 2020 23:00:31 -0700 Subject: [CM] Docs up for Scheme For Max Message-ID: Hi everyone, I have docs up now. If anyone reads it and wants to send any corrections, I'm all ears. Hopefully I'm representing S7 fairly accurately. https://iainctduncan.github.io/scheme-for-max-docs/ thanks -------------- next part -------------- An HTML attachment was scrubbed... URL: From iainduncanlists at gmail.com Sat Apr 18 18:53:29 2020 From: iainduncanlists at gmail.com (Iain Duncan) Date: Sat, 18 Apr 2020 18:53:29 -0700 Subject: [CM] CM's loop macro, issues/incompleteness of implementation? Message-ID: Hi everyone, there was a comment a while back that the loop macro provided by the CM scheme code is not a perfect implementation of CL's loop. I'd like to use it in Scheme for Max, but as I don't know either CL or CM well, can anyone tell me more about where this diverges or doesn't implement the "normal" CL loop macro? I want to make sure I document this properly for users coming from CL. thanks iain -------------- next part -------------- An HTML attachment was scrubbed... URL: From orm.finnendahl at selma.hfmdk-frankfurt.de Sun Apr 19 00:51:15 2020 From: orm.finnendahl at selma.hfmdk-frankfurt.de (Orm Finnendahl) Date: Sun, 19 Apr 2020 09:51:15 +0200 Subject: [CM] CM's loop macro, issues/incompleteness of implementation? In-Reply-To: References: Message-ID: <20200419075115.GB95057@t480s-orm.localdomain> Hi Iain, some of the differences out of my head: - no argument destructuring like (loop for (x y . rest) on seq while y do (display (format "~a~%" (cons (+ x y) rest)))) - no array traversal like (loop for x across my-array do (display (format "~a~%" x)) - no hash table traversal like (loop for k being the hash-key using (hash-value v) of h do (display (format "~a ~a~%" k v))) There are more things loop provides which weren't considered essential or even useful in the context of a process. IIRC things like "collect", "append" or "into" aren't present. To assemble a complete list check the loop chapter in cltl2 here: https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node235.html#SECTION003000000000000000000 More importantly there are bugs in the code when variables reference each other like this: (sprout (process for a in '(0 1 2) for b = a then (+ a 1) do (display (format "a: ~a, b: ~a~%" a b)))) -> a: 0, b: #f -> a: 1, b: 1 -> a: 2, b: 2 The expected output would be: -> a: 0, b: 0 -> a: 1, b: 2 -> a: 2, b: 3 I fixed it in the CL code base in my github repository of CM. It shouldn't be too difficult to translate that into scheme. With the current code base I think it's a good idea to advise users against cross referencing variables in the initialization and updating phase of the process form. -- Orm Am Samstag, den 18. April 2020 um 18:53:29 Uhr (-0700) schrieb Iain Duncan: > Hi everyone, there was a comment a while back that the loop macro provided > by the CM scheme code is not a perfect implementation of CL's loop. I'd > like to use it in Scheme for Max, but as I don't know either CL or CM well, > can anyone tell me more about where this diverges or doesn't implement the > "normal" CL loop macro? I want to make sure I document this properly for > users coming from CL. > > thanks > iain > _______________________________________________ > Cmdist mailing list > Cmdist at ccrma.stanford.edu > https://cm-mail.stanford.edu/mailman/listinfo/cmdist From taube at illinois.edu Sun Apr 19 05:53:57 2020 From: taube at illinois.edu (Taube, Heinrich K) Date: Sun, 19 Apr 2020 12:53:57 +0000 Subject: [CM] CM's loop macro, issues/incompleteness of implementation? In-Reply-To: <20200419075115.GB95057@t480s-orm.localdomain> References: <20200419075115.GB95057@t480s-orm.localdomain> Message-ID: <72E91A94-5FE2-4D0D-93BD-A6875EEA14B3@illinois.edu> On Apr 19, 2020, at 2:51 AM, Orm Finnendahl > wrote: There are more things loop provides which weren't considered essential or even useful in the context of a process. IIRC things like "collect", "append" or "into" aren't present. To assemble a complete list check the loop chapter in cltl2 here: the loop macro itself supports collect, append and into. (loop repeat 10 collect (random 123)) (117 63 92 31 90 116 76 99 91 11) (loop repeat 10 append (list 1 2 3)) (1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3) (loop repeat 10 collect 456 into foo finally (return (append foo foo))) (456 456 456 456 456 456 456 456 456 456 456 456 456 456 456 456 456 456 456 456) a process is sort of a loop in the sense that it iterates over time and so uses some of the same keywords but its not a loop per se. -------------- next part -------------- An HTML attachment was scrubbed... URL: From iainduncanlists at gmail.com Sun Apr 19 07:58:25 2020 From: iainduncanlists at gmail.com (Iain Duncan) Date: Sun, 19 Apr 2020 07:58:25 -0700 Subject: [CM] CM's loop macro, issues/incompleteness of implementation? In-Reply-To: <72E91A94-5FE2-4D0D-93BD-A6875EEA14B3@illinois.edu> References: <20200419075115.GB95057@t480s-orm.localdomain> <72E91A94-5FE2-4D0D-93BD-A6875EEA14B3@illinois.edu> Message-ID: Thanks Rick. I'm a bit confused, because I see you quoting a message from Orm, but for some reason I don't see that message anywhere, so i'm not able to make sense of the thread properly. Are you saying that the loop macro is a complete implementation of Common Lisp's loop macro then, but a CM process is not? I've gone through the loop chapter of Notes from the Metalevel, but don't know the CL implementation well enough to know if there is more that is missing. thanks for getting back to me iain On Sun, Apr 19, 2020 at 5:54 AM Taube, Heinrich K wrote: > On Apr 19, 2020, at 2:51 AM, Orm Finnendahl < > orm.finnendahl at selma.hfmdk-frankfurt.de> wrote: > > > There are more things loop provides which weren't considered essential > or even useful in the context of a process. IIRC things like > "collect", "append" or "into" aren't present. To assemble a complete > list check the loop chapter in cltl2 here: > > > > the loop macro itself supports collect, append and into. > > (loop repeat 10 collect (random 123)) > > (117 63 92 31 90 116 76 99 91 11) > > (loop repeat 10 append (list 1 2 3)) > > (1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3) > > (loop repeat 10 collect 456 into foo > finally (return (append foo foo))) > > (456 456 456 456 456 456 456 456 456 456 456 456 456 456 456 456 456 456 > 456 456) > > a process is sort of a loop in the sense that it iterates over time and so > uses some of the same keywords but its not a loop per se. > > _______________________________________________ > 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 iainduncanlists at gmail.com Sun Apr 19 08:01:44 2020 From: iainduncanlists at gmail.com (Iain Duncan) Date: Sun, 19 Apr 2020 08:01:44 -0700 Subject: [CM] CM's loop macro, issues/incompleteness of implementation? In-Reply-To: <20200419075115.GB95057@t480s-orm.localdomain> References: <20200419075115.GB95057@t480s-orm.localdomain> Message-ID: Ok now this is making sense, for some reason Orm's message went to my spam bin. Sorry for the confusion. Thanks Orm, I'll look through the various places you recommended. iain On Sun, Apr 19, 2020 at 12:52 AM Orm Finnendahl < orm.finnendahl at selma.hfmdk-frankfurt.de> wrote: > Hi Iain, > > some of the differences out of my head: > > - no argument destructuring like > > (loop for (x y . rest) on seq > while y > do (display (format "~a~%" (cons (+ x y) rest)))) > > - no array traversal like > > (loop for x across my-array do (display (format "~a~%" x)) > > - no hash table traversal like > > (loop for k > being the hash-key > using (hash-value v) of h > do (display (format "~a ~a~%" k v))) > > There are more things loop provides which weren't considered essential > or even useful in the context of a process. IIRC things like > "collect", "append" or "into" aren't present. To assemble a complete > list check the loop chapter in cltl2 here: > > > https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node235.html#SECTION003000000000000000000 > > More importantly there are bugs in the code when variables reference > each other like this: > > (sprout > (process > for a in '(0 1 2) > for b = a then (+ a 1) > do (display (format "a: ~a, b: ~a~%" a b)))) > > -> a: 0, b: #f > -> a: 1, b: 1 > -> a: 2, b: 2 > > The expected output would be: > > -> a: 0, b: 0 > -> a: 1, b: 2 > -> a: 2, b: 3 > > I fixed it in the CL code base in my github repository of CM. It > shouldn't be too difficult to translate that into scheme. > > With the current code base I think it's a good idea to advise users > against cross referencing variables in the initialization and updating > phase of the process form. > > -- > Orm > > > Am Samstag, den 18. April 2020 um 18:53:29 Uhr (-0700) schrieb Iain Duncan: > > Hi everyone, there was a comment a while back that the loop macro > provided > > by the CM scheme code is not a perfect implementation of CL's loop. I'd > > like to use it in Scheme for Max, but as I don't know either CL or CM > well, > > can anyone tell me more about where this diverges or doesn't implement > the > > "normal" CL loop macro? I want to make sure I document this properly for > > users coming from CL. > > > > thanks > > iain > > > _______________________________________________ > > 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 taube at illinois.edu Sun Apr 19 08:19:36 2020 From: taube at illinois.edu (Taube, Heinrich K) Date: Sun, 19 Apr 2020 15:19:36 +0000 Subject: [CM] Fwd: CM's loop macro, issues/incompleteness of implementation? References: <90DD4656-72D9-4F14-8DA7-DB6E754694D6@illinois.edu> Message-ID: <788BCE9A-ADC0-4C80-B5C6-5BB4F1815E2B@illinois.edu> Begin forwarded message: From: Rick Taube > Subject: Re: [CM] CM's loop macro, issues/incompleteness of implementation? Date: April 19, 2020 at 10:18:13 AM CDT To: Iain Duncan > Iain, the (loop ?) macro that I implemented in grace?s s7 is a large subset of the full-blown common lisp loop facility. (and I believe some years ago it was added to chicken scheme as some sort of add on package) im not exactly sure what you are trying to do by I doubt you are interested in cm?s processes or composition stuff because that would require juce/c++ support. but you should be able to take the version of loop i have in grace?s scheme files and drop it in "as is? in your s7/max environment. On Apr 19, 2020, at 9:58 AM, Iain Duncan > wrote: Thanks Rick. I'm a bit confused, because I see you quoting a message from Orm, but for some reason I don't see that message anywhere, so i'm not able to make sense of the thread properly. Are you saying that the loop macro is a complete implementation of Common Lisp's loop macro then, but a CM process is not? I've gone through the loop chapter of Notes from the Metalevel, but don't know the CL implementation well enough to know if there is more that is missing. -------------- next part -------------- An HTML attachment was scrubbed... URL: From iainduncanlists at gmail.com Sun Apr 19 08:30:23 2020 From: iainduncanlists at gmail.com (Iain Duncan) Date: Sun, 19 Apr 2020 08:30:23 -0700 Subject: [CM] Fwd: CM's loop macro, issues/incompleteness of implementation? In-Reply-To: <788BCE9A-ADC0-4C80-B5C6-5BB4F1815E2B@illinois.edu> References: <90DD4656-72D9-4F14-8DA7-DB6E754694D6@illinois.edu> <788BCE9A-ADC0-4C80-B5C6-5BB4F1815E2B@illinois.edu> Message-ID: Thanks for the clarification Rick. My main goal is to make Scheme For Max have an optional load layer that includes everything someone might want for getting existing lisp computer music code working on S4M with minimal adjustment. The way I have things working, it will be easy to turn that off and run plain S7 if desired. I had plans already for something quite similar to CM's processes for Max, so I'm hoping I can make it client code compatible (or nearly so) with CM eventually too. Ideally a user could take CM code and run it with minimal adjustment in a Max host or on Max for Live. We'll see how feasible that turns out to be! I'd also really like to point people at Notes from the Metalevel as the best intro resource, it's perfect for a someone who knows music but is new to lisp. Really well written BTW, I love the book! :-) So I'm planning on page in the docs with details on what you can or can't do from the book direct in Scheme for Max, and taking examples from Notes to make regression tests so I know which work. With regard to sprouting processes, Max has a way for SDK functions to hook into the global transport, so I'll try to rustle something up with that. Great to hear it was added to Chicken too, which is on my learning list for working with in a non-embedded context. On Sun, Apr 19, 2020 at 8:20 AM Taube, Heinrich K wrote: > > > Begin forwarded message: > > *From: *Rick Taube > *Subject: **Re: [CM] CM's loop macro, issues/incompleteness of > implementation?* > *Date: *April 19, 2020 at 10:18:13 AM CDT > *To: *Iain Duncan > > Iain, the (loop ?) macro that I implemented in grace?s s7 is a large > subset of the full-blown common lisp loop facility. (and I believe some > years ago it was added to chicken scheme as some sort of add on package) > > im not exactly sure what you are trying to do by I doubt you are > interested in cm?s processes or composition stuff because that would > require juce/c++ support. > > but you should be able to take the version of loop i have in grace?s > scheme files and drop it in "as is? in your s7/max environment. > > > On Apr 19, 2020, at 9:58 AM, Iain Duncan > wrote: > > Thanks Rick. I'm a bit confused, because I see you quoting a message from > Orm, but for some reason I don't see that message anywhere, so i'm not able > to make sense of the thread properly. Are you saying that the loop macro is > a complete implementation of Common Lisp's loop macro then, but a CM > process is not? I've gone through the loop chapter of Notes from the > Metalevel, but don't know the CL implementation well enough to know if > there is more that is missing. > > > > _______________________________________________ > 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 iainduncanlists at gmail.com Tue Apr 21 07:36:57 2020 From: iainduncanlists at gmail.com (Iain Duncan) Date: Tue, 21 Apr 2020 07:36:57 -0700 Subject: [CM] info on the object model used in CM Message-ID: Hi folks, I'm wondering if there is a reference anywhere to the object model used in Common Music. I'm mostly familiar with Scheme now (and at that, not much!) so I'd like to read more about it, but wasn't sure if this is a common lisp model or what. I've just been using the dead simple functions-as-closure-objects so far but am keen to learn more. thanks iain -------------- next part -------------- An HTML attachment was scrubbed... URL: From iainduncanlists at gmail.com Thu Apr 30 08:34:37 2020 From: iainduncanlists at gmail.com (Iain Duncan) Date: Thu, 30 Apr 2020 08:34:37 -0700 Subject: [CM] Does Grace run on Windows 10? Message-ID: Hi Rick and others, I have some early Scheme For Max users asking me about learning S7 scheme, and I wanted to point them at Grace as a nice environment to learn in, but they are on windows and the last Grace release was 2014. Does anyone know if Grace works on Windows 10? Or if there are plans to do another release to support it? (sorry I don't have windows 10 so can't just try it out) Thanks Iain -------------- next part -------------- An HTML attachment was scrubbed... URL: From iainduncanlists at gmail.com Thu Apr 30 10:31:47 2020 From: iainduncanlists at gmail.com (Iain Duncan) Date: Thu, 30 Apr 2020 10:31:47 -0700 Subject: [CM] Does Grace run on Windows 10? In-Reply-To: <1281240320.1020565.1588267233178.JavaMail.zimbra@laposte.net> References: <1281240320.1020565.1588267233178.JavaMail.zimbra@laposte.net> Message-ID: Ah fantastic, thanks Philippe, good to know it works on Win 10. (Cc'ing the list so others can find this information too) Rick, any chance we can update the Grace landing page to indicate that? (if you are busy and don't mind giving me access, I'm happy to do that myself, if that is at all helpful) iain On Thu, Apr 30, 2020 at 10:20 AM wrote: > Hi, I'm only a Grace user (I realy love it), and it's works perfectly on > Windows 10. > Best Regards > PhC > > ------------------------------ > *De: *"Iain Duncan" > *?: *cmdist at ccrma.Stanford.EDU > *Envoy?: *Jeudi 30 Avril 2020 17:34:37 > *Objet: *[CM] Does Grace run on Windows 10? > > Hi Rick and others, I have some early Scheme For Max users asking me about > learning S7 scheme, and I wanted to point them at Grace as a nice > environment to learn in, but they are on windows and the last Grace release > was 2014. Does anyone know if Grace works on Windows 10? Or if there are > plans to do another release to support it? (sorry I don't have windows 10 > so can't just try it out) > > Thanks > Iain > > _______________________________________________ > 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 iainduncanlists at gmail.com Thu Apr 30 10:35:40 2020 From: iainduncanlists at gmail.com (Iain Duncan) Date: Thu, 30 Apr 2020 10:35:40 -0700 Subject: [CM] Error on CM page for Notes from Metalevel Message-ID: Hi Rick, I thought you might want to know that the link on the CM landing page for Notes is busted, it's going to a general landing page for the publisher right now. iain -------------- next part -------------- An HTML attachment was scrubbed... URL: From taube at illinois.edu Thu Apr 30 10:47:37 2020 From: taube at illinois.edu (Taube, Heinrich K) Date: Thu, 30 Apr 2020 17:47:37 +0000 Subject: [CM] Does Grace run on Windows 10? In-Reply-To: References: <1281240320.1020565.1588267233178.JavaMail.zimbra@laposte.net> Message-ID: I have not been able to get the latest version of Grace running in Windows, at least not yet. I could compile and link but Im doing something wrong because I cant get communication between grace and s7 working. Worse I have had no time at all for the past few weeks to look at it since the covid pandemic started. If you have windows and want to try you can pull the sources from https://github.com/ricktaube/grace.git ?Rick ________________________________ Rick Taube Chair, Composition/Theory School of Music University of Illinois Urbana-Champaign Email: taube at illinois.edu President, Illiac Software Inc. https://harmonia.illiacsoftware.com/ Email: taube at illiacsoftware.com On Apr 30, 2020, at 12:31 PM, Iain Duncan > wrote: Ah fantastic, thanks Philippe, good to know it works on Win 10. (Cc'ing the list so others can find this information too) Rick, any chance we can update the Grace landing page to indicate that? (if you are busy and don't mind giving me access, I'm happy to do that myself, if that is at all helpful) iain On Thu, Apr 30, 2020 at 10:20 AM > wrote: Hi, I'm only a Grace user (I realy love it), and it's works perfectly on Windows 10. Best Regards PhC ________________________________ De: "Iain Duncan" > ?: cmdist at ccrma.Stanford.EDU Envoy?: Jeudi 30 Avril 2020 17:34:37 Objet: [CM] Does Grace run on Windows 10? Hi Rick and others, I have some early Scheme For Max users asking me about learning S7 scheme, and I wanted to point them at Grace as a nice environment to learn in, but they are on windows and the last Grace release was 2014. Does anyone know if Grace works on Windows 10? Or if there are plans to do another release to support it? (sorry I don't have windows 10 so can't just try it out) Thanks Iain _______________________________________________ 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 iainduncanlists at gmail.com Thu Apr 30 11:17:31 2020 From: iainduncanlists at gmail.com (Iain Duncan) Date: Thu, 30 Apr 2020 11:17:31 -0700 Subject: [CM] Does Grace run on Windows 10? In-Reply-To: References: <1281240320.1020565.1588267233178.JavaMail.zimbra@laposte.net> Message-ID: Hi Rick, thanks for the update. I have plans to setup a windows machine for doing Scheme for Max on windows. I'll ping the list when I have done so and can pitch in. I'm also doing some Juce development with S7 for my own purposes that I want to have work on windows (various music training apps), so I should be able to help out once I wrap my head around windows development. I anticipate having a fair bit of time over the next two months as I think we're about to see a pretty big lull for my work with the private equity tech assessments... :-/ On Thu, Apr 30, 2020 at 10:47 AM Taube, Heinrich K wrote: > I have not been able to get the latest version of Grace running in > Windows, at least not yet. I could compile and link but Im doing something > wrong because I cant get communication between grace and s7 working. Worse > I have had no time at all for the past few weeks to look at it since the > covid pandemic started. > If you have windows and want to try you can pull the sources from > > https://github.com/ricktaube/grace.git > > ?Rick > ________________________________ > Rick Taube > Chair, Composition/Theory > School of Music > University of Illinois Urbana-Champaign > Email: taube at illinois.edu > President, Illiac Software Inc. > https://harmonia.illiacsoftware.com/ > Email: taube at illiacsoftware.com > > > On Apr 30, 2020, at 12:31 PM, Iain Duncan > wrote: > > Ah fantastic, thanks Philippe, good to know it works on Win 10. (Cc'ing > the list so others can find this information too) > > Rick, any chance we can update the Grace landing page to indicate that? > (if you are busy and don't mind giving me access, I'm happy to do that > myself, if that is at all helpful) > > iain > > On Thu, Apr 30, 2020 at 10:20 AM wrote: > >> Hi, I'm only a Grace user (I realy love it), and it's works perfectly on >> Windows 10. >> Best Regards >> PhC >> >> ------------------------------ >> *De: *"Iain Duncan" >> *?: *cmdist at ccrma.Stanford.EDU >> *Envoy?: *Jeudi 30 Avril 2020 17:34:37 >> *Objet: *[CM] Does Grace run on Windows 10? >> >> Hi Rick and others, I have some early Scheme For Max users asking me >> about learning S7 scheme, and I wanted to point them at Grace as a nice >> environment to learn in, but they are on windows and the last Grace release >> was 2014. Does anyone know if Grace works on Windows 10? Or if there are >> plans to do another release to support it? (sorry I don't have windows 10 >> so can't just try it out) >> >> Thanks >> Iain >> >> _______________________________________________ >> 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: