From bil at ccrma.Stanford.EDU Mon Feb 3 04:21:55 2003 From: bil at ccrma.Stanford.EDU (Bill Schottstaedt) Date: Mon, 3 Feb 2003 04:21:55 -0800 Subject: [CM] is this the best way to do this? In-Reply-To: References: Message-ID: <200302031221.EAA01892@cmn14.stanford.edu> > seemed that in the case of an envelope with a base other than one or zero, > if the original line data resulted in a zero crossing, the scaler and > offset values contained in the actual env are readjusted to make such a > thing possible In the current version, mus-offset and mus-scaler will return the original values. For the base, use mus-increment. USER(2): (defvar e (make-env '(0 0 1 1 2 0) :offset .1 :scaler .2 :base .3 :end 10)) E USER(3): (mus-scaler e) 0.2 USER(4): (mus-offset e) 0.1 USER(5): (mus-increment e) 0.3 From lt at westnet.com Tue Feb 4 20:10:47 2003 From: lt at westnet.com (Larry Troxler) Date: Tue, 04 Feb 2003 23:10:47 -0500 Subject: [CM] Where to get the "sv" macro source? Message-ID: <3E408EC7.5820C2C3@westnet.com> What's the most recent version of Common Music to still include the "sv" macro, and is the source code still available somewhere? I'm finding that I miss it a lot (my fingers are tired), and I hope that I can download the last version that had it, and just graft it into the latest CM version. (Yes, I do realize that one reason it was removed was that it does not copy the source object, but this can easily be rectified, and/or a similar macro be created.) Thanks in advance! Larry Troxler From andersvi at notam02.no Tue Feb 4 23:56:42 2003 From: andersvi at notam02.no (Anders Vinjar) Date: 05 Feb 2003 08:56:42 +0100 Subject: [CM] Where to get the "sv" macro source? In-Reply-To: <3E408EC7.5820C2C3@westnet.com> References: <3E408EC7.5820C2C3@westnet.com> Message-ID: >>>>> "Larry" == Larry Troxler writes: Larry> What's the most recent version of Common Music to still Larry> include the "sv" macro, and is the source code still Larry> available somewhere? Its included at least in 2.4.0 from Jan-8th. Here is the code from utils.lisp (defmacro sv (obj slot &body args) (if (null args) (slot-getter-form obj slot) (let ((o (gensym))) `(let ((,o ,obj)) ,(slot-setter-form o slot (car args)) ,@(if (null (cdr args)) (list) (let ((res '())) (dopairs (x y (cdr args)) (push (slot-setter-form o x y) res)) (reverse res))) (values))))) From bil at ccrma.Stanford.EDU Fri Feb 7 03:20:22 2003 From: bil at ccrma.Stanford.EDU (Bill Schottstaedt) Date: Fri, 7 Feb 2003 03:20:22 -0800 Subject: [CM] Snd in German! Message-ID: <200302071120.DAA06178@cmn14.stanford.edu> Michael Scholz has provided a German translation for Snd (po/de.po); hopefully all the ancillary files are set up correctly. From lt at westnet.com Sun Feb 9 17:14:36 2003 From: lt at westnet.com (Larry Troxler) Date: Sun, 09 Feb 2003 20:14:36 -0500 Subject: [CM] Plotter in guile? Message-ID: <3E46FCFC.81FA2EC0@westnet.com> Since, as Rick mentioned, guile has a gtk binding available, what would be involved in porting plotter to guile? I'm thinking of tackling this - this should amount to translating the plotter source code into scheme, and translating to whatever API guile-gtk uses. Doesn't seem too dificult, right? Any gotcha's? Larry Troxler From taube at uiuc.edu Mon Feb 10 04:33:15 2003 From: taube at uiuc.edu (Rick Taube) Date: Mon, 10 Feb 2003 06:33:15 -0600 Subject: [CM] Plotter in guile? In-Reply-To: <3E46FCFC.81FA2EC0@westnet.com> Message-ID: hmm its not quite as simple as you make it sound! im sorry for the delay with this interface work, i plan on tackling it as soon as the book is done (getting close...) i will be using Bill's gtk2 interface not the guile-gtk binding and ill try to leverage whatever i can from his sources. my hope is that guile,snd,clm,cm,plotter will all be able to coexist. but it will be a ton of work and ill be glad if a few brave souls can help out with it and/or midi realtime. btw, guile 1.6.1 is running on OSX with a few fink patches. im not sure if it has made it into the fink release tree yet but i can send the patches to anyone interested. the Apple X11 beta release seems to be quite reliable so far -- Im running the standard Xemacs + openmcl + guile on my new OSX manchine and having lots of fun! On Sunday, Feb 9, 2003, at 19:14 America/Chicago, Larry Troxler wrote: > Since, as Rick mentioned, guile has a gtk binding available, what would > be involved in porting plotter to guile? > > I'm thinking of tackling this - this should amount to translating the > plotter source code into scheme, and translating to whatever API > guile-gtk uses. Doesn't seem too dificult, right? > > Any gotcha's? > > Larry Troxler > _______________________________________________ > Cmdist mailing list > Cmdist at ccrma.stanford.edu > http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist > From t.anders at qub.ac.uk Wed Feb 12 08:11:36 2003 From: t.anders at qub.ac.uk (Torsten Anders) Date: 12 Feb 2003 16:11:36 +0000 Subject: [CM] for keyword for funcall pattern Message-ID: <1045066296.1269.288.camel@chewa> Hi list, It looks like as if the :for key for the funcall pattern does not work as it should (or at least as I expect it should ;). ;; Example: :for in cycle pattern works fine: (next (new cycle of (list 'a 'b 'c (new cycle :of (list 1 2 3) :for 5))) 10) -> (A B C 1 2 3 1 2 A B) ;; :for seems to have no effect on a funcall pattern ;; (I expect the same result as above) (next (new cycle :of (list 'a 'b 'c (new funcall :of #'(lambda () (list 1 2 3)) :for 5))) 10) -> (A B C 1 2 3 A B C 1) Best regards, Torsten PS: I am running CM 2.4.0 on CMU Common Lisp 18d at RH 8.0 -- Torsten Anders Sonic Arts Research Centre Queens University Belfast Tel: +44 28 9027 4831 (office) +44 28 9066 7439 (private) From t.anders at qub.ac.uk Wed Feb 12 08:34:56 2003 From: t.anders at qub.ac.uk (Torsten Anders) Date: 12 Feb 2003 16:34:56 +0000 Subject: [CM] Generalized rewrite pattern Message-ID: <1045067696.1269.313.camel@chewa> Hi, For my own purposes a wrote a somewhat generalized rewrite pattern. Perhaps somebody else is interested, so I send it in. Kind regards, Torsten Code: ----- (defun mappend (func &rest inlists) "Apply func to each element of inlist and append the result." (apply #'append (apply #'mapcar func inlists))) (defun rewriter (fn) "Defines a function for make-rewrite-fn for a context free rewrite. Only the rewrite function for a single stream item without its context need to be specified. The given function always needs to return a list." #'(lambda (vals) (mappend fn vals))) (defmethod make-rewrite-fn ((init list) (fn function)) "Returns a function for a function item which recursively rewrites generations as specified by the given function." (let ((curr init)) #'(lambda () (let ((old curr)) (setf curr (funcall fn curr)) old)))) #| ;; example: (next (new funcall :of (make-rewrite-fn '(1) (rewriter (let ((factor 1.3)) #'(lambda (x) (cond ((< x (/ 1 factor)) (list (* x factor))) ((>= x (/ 1 factor)) (list (/ x (expt factor 3)) (/ x (expt factor 5)))))))))) 20) -> (1 0.4551662 0.26932913 0.59171605 0.35012785 0.76923084 0.4551662 0.35012788 0.20717627 0.59171605 0.45516622 0.26932913 0.76923084 0.59171605 0.35012785 0.35012788 0.20717627 0.76923084 0.4551662 0.45516622) |# ;; rewrite can be defined this way, if you want: (defmacro defrewriter-case (&rest clauses) "Defines a function for make-rewrite-fn for a context free rewerite. Only case clauses need to be specified." ;; just a demo to show a rewrite pattern can be defined this way `(rewriter #'(lambda (val) (case val , at clauses)))) #| ;; example: (next (new funcall :of (make-rewrite-fn '(b) (defrewriter-case (a '(a b a)) (b '(b b a))))) 20) -> (B B B A B B A B B A A B A B B A B B A A) |# -- Torsten Anders Sonic Arts Research Centre Queens University Belfast Tel: +44 28 9027 4831 (office) +44 28 9066 7439 (private) From taube at uiuc.edu Wed Feb 12 10:32:30 2003 From: taube at uiuc.edu (Rick Taube) Date: Wed, 12 Feb 2003 12:32:30 -0600 Subject: [CM] Generalized rewrite pattern In-Reply-To: <1045067696.1269.313.camel@chewa> Message-ID: <58166716-3EB8-11D7-A863-000A95674CE4@uiuc.edu> Hi torsten, i havent had time to play with the code yet -- is it doing somethig that the context free rules with the current rewrite pattern can't do? ill look at the funcall problem tonight, ive got several other pattern things to fix... On Wednesday, Feb 12, 2003, at 10:34 America/Chicago, Torsten Anders wrote: > Hi, > > For my own purposes a wrote a somewhat generalized rewrite pattern. > Perhaps somebody else is interested, so I send it in. > > Kind regards, > Torsten > > Code: > ----- > > (defun mappend (func &rest inlists) > "Apply func to each element of inlist and append the result." > (apply #'append (apply #'mapcar func inlists))) > > (defun rewriter (fn) > "Defines a function for make-rewrite-fn for a context free rewrite. > Only the rewrite function for a single stream item without its context > need to be specified. The given function always needs to return a > list." > #'(lambda (vals) > (mappend fn vals))) > > (defmethod make-rewrite-fn ((init list) (fn function)) > "Returns a function for a function item which recursively rewrites > generations as specified by the given function." > (let ((curr init)) > #'(lambda () > (let ((old curr)) > (setf curr (funcall fn curr)) > old)))) > > #| ;; example: > > (next (new funcall > :of (make-rewrite-fn > '(1) > (rewriter > (let ((factor 1.3)) > #'(lambda (x) > (cond ((< x (/ 1 factor)) > (list (* x factor))) > ((>= x (/ 1 factor)) > (list (/ x (expt factor 3)) > (/ x (expt factor 5)))))))))) > 20) > -> (1 0.4551662 0.26932913 0.59171605 0.35012785 0.76923084 0.4551662 > 0.35012788 0.20717627 0.59171605 0.45516622 0.26932913 0.76923084 > 0.59171605 0.35012785 0.35012788 0.20717627 0.76923084 0.4551662 > 0.45516622) > |# > > ;; rewrite can be defined this way, if you want: > > (defmacro defrewriter-case (&rest clauses) > "Defines a function for make-rewrite-fn for a context free rewerite. > Only case clauses need to be specified." > ;; just a demo to show a rewrite pattern can be defined this way > `(rewriter #'(lambda (val) > (case val > , at clauses)))) > > #| ;; example: > > (next (new funcall > :of (make-rewrite-fn '(b) > (defrewriter-case > (a '(a b a)) > (b '(b b a))))) > 20) > -> (B B B A B B A B B A A B A B B A B B A A) > |# > > > -- > Torsten Anders > Sonic Arts Research Centre > Queens University Belfast > Tel: +44 28 9027 4831 (office) > +44 28 9066 7439 (private) > > > _______________________________________________ > Cmdist mailing list > Cmdist at ccrma.stanford.edu > http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist > From t.anders at qub.ac.uk Wed Feb 12 11:05:45 2003 From: t.anders at qub.ac.uk (Torsten Anders) Date: 12 Feb 2003 19:05:45 +0000 Subject: [CM] fenv: functional envelopes Message-ID: <1045076745.1262.334.camel@chewa> Hi again, Because I am just in the mood of sharing, here is some other code package. This Lisp library defines means and abstractions to use numerical functions as envelopes and provides a rich set of functions to generate, combine and transform these envelopes. The library also contains a mechanism to turn these envelopes into CM pattern (this is the only dependency on CM). There is an example in test-func-env.lisp for (hopefully) every function ;) For plotting, these examples depend on a Lisp library which calls gnuplot. I published in at the CM mailing list in June 2002... I usually use a defsystem to load stuff: just have a look into fun-env.system for the order the files need to be loaded. -- Torsten Anders Sonic Arts Research Centre Queens University Belfast Tel: +44 28 9027 4831 (office) +44 28 9066 7439 (private) -------------- next part -------------- A non-text attachment was scrubbed... Name: func-env.tgz Type: application/x-gzip Size: 5386 bytes Desc: not available URL: From t.anders at qub.ac.uk Wed Feb 12 11:13:11 2003 From: t.anders at qub.ac.uk (Torsten Anders) Date: 12 Feb 2003 19:13:11 +0000 Subject: [CM] Generalized rewrite pattern In-Reply-To: <58166716-3EB8-11D7-A863-000A95674CE4@uiuc.edu> References: <58166716-3EB8-11D7-A863-000A95674CE4@uiuc.edu> Message-ID: <1045077191.1269.342.camel@chewa> Hi Rick, On Wed, 2003-02-12 at 18:32, Rick Taube wrote: > Hi torsten, i havent had time to play with the code yet -- is it doing > somethig that the context free rules with the current rewrite pattern > can't do? > ill look at the funcall problem tonight, ive got several other pattern > things to fix... The CM rewrite pattern is a rather rich device. My little contribution generalizes the main idea of it: in CM rewrite, new periods can be stated in a clause-wise manner. But items much match each other (e.g. as in case). In my attempt, arbitrary calls can be performed instead (e.g. in a cond clause structure I test (> item x) -- rewrite only performs (equal item x)). Regards, Torsten -- Torsten Anders From carl.boingie at rcn.com Wed Feb 12 12:15:36 2003 From: carl.boingie at rcn.com (Carl Edwards) Date: Wed, 12 Feb 2003 15:15:36 -0500 Subject: [CM] fenv: functional envelopes References: <1045076745.1262.334.camel@chewa> Message-ID: <004d01c2d2d3$82082720$13e37ad1@laptop> > Because I am just in the mood of sharing, here is some other code > package. > > This Lisp library defines means and abstractions to use numerical > functions as envelopes and provides a rich set of functions to generate, > combine and transform these envelopes. > The library also contains a mechanism to turn these envelopes into CM > pattern (this is the only dependency on CM). Wow, how cool is that?! Thanks for sharing, Torsten. I can't wait to "dig in". Carl Edwards From ek735 at soi.city.ac.uk Wed Feb 12 17:06:24 2003 From: ek735 at soi.city.ac.uk (Marcus Pearce) Date: Thu, 13 Feb 2003 01:06:24 +0000 (GMT) Subject: [CM] [cmn] Automatic Beaming Message-ID: Is there a function which takes the arguments to an existing cmn expression (cmn ...) with no beaming information and returns the equivalent list of arguments with beaming information inserted? Thanks for your help, Marcus From bil at ccrma.Stanford.EDU Thu Feb 13 03:28:09 2003 From: bil at ccrma.Stanford.EDU (Bill Schottstaedt) Date: Thu, 13 Feb 2003 03:28:09 -0800 Subject: [CM] [cmn] Automatic Beaming In-Reply-To: References: Message-ID: <200302131128.DAA13768@cmn14.stanford.edu> > Is there a function which takes the arguments to an existing cmn > expression (cmn ...) with no beaming information and returns the > equivalent list of arguments with beaming information inserted? I don't think so -- cmn-store is as close as you get. You can extract the beaming info from (descry *cmn-score*), but it's a mess. From cewing at u.washington.edu Thu Feb 13 18:30:36 2003 From: cewing at u.washington.edu (cristopher pierson ewing) Date: Thu, 13 Feb 2003 18:30:36 -0800 (PST) Subject: [CM] tap and comb pm arguments Message-ID: I've been testing tap and comb in pursuit of building some simple delay-line based DSP instruments (a chorus, a flanger, etc.) and I've managed to hunt down a strange problem, it appears that the pm argument to tap and comb does not work as advertised. I've included a few chunks of code below that should demonstrate what I mean. Are these bugs? Or am I misunderstanding what I'm reading in the manual? thanks for checking, C By the way, I'm using ACL6-1 under RedHat linux. ******************************** Code examps: ;;by my reading, the p.m. argument to comb should work as an additive ;;value to the index into the delay. I would expect then, that given ;;a ringing frequency of 400 hz (or del-time = (/ 1.0 400)), and a f-dif ;;value of 200, I would get a result where the left channel rings at 400 ;;hz and the right rings at 600. Instead, I get the left at 400 and the ;;right at 133.333.... Similarly, I would expect that del-time=(/ 1.0 400) ;;and f-dif = -500 would give a left-channel freq of 400 hz and a ;;right-channel freq of -100 (?). But left = 400, right = 2000. I'm sure ;;there must be something wrong about how I'm understanding this, but ;;could somebody point it out? (definstrument comb-test (del-time dur f-dif) (let* ((samples (seconds->samples del-time)) (end (seconds->samples dur)) (s-dif (seconds->samples (/ 1.0 f-dif))) (c (make-comb 0.95 samples :max-size 44100)) (c2 (make-comb 0.95 samples :max-size 44100)) (sig 0.0)) (print (list samples s-dif)) (run (let ((comb 0.0) (comb2 0.0)) (loop for i from 0 to end do (if (= i 441) (setf sig 1.0) (setf sig 0.0)) (outa i (comb c sig)) (outb i (comb c2 sig s-dif))))))) ;;And here is my test func for tap. (definstrument del-test (del-time tap-offset) (let* ((samples (seconds->samples del-time)) (d (make-delay samples :max-size 44100)) (sig 0.0)) (run (let ((del 0.0) (tap 0.0)) (loop for i from 0 to 44099 do (if (= i 441) (setf sig 1.0) (setf sig 0.0)) (setf del (delay d (+ sig (* 0.75 (tap d))))) (setf tap (tap d tap-offset)) (outa i del) (outb i tap)))))) ;;No matter what values i give for tap-offset, the right channel has ;;nothing in it at all. And if I try to give a third argument to tap, the ;;&optional pm, it complains that tap expects between 1 and 2 arguments. ******************************** Cris Ewing CARTAH Assistant University of Washington Home Phone: (206) 365-3413 E-mail: cewing at u.washington.edu ******************************* From bil at ccrma.Stanford.EDU Fri Feb 14 03:52:20 2003 From: bil at ccrma.Stanford.EDU (Bill Schottstaedt) Date: Fri, 14 Feb 2003 03:52:20 -0800 Subject: [CM] tap and comb pm arguments In-Reply-To: References: Message-ID: <200302141152.DAA15083@cmn14.stanford.edu> Thanks for the bug reports! > And if I try to give a third argument to tap, the > ;;&optional pm, it complains that tap expects between 1 and 2 arguments. That's an error in the documentation -- tap doesn't take a third argument. > ;;by my reading, the p.m. argument to comb should work as an additive > ;;value to the index into the delay. I would expect then, that given > ;;a ringing frequency of 400 hz (or del-time = (/ 1.0 400)), and a f-dif > ;;value of 200, I would get a result where the left channel rings at 400 > ;;hz and the right rings at 600. Instead, I get the left at 400 and the > ;;right at 133.333.. It's additive in the sense of delay length, not the resultant frequency. So, given your numbers, and taking srate=22050, 400Hz = delay of 55 samples, add 200 via (/ 22050 200) = 110 giving a total delay of 165 = freq peak at 133. To get a tap peak at a given frequency given the original at f-dif, you need to get the difference between the length for f-dif and the length for the new frequency: (s-dif (- (seconds->samples (/ 1.0 f-dif)) samples)) or something like that. > ;;No matter what values i give for tap-offset, the right channel has > ;;nothing in it at all. I don't think the CL version of the run macro tries to implement CL's multiple name spaces in the sense that you can have a variable and a function with the same name. I'd use "tap1" for the variable name -- I'll look into an error message for this. But, there does seem to be a bug in tap if the max-size arg is given to the associated delay. I don't immediately see the problem (the parallel Scheme code appears to work ok). From cewing at u.washington.edu Fri Feb 14 08:59:54 2003 From: cewing at u.washington.edu (cristopher pierson ewing) Date: Fri, 14 Feb 2003 08:59:54 -0800 (PST) Subject: [CM] tap and comb pm arguments In-Reply-To: <200302141152.DAA15083@cmn14.stanford.edu> Message-ID: Bill, Thanks for the quick reply. As to the name-space issue, I'm pretty sure that's not the problem. As long as I only write (setf tap (tap d)) there is no problem. The second channel shows up just as might be expected. It is only when I try to supply a second arg (the &optional offset) that the channel disppears. But there is no warning of using an argument that is illegal. Only when adding the erroneous pm arg does an error message occur. It reports that tap expects between 1 and 2 args. I don't know enough about clm error reporting to suggest from where this might be cropping up. I can only report the results I have gotten. If it would be helpful to you, I can provide listener output resulting from specific calls to the instruments I have tested, and even example soundfiles, if needed. Thanks also for the explanation re. frequency vs. sample differences in the comb pm arg. It's amazing how quickly one's powers of mathematical reasoning disappear when you've been coding for too many hours straight. Happy day! C ******************************** Cris Ewing CARTAH Assistant University of Washington Home Phone: (206) 365-3413 E-mail: cewing at u.washington.edu ******************************* On Fri, 14 Feb 2003, Bill Schottstaedt wrote: > Thanks for the bug reports! > > > And if I try to give a third argument to tap, the > > ;;&optional pm, it complains that tap expects between 1 and 2 arguments. > > That's an error in the documentation -- tap doesn't take a third argument. > > > ;;by my reading, the p.m. argument to comb should work as an additive > > ;;value to the index into the delay. I would expect then, that given > > ;;a ringing frequency of 400 hz (or del-time = (/ 1.0 400)), and a f-dif > > ;;value of 200, I would get a result where the left channel rings at 400 > > ;;hz and the right rings at 600. Instead, I get the left at 400 and the > > ;;right at 133.333.. > > It's additive in the sense of delay length, not the resultant frequency. > So, given your numbers, and taking srate=22050, 400Hz = delay of 55 samples, > add 200 via (/ 22050 200) = 110 giving a total delay of 165 = freq peak at 133. > To get a tap peak at a given frequency given the original at f-dif, you need > to get the difference between the length for f-dif and the length for the new frequency: > > (s-dif (- (seconds->samples (/ 1.0 f-dif)) samples)) > > or something like that. > > > ;;No matter what values i give for tap-offset, the right channel has > > ;;nothing in it at all. > > I don't think the CL version of the run macro tries to implement CL's > multiple name spaces in the sense that you can have a variable and > a function with the same name. I'd use "tap1" for the variable name -- > I'll look into an error message for this. But, there does seem to > be a bug in tap if the max-size arg is given to the associated delay. > I don't immediately see the problem (the parallel Scheme code appears > to work ok). > From cewing at u.washington.edu Fri Feb 14 10:51:04 2003 From: cewing at u.washington.edu (cristopher pierson ewing) Date: Fri, 14 Feb 2003 10:51:04 -0800 (PST) Subject: [CM] run-time converter problem Message-ID: I am getting a message when compiling an instrument that says: ; Writing "/Users/cewing/clmstuff/clm-sampler/clm_lnxacl_COMB-FILT.c" ; While compiling (:TOP-LEVEL-FORM "comb-filt.ins" 1336): Error: the run macro cannot handle SECONDS->SAMPLES in (SECONDS->SAMPLES SECS) but seconds->samples is listed in the manual among the run-time converters that are available. Is this a bug? C ******************************** Cris Ewing CARTAH Assistant University of Washington Home Phone: (206) 365-3413 E-mail: cewing at u.washington.edu ******************************* From bil at ccrma.Stanford.EDU Mon Feb 17 03:08:29 2003 From: bil at ccrma.Stanford.EDU (Bill Schottstaedt) Date: Mon, 17 Feb 2003 03:08:29 -0800 Subject: [CM] snd 6.6 et al Message-ID: <200302171108.DAA18742@cmn14.stanford.edu> Snd 6.6 and friends: added gettext support, and Michael Scholz provided a German translation. Improvements and additions to contrib/dlp from Dave Phillips. FreeBSD/cmu-cl changes in CLM/CMN thanks to Michael Scholz. Date/Time bugfixes thanks to Michael Scholz. Windows bugfixes thanks to Jamie Macbeth. gtkglext auto-configuration bugfix thanks to Tim Van Holder and Raja R Harinath. Rick fixed an openMCL bug in CLM. added mus-offset (for env) and mus-width (for square-wave, suggested by David Lowenfels). gl module glGet* funcs can handle multiple return values. new optimization level 6: the run macro will try to find externally defined functions, and auto-define them within the run scope using procedure-source and the current argument types. More optimizable functions including format and the clm make funcs. continued extension of virtual op choices. clm.h has some non-backward compatible changes to the structs. --with-ladspa is now the default in the configure script, and the --with-run switch has been removed (it is handled automatically). "Click for Help" removed. fixed the sndplay-hangs-forever bug (the actual problem here is that CLM's all.lisp tries to be the equivalent of Snd's configure script, and that has become far too complicated to work reliably. I need to run configure from all.lisp instead). changed with-relative-panes default to #t. checked: gtkglext-0.6.1 and 0.7.0, Guile 1.6.2, Gtk 2.2.1, OpenGL 1.4 (via Mesa 5.0) at least to the extent of compiling (I ran into a C++ loader problem). With much help from: Michael Scholz, Stefan Schwandter, Jamie Macbeth, Tim Van Holder, Raja R Harinath, Dave Phillips, Rick Taube, David Lowenfels, Cris Ewing, Paul Kirk From bil at ccrma.Stanford.EDU Mon Feb 17 03:09:34 2003 From: bil at ccrma.Stanford.EDU (Bill Schottstaedt) Date: Mon, 17 Feb 2003 03:09:34 -0800 Subject: [CM] tap and comb pm arguments In-Reply-To: References: Message-ID: <200302171109.DAA18746@cmn14.stanford.edu> The tap problem was caused by an over-optimization of delay. I'll make a new clm tarball later this morning. From bil at ccrma.Stanford.EDU Mon Feb 17 04:10:15 2003 From: bil at ccrma.Stanford.EDU (Bill Schottstaedt) Date: Mon, 17 Feb 2003 04:10:15 -0800 Subject: [CM] run-time converter problem In-Reply-To: References: Message-ID: <200302171210.EAA18830@cmn14.stanford.edu> > but seconds->samples is listed in the manual among the run-time converters > that are available. Where? I can't find anything about it. In the lisp code, seconds->samples is a function returning a list, so it's unlikely run can handle it, but you could make an equivalent macro in the one arg case that run could handle: (defmacro seconds->samples-1 (arg) `(round (* *srate* ,arg))) (This is not tested code...) From cewing at u.washington.edu Mon Feb 17 11:22:30 2003 From: cewing at u.washington.edu (cristopher pierson ewing) Date: Mon, 17 Feb 2003 11:22:30 -0800 (PST) Subject: [CM] run-time converter problem In-Reply-To: <200302171210.EAA18830@cmn14.stanford.edu> Message-ID: I find it in the section labelled "Useful Functions," which has the caption "There are several commonly-used functions that can occur in the run macro. . . ." It is listed along with hz->radians and radians->hz etc. Am I reading the listing incorrectly? Anyway, I went ahead and created my own little macro, to it's no real biggie, Just a question about the documentation for the function. thanks, C ******************************** Cris Ewing CARTAH Assistant University of Washington Home Phone: (206) 365-3413 E-mail: cewing at u.washington.edu ******************************* On Mon, 17 Feb 2003, Bill Schottstaedt wrote: > > but seconds->samples is listed in the manual among the run-time converters > > that are available. > > Where? I can't find anything about it. In the lisp code, seconds->samples > is a function returning a list, so it's unlikely run can handle it, but > you could make an equivalent macro in the one arg case that run could > handle: > > (defmacro seconds->samples-1 (arg) `(round (* *srate* ,arg))) > > (This is not tested code...) > From cwilkers at tulane.edu Mon Feb 17 22:09:31 2003 From: cwilkers at tulane.edu (Carr Wilkerson) Date: Tue, 18 Feb 2003 00:09:31 -0600 Subject: [CM] Multi-chan recording with snd Message-ID: <3E51CE1B.7060202@tulane.edu> I am trying to record 4 channels simultaneously. I remember that snd used to boot with a channel mapping matrix of in's and out's but now seems to default to 2 in/2 out. How do I expand the recorder to 4 in's? Thanks, Carr From bil at ccrma.Stanford.EDU Tue Feb 18 03:12:29 2003 From: bil at ccrma.Stanford.EDU (Bill Schottstaedt) Date: Tue, 18 Feb 2003 03:12:29 -0800 Subject: [CM] Multi-chan recording with snd In-Reply-To: <3E51CE1B.7060202@tulane.edu> References: <3E51CE1B.7060202@tulane.edu> Message-ID: <200302181112.DAA19610@cmn14.stanford.edu> > I am trying to record 4 channels simultaneously. I remember that snd > used to boot with a channel mapping matrix of in's and out's but now > seems to default to 2 in/2 out. How do I expand the recorder to 4 in's? It's different for each audio system; in OSS Snd tries to figure out how many channels your hardware supports, and puts up sliders and meters for all of them; I can't remember off the top of my head what happens in ALSA, but I thought it did something similar -- I usually start with (mus-audio-describe) to see what sndlib thinks is out there. From bil at ccrma.Stanford.EDU Tue Feb 18 03:15:37 2003 From: bil at ccrma.Stanford.EDU (Bill Schottstaedt) Date: Tue, 18 Feb 2003 03:15:37 -0800 Subject: [CM] run-time converter problem In-Reply-To: References: Message-ID: <200302181115.DAA19619@cmn14.stanford.edu> > I find it in the section labelled "Useful Functions," which has the > caption "There are several commonly-used functions that can occur in the > run macro. . . ." Oh rats -- how many different ways can documentation get screwed up? I'll add some of those to run, and change the lead-in to "functions, some of which can occur...". From rsegnini at ccrma.Stanford.EDU Wed Feb 19 08:51:17 2003 From: rsegnini at ccrma.Stanford.EDU (Rodrigo Segnini) Date: 19 Feb 2003 08:51:17 -0800 Subject: [CM] CLM->CMN problem Message-ID: <1045673477.11247.914.camel@cmn8.Stanford.EDU> Hi. In CMN the following code produces a shaded single note with onset <2> in staff from score , as in the picture that I'm attaching. (progn (setf hi (init-clm-input)) (setf ins (add-staff hi "ins" nil)) (add-note-to-staff hi ins 2.0d0 1/5 261 (GRAY-SCALE 0.458)) (finish-clm-input hi nil nil)) Most of the translation between CLM and CMN is handled by functions inside cmn2.lisp. One of them, (display-notes args notes) takes a list of arguments as score attributes and a list of notes in the same form as the third line above (score name begin-time duration frequency &rest). I have created a function that calls using note lists similar to that same line. The output is correct, except that the grayscale attribute is lost. When peeking at hi.cmn, it is clear that it had no consequences on it. ;;; -*- syntax: common-lisp; package: cmn; base: 10; mode: lisp -*- ;;; cmn structure stored Tue 18-Feb-3 at 15:22 (in-package :cmn) (cmn (title "speech2cmn test") (size 12) (title-separation 5) (automatic-page-numbers T) (automatic-measure-numbers T) (all-output-in-one-file T) (redundant-accidentals nil) (title "speech2cmn test") (system (staff (staff-name "75") (treble) (meter 2 4) (ef6 (rq 1/5) (onset 0) stem-down begin-two-octaves-up) (ef6 (rq 1/5) (onset 1/5) stem-down) (...) (ef6 (rq 1/5) (onset 11/5) stem-down end-two-octaves-up)) (staff (staff-name "71") ... On the other hand, if one edits hi.cmn and adds the color attribute, and (load "hi.cmn") as the current score, then color it goes. I have traced what happens to the arguments after and inserted print statements in reloaded sections of cmn2.lisp to observe the state of the <&rest object> variable after every call. calls , which in turn calls . At the end of it there is a conditional such that if there are any extra arguments, is applied to them (apply #'note nt rest) before pushing the result to (staff-data staff), otherwise (push nt (staff-data staff)). Now, at this point it gets all too obscure for me as just encapsulates a call to which seems to be the place where relevant information is added to the note object (self-acting-p, rhythm-p, score-object-p, etc) and the rest is discarded. Up to here I can trace that (GRAY-SCALE 0.458) is still alive as an argument, but it has no consequence to the note object. Any idea why that is happening? Thanks, Rodrigo -------------- next part -------------- A non-text attachment was scrubbed... Name: aaa.jpg Type: image/jpeg Size: 4116 bytes Desc: not available URL: From bil at ccrma.Stanford.EDU Thu Feb 20 02:54:57 2003 From: bil at ccrma.Stanford.EDU (Bill Schottstaedt) Date: Thu, 20 Feb 2003 02:54:57 -0800 Subject: [CM] CLM->CMN problem In-Reply-To: <1045673477.11247.914.camel@cmn8.Stanford.EDU> References: <1045673477.11247.914.camel@cmn8.Stanford.EDU> Message-ID: <200302201055.CAA21867@cmn14.stanford.edu> I take it you're using cmn-store to create hi.cmn, and that the bug is that the color is lost in that case? You can fix this by adding identify-color, and including it in the-usual-suspects: ;;; in cmn-objects.lisp: (defun identify-color (obj &optional file) (if (color obj) (format file " (color '~A)" (color obj)) "")) ;;; in cmn1.lisp: (defun the-usual-suspects (object) (format nil "~A~A~A~A~A" (identify-marks object) (check-for-cmn-store-tag object) (identify-matrix object) (identify-color object) (identify-visible object))) I made these changes in the cmn tarball. From rsegnini at ccrma.Stanford.EDU Thu Feb 20 19:16:31 2003 From: rsegnini at ccrma.Stanford.EDU (Rodrigo Segnini) Date: 20 Feb 2003 19:16:31 -0800 Subject: [CM] CLM->CMN problem In-Reply-To: <1045746072.20338.24.camel@cmn8.Stanford.EDU> References: <1045673477.11247.914.camel@cmn8.Stanford.EDU> <200302201055.CAA21867@cmn14.stanford.edu> <1045746072.20338.24.camel@cmn8.Stanford.EDU> Message-ID: <1045797391.4211.37.camel@cmn8.Stanford.EDU> Hi Bill: On Thu, 2003-02-20 at 05:01, Rodrigo Segnini wrote: > Thanks Bill. Yes, cmn-store is part of my custom function (see below). > With these extra functions, do you think that gray-scale will be > supported as well? I just realized the function in cmn-objects.lisp takes care of that. I did not know that a grayscale value was obtained by giving the same value to red, green, and blue ;-) Anyways, I modified as part of my loaded code just to see what I'm passing to : (defun clm::add-note (score name begin-time duration frequency &rest rest) (apply #'cmn::add-note-to-staff score (cmn::find-staff score name) begin-time duration frequency rest);(first rest)) (format t "~s ~d ~d ~d ~d ~d ~%" ; debug what's passed to add-note-to-staff score name begin-time duration frequency rest);(first rest)) ) And this is the result: # 0 2.2d0 1/5 261.73 ((COLOR (0.22 0 0))) Since I was suspicious of the double parenthesis in the color object, I tried pulling it out (the second version is commented as (first rest) instead of plain rest). It still doesn't write to hi.cmn the color attribute. But if you do it by hand as in this example: (progn (setf hi (init-clm-input)) (setf ins (add-staff hi "ins" nil)) (add-note-to-staff hi ins 2.0d0 1/5 261 (GRAY-SCALE .9)) (add-note-to-staff hi ins 2.2d0 1/5 261 (COLOR '(.9 .9 .9))) (finish-clm-input hi nil nil)) It does, so I'm confused... Thanks for your considerations, Rodrigo > (defun sp2cmn (...) > (setf note-lists (append (notator2 :sound sound > :name partial > :partial partial > :amp-threshold threshold > :color color) note-lists)));)) > ;(print note-lists) ; debug what's generated by notator2 > (cmn::cmn-store > (clm::display-notes (list (cmn::size 12) > (cmn::all-output-in-one-file t) > (cmn::automatic-page-numbers t) > (cmn::automatic-measure-numbers t) > (cmn::redundant-accidentals nil) > (cmn::title-separation 5) > (cmn::title title)) > note-lists numerator denominator)) > > Thanks for your quick reply, > > Rodrigo > > On Thu, 2003-02-20 at 02:54, Bill Schottstaedt wrote: > > I take it you're using cmn-store to create hi.cmn, and that the > > bug is that the color is lost in that case? You can fix this by > > adding identify-color, and including it in the-usual-suspects: > > > > ;;; in cmn-objects.lisp: > > (defun identify-color (obj &optional file) > > (if (color obj) > > (format file " (color '~A)" (color obj)) > > "")) > > > > ;;; in cmn1.lisp: > > (defun the-usual-suspects (object) > > (format nil "~A~A~A~A~A" > > (identify-marks object) > > (check-for-cmn-store-tag object) > > (identify-matrix object) > > (identify-color object) > > (identify-visible object))) > > > > I made these changes in the cmn tarball. > > _______________________________________________ > > Cmdist mailing list > > Cmdist at ccrma.stanford.edu > > http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist > From eliot at generation.net Thu Feb 20 22:41:49 2003 From: eliot at generation.net (Eliot Handelman) Date: Fri, 21 Feb 2003 01:41:49 -0500 Subject: [CM] CMN Turning off rhythmic display? Message-ID: <3E55CA2D.2AB73BE@generation.net> Hello everyone, I'm trying to notate via CMN a midi piano part proportionately, using onsets. So far it looks good, now if only I can get CMN to suppress rhythmic information, ie, to stop displaying flags, rhythmic divisions, etc., ie what I need is something like (automatic-rhythm nil), or (begin-non-rhythmic-beam), or something similar. I assume others have already been here? Many thabks for any help or suggestions. -- eliot From bil at ccrma.Stanford.EDU Fri Feb 21 04:30:18 2003 From: bil at ccrma.Stanford.EDU (Bill Schottstaedt) Date: Fri, 21 Feb 2003 04:30:18 -0800 Subject: [CM] CMN Turning off rhythmic display? In-Reply-To: <3E55CA2D.2AB73BE@generation.net> References: <3E55CA2D.2AB73BE@generation.net> Message-ID: <200302211230.EAA23249@cmn14.stanford.edu> > I'm trying to notate via CMN a midi piano part proportionately, using > onsets. Perhaps pmn.lisp has what you need. From michael at klingbeil.com Tue Feb 25 10:52:21 2003 From: michael at klingbeil.com (Michael Klingbeil) Date: Tue, 25 Feb 2003 13:52:21 -0500 Subject: [CM] CLM power-env Message-ID: I think I have managed to get the power-env stuff in "env.lisp" to work (at least with C compilation). The idea of power-env is to allow each envelope segment to have a base parameter to control the concavity. Anyway the version in env.lisp didn't seem to work. There were two problems: envelope class type is now "seg" rather than "envelope", and "seg-end" is not supported by the run macro. So I tried something like this to support seg-end in run: (def-clm-fun 'seg-end #'(lambda (var x) (pushnew 'seg-end methods) (package-op ' var x :clm-integer))) (add-clm-method 'seg-end +env+ #'(lambda () "clm_int[gen_addr+5]") nil) But this didn't seem to quite work. I concluded that I would have needed to to change this in cmus.lisp (defun method-type (method) (if (member method '(mus-length mus-channel mus-location mus-channels mus-order mus-cosines)) 'int (if (member method '(mus-data mus-xcoeffs mus-ycoeffs seg-end)) 'int 'double))) I didn't really want to mess around with cmus.lisp (Also shouldn't the return type be stored in the clm-methods table?? package-op seems to take a return type parameter as well, so the method-type defun looks like a hack to me... but maybe I am wrong about that!) Anyway, I decided to just use mus-length instead of seg-end since there was no mus-length method for envelopes. There is probably a better way to do this and I'm open to suggestions! So here is my result: (in-package :clm) ;;; extension of env to provide individual base on each segment (include 1 and 0 => linear and step) ;;; (make-power-env (envelope (scaler 1.0) (offset 0.0) duration) ;;; returns a penv struct containing an array of envelopes ;;; where the envelope is a sequence of triples [x y base] (def-clm-struct penv envs total-envs current-env current-pass) (add-clm-method 'mus-length +env+ #'(lambda () "clm_int[gen_addr+5]") nil) (defmacro power-env (pe1) `(let* ((pe ,pe1) (val (env (aref (penv-envs pe) (penv-current-env pe))))) (decf (penv-current-pass pe)) (when (zerop (penv-current-pass pe)) (when (< (penv-current-env pe) (penv-total-envs pe)) (incf (penv-current-env pe)) (setf (penv-current-pass pe) (mus-length (aref (penv-envs pe) (penv-current-env pe)))))) val)) (defun make-power-env (&key envelope (scaler 1.0) (offset 0.0) duration) (let* ((len (1- (floor (length envelope) 3))) (pe (make-penv :envs (make-array len :element-type 'seg) :total-envs len :current-env 0 :current-pass 0)) (xext (- (nth (- (length envelope) 3) envelope) (first envelope)))) (loop for i from 0 below len and x0 in envelope by #'cdddr and y0 in (cdr envelope) by #'cdddr and base in (cddr envelope) by #'cdddr and x1 in (cdddr envelope) by #'cdddr and y1 in (cddddr envelope) by #'cdddr do (setf (aref (penv-envs pe) i) (make-env :envelope (list 0.0 y0 1.0 y1) :base base :scaler scaler :offset offset :duration (* duration (/ (- x1 x0) xext))))) (setf (penv-current-pass pe) (seg-end (aref (penv-envs pe) 0))) pe)) From cewing at u.washington.edu Tue Feb 25 14:30:54 2003 From: cewing at u.washington.edu (cristopher pierson ewing) Date: Tue, 25 Feb 2003 14:30:54 -0800 (PST) Subject: [CM] Two issues Message-ID: Hi, all. Two things to ask today. #1. Is the square-wave generator broken? I've been playing with waveforms, and get the following error when trying to run an instrument with a square wave: (i included a zoom, for convenience) Error: `NIL' is not of the expected type `(OR INTEGER FLOAT RATIO)' [condition type: TYPE-ERROR] Restart actions (select using :continue): 0: abort current note. 1: close files and return to top-level. 2: jump past remaining notes. 3: Return to Top Level (an "abort" restart). 4: Abort entirely from this process. [1] CM(24): :zoom Evaluation stack: (ERROR TYPE-ERROR :DATUM ...) ->(DOUBLE-FLOAT NIL) ((METHOD CLM::GEN-LOAD (SQUARE-WAVE T T T T)) # 23 ...) (CLM::LOAD-VARS 23 11 ...) (RINGMOD "/Users/cewing/SND/samples/glassandstone/rwGlass2clean.aif" 0 ...) (CATCH :FINISH (RINGMOD PATH 0 ...)) [... EXCL::%EVAL ] (RETURN-FROM #:|Tag83| (CATCH :FINISH #)) [... EXCL::EVAL-AS-PROGN ] (LET* (#) (RETURN-FROM #:|Tag83| #)) [... EXCL::EVAL-AS-PROGN ] (LET* NIL (EXCL::RESTART-BIND-IF T # ...)) ... more older frames ... [1] CM(25): Also, along these same lines, attempting to set the width of the square wave pulse-(setf (mus-width wave) some-num)-reports that there is no setf for mus-width. Can this be right? And finally, are the waveforms produced by square-wave, triangle-wwave, and sawtooth-wave band-limited? Number 2: With regard to filters in CLM. What is the valid scale for the 'frequency-response-envelope' passed to 'envelope->coeffs?' From the example in the manual, it appears to be 0-1 on both axes. I assume that one axis is frequency and the other is amplitude, but how does 0-1 map to frequency? Is 1 equal to the nyquist frequency? Thanks for any input. Cris ******************************** 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 Tue Feb 25 17:06:07 2003 From: cewing at u.washington.edu (cristopher pierson ewing) Date: Tue, 25 Feb 2003 17:06:07 -0800 (PST) Subject: [CM] A problem with :scaled-to? Message-ID: I have an interesting problem that crops up every once in a while. When using the with-sound control parameter :scaled-to, I've discovered that on occasion it will squelch output. That is to say, even though I may request an output scaled to 0.9, I will get nothing at all. Has anybody else had this problem? I dont seem to be able to figure out any signs of when exactly this happens, there is no special characteristic of the calls to with-sound that fail versus those that actually create sound. If I can help this by sending any output, could someone tell me what to output and how, so I can better describe the problem? Thanks muchly, Cris ******************************** Cris Ewing CARTAH Assistant University of Washington Home Phone: (206) 365-3413 E-mail: cewing at u.washington.edu ******************************* From bil at ccrma.Stanford.EDU Wed Feb 26 07:36:42 2003 From: bil at ccrma.Stanford.EDU (Bill Schottstaedt) Date: Wed, 26 Feb 2003 07:36:42 -0800 Subject: [CM] Two issues In-Reply-To: References: Message-ID: <200302261536.HAA29705@cmn14.stanford.edu> > #1. Is the square-wave generator broken? yes -- I forgot to initialize the width field. Should be ok now. > (setf (mus-width wave) some-num)-reports that there is no > setf for mus-width. I think I messed up a merge somewhere -- run.lisp doesn't have it, but cmus.lisp does -- will check. > are the waveforms produced by square-wave, triangle-wwave, > and sawtooth-wave band-limited? no. From bil at ccrma.Stanford.EDU Thu Feb 27 04:14:43 2003 From: bil at ccrma.Stanford.EDU (Bill Schottstaedt) Date: Thu, 27 Feb 2003 04:14:43 -0800 Subject: [CM] CLM power-env In-Reply-To: References: Message-ID: <200302271214.EAA00920@cmn14.stanford.edu> Thanks for the power-env bug fixes -- I added mus-length for envs, changed seg-end to mus-length in env.lisp, and 'envelope to 'seg. From bil at ccrma.Stanford.EDU Thu Feb 27 04:15:27 2003 From: bil at ccrma.Stanford.EDU (Bill Schottstaedt) Date: Thu, 27 Feb 2003 04:15:27 -0800 Subject: [CM] Two issues In-Reply-To: References: Message-ID: <200302271215.EAA00925@cmn14.stanford.edu> > With regard to filters in CLM. What is the valid scale for the > 'frequency-response-envelope' passed to 'envelope->coeffs?' From the > example in the manual, it appears to be 0-1 on both axes. I assume that > one axis is frequency and the other is amplitude, but how does 0-1 map to > frequency? Is 1 equal to the nyquist frequency? It looks like the code uses whatever max x value it finds; not sure offhand what it corresponds to however -- I think I'll make all these spectrum->coeffs functions follow mus_fir_filter_coeffs in clm.c. > When using the with-sound control parameter :scaled-to, I've discovered > that on occasion it will squelch output. What is the unscaled max amp? (set :statistics t in with-sound to find out). From michael at klingbeil.com Thu Feb 27 22:02:50 2003 From: michael at klingbeil.com (Michael Klingbeil) Date: Fri, 28 Feb 2003 01:02:50 -0500 Subject: [CM] A problem with :scaled-to? In-Reply-To: References: Message-ID: I seem to remember experiencing this a few years back. I think the problem for me was that for some reason a huge value was being output (like a nasty click) and since this became the maximum amplitude, everything else was scaled to the point of inaudibility. I don't recall whether this was a bug or a problem in the instrument. Since switching to clm-2 (and making the appropriate tweaks for MacOS) I haven't had any problems like that. Try adding a :statistics t to your calls to with-sound (if you haven't already). If the maximum amplitude seems ridiculously huge (in the thousands) then perhaps that is the problem. Also, maybe there is a way to save the intermediate result before scaling so that you could look at the sound file and see if there is some kind of nasty value in there? But I'm not sure exactly how to do that... Michael >I have an interesting problem that crops up every once in a while. > >When using the with-sound control parameter :scaled-to, I've discovered >that on occasion it will squelch output. That is to say, even though I >may request an output scaled to 0.9, I will get nothing at all. > >Has anybody else had this problem? I dont seem to be able to figure out >any signs of when exactly this happens, there is no special characteristic >of the calls to with-sound that fail versus those that actually create >sound. > >If I can help this by sending any output, could someone tell me what to >output and how, so I can better describe the problem? > >Thanks muchly, > >Cris > >******************************** >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 bil at ccrma.Stanford.EDU Fri Feb 28 03:36:27 2003 From: bil at ccrma.Stanford.EDU (Bill Schottstaedt) Date: Fri, 28 Feb 2003 03:36:27 -0800 Subject: [CM] some new instruments in CLM Message-ID: <200302281136.DAA02165@cmn14.stanford.edu> I added some instruments written by David Lowenfels: band-limited basic waveforms: good-saw.ins good-sqr.ins good-tri.ins "Vellocet"-style oversampled state-variable filter svf.lisp Thanks, David! From ppagano at bellsouth.net Fri Feb 28 12:11:13 2003 From: ppagano at bellsouth.net (ppagano at bellsouth.net) Date: Fri, 28 Feb 2003 15:11:13 -0500 Subject: [CM] SND on OSX made easy Message-ID: <20030228201113.HTFI22060.imf50bis.bellsouth.net@mail.bellsouth.net> Hey folks i cannot build snd on oS x anymore i built it on my G4-500 (10.1.5) and my iBook but i have since upgraded to a TiBook and cannot seem to get the proper recipe Is there a chance for SND in pkg or dmg format anytime soon? Other wise might someone running 10.2.4 walk me through a setup?? I have tried Apples X11 and Xdarwin but there is something amiss with Motif and i am frankly frustrated. any tips would be greatly appreciated Patrick http://www.digitalworlds.ufl.edu