From ppagano at bellsouth.net Fri Sep 6 16:47:39 2002 From: ppagano at bellsouth.net (shreeswifty) Date: Fri, 6 Sep 2002 19:47:39 -0400 Subject: [CM] snd on a ibook Message-ID: <000501c255ff$c914cc00$7fa14ed8@gnv.bellsouth.net> Hi folks i am getting a funky error when trying to build snd on OSX can someone remind me about the Xm.h and Xt.h stuff? Pat Pagano, Director South East Just Intonation Society http://www.screwmusicforever.com/SHREESWIFT/ http://www.digitalworlds.ufl.edu From ppagano at bellsouth.net Fri Sep 6 16:57:06 2002 From: ppagano at bellsouth.net (shreeswifty) Date: Fri, 6 Sep 2002 19:57:06 -0400 Subject: [CM] _nl_langinfo Message-ID: <000e01c25601$1af030e0$7fa14ed8@gnv.bellsouth.net> I am getting this error when i try to compile snd any hints?? Pat Pagano, Director South East Just Intonation Society http://www.screwmusicforever.com/SHREESWIFT/ http://www.digitalworlds.ufl.edu From cewing at u.washington.edu Sat Sep 7 14:27:13 2002 From: cewing at u.washington.edu (cristopher pierson ewing) Date: Sat, 7 Sep 2002 14:27:13 -0700 (PDT) Subject: [CM] Two LISP Questions Message-ID: Hello all, Two questions, 1. Has anybody else noticed that CLISP doesn't seem to have the function (change-class) implemented? Is my version screwy in some way? 2. In common lisp, is there a function or anything that one can use to find out what type of lisp is being used? I have created two types of objects to store time-code values, one in HH:MM:SS.SS format, and one in SMPTE format HH:MM:SS:FRAMES. I have also created two types of ways to convert one to the other, in ACL i have a "change-class" that properly converts frames to fractions of seconds and the same in reverse, and since CLISP doesn't seem to implement change-class (see above) a method for each object type that returns an object of the opposite type. I would like to be able to query the lisp system to find out what type of lisp is being used so that I can decide intelligently which to use in a given situation, but I can't figure out what to use to find this out. Any ideas? C ******************************** Cris Ewing CARTAH Assistant University of Washington Home Phone: (206) 365-3413 E-mail: cewing at u.washington.edu ******************************* From cewing at u.washington.edu Sat Sep 7 14:33:29 2002 From: cewing at u.washington.edu (cristopher pierson ewing) Date: Sat, 7 Sep 2002 14:33:29 -0700 (PDT) Subject: [CM] Two LISP Questions In-Reply-To: Message-ID: Oh, woops, I found the answer to question #2 in CLTL2 (sheepish grin) I still wonder about #1, though. Cris On Sat, 7 Sep 2002, cristopher pierson ewing wrote: > Hello all, > > Two questions, > > 1. Has anybody else noticed that CLISP doesn't seem to have the function > (change-class) implemented? Is my version screwy in some way? > > 2. In common lisp, is there a function or anything that one can use to > find out what type of lisp is being used? I have created two types of > objects to store time-code values, one in HH:MM:SS.SS format, and one in > SMPTE format HH:MM:SS:FRAMES. I have also created two types of ways to > convert one to the other, in ACL i have a "change-class" that properly > converts frames to fractions of seconds and the same in reverse, and since > CLISP doesn't seem to implement change-class (see above) a method for each > object type that returns an object of the opposite type. I would like to > be able to query the lisp system to find out what type of lisp is being > used so that I can decide intelligently which to use in a given situation, > but I can't figure out what to use to find this out. > > Any ideas? > > C > > ******************************** > Cris Ewing > CARTAH Assistant > University of Washington > Home Phone: (206) 365-3413 > E-mail: cewing at u.washington.edu > ******************************* > > > _______________________________________________ > Cmdist mailing list > Cmdist at ccrma.stanford.edu > http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist > From dbaker1587 at earthlink.net Sun Sep 8 17:38:41 2002 From: dbaker1587 at earthlink.net (David Baker) Date: Sun, 08 Sep 2002 20:38:41 -0400 Subject: [CM] Guile 1.6.0 Message-ID: <3D7BED91.764EC1E6@earthlink.net> I see the FSF has put a guile-1.6.0 on its main site. Does this hurt or help snd? drb From m at michael-edwards.org Sun Sep 8 00:38:32 2002 From: m at michael-edwards.org (Michael Edwards) Date: Sun, 08 Sep 2002 09:38:32 +0200 Subject: [CM] Two LISP Questions References: Message-ID: <3D7AFE78.179A9F45@michael-edwards.org> Yup, that's right, no change-class in clisp, they even admit it in the release notes. Quite inconvenient, no? Michael cristopher pierson ewing wrote: > > Oh, woops, I found the answer to question #2 in CLTL2 (sheepish grin) > > I still wonder about #1, though. > > Cris > > On Sat, 7 Sep 2002, cristopher pierson ewing wrote: > > > Hello all, > > > > Two questions, > > > > 1. Has anybody else noticed that CLISP doesn't seem to have the function > > (change-class) implemented? Is my version screwy in some way? > > > > 2. In common lisp, is there a function or anything that one can use to > > find out what type of lisp is being used? I have created two types of > > objects to store time-code values, one in HH:MM:SS.SS format, and one in > > SMPTE format HH:MM:SS:FRAMES. I have also created two types of ways to > > convert one to the other, in ACL i have a "change-class" that properly > > converts frames to fractions of seconds and the same in reverse, and since > > CLISP doesn't seem to implement change-class (see above) a method for each > > object type that returns an object of the opposite type. I would like to > > be able to query the lisp system to find out what type of lisp is being > > used so that I can decide intelligently which to use in a given situation, > > but I can't figure out what to use to find this out. > > > > Any ideas? > > > > C > > > > ******************************** > > Cris Ewing > > CARTAH Assistant > > University of Washington > > Home Phone: (206) 365-3413 > > E-mail: cewing at u.washington.edu > > ******************************* > > > > > > _______________________________________________ > > Cmdist mailing list > > Cmdist at ccrma.stanford.edu > > http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist > > > > _______________________________________________ > Cmdist mailing list > Cmdist at ccrma.stanford.edu > http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist From bil at ccrma.Stanford.EDU Mon Sep 9 05:02:06 2002 From: bil at ccrma.Stanford.EDU (Bill Schottstaedt) Date: Mon, 9 Sep 2002 05:02:06 -0700 Subject: [CM] Re: Guile 1.6.0 Message-ID: <200209091202.FAA21985@cmn14.stanford.edu> > I see the FSF has put a guile-1.6.0 on its main site. Does this hurt or > help snd? It definitely helps. From bil at ccrma.Stanford.EDU Mon Sep 9 05:23:41 2002 From: bil at ccrma.Stanford.EDU (Bill Schottstaedt) Date: Mon, 9 Sep 2002 05:23:41 -0700 Subject: [CM] snd on a ibook In-Reply-To: <000501c255ff$c914cc00$7fa14ed8@gnv.bellsouth.net> References: <000501c255ff$c914cc00$7fa14ed8@gnv.bellsouth.net> Message-ID: <200209091223.FAA22028@cmn14.stanford.edu> > i am getting a funky error when trying to build snd on OSX > can someone remind me about the Xm.h and Xt.h stuff? You need to fix the makefile generated by configure to look for libXm.a and libXt.a (see makefile.motif.osx for example). I think libXm.a is at ccrma-ftp. Something has changed in the more recent Darwin so playing sounds may not work -- I need to poke around for documentation (groan -- last time I had to do this, it took several hours of wading through a mailing list archive). From bil at ccrma.Stanford.EDU Mon Sep 16 05:03:14 2002 From: bil at ccrma.Stanford.EDU (Bill Schottstaedt) Date: Mon, 16 Sep 2002 05:03:14 -0700 Subject: [CM] snd 6.1 Message-ID: <200209161203.FAA01935@cmn14.stanford.edu> snd 6.1: new version of contrib/edit123.scm from Tom Roth. bess.scm (translation of CLM's bess.cl to Guile/sndlib/libxm) added save-state-hook. more resources and procedures in xm.c (XmWM protocol stuff, add-resource, etc) added filter-control-coeffs (for use with CLM's FIR-filter) added translator for IBM adpcm taken from Perry Cook's adpcmdec.c the "temporary" phase-vocoder internal array names have finally been rationalized added set-channel-drop example in snd-motif.scm --with-modules configuration switch to put sndlib names in (Guile) modules. I can't decide whether this shuffle would buy anything in xm or Snd. the time|lisp|transform graph-styles are now full-fledged variables, not some bit-wise hack (change to extensions.scm etc). graph-lisp|time|transform? inverted to be lisp|time|transform-graph? graph-time-once -> graph-once graph-transform-once -> graph-once graph-time-as-wavogram -> graph-as-wavogram graph-transform-as-sonogram -> graph-as-sonogram graph-transform-as-spectrogram -> graph-as-spectrogram. dont-normalize-transform -> dont_normalize normalize-transform-by-channel -> normalize-by-channel normalize-transform-by-sound -> normalize-by-sound normalize-transform-globally -> normalize-globally set-oss-buffers -> mus-audio-set-oss-buffers old forms are defined in snd6.scm (and are currently built-in) removed gtk-1 and gtkextra support. removed NeXT audio support (and other unused code in audio.c). removed (very obsolete, undocumented) names in "set-" -- to restore them, build Snd with -DWITH_SET_NAME=1 checked: gtkglext 0.5.1, guile-1.5.7, guile-1.6.0, Solaris 2.9 ccrma-ftp rpm's now use guile 1.6.0 bugfixes: Michael Scholz, Fernando Lopez-Lezcano bug reports: Ludger Brummer, Max Mathews, Stephen David Beck, Stephan Schwandter From wsack at acsu.buffalo.edu Thu Sep 19 09:00:57 2002 From: wsack at acsu.buffalo.edu (Bill Sack) Date: Thu, 19 Sep 2002 12:00:57 -0400 Subject: [CM] CMN - ligature marks Message-ID: <3D89F4B9.5080505@acsu.buffalo.edu> Hello all, i'm using cmn to notate some transcriptions of renaissance and late medieval music. i'm looking for a way to display the mark transcribers use to indicate there was a ligature in the original music (if you don't know what i'm talking about, lucky you). it's a square bracket, similar to a beat subdivision bracket, that goes above the staff over the notes that were originally ligated. i tried to make something simple with apply #'mark etc., but it can only be attached to one note and won't span two or more. so i need to make something like begin-slur, end-slur and friends. before i unplug the phone, roll up my sleeves, and dig into the cmn code, i wonder: has anyone on the list already made such a thing that they would like to share? -bill -- _________ Bill Sack wsack at acsu.buffalo.edu ---------------------- From anders.vinjar at notam02.no Fri Sep 20 01:49:40 2002 From: anders.vinjar at notam02.no (Anders Vinjar) Date: 20 Sep 2002 10:49:40 +0200 Subject: [CM] CMN - ligature marks In-Reply-To: <3D89F4B9.5080505@acsu.buffalo.edu> References: <3D89F4B9.5080505@acsu.buffalo.edu> Message-ID: >>> "BS" == Bill Sack writes: BS> i'm looking for a way to display the mark transcribers BS> use to indicate there was a ligature in the original BS> music (if you don't know what i'm talking about, lucky BS> you). Heres a general duration-bracket mark which might provide you with a start. Called with an empty string as argument it just places a bracket over the notes in question. (cmn (c5 q (begin-duration-bracket "")) g4 q (c4 q (end-duration-bracket))) -------------- next part -------------- A non-text attachment was scrubbed... Name: duration-bracket.lisp Type: application/octet-stream Size: 13236 bytes Desc: duration-bracket URL: From bil at ccrma.Stanford.EDU Fri Sep 20 04:38:18 2002 From: bil at ccrma.Stanford.EDU (Bill Schottstaedt) Date: Fri, 20 Sep 2002 04:38:18 -0700 Subject: [CM] bowed string physical model from Juan Reyes Message-ID: <200209201138.EAA07727@cmn14.stanford.edu> Juan Reyes has donated a bowed string physical model (for CLM) named strad.ins. From carl.boingie at rcn.com Fri Sep 20 10:50:31 2002 From: carl.boingie at rcn.com (Carl Edwards) Date: Fri, 20 Sep 2002 13:50:31 -0400 Subject: [CM] bowed string physical model from Juan Reyes References: <200209201138.EAA07727@cmn14.stanford.edu> Message-ID: <005601c260ce$3739f5b0$1cf17ad1@laptop> That's great-- Thanks Juan (and Bill)! Can we find a copy online? Carl Edwards Subject: [CM] bowed string physical model from Juan Reyes > Juan Reyes has donated a bowed string physical model (for CLM) > named strad.ins. From dlphilp at bright.net Fri Sep 20 09:00:45 2002 From: dlphilp at bright.net (Dave Phillips) Date: Fri, 20 Sep 2002 12:00:45 -0400 Subject: [CM] [OT] Linux soundapps pages updated References: <20020905223423.B25964@vergenet.net> Message-ID: <3D8B462D.BC1F952C@bright.net> Greetings: Yes, I finally got around to it. You all know the drill... http://linux-sound.org (USA) http://www.linuxsound.at (Europe) http://www.ymo.org/linuxsound/ (Japan) As usual the Japanese site will not be updated until after midnight tonight (their time). Enjoy ! Best regards, == Dave Phillips The Book Of Linux Music & Sound at http://www.nostarch.com/lms.htm The Linux Soundapps Site at http://linux-sound.org Currently listening to: John Coltrane, "After The Rain" From cewing at u.washington.edu Thu Sep 26 12:46:17 2002 From: cewing at u.washington.edu (cristopher pierson ewing) Date: Thu, 26 Sep 2002 12:46:17 -0700 (PDT) Subject: [CM] A CLOS question Message-ID: I am working on a problem in which I would like to create an object, compare it to several other objects, and if it matches, change it into a different type of object. My problem is that in ACL, there is a function change-abject that lets me perform the change easily and in a defined way, but in CLISP there is no such thing. I can write a function in CLISP that will do what I want, but then I have to build my program to call the correct function name depending on whether I am using CLISP or ACL. I would prefer to be able to write an intelligent function (with only one name) that checks to see what type of lisp I am in, and then performs the proper operation. That way, the code for checking which lisp is being used need only exist in one place, rather than many. My question is this, can I create a file to be loaded when I start working that checks to see what type of lisp is being used, and then either uses the already-existing change-class or uses the one I write for stupid lisps which lack such a useful function? Thanks for any suggestions, and let me know if you need more information about the particulars of my situation. Cris ******************************** Cris Ewing CARTAH Assistant University of Washington Home Phone: (206) 365-3413 E-mail: cewing at u.washington.edu ******************************* From taube at uiuc.edu Thu Sep 26 13:08:03 2002 From: taube at uiuc.edu (Rick Taube) Date: Thu, 26 Sep 2002 15:08:03 -0500 Subject: [CM] A CLOS question In-Reply-To: References: Message-ID: Hi chris, use something like #+EXCL (defun whatever ...) #-EXCL (defun whatever ...) to distinguish between acl and not acl the #+ and #- checks *features* before it evaluates a form. each lisp has its own set of features, so #+MCL evalutes if the lisp is mcl and #+ CLISP is for clisp and so on. if you look and src/cm.lisp or src/port.lisp you will find lots of examples. clm sources are filled with these as well. From cewing at u.washington.edu Thu Sep 26 21:29:55 2002 From: cewing at u.washington.edu (cristopher pierson ewing) Date: Thu, 26 Sep 2002 21:29:55 -0700 (PDT) Subject: [CM] A question of methods Message-ID: Okay, another CLOS question: I have an object (let's call it a cue) with a slot that is a list of times (let's call the slot goals), I wish to ensure, any time that the slot value of goals is changed in any cue, that the resulting list is in chronological order. So, for example: (setf my-cue (make-instance 'cue :goals '(1 2 3 4))) (slot-value my-cue 'goals) -> (1 2 3 4) (setf (slot-value my-cue 'goals) (append (slot-value my-cue 'goals '(1.5 2.5 3.5)))) would normally return -> (1 2 3 4 1.5 2.5 3.5) but since i'd created this nifty method, it would instead return -> (1 1.5 2 2.5 3 3.5 4) Any ideas how to do this? I understand that you can set methods to happen :before and :after and so on, but i'm not sure how exactly to do that. Any help is greatly appreciated! Cris ******************************** Cris Ewing CARTAH Assistant University of Washington Home Phone: (206) 365-3413 E-mail: cewing at u.washington.edu ******************************* From taube at uiuc.edu Fri Sep 27 03:23:57 2002 From: taube at uiuc.edu (Rick Taube) Date: Fri, 27 Sep 2002 05:23:57 -0500 Subject: [CM] A question of methods In-Reply-To: References: Message-ID: if you use accessors instead of slot-value then its possible to write an :after method for the class that does what you want, ie something like: (defclass cue ((goals :accessor cue-goals))) (defmethod (setf cue-goals) :after ((obj cue) val) (setf (slot-value obj 'goals) (frob-list (slot-value obj 'goals)))) >I have an object (let's call it a cue) with a slot that is a list of >times (let's call the slot goals), I wish to ensure, any time that the >slot value of goals is changed in any cue, that the resulting list is >in chronological order. > >So, for example: >(setf my-cue (make-instance 'cue :goals '(1 2 3 4))) > >(slot-value my-cue 'goals) >-> (1 2 3 4) From wsack at acsu.buffalo.edu Fri Sep 27 12:33:12 2002 From: wsack at acsu.buffalo.edu (Bill Sack) Date: Fri, 27 Sep 2002 15:33:12 -0400 Subject: [CM] [CMN] gliss. strangeness Message-ID: <3D94B278.8000104@acsu.buffalo.edu> hi again, i'm using cmn to manuscript one of my own pieces now, and i'm noticing something strange about glissando. for an upward gliss, the line begins at the top of the start note's notehead and ends at the bottom of the destination's notehead - which would be fine, except that in glisses of one step up (a line to its adjacent space, say) the line itself slants down. the opposite case happens with downward glisses. (cmn (free-expansion-factor 2.5) (treble) (e4 q (begin-glissando)) (f4 q (end-glissando)) (g4 q (begin-glissando)) (f4 q (end-glissando))) it really seems like the gliss line should be drawn from the center of the notehead in either case. how would i go about changing this behavior? ... and thanks very much to Anders for his help with the generic bracket object. the stem-direction compensation fixed the problem i was having with that. thanks, bill -- _________ Bill Sack wsack at acsu.buffalo.edu ---------------------- From lt at westnet.com Fri Sep 27 17:58:47 2002 From: lt at westnet.com (Larry Troxler) Date: Fri, 27 Sep 2002 20:58:47 -0400 Subject: [CM] some CM sprout/process questions Message-ID: <3D94FEC7.F6FECA66@westnet.com> My goal is that I would to sprout a short (say three or four) sequence of csound score events. I thought that rather than hassle with patterns, it would be simpler and easier to read, if I can simply write a handfull of sv's and output's linearly, so to speak. For example, (defprocess note () (let (o (new csound-event-subclass ...)) process repeat 1 do (sv o ...) (output o) (sv o ...) (output o) (sv o ....) (output o) wait 4)))) With this process I intend to define a conceptual "note" that is a short sequence of csound events (in this particular case, using a negative p3 on all but the last event). In this situation, I want to create an object "o" in the let initialization and define the values of most of the slots. In the "sv"'s I will modify only one or two of the slots. I tried the above method both by setting the time slot in the "sv" functions, and by providing the optional start-time parameter to the "output" functions. The problem is that it seems that the "sv" calls happen all at once, so what happens is that the second and third outputs both get the final (third) values of the slots. I then tried using "copy-object" to use a seperate clone an instance of the prototype csound object before modifying it for each output, but for some reason the "copy-object" method ends up being undefined for my csound event subclass. Questions: 1. Is there a better idiom for this type of thing? In particular, it seems awkward to have to define a process using "repeat 1" for this. 2. What doesn't the default copy-object method work? Do I really need to define one for every csound subclass? I would think that copy-object by default would simply copy all the slots, but is this not the case? Regards Larry From michael at klingbeil.com Fri Sep 27 19:07:08 2002 From: michael at klingbeil.com (Michael Klingbeil) Date: Fri, 27 Sep 2002 22:07:08 -0400 Subject: [CM] some CM sprout/process questions In-Reply-To: <3D94FEC7.F6FECA66@westnet.com> References: <3D94FEC7.F6FECA66@westnet.com> Message-ID: It sounds like each time you are calling 'sv' on your object 'o', you are overwriting the old slot values. This is one of those examples where the functional programmers will shout "side effects are bad!" This isn't a problem if you are immediately sending events out the midi-port, but if you are putting them into a seq or something like that, then you need a new object for each event. Your idea of using copy-object is definitely on the right track and in fact it should work. Copy-object should work for any kind of CLOS object... I have used it for stuff not even CM related. What kind of error are you getting when you attempt to use copy-object? What version of CM do you have? Maybe there is an old bug? What I often do to avoid any of this is something like (output (new csound-event-subclass ...)) just setting the slot values in each output statement. If this is tedious, then copy-object should (ideally!) do the trick. You can avoid using defprocess entirely and just insert events into a list: (setf my-events (list (new csound-event-subclass ...) (new csound-event-subclass ...) (new csound-event-subclass ...) ...)) (events my-events "mypiece.sco" 0 ...) >My goal is that I would to sprout a short (say three or four) sequence >of csound score events. > >I thought that rather than hassle with patterns, it would be simpler and >easier to read, if I can simply write a handfull of sv's and output's >linearly, so to speak. > >For example, > >(defprocess note () > (let (o (new csound-event-subclass ...)) > process repeat 1 do > (sv o ...) > (output o) > (sv o ...) > (output o) > (sv o ....) > (output o) > wait 4)))) > >With this process I intend to define a conceptual "note" that is a short >sequence of csound events (in this particular case, using a negative p3 >on all but the last event). > >In this situation, I want to create an object "o" in the let >initialization and define the values of most of the slots. In the "sv"'s >I will modify only one or two of the slots. > >I tried the above method both by setting the time slot in the "sv" >functions, and by providing the optional start-time parameter to the >"output" functions. > >The problem is that it seems that the "sv" calls happen all at once, so >what happens is that the second and third outputs both get the final >(third) values of the slots. > >I then tried using "copy-object" to use a seperate clone an instance of >the prototype csound object before modifying it for each output, but for >some reason the "copy-object" method ends up being undefined for my >csound event subclass. > >Questions: > >1. Is there a better idiom for this type of thing? In particular, it >seems awkward to have to define a process using "repeat 1" for this. > >2. What doesn't the default copy-object method work? Do I really need to >define one for every csound subclass? I would think that copy-object by >default would simply copy all the slots, but is this not the case? > > >Regards > >Larry >_______________________________________________ >Cmdist mailing list >Cmdist at ccrma.stanford.edu >http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist From lt at westnet.com Sat Sep 28 12:47:41 2002 From: lt at westnet.com (Larry Troxler) Date: Sat, 28 Sep 2002 15:47:41 -0400 (EDT) Subject: [CM] some CM sprout/process questions In-Reply-To: Message-ID: Greetings, Micheal. It seem that it's allocate-instance that's somehow undefined. The following is with CM 2.3.4, on Linux Cmucl: * (setf foo (new i)) #e(i) * (setf bar (copy-object foo)) No matching method for the generic-function #, when called with arguments (#). On Fri, 27 Sep 2002, Michael Klingbeil wrote: > It sounds like each time you are calling 'sv' on your object 'o', you > are overwriting the old slot values. This is one of those examples > where the functional programmers will shout "side effects are bad!" > This isn't a problem if you are immediately sending events out the > midi-port, but if you are putting them into a seq or something like > that, then you need a new object for each event. > > Your idea of using copy-object is definitely on the right track and > in fact it should work. Copy-object should work for any kind of CLOS > object... I have used it for stuff not even CM related. What kind of > error are you getting when you attempt to use copy-object? What > version of CM do you have? Maybe there is an old bug? > > What I often do to avoid any of this is something like > > (output (new csound-event-subclass ...)) > > just setting the slot values in each output statement. If this is > tedious, then copy-object should (ideally!) do the trick. > > You can avoid using defprocess entirely and just insert events into a list: > > (setf my-events > (list (new csound-event-subclass ...) > (new csound-event-subclass ...) > (new csound-event-subclass ...) > ...)) > > (events my-events "mypiece.sco" 0 ...) > > > > > > >My goal is that I would to sprout a short (say three or four) sequence > >of csound score events. > > > >I thought that rather than hassle with patterns, it would be simpler and > >easier to read, if I can simply write a handfull of sv's and output's > >linearly, so to speak. > > > >For example, > > > >(defprocess note () > > (let (o (new csound-event-subclass ...)) > > process repeat 1 do > > (sv o ...) > > (output o) > > (sv o ...) > > (output o) > > (sv o ....) > > (output o) > > wait 4)))) > > > >With this process I intend to define a conceptual "note" that is a short > >sequence of csound events (in this particular case, using a negative p3 > >on all but the last event). > > > >In this situation, I want to create an object "o" in the let > >initialization and define the values of most of the slots. In the "sv"'s > >I will modify only one or two of the slots. > > > >I tried the above method both by setting the time slot in the "sv" > >functions, and by providing the optional start-time parameter to the > >"output" functions. > > > >The problem is that it seems that the "sv" calls happen all at once, so > >what happens is that the second and third outputs both get the final > >(third) values of the slots. > > > >I then tried using "copy-object" to use a seperate clone an instance of > >the prototype csound object before modifying it for each output, but for > >some reason the "copy-object" method ends up being undefined for my > >csound event subclass. > > > >Questions: > > > >1. Is there a better idiom for this type of thing? In particular, it > >seems awkward to have to define a process using "repeat 1" for this. > > > >2. What doesn't the default copy-object method work? Do I really need to > >define one for every csound subclass? I would think that copy-object by > >default would simply copy all the slots, but is this not the case? > > > > > >Regards > > > >Larry > >_______________________________________________ > >Cmdist mailing list > >Cmdist at ccrma.stanford.edu > >http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist > > _______________________________________________ > Cmdist mailing list > Cmdist at ccrma.stanford.edu > http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist > -- Larry Troxler -- lt at westnet.com -- Patterson, NY USA -- From michael at klingbeil.com Sat Sep 28 13:23:30 2002 From: michael at klingbeil.com (Michael Klingbeil) Date: Sat, 28 Sep 2002 16:23:30 -0400 Subject: [CM] some CM sprout/process questions In-Reply-To: References: Message-ID: Interesting error. I don't have access to CMUCL on Linux, so I can't really test this. I think this is an issue Rick Taube or others could look into. For the moment you could just redefine copy-object, replacing allocate-instance with make-instance. I think the idea was that by calling allocate-instance, object initialization is bypassed (thus avoiding any possible side-effects), thus allowing the source object to be directly "cloned." But for the purposes of CM, this should be fine: (defmethod copy-object ((object standard-object)) (let* ((class (class-of object)) (new (make-instance class))) (fill-object new object) new)) The other way is to just initialize all slots in the new maco (setf foo (new i ins 1 time 1.45 duration 4.2)) I hope these suggestions are helpful. >Greetings, Micheal. It seem that it's allocate-instance that's somehow >undefined. The following is with CM 2.3.4, on Linux Cmucl: > > >* (setf foo (new i)) > >#e(i) >* (setf bar (copy-object foo)) > > >No matching method for the generic-function #ALLOCATE-INSTANCE (3) > {281B4229}>, >when called with arguments (#). > >On Fri, 27 Sep >2002, Michael Klingbeil >wrote: > >> It sounds like each time you are calling 'sv' on your object 'o', you >> are overwriting the old slot values. This is one of those examples >> where the functional programmers will shout "side effects are bad!" >> This isn't a problem if you are immediately sending events out the >> midi-port, but if you are putting them into a seq or something like >> that, then you need a new object for each event. >> >> Your idea of using copy-object is definitely on the right track and >> in fact it should work. Copy-object should work for any kind of CLOS >> object... I have used it for stuff not even CM related. What kind of >> error are you getting when you attempt to use copy-object? What >> version of CM do you have? Maybe there is an old bug? >> >> What I often do to avoid any of this is something like >> >> (output (new csound-event-subclass ...)) >> >> just setting the slot values in each output statement. If this is >> tedious, then copy-object should (ideally!) do the trick. >> >> You can avoid using defprocess entirely and just insert events into a list: >> >> (setf my-events >> (list (new csound-event-subclass ...) >> (new csound-event-subclass ...) >> (new csound-event-subclass ...) >> ...)) >> >> (events my-events "mypiece.sco" 0 ...) >> >> >> >> >> >> >My goal is that I would to sprout a short (say three or four) sequence >> >of csound score events. >> > >> >I thought that rather than hassle with patterns, it would be simpler and >> >easier to read, if I can simply write a handfull of sv's and output's >> >linearly, so to speak. >> > >> >For example, >> > >> >(defprocess note () >> > (let (o (new csound-event-subclass ...)) >> > process repeat 1 do >> > (sv o ...) >> > (output o) >> > (sv o ...) >> > (output o) >> > (sv o ....) >> > (output o) >> > wait 4)))) >> > >> >With this process I intend to define a conceptual "note" that is a short >> >sequence of csound events (in this particular case, using a negative p3 >> >on all but the last event). >> > >> >In this situation, I want to create an object "o" in the let >> >initialization and define the values of most of the slots. In the "sv"'s >> >I will modify only one or two of the slots. >> > >> >I tried the above method both by setting the time slot in the "sv" >> >functions, and by providing the optional start-time parameter to the >> >"output" functions. >> > >> >The problem is that it seems that the "sv" calls happen all at once, so >> >what happens is that the second and third outputs both get the final >> >(third) values of the slots. >> > >> >I then tried using "copy-object" to use a seperate clone an instance of >> >the prototype csound object before modifying it for each output, but for > > >some reason the "copy-object" method ends up being undefined for my >> >csound event subclass. >> > >> >Questions: >> > >> >1. Is there a better idiom for this type of thing? In particular, it >> >seems awkward to have to define a process using "repeat 1" for this. >> > >> >2. What doesn't the default copy-object method work? Do I really need to >> >define one for every csound subclass? I would think that copy-object by >> >default would simply copy all the slots, but is this not the case? >> > >> > >> >Regards >> > >> >Larry >> >_______________________________________________ >> >Cmdist mailing list >> >Cmdist at ccrma.stanford.edu >> >http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist >> >> _______________________________________________ >> Cmdist mailing list >> Cmdist at ccrma.stanford.edu >> http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist >> > >-- Larry Troxler -- lt at westnet.com -- Patterson, NY USA -- From lt at westnet.com Sat Sep 28 16:39:44 2002 From: lt at westnet.com (Larry Troxler) Date: Sat, 28 Sep 2002 19:39:44 -0400 (EDT) Subject: [CM] some CM sprout/process questions In-Reply-To: Message-ID: Thanks again, Micheal. I don't really know the difference between make-instance and allocate-instance, except that make-instance is a CLOS function, and that I couldn't find allocate-instance in either the Common Lisp or the Common Music documentation I have. My first impulse was, not knowing any better, to redefine copy-object as you have suggested. So I'll try that. Weird, however, that it's not working as is. Regarding your suggestion of calling the "events" function with a list of timed events, I am not sure that this really fits my needs unless this list of events could somehow be sprouted. I think I will take some time to look through the CM source code and experiment a bit. I do get the feeling that there are some things that are undocumented in CM, but yet probably work just fine. Larry Troxler On Sat, 28 Sep 2002, Michael Klingbeil wrote: > Interesting error. I don't have access to CMUCL on Linux, so I can't > really test this. I think this is an issue Rick Taube or others could > look into. > > For the moment you could just redefine copy-object, replacing > allocate-instance with make-instance. I think the idea was that by > calling allocate-instance, object initialization is bypassed (thus > avoiding any possible side-effects), thus allowing the source object > to be directly "cloned." > > But for the purposes of CM, this should be fine: > > (defmethod copy-object ((object standard-object)) > (let* ((class (class-of object)) > (new (make-instance class))) > (fill-object new object) > new)) > > > The other way is to just initialize all slots in the new maco > > (setf foo (new i ins 1 time 1.45 duration 4.2)) > > I hope these suggestions are helpful. > > > >Greetings, Micheal. It seem that it's allocate-instance that's somehow > >undefined. The following is with CM 2.3.4, on Linux Cmucl: > > > > > >* (setf foo (new i)) > > > >#e(i) > >* (setf bar (copy-object foo)) > > > > > >No matching method for the generic-function # >ALLOCATE-INSTANCE (3) > > {281B4229}>, > >when called with arguments (#). > > > >On Fri, 27 Sep > >2002, Michael Klingbeil > >wrote: > > > >> It sounds like each time you are calling 'sv' on your object 'o', you > >> are overwriting the old slot values. This is one of those examples > >> where the functional programmers will shout "side effects are bad!" > >> This isn't a problem if you are immediately sending events out the > >> midi-port, but if you are putting them into a seq or something like > >> that, then you need a new object for each event. > >> > >> Your idea of using copy-object is definitely on the right track and > >> in fact it should work. Copy-object should work for any kind of CLOS > >> object... I have used it for stuff not even CM related. What kind of > >> error are you getting when you attempt to use copy-object? What > >> version of CM do you have? Maybe there is an old bug? > >> > >> What I often do to avoid any of this is something like > >> > >> (output (new csound-event-subclass ...)) > >> > >> just setting the slot values in each output statement. If this is > >> tedious, then copy-object should (ideally!) do the trick. > >> > >> You can avoid using defprocess entirely and just insert events into a list: > >> > >> (setf my-events > >> (list (new csound-event-subclass ...) > >> (new csound-event-subclass ...) > >> (new csound-event-subclass ...) > >> ...)) > >> > >> (events my-events "mypiece.sco" 0 ...) > >> > >> > >> > >> > >> > >> >My goal is that I would to sprout a short (say three or four) sequence > >> >of csound score events. > >> > > >> >I thought that rather than hassle with patterns, it would be simpler and > >> >easier to read, if I can simply write a handfull of sv's and output's > >> >linearly, so to speak. > >> > > >> >For example, > >> > > >> >(defprocess note () > >> > (let (o (new csound-event-subclass ...)) > >> > process repeat 1 do > >> > (sv o ...) > >> > (output o) > >> > (sv o ...) > >> > (output o) > >> > (sv o ....) > >> > (output o) > >> > wait 4)))) > >> > > >> >With this process I intend to define a conceptual "note" that is a short > >> >sequence of csound events (in this particular case, using a negative p3 > >> >on all but the last event). > >> > > >> >In this situation, I want to create an object "o" in the let > >> >initialization and define the values of most of the slots. In the "sv"'s > >> >I will modify only one or two of the slots. > >> > > >> >I tried the above method both by setting the time slot in the "sv" > >> >functions, and by providing the optional start-time parameter to the > >> >"output" functions. > >> > > >> >The problem is that it seems that the "sv" calls happen all at once, so > >> >what happens is that the second and third outputs both get the final > >> >(third) values of the slots. > >> > > >> >I then tried using "copy-object" to use a seperate clone an instance of > >> >the prototype csound object before modifying it for each output, but for > > > >some reason the "copy-object" method ends up being undefined for my > >> >csound event subclass. > >> > > >> >Questions: > >> > > >> >1. Is there a better idiom for this type of thing? In particular, it > >> >seems awkward to have to define a process using "repeat 1" for this. > >> > > >> >2. What doesn't the default copy-object method work? Do I really need to > >> >define one for every csound subclass? I would think that copy-object by > >> >default would simply copy all the slots, but is this not the case? > >> > > >> > > >> >Regards > >> > > >> >Larry > >> >_______________________________________________ > >> >Cmdist mailing list > >> >Cmdist at ccrma.stanford.edu > >> >http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist > >> > >> _______________________________________________ > >> Cmdist mailing list > >> Cmdist at ccrma.stanford.edu > >> http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist > >> > > > >-- Larry Troxler -- lt at westnet.com -- Patterson, NY USA -- > > _______________________________________________ > Cmdist mailing list > Cmdist at ccrma.stanford.edu > http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist > -- Larry Troxler -- lt at westnet.com -- Patterson, NY USA -- From taube at uiuc.edu Sun Sep 29 17:51:28 2002 From: taube at uiuc.edu (Rick Taube) Date: Sun, 29 Sep 2002 17:51:28 -0700 Subject: [CM] some CM sprout/process questions References: Message-ID: <004001c2681b$85e1d210$71197e82@music.uiuc.edu> Allocate-instance is part of CLOS (pg 803 cltl2) It seems to me that Michael's fix should work. if i have tiime tomorrow ill boot cmu and see what i can figure out. you might try just defining a version of allocate-instance yourself, your version would simply call make-instance. ----- Original Message ----- From: "Larry Troxler" To: "Michael Klingbeil" Cc: Sent: Saturday, September 28, 2002 4:39 PM Subject: Re: [CM] some CM sprout/process questions > > Thanks again, Micheal. > > I don't really know the difference between make-instance and > allocate-instance, except that make-instance is a CLOS function, and > that I couldn't find allocate-instance in either the Common Lisp or the > Common Music documentation I have. > > My first impulse was, not knowing any better, to redefine copy-object as > you have suggested. So I'll try that. Weird, however, that it's not > working as is. > > Regarding your suggestion of calling the "events" function with a list of > timed events, I am not sure that this really fits my needs unless this > list of events could somehow be sprouted. > > I think I will take some time to look through the CM source code and > experiment a bit. I do get the feeling that there are some things that are > undocumented in CM, but yet probably work just fine. > > Larry Troxler > > > On Sat, 28 Sep 2002, Michael Klingbeil wrote: > > > Interesting error. I don't have access to CMUCL on Linux, so I can't > > really test this. I think this is an issue Rick Taube or others could > > look into. > > > > For the moment you could just redefine copy-object, replacing > > allocate-instance with make-instance. I think the idea was that by > > calling allocate-instance, object initialization is bypassed (thus > > avoiding any possible side-effects), thus allowing the source object > > to be directly "cloned." > > > > But for the purposes of CM, this should be fine: > > > > (defmethod copy-object ((object standard-object)) > > (let* ((class (class-of object)) > > (new (make-instance class))) > > (fill-object new object) > > new)) > > > > > > The other way is to just initialize all slots in the new maco > > > > (setf foo (new i ins 1 time 1.45 duration 4.2)) > > > > I hope these suggestions are helpful. > > > > > > >Greetings, Micheal. It seem that it's allocate-instance that's somehow > > >undefined. The following is with CM 2.3.4, on Linux Cmucl: > > > > > > > > >* (setf foo (new i)) > > > > > >#e(i) > > >* (setf bar (copy-object foo)) > > > > > > > > >No matching method for the generic-function # > >ALLOCATE-INSTANCE (3) > > > {281B4229}>, > > >when called with arguments (#). > > > > > >On Fri, 27 Sep > > >2002, Michael Klingbeil > > >wrote: > > > > > >> It sounds like each time you are calling 'sv' on your object 'o', you > > >> are overwriting the old slot values. This is one of those examples > > >> where the functional programmers will shout "side effects are bad!" > > >> This isn't a problem if you are immediately sending events out the > > >> midi-port, but if you are putting them into a seq or something like > > >> that, then you need a new object for each event. > > >> > > >> Your idea of using copy-object is definitely on the right track and > > >> in fact it should work. Copy-object should work for any kind of CLOS > > >> object... I have used it for stuff not even CM related. What kind of > > >> error are you getting when you attempt to use copy-object? What > > >> version of CM do you have? Maybe there is an old bug? > > >> > > >> What I often do to avoid any of this is something like > > >> > > >> (output (new csound-event-subclass ...)) > > >> > > >> just setting the slot values in each output statement. If this is > > >> tedious, then copy-object should (ideally!) do the trick. > > >> > > >> You can avoid using defprocess entirely and just insert events into a list: > > >> > > >> (setf my-events > > >> (list (new csound-event-subclass ...) > > >> (new csound-event-subclass ...) > > >> (new csound-event-subclass ...) > > >> ...)) > > >> > > >> (events my-events "mypiece.sco" 0 ...) > > >> > > >> > > >> > > >> > > >> > > >> >My goal is that I would to sprout a short (say three or four) sequence > > >> >of csound score events. > > >> > > > >> >I thought that rather than hassle with patterns, it would be simpler and > > >> >easier to read, if I can simply write a handfull of sv's and output's > > >> >linearly, so to speak. > > >> > > > >> >For example, > > >> > > > >> >(defprocess note () > > >> > (let (o (new csound-event-subclass ...)) > > >> > process repeat 1 do > > >> > (sv o ...) > > >> > (output o) > > >> > (sv o ...) > > >> > (output o) > > >> > (sv o ....) > > >> > (output o) > > >> > wait 4)))) > > >> > > > >> >With this process I intend to define a conceptual "note" that is a short > > >> >sequence of csound events (in this particular case, using a negative p3 > > >> >on all but the last event). > > >> > > > >> >In this situation, I want to create an object "o" in the let > > >> >initialization and define the values of most of the slots. In the "sv"'s > > >> >I will modify only one or two of the slots. > > >> > > > >> >I tried the above method both by setting the time slot in the "sv" > > >> >functions, and by providing the optional start-time parameter to the > > >> >"output" functions. > > >> > > > >> >The problem is that it seems that the "sv" calls happen all at once, so > > >> >what happens is that the second and third outputs both get the final > > >> >(third) values of the slots. > > >> > > > >> >I then tried using "copy-object" to use a seperate clone an instance of > > >> >the prototype csound object before modifying it for each output, but for > > > > >some reason the "copy-object" method ends up being undefined for my > > >> >csound event subclass. > > >> > > > >> >Questions: > > >> > > > >> >1. Is there a better idiom for this type of thing? In particular, it > > >> >seems awkward to have to define a process using "repeat 1" for this. > > >> > > > >> >2. What doesn't the default copy-object method work? Do I really need to > > >> >define one for every csound subclass? I would think that copy-object by > > >> >default would simply copy all the slots, but is this not the case? > > >> > > > >> > > > >> >Regards > > >> > > > >> >Larry > > >> >_______________________________________________ > > >> >Cmdist mailing list > > >> >Cmdist at ccrma.stanford.edu > > >> >http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist > > >> > > >> _______________________________________________ > > >> Cmdist mailing list > > >> Cmdist at ccrma.stanford.edu > > >> http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist > > >> > > > > > >-- Larry Troxler -- lt at westnet.com -- Patterson, NY USA -- > > > > _______________________________________________ > > Cmdist mailing list > > Cmdist at ccrma.stanford.edu > > http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist > > > > -- Larry Troxler -- lt at westnet.com -- Patterson, NY USA -- > > > _______________________________________________ > Cmdist mailing list > Cmdist at ccrma.stanford.edu > http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist > From taube at uiuc.edu Sun Sep 29 17:56:41 2002 From: taube at uiuc.edu (Rick Taube) Date: Sun, 29 Sep 2002 17:56:41 -0700 Subject: [CM] some CM sprout/process questions References: <3D94FEC7.F6FECA66@westnet.com> Message-ID: <005001c2681c$3e7d3080$71197e82@music.uiuc.edu> >It sounds like each time you are calling 'sv' on your object 'o', you >are overwriting the old slot values. This is one of those examples >where the functional programmers will shout "side effects are bad!" I have removed sv from the documentation and all cm examples. In fact in the newest examples and docs i dont even use setf! From dlphilp at bright.net Sat Sep 28 07:15:56 2002 From: dlphilp at bright.net (Dave Phillips) Date: Sat, 28 Sep 2002 10:15:56 -0400 Subject: [CM] CMN and ACL 6.2 Message-ID: <3D95B99C.67586681@bright.net> Greetings: I'm trying to use ACL 6.2 with CMN and CLM-2. I'm having some troubles with CMN that I don't know how to resolve. For example, when I run (load "cmn-all.lisp") I receive this error: Error: fasl file is truncated: #p"/home/dlphilp/cmn/cmn2.fasl" [condition type: FILE-ERROR] I can proceed and run (in-package :cmn) and it appears to load okay, but when I try (cmn treble c4 q) I receive this error: Error: attempt to call 'CHORD-P' which is an undefined function. [condition type: UNDEFINED-FUNCTION] I presume the error results from the failure to load cmn2.fasl (and other files?). Any suggestions ? Best regards, == Dave Phillips The Book Of Linux Music & Sound at http://www.nostarch.com/lms.htm The Linux Soundapps Site at http://linux-sound.org From dlphilp at bright.net Sat Sep 28 07:35:43 2002 From: dlphilp at bright.net (Dave Phillips) Date: Sat, 28 Sep 2002 10:35:43 -0400 Subject: [CM] stupid questions Message-ID: <3D95BE3F.7DC205B7@bright.net> Greetings: How do I exit from CMN ? I've tried (exit), (quit), (break), Ctrl-C, and some more I've forgotten. Other than doing an explicit kill from another window I can't figure out how to get out of it. My apologies, I know next to nothing about LISP, but I could sure use a handy basic command reference. I'm having an awful time trying to use it in an xterm. The Delete and Backspace keys simply render escape codes so I'm unable to edit at the command prompt. The Backspace key works okay at the console, just not in an xterm. The Delete key doesn't work in either. Frustrated here, need help... :( Oh yeh, this is with ACL 6.2. Anyone recommend another LISP ? Best regards, == Dave Phillips The Book Of Linux Music & Sound at http://www.nostarch.com/lms.htm The Linux Soundapps Site at http://linux-sound.org From dlphilp at bright.net Sat Sep 28 10:34:58 2002 From: dlphilp at bright.net (Dave Phillips) Date: Sat, 28 Sep 2002 12:34:58 -0500 Subject: [CM] regarding ACL 6.2 Message-ID: <3D95E842.CDE66928@bright.net> Greetings: I discovered that my problem with CMN has to do with the limitations of the trial version of ACL 6.2. Apparently there is a limit on the heap size that is removed when you purchase the full version. I did not realize this when I downloaded it. My apologies for wasting the list bandwidth. And I also figured out what (excl:exit) does... Best regards, == Dave Phillips The Book Of Linux Music & Sound at http://www.nostarch.com/lms.htm The Linux Soundapps Site at http://linux-sound.org From dlphilp at bright.net Sat Sep 28 11:35:01 2002 From: dlphilp at bright.net (Dave Phillips) Date: Sat, 28 Sep 2002 13:35:01 -0500 Subject: [CM] a to-snd question Message-ID: <3D95F655.7A924300@bright.net> Greetings: When I used ACL with CLM-2 I could use to-snd transparently. Under CLISP it doesn't seem to work. Am I missing something ? Best regards, == Dave Phillips The Book Of Linux Music & Sound at http://www.nostarch.com/lms.htm The Linux Soundapps Site at http://linux-sound.org From bil at ccrma.Stanford.EDU Mon Sep 30 04:42:39 2002 From: bil at ccrma.Stanford.EDU (Bill Schottstaedt) Date: Mon, 30 Sep 2002 04:42:39 -0700 Subject: [CM] a to-snd question In-Reply-To: <3D95F655.7A924300@bright.net> References: <3D95F655.7A924300@bright.net> Message-ID: <200209301142.EAA21238@cmn14.stanford.edu> > When I used ACL with CLM-2 I could use to-snd transparently. Under > CLISP it doesn't seem to work. Am I missing something ? No -- to-snd (and the rest of the clm/snd communication stuff) needs a real (i.e. dynamically loadable) foreign function interface on the lisp side (it works by using X window properties, and there's no way to do that in lisp without calling C somewhere along the line), and Clisp is deficient in that regard. I just noticed that I never tied this into cmucl -- I'll do that today, if possible. > How do I exit from CMN ? I've tried (exit), (quit), (break), Ctrl-C, > and some more I've forgotten. Other than doing an explicit kill from > another window I can't figure out how to get out of it. Every lisp is different, and some (clisp for example) will force you deeper and deeper into the debugger with each mistake. I hate this part of lisp -- I can never remember how to exit a given lisp, and most trap C-C (posting a very nice note that "the user" typed C-C -- the urge to kill...). cmn-init.lisp tries to clean this up a little -- I'll add more cases. In ACL, :exit should exit. > The Delete and Backspace keys simply render escape codes > so I'm unable to edit at the command prompt. I think C-h will work in this case -- there's some .cshrc incantation, I think, to deal with this, but I can't find it here at work. If possible, run lisp as an emacs subjob. From taube at uiuc.edu Mon Sep 30 04:44:14 2002 From: taube at uiuc.edu (Rick Taube) Date: Mon, 30 Sep 2002 06:44:14 -0500 Subject: [CM] stupid questions In-Reply-To: <3D95BE3F.7DC205B7@bright.net> References: <3D95BE3F.7DC205B7@bright.net> Message-ID: in acl you can use the :EXIT command or the (EXCL:EXIT) function. typing Contol-D ought to work, too. USER(1): :exit ; Exiting Lisp > Oh yeh, this is with ACL 6.2. Anyone recommend another LISP ? actually its a very good implementation of CLTL2. id go with that or Guile or OpenMCL if its available on your OS. I would avoid CLISP, CMU and SBCL. best, Rick >Greetings: > > How do I exit from CMN ? I've tried (exit), (quit), (break), Ctrl-C, >and some more I've forgotten. Other than doing an explicit kill from >another window I can't figure out how to get out of it. > > My apologies, I know next to nothing about LISP, but I could sure use >a handy basic command reference. I'm having an awful time trying to use >it in an xterm. The Delete and Backspace keys simply render escape codes >so I'm unable to edit at the command prompt. The Backspace key works >okay at the console, just not in an xterm. The Delete key doesn't work >in either. > > Frustrated here, need help... :( > > Oh yeh, this is with ACL 6.2. Anyone recommend another LISP ? > >Best regards, > >== Dave Phillips > > The Book Of Linux Music & Sound at http://www.nostarch.com/lms.htm > The Linux Soundapps Site at http://linux-sound.org >_______________________________________________ >Cmdist mailing list >Cmdist at ccrma.stanford.edu >http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist