From ego111 at gmail.com Sun Jul 2 04:07:18 2006 From: ego111 at gmail.com (Evans Winner) Date: Sun, 2 Jul 2006 04:07:18 -0700 Subject: [CM] cm/clm in snd Message-ID: <6e107fd50607020407n9c05431ra3b99c9f1739fbad@mail.gmail.com> A couple of quick questions and a note: * Is the current cvs cm meant to be able to work, and particularly, work with clm inside snd? * Am I correct that to use snd with inf-snd.el snd has to be compiled --with-no-gui? or at least to use it remotely by way of ssh? (I got `Error: Cannot open display:' from my old version of snd otherwise). * Don't know if this is useful, but loading today's cvs of cm.scm into snd worked except for a couple of `defun's in scheduler.scm around line 244. When changed to `define's it loaded everything without error. -- ? From ego111 at gmail.com Sun Jul 2 04:30:43 2006 From: ego111 at gmail.com (Evans Winner) Date: Sun, 2 Jul 2006 04:30:43 -0700 Subject: [CM] cm/clm in snd (correction) Message-ID: <6e107fd50607020430k52a628e8nfe2f2c7dfee65b54@mail.gmail.com> Oops. I had to laugh when I re-read this: >* Is the current cvs cm meant to be able to work, and particularly, > work with clm inside snd? Sorry, that didn't say what I meant. Of course cm is meant to work. I mean to ask just about working along with clm inside snd. Sorry about that. -- ? From taube at uiuc.edu Sun Jul 2 04:52:52 2006 From: taube at uiuc.edu (Rick Taube) Date: Sun, 2 Jul 2006 06:52:52 -0500 Subject: [CM] cm/clm in snd In-Reply-To: <6e107fd50607020407n9c05431ra3b99c9f1739fbad@mail.gmail.com> References: <6e107fd50607020407n9c05431ra3b99c9f1739fbad@mail.gmail.com> Message-ID: <56a95619df2d8e276abff24f36d7fda4@uiuc.edu> On Jul 2, 2006, at 6:07 AM, Evans Winner wrote: > A couple of quick questions and a note: > > * Is the current cvs cm meant to be able to work, and particularly, > work with clm inside snd? yes it should work > * Don't know if this is useful, but loading today's cvs of cm.scm into > snd worked except for a couple of `defun's in scheduler.scm around > line 244. When changed to `define's it loaded everything without > error. thanks for the report, there were a few common lisp nits in the scheme sources due the the rts rewrite. its fixed now but will take a few hours to migrate to anon. cvs. in addition to the defun, seach for an instance of nil and repace with #f --rick From taube at uiuc.edu Sun Jul 2 04:58:04 2006 From: taube at uiuc.edu (Rick Taube) Date: Sun, 2 Jul 2006 06:58:04 -0500 Subject: [CM] After #\# is #\& an undefined dispatch macro character...? In-Reply-To: <6e107fd50606302128x5c4034aes3bb0c9dcbfb97dc@mail.gmail.com> References: <6e107fd50606302128x5c4034aes3bb0c9dcbfb97dc@mail.gmail.com> Message-ID: it appears that for some reason the #& dispatch macro isnt getting installed when cm start up in your clisp. however, i cant reproduce this in my clisp: $ cm -l clisp [...] CM[1]> (new seq :name "foo") # CM[2]> #&foo # CM[3]> until i figure out what is wrong, use (find-object ...) or just save it in a variable: (find-object "foo") # CM[4]> (setq bar (new seq)) # CM[5]> On Jun 30, 2006, at 11:28 PM, Evans Winner wrote: > I wonder if anyone could explain what I need to do about this. My > limited learning about lisp so far is not enough to help me here. I > don't know anything about macros and such. Hopefully the info below > is what would be needed to know the problem.... I don't think the > backtrace is helpful because it's all just calls to swank. Anyway, > any help would be much appreciated. Thanks. > > -Evans > > > CM> *features* > (:CM :METACLASSES :ASDF :DIRKEY :RAWSOCK :REGEXP :SYSCALLS :I18N :LOOP > :COMPILER :CLOS :MOP :CLISP :ANSI-CL :COMMON-LISP :LISP=CL :INTERPRETER > :SOCKETS :GENERIC-STREAMS :LOGICAL-PATHNAMES :SCREEN :FFI :UNICODE > :BASE-CHAR=CHARACTER :PC386 :WIN32) > CM> (cm-version) > "Common Music 2.9.1" > CM> (new seq :name 'test) > # > CM> (object-name #&test) > > READ from #1=#: After #\# is #\& an > undefined dispatch macro character > [Condition of type SYSTEM::SIMPLE-READER-ERROR] > > Restarts: > 0: [ABORT-REQUEST] Abort handling SLIME request. > 1: [SKIP] skip (CREATE-SWANK-SERVER 4005) > 2: [STOP] stop loading file C:\snd\clisp-2.38\full\swank-init.lisp > 3: [ABORT] ABORT > > Backtrace: > 0: # > 1: # > 2: # CALL-WITH-SYNTAX-HOOKS (FN) ...)-32-3-1-1|> > 3: # > 4: # > 5: # > 6: # > 7: # CALL-WITH-DEBUGGER-HOOK (HOOK FUN) ...)-53-3-1-1|> > 8: # > 9: # > 10: # > 11: # CALL-WITH-DEBUGGER-HOOK (HOOK FUN) ...)-53-3-1-1|> > 12: # > 13: # > 14: # > 15: # > 16: # > 17: # > 18: # > 19: # > 20: # > 21: # > 22: # > 23: # > 24: # > 25: # > 26: # > > > -- > ? > > _______________________________________________ > Cmdist mailing list > Cmdist at ccrma.stanford.edu > http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist From bil at ccrma.Stanford.EDU Sun Jul 2 05:15:37 2006 From: bil at ccrma.Stanford.EDU (Bill Schottstaedt) Date: Sun, 2 Jul 2006 05:15:37 -0700 Subject: [CM] cm/clm in snd In-Reply-To: <56a95619df2d8e276abff24f36d7fda4@uiuc.edu> References: <6e107fd50607020407n9c05431ra3b99c9f1739fbad@mail.gmail.com> <56a95619df2d8e276abff24f36d7fda4@uiuc.edu> Message-ID: <20060702121216.M32261@ccrma.Stanford.EDU> > or at least to use it remotely by way of ssh? (I got > `Error: Cannot open display:' from my old version of snd otherwise). In the motif version, use the -d switch as in snd -d cat:0 where "cat" is a known host name. In gtk use --display with the same argument. I run both versions across a local net (using ssh) all the time. From b0ef at esben-stien.name Sun Jul 2 17:46:53 2006 From: b0ef at esben-stien.name (Esben Stien) Date: Mon, 03 Jul 2006 02:46:53 +0200 Subject: [CM] plot.cl (from dlocsig) In-Reply-To: (taube@uiuc.edu's message of "Mon, 5 Jun 2006 09:26:02 -0500") References: Message-ID: <87lkrbms5e.fsf@esben-stien.name> writes: > some gnuplot code Why not use r?. It's free software and gnuplot is not. -- Esben Stien is b0ef at e s a http://www. s t n m irc://irc. b - i . e/%23contact sip:b0ef@ e e jid:b0ef@ n n From taube at uiuc.edu Thu Jul 6 09:49:18 2006 From: taube at uiuc.edu (Rick Taube) Date: Thu, 6 Jul 2006 11:49:18 -0500 Subject: [CM] introducing SAL Message-ID: Introducing SAL, an alternate syntax for working with CM and Lisp. Sal provides commands, statements and infix sexprs. SAL has its own lexer/parser and combines features of lisp, dylan, pla and stella. Sal comes with its own Emacs mode (sal.el) that provides syntax highlighting and eval services via SLIME. http://pinhead.music.uiuc.edu/~hkt/sal.tgz this is what sal code looks like (much prettier with syntax highlighting!) ; i am a comment. the print command: print list(1, 2 + 3, 4) print "the value is: ", interpl( between(0.0,1.0), {0 0 50 1 100 0}) ; the define command: define variable hi = pi * random(2), ho = list(hi,2,3) define function foo(n) loop with l = list() repeat n set l &= random(127) finally return l end define process bar(n, r, lb, ub) run repeat n for k = between(lb,ub) output make(, time: now(), keynum: k) wait random(r) end ; open and sprout commands open "test.mid", versioning: #t sprout bar(20,.1, 60, 90) sprout list(bar(30, .1, 60,70), bar(20,.2,30,50)) at {0 1} load "rts.sys", "midishare.sys" open "midi-port.ms" rts 1 sprout bar(20, .1, 60, 80) ;--- SAL is brand new so it may change a bit -- I would be greatful for feedback and suggestions. to try it out: install the tarball where you put other cm systems add (load "/path/to/sal/sal.el") to your .emacs file start cm under slime and do (use-system :sal) edit examples.sal, follow directions at top From ego111 at gmail.com Sat Jul 8 04:32:26 2006 From: ego111 at gmail.com (thorne) Date: Sat, 8 Jul 2006 04:32:26 -0700 Subject: [CM] `Unbound variable: rts-thread?' Message-ID: <6e107fd50607080432k2b32cd64ia3aa4355c6201fd1@mail.gmail.com> Hello, and thanks for the recent help from the list. I am still trying to pick my way through Notes from the Metalevel using cm in snd. In chapter 13 where `process' is introduced, i was getting `Unbound variable: rts-thread?' and so on any time i used `events' to call any function that used `process.' `rts-thread?' is defined in rt.scm, which isn't loaded by the default cm.scm (and errors when i try manually). To make a long story short, i got it working (at least that bit) by changing scheduler.scm (around line 244) from (define (scheduling-mode) (if (rts-thread?) ':rts (if *events* ':events #f))) to just: (define (scheduling-mode) ':events) But needless to say, i'm wondering if i broke something else? (I don't even really know what rts is. The cm scourceforge page says it's not supported under guile.) -- ? From taube at uiuc.edu Sat Jul 8 06:15:07 2006 From: taube at uiuc.edu (Rick Taube) Date: Sat, 8 Jul 2006 08:15:07 -0500 Subject: [CM] `Unbound variable: rts-thread?' In-Reply-To: <6e107fd50607080432k2b32cd64ia3aa4355c6201fd1@mail.gmail.com> References: <6e107fd50607080432k2b32cd64ia3aa4355c6201fd1@mail.gmail.com> Message-ID: <39c591477192761ad325a4d8c679a337@uiuc.edu> > `Unbound variable: rts-thread?' and so on any time i used `events' to > call any function that used `process.' `rts-thread?' is defined in > rt.scm, which isn't loaded by the default cm.scm (and errors when i > try manually). To make a long story short, i got it working (at least sorry. the solution is to load both "pm.scm" and "rt.scm" . this is fix in rev 1.23 of cm/src/cm.scm but it will take several hours for the file to migrate to anonymous cvs. > But needless to say, i'm wondering if i broke something else? (I > don't even really know what rts is. The cm scourceforge page says > it's not supported under guile.) rts stands for "real time scheduler". it can be used in place of events to run processes in real time. its written as an external c module and is supported in gauche scheme, openmcl and sbcl. snd/guile alread has a real time scheduler called 'rt-snd' by Kjetil Matheussen --rick From ego111 at gmail.com Tue Jul 11 15:36:08 2006 From: ego111 at gmail.com (thorne) Date: Tue, 11 Jul 2006 15:36:08 -0700 Subject: [CM] cm/clm in snd In-Reply-To: <20060702121216.M32261@ccrma.Stanford.EDU> References: <6e107fd50607020407n9c05431ra3b99c9f1739fbad@mail.gmail.com> <56a95619df2d8e276abff24f36d7fda4@uiuc.edu> <20060702121216.M32261@ccrma.Stanford.EDU> Message-ID: <6e107fd50607111536t22395d2cp163cd01d0f512190@mail.gmail.com> (I mistakenly sent this just to Bill Schottstaedt instead of the list the first time. Sorry.) When i try `snd --display sibeol:0' (sibeol is my hostname) as a regular user i get: ALSA lib pcm_dsnoop.c:556:(snd_pcm_dsnoop_open) unable to create IPC shm instance (snd:5507): Gtk-WARNING **: cannot open display: sibeol:0 open pcm default for stream 1: Permission denied and when i try as root i just get the (snd:5490): Gtk-WARNING **: cannot open display: sibeol:0 part. I've tried locally from an xterm, from a tty session, from ssh remotely and ssh from loopback. Always the same. Also tried sibeol:0.0 and some various other randomness. I'm thinking this is a config issue on my end, and i don't know anything about X and display stuff; if anyone has any pointers for me for what i need to read about i would be grateful. Thanks. On 7/2/06, Bill Schottstaedt wrote: > > > or at least to use it remotely by way of ssh? (I got > > `Error: Cannot open display:' from my old version of snd otherwise). > > In the motif version, use the -d switch as in > > snd -d cat:0 > > where "cat" is a known host name. In gtk use --display with the > same argument. I run both versions across a local net (using > ssh) all the time. > > -- ? From taube at uiuc.edu Wed Jul 12 06:45:48 2006 From: taube at uiuc.edu (Rick Taube) Date: Wed, 12 Jul 2006 08:45:48 -0500 Subject: [CM] improved patterns Message-ID: cvs has some big improvements to pattern support 1. new (pattern ...) macro allows complex patterns to be defined more easily. the macro is a bit like loop -- variables can be declared and then referenced in the item specification with other item data considered constant. there are two types of variables: standard ones declared using 'with' and a special type of variable (called an 'alias') that substitutes an expression into the data rather than a value. here's the difference between with and alias variables: (pattern with x = (random 10) cycle a x b x c x) ==> a 7 b 7 c 7 (pattern alias x = (random 10) cycle a x b x c x) ==> a 2 b 6 b 9 This is how you can define subpatterns with the pattern macro: (pattern with x = (pattern heap c e g for 1) and y = (pattern heap f a c for 1) cycle of notes bf x gf y) The optional 'of' lets you type item data and do nice things like define pattern local modes and tempo: (pattern heap of rhythms q q q w tempo 90) 2. The (process ...) macro now supports pattern iteration clauses: (process ... for x over [by ] ...) in other words, the 'over' clause automatically increments a variable by the next value in a pattern and stops iteration if the pattern ever returns end-of-data. So the process (process for x over (pattern cycle 60 61 62 repeat 4) output ...) will stop after outputting 12 notes. using 'over' and 'pattern' makes it much easier to express something complex like weights that change as a function of something: (process for k over (pattern alias w = (interpl (now) '(0 0 1 100)) weighting of notes c4 (d :weight w) ...) output ...) In Sal patterns will be defined using a [] notation: run for x over [cycle 1,2,3,4 for 5] output ... end 3. its now possible to place lambda exprs directly in patterns with the expectation that they will be funcalled when encountered. this measn the (pval ) macro is no longer needed (and has been depreciated). 4. all patterns now accept an :eop-hook, if supplied it is funcalled every time the period of the pattern is reset. pattern macro doc at: http://commonmusic.sourceforge.net/doc/dict/pattern-mac.html From taube at uiuc.edu Wed Jul 12 06:47:25 2006 From: taube at uiuc.edu (Rick Taube) Date: Wed, 12 Jul 2006 08:47:25 -0500 Subject: [CM] SAL in cvs Message-ID: Ive added SAL to cm's cvs tree. to get it via cvs do cvs checkout sal or download the module at http://sourceforge.net/project/showfiles.php? group_id=9766&package_id=197060 --rick From nkambe at po-box.mcgill.ca Thu Jul 13 17:50:50 2006 From: nkambe at po-box.mcgill.ca (Niklas Kambeitz) Date: Thu, 13 Jul 2006 20:50:50 -0400 Subject: [CM] SBCL on Windows Message-ID: <44B6EA6A.2020103@po-box.mcgill.ca> I managed to get CM and many subsystems working on the "experimental" version of SBCL for Windows. I was hoping that RTS would work, but I don't know how to make a "librts.dll". What are the chances that we'll see RTS working on this platform soon? :-) Nik From taube at uiuc.edu Fri Jul 14 04:48:32 2006 From: taube at uiuc.edu (Rick Taube) Date: Fri, 14 Jul 2006 06:48:32 -0500 Subject: [CM] SBCL on Windows In-Reply-To: <44B6EA6A.2020103@po-box.mcgill.ca> References: <44B6EA6A.2020103@po-box.mcgill.ca> Message-ID: >> I managed to get CM and many subsystems working on the >> "experimental" version of SBCL for Windows. I was hoping that RTS >> would work, that is good news, thanks >> but I don't know how to make a "librts.dll". me either! > What are the chances that we'll see RTS working on this platform > soon? :-) none if you leave it to me. i dont have access to a windows machine. the next problem would be getting a c compiler, then fighting sbcl, which would need to have callbacks working for there to be any chance. if there are callbacks then it might work. for example rts does work on linux sbcl (at least in the sbcl version i was using...) but not on my darwin sbcl. i think todd (may) have it working on tiger with sbcl. but as you see its hit and miss. it would definatly take someone that knows what they are doing on windows and sbcl to tackle this and im not that person, sorry. i think i did my part - we spent alot of time writing a good posix c scheduler with a vanilla lisp side using straight-ahead cffi and common lisp. if it doesnt work in a particular lisp or os there is nothing i can do about it at this point best, rick On Jul 13, 2006, at 7:50 PM, Niklas Kambeitz wrote: > I managed to get CM and many subsystems working on the > "experimental" version of SBCL for Windows. I was hoping that RTS > would work, but I don't know how to make a "librts.dll". > > What are the chances that we'll see RTS working on this platform > soon? :-) > > Nik > > _______________________________________________ > Cmdist mailing list > Cmdist at ccrma.stanford.edu > http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist From fdowling at utvinternet.ie Thu Jul 13 01:25:40 2006 From: fdowling at utvinternet.ie (Fergal Dowling) Date: Thu, 13 Jul 2006 09:25:40 +0100 Subject: [CM] MIDI file I/O Message-ID: <98fc0609e2df0896cdb0175cfe7216a9@utvinternet.ie> Hi, In CM I want to read MIDI files, process specific MIDI events, and output the result to new MIDI files. The processing and output sections are not a problem, but I'm unsure how to read/access the MIDI events. Could anyone share a simple model of this? Thanks, Fergal Dowling From taube at uiuc.edu Fri Jul 14 13:34:13 2006 From: taube at uiuc.edu (Rick Taube) Date: Fri, 14 Jul 2006 15:34:13 -0500 Subject: [CM] MIDI file I/O In-Reply-To: <98fc0609e2df0896cdb0175cfe7216a9@utvinternet.ie> References: <98fc0609e2df0896cdb0175cfe7216a9@utvinternet.ie> Message-ID: look at the import-events function (see the midi method): http://commonmusic.sf.net/doc/dict/import-events-fn.html and the tutorial on editing static objects: http://commonmusic.sf.net/etc/tutorials/editing.lisp On Jul 13, 2006, at 3:25 AM, Fergal Dowling wrote: > Hi, > In CM I want to read MIDI files, process specific MIDI events, and > output the result to new MIDI files. The processing and output > sections are not a problem, but I'm unsure how to read/access the MIDI > events. Could anyone share a simple model of this? > > Thanks, > Fergal Dowling > > _______________________________________________ > Cmdist mailing list > Cmdist at ccrma.stanford.edu > http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist From fergaldowling at ear.ie Sat Jul 15 08:26:14 2006 From: fergaldowling at ear.ie (Fergal Dowling) Date: Sat, 15 Jul 2006 16:26:14 +0100 Subject: [CM] MIDI file I/O In-Reply-To: References: <98fc0609e2df0896cdb0175cfe7216a9@utvinternet.ie> Message-ID: Thanks for that, I hadn't seen these tutorials before. They are a good idea and a great supplement to the dictionary. Cheers, Fergal Dowling On 14 Jul 2006, at 21:34, Rick Taube wrote: > look at the import-events function (see the midi method): > > http://commonmusic.sf.net/doc/dict/import-events-fn.html > > and the tutorial on editing static objects: > > http://commonmusic.sf.net/etc/tutorials/editing.lisp > > > > On Jul 13, 2006, at 3:25 AM, Fergal Dowling wrote: > >> Hi, >> In CM I want to read MIDI files, process specific MIDI events, and >> output the result to new MIDI files. The processing and output >> sections are not a problem, but I'm unsure how to read/access the >> MIDI events. Could anyone share a simple model of this? >> >> Thanks, >> Fergal Dowling >> >> _______________________________________________ >> Cmdist mailing list >> Cmdist at ccrma.stanford.edu >> http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist > From robert.matovinovic at web.de Mon Jul 17 09:00:26 2006 From: robert.matovinovic at web.de (Robert Matovinovic) Date: Mon, 17 Jul 2006 17:00:26 +0100 Subject: [CM] Newbie question: Common Music doesn't start under xemacs Message-ID: <001901c6a9ba$21f17000$9f4d02c4@IBMI> Hi, Sorry to bother you, but I looked all over and didn't find the right answer. I also found the same question is the archives of this list, but just by deleting init.el as suggested there, it doesen't work. I run the windows build xemacs version 21.4.19 under XP, have installed common lisp, slime and CM-2.8.0. I followed the documentation for the init.el file to start CM. But I always get an error (void-function easy-menu-create-menu). From the debugger I get the message below: Debugger entered--Lisp error: (void-function easy-menu-create-menu) (easy-menu-create-menu "Common Music" *common-music-doc-menu*) (easy-menu-add-item menubar-slime (quote ("Documentation")) (easy-menu-create-menu "Common Music" *common-music-doc-menu*)) load-internal("cm" nil nil nil undecided) load("cm") (let* ((els ...) (bin ...) (load-path ...)) (add-to-list (quote load-path) slime-directory) (load "listener") (load "cm") (setq inferior-lisp-program bin)) eval-buffer(# nil) ;;; Reading at buffer position 950 #() call-interactively(eval-current-buffer) So mainly there seem to be not definition for easy-menu-create-menu. I looked up easymenu.el of my xemacs version for the definition. There is none. An internet search brought up the easymenu.el of emacs, where easy-menu-create-menu is defined. So I tried to copy the missing functions into my easymenu.el and compiled it. But this didn't work. Since I'm not familiar with hooking in files like easymenu.el into xemacs I'm asking this list. The docs recommend somehow xemacs. BTW I already tried to run CM under emacs, which didn't work either, so I switched to xemacs, where I got farer, but not far enough. Any help appreciated. Robert _________________________________________ Robert Matovinovic 2 Fenella Drive, Monavale Harare Zimbabwe Tel: +263 (0)4 339 879 Cell: +263 (0)91 43 66 47 email: robert.matovinovic at web.de From taube at uiuc.edu Mon Jul 17 15:43:18 2006 From: taube at uiuc.edu (Rick Taube) Date: Mon, 17 Jul 2006 17:43:18 -0500 Subject: [CM] Newbie question: Common Music doesn't start under xemacs In-Reply-To: <001901c6a9ba$21f17000$9f4d02c4@IBMI> References: <001901c6a9ba$21f17000$9f4d02c4@IBMI> Message-ID: <061f1495bddfb66784cd4659afaaae1b@uiuc.edu> cripes. try adding this to cm.el before the line that calls easy-menu-add-item. let me know if it works. if not, you will have to find out how to add a menu to an existing menu in xemacs and send it to me. (if (string-match "XEmacs" emacs-version) (defun easy-menu-add-item (menu path item &optional before) (add-menu-button path item before menu)))) From taube at uiuc.edu Tue Jul 18 06:03:19 2006 From: taube at uiuc.edu (Rick Taube) Date: Tue, 18 Jul 2006 08:03:19 -0500 Subject: [CM] SAL 1.0.1 Message-ID: sal 1.0.1 available from sourceforge: 1. "constructor statements" create objects from descriptions: #a[list for i below 10 collect i] #a[midi time: 0 keynum: random(128)] #a[vector repeat 20 collect random(32)] #a[cycle 1 2 3 4 5 ] #a[weighting of notes c d e {f weight 2} g for 5] 2. array notation: xxx[i] 3. when and unless conditional statements 4. better/faster error detection including mis-spelled exprs like a+3 5. pattern iteration supported inside process run blocks --- SAL is an alternate language syntax for working with Common Music. Sal provides commands, statements and infix expressions. It lets you start working with Common Music immediately, without having to first learn Lisp notation and evaluation rules. Sal comes with its own Emacs mode (sal.el) that includes syntax highlighting and command execution services via SLIME. SAL has its own lexer/parser and combines features of Lisp, Dylan, PLA and Stella. http://sourceforge.net/project/showfiles.php? group_id=9766&package_id=197060 --rick From bloland at stanford.edu Tue Jul 18 13:18:18 2006 From: bloland at stanford.edu (Per Bloland) Date: Tue, 18 Jul 2006 13:18:18 -0700 Subject: [CM] Tuning question Message-ID: Hi, I've been experimenting with tunings, and there's one thing I can't figure out. I'm using the "tuning" class with :cents. When the subsequent list begins with 0, all is well and I can specify each notes distance from the lowest note. However, when the cents list does not begin with 0, it doesn't seem to consistently specify the distance between adjacent steps. For example: (new tuning :name 'one :cents '(200 100) :lowest 261.625) (events (play-tuning #&one 0 2 .5 .6) "hscale.mid") gives me C D Eb, as expected, but this (with the same events call): (new tuning :name 'one :cents '(100 200) :lowest 261.625) gives me C D E, rather than C C# D#. What am I missing? Thanks, Per Also, here's the "play-tuning" code taken from the book, which I used above: (define (play-tuning tuning low high rate amp) (let* ((rise (loop for i from low below high collect i)) (fall (loop for i downfrom high downto low collect i)) (ran1 (shuffle (rest rise))) (ran2 (shuffle (rest rise))) (coda (loop for i from low to high collect i)) (all (append rise fall ran1 ran2 coda))) (process for k in all for x = (keynum k :from tuning) output (new midi :time (now) :keynum x :amplitude amp :duration (* rate .95)) wait rate))) -- Per Bloland http://www.stanford.edu/~bloland From taube at uiuc.edu Wed Jul 19 04:26:55 2006 From: taube at uiuc.edu (Rick Taube) Date: Wed, 19 Jul 2006 06:26:55 -0500 Subject: [CM] Tuning question In-Reply-To: References: Message-ID: <3906a6f218b4126a04cb2b4620f1e169@uiuc.edu> > lowest note. However, when the cents list does not begin with 0, it > doesn't > seem to consistently specify the distance between adjacent steps. For thanks, this is a bug. it seems the code simply looks for increasing order, not the starting value, to determine if the series is steps (relative distance ) or degrees (absolute) so it takes (100 200) and thinks that these are degrees because they are monotonically increasing :/ . if you switch: (200 100) then it works: CM> (setq foo (new tuning :name 'one :cents '(200 100) :lowest 261.625)) # CM> (setq bar (loop for i to 3 collect (hertz i :in foo))) (261.625 293.66412 311.1263 349.22748) CM> (note bar :hz) (C4 D4 EF4 F4) according to the documentation it should be explicitly looking for an initial cent value of 0 (or scaler of 1 i guess) to determine if its step or degree values. ill try to fix this later today. > Hi, > I've been experimenting with tunings, and there's one thing I can't > figure > out. I'm using the "tuning" class with :cents. When the subsequent list > begins with 0, all is well and I can specify each notes distance from > the > lowest note. However, when the cents list does not begin with 0, it > doesn't > seem to consistently specify the distance between adjacent steps. For > example: From johannes.quint at web.de Wed Jul 19 05:40:55 2006 From: johannes.quint at web.de (Johannes Quint) Date: Wed, 19 Jul 2006 14:40:55 +0200 Subject: [CM] pattern macro and rotation Message-ID: <44476542-0DD0-44A1-884B-A2D408C82AD4@web.de> am i right that the new pattern macro doesn't support the old rotation-mode? would it be possible to integrate it? tanks and greetings, johannes _________________________ Johannes Quint Rilkestr.55 D-53225 Bonn 0228 468256 johannes.quint at web.de http://www.johannes-quint.de -------------- next part -------------- An HTML attachment was scrubbed... URL: From taube at uiuc.edu Wed Jul 19 05:46:21 2006 From: taube at uiuc.edu (Rick Taube) Date: Wed, 19 Jul 2006 07:46:21 -0500 Subject: [CM] pattern macro and rotation In-Reply-To: <44476542-0DD0-44A1-884B-A2D408C82AD4@web.de> References: <44476542-0DD0-44A1-884B-A2D408C82AD4@web.de> Message-ID: <00bb3584b987b018c67d222293782254@uiuc.edu> yes of course, i simply forgot about rotation! On Jul 19, 2006, at 7:40 AM, Johannes Quint wrote: > am i right that the new pattern macro doesn't support the old > rotation-mode? > would it be possible to integrate it? > tanks and greetings, johannes > > _________________________ > > Johannes Quint > Rilkestr.55 > D-53225 Bonn > 0228 468256 > johannes.quint at web.de > http://www.johannes-quint.de > > > From taube at uiuc.edu Wed Jul 19 14:17:06 2006 From: taube at uiuc.edu (Rick Taube) Date: Wed, 19 Jul 2006 16:17:06 -0500 Subject: [CM] bug fixes In-Reply-To: References: Message-ID: <629fd3ce8b2f1ae3f147abe5f6e7a856@uiuc.edu> guess it was my day to fix bugs. it may take a few hours to migrate to anon. cvs. 1. scales.cm (rev 1.29): tuning now looks for initial 0 cent value (or scaler 1) to determine if the values are degrees or steps. 2. patterns.scm (rev 1.22): Rotation has been added to pattern macro and a #a[rotation of 1 2 3 4] to sal. 3. sal/parse.lisp (rev 1.4), sal/sal.lisp (rev 1.5) : Fixed bug that stopped 'for x over ...' from working. Fixed bug that stopped unbounded 'for x from' from working. Added rotation to #a pattern constructors. Syntax for load and open commands should NOT require comma delimiting. (well, I did say that Sal would be a bit of a moving target...) this demos all these bugs fixed: ; tuning uses primes in harmonic series octave 5 define variable prime5 = #a[tuning ratios: {17/17 19/17 23/17 29/17 31/17 2} lowest: 261.625] define process playprime5 () run for i over #a[rotation 0 1 2 3 4 5 6 7 8 9 10 repeat 12] for j from 0 for k = keynum( i, from: prime5) output #a[midi time: now() keynum: k] wait If( mod(j, 11) = 0, .4, .2) end open "test.mid" channel-tuning: 8 sprout playprime5() --rick From robert.matovinovic at web.de Wed Jul 19 16:47:49 2006 From: robert.matovinovic at web.de (Robert Matovinovic) Date: Thu, 20 Jul 2006 00:47:49 +0100 Subject: AW: [CM] Newbie question: Common Music doesn't start under xemacs In-Reply-To: <061f1495bddfb66784cd4659afaaae1b@uiuc.edu> Message-ID: <001d01c6ab8d$c2c7a4c0$9f4d02c4@IBMI> Your code didn't help. The error message was still the same. It took me some hours, but now its working, and the changes are minor. I avoided easy-menu-create-menu. My guess is that the error is caused by a bug in easymenu.el of xemacs, because easy-menu-create-menu is just not there. Here are the lines: ;; "Common Music" as first list item added, otherwise error under ;; xemacs 21.4.19, when used by next easy-menu-add-item call ;; Robert Matovinovic, 20.07.2006, robert.matovinovic at web.de (defvar *common-music-doc-menu* `("Common Music" [ "Home Page" (cm-doc "cm.html") t] [ "Installing" (cm-doc "install.html") t] [ "Working in Emacs" (cm-doc "emacs.html") t] "--" [ "Tutorials" (cm-doc "../etc/tutorials/") t] [ "Examples" (cm-doc "../etc/examples/") t] "--" [ "Dictionary" (cm-doc "dict/index.html") t] [ "Lookup..." cm-lookup t] )) ;; last argument changed to make it workable under xemacs 21.4.19 ;; see also definition of *common-music-doc-menu* above ;; Robert Matovinovic, 20.07.2006, robert.matovinovic at web.de (easy-menu-add-item menubar-slime '("Documentation") *common-music-doc-menu*) ;; following lines don't work under xemacs 21.4.19, ;; (easy-menu-create-menu "Common Music" ;; *common-music-doc-menu*)) I attach my changed cm.el Cheers -----Urspr?ngliche Nachricht----- Von: taube at uiuc.edu [mailto:taube at uiuc.edu] Gesendet: Monday, July 17, 2006 23:43 An: Robert Matovinovic Cc: cmdist at ccrma.Stanford.EDU Betreff: Re: [CM] Newbie question: Common Music doesn't start under xemacs cripes. try adding this to cm.el before the line that calls easy-menu-add-item. let me know if it works. if not, you will have to find out how to add a menu to an existing menu in xemacs and send it to me. (if (string-match "XEmacs" emacs-version) (defun easy-menu-add-item (menu path item &optional before) (add-menu-button path item before menu)))) -------------- next part -------------- A non-text attachment was scrubbed... Name: cm.el Type: application/octet-stream Size: 28078 bytes Desc: not available URL: From taube at uiuc.edu Thu Jul 20 05:08:11 2006 From: taube at uiuc.edu (Rick Taube) Date: Thu, 20 Jul 2006 07:08:11 -0500 Subject: AW: [CM] Newbie question: Common Music doesn't start under xemacs In-Reply-To: <001d01c6ab8d$c2c7a4c0$9f4d02c4@IBMI> References: <001d01c6ab8d$c2c7a4c0$9f4d02c4@IBMI> Message-ID: robert ive folded your fix into the sources (rev 1.16 of cm.el). I appreciate your help! --rick On Jul 19, 2006, at 6:47 PM, Robert Matovinovic wrote: > [...] It took me some > hours, but now its working, and the changes are minor. From johannes.quint at web.de Thu Jul 20 11:02:55 2006 From: johannes.quint at web.de (Johannes Quint) Date: Thu, 20 Jul 2006 20:02:55 +0200 Subject: [CM] range Message-ID: there seems to be another pattern-problem: the dictionary example for range returns now an error: (define pat1 (new range :from (new cycle :of '(60 74)) :downto 48 :by (new cycle :of '(1 2 3)) :repeat 6)) => Option :FROM without a data type (:NOTES :KEYNUMS :HERTZ). [Condition of type SIMPLE-ERROR] is this a side-effect of the new pattern-macro? thanks for answers: johannes _________________________ Johannes Quint Rilkestr.55 D-53225 Bonn 0228 468256 johannes.quint at web.de http://www.johannes-quint.de -------------- next part -------------- An HTML attachment was scrubbed... URL: From volger at lebenspuls.de Fri Jul 21 09:53:50 2006 From: volger at lebenspuls.de (Pieter Volger) Date: Fri, 21 Jul 2006 18:53:50 +0200 Subject: AW: [CM] Newbie question: Common Music doesn't start under xemacs Message-ID: <44C1069E.9030803@lebenspuls.de> Hi Robert, thanks a lot for your contribution. Because of my very basic programming skills I already had given up. Now cm 2.8.0 runs with clisp 2.3.4. Did you also succeed with cm 2.9.1? Pieter From taube at uiuc.edu Sat Jul 22 12:58:30 2006 From: taube at uiuc.edu (Rick Taube) Date: Sat, 22 Jul 2006 14:58:30 -0500 Subject: [CM] range In-Reply-To: References: Message-ID: <80b5ce548829e7c5100ed413e3246780@uiuc.edu> thanks. i believe this is now fixed in rev 1.23 of patterns.scm On Jul 20, 2006, at 1:02 PM, Johannes Quint wrote: > (define pat1 > ? (new range :from (new cycle :of '(60 74)) > ? ? ? ? ? ?? :downto 48 > ? ? ? ? ? ?? :by (new cycle :of '(1 2 3)) > ? ? ? ? ? ?? :repeat 6)) From bloland at stanford.edu Tue Jul 25 11:59:32 2006 From: bloland at stanford.edu (Per Bloland) Date: Tue, 25 Jul 2006 11:59:32 -0700 Subject: [CM] Portmidi on OS X Message-ID: I'm having trouble getting Portmidi installed on OSX. The Makefile seems to be for linux... Anyone know where to find instructions for a mac install? Thanks, Per -- Per Bloland http://www.stanford.edu/~bloland From taube at uiuc.edu Tue Jul 25 13:11:21 2006 From: taube at uiuc.edu (Rick Taube) Date: Tue, 25 Jul 2006 15:11:21 -0500 Subject: [CM] Portmidi on OS X In-Reply-To: References: Message-ID: <3da08744e6e7dd0fd40135b9abe30b24@uiuc.edu> portmidi is a bit of a mess. I think you cd to its pm_mac directory and the open the XCode project and hit Make (or whatever). you might find it easier to simply use the prtmidi.dylib i ship inside the CM.app on sourceforge . all you have to do is to copy /Applications/CM.app/Contents/Resources/lib/libportmidi.dylib to some place reasonable on your path like /usr/local/lib On Jul 25, 2006, at 1:59 PM, Per Bloland wrote: > I'm having trouble getting Portmidi installed on OSX. The Makefile > seems to > be for linux... Anyone know where to find instructions for a mac > install? > Thanks, > Per > > > -- > Per Bloland > http://www.stanford.edu/~bloland > > > _______________________________________________ > Cmdist mailing list > Cmdist at ccrma.stanford.edu > http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist From niklas.kambeitz at mail.mcgill.ca Wed Jul 26 23:16:00 2006 From: niklas.kambeitz at mail.mcgill.ca (Niklas Kambeitz) Date: Thu, 27 Jul 2006 02:16:00 -0400 Subject: [CM] CM-ETF Message-ID: <44C85A20.4090501@mail.mcgill.ca> I am working on a program called CM-ETF that allows output from Common Music to music notation files in Finale's ETF format. For downloads and more information, visit the project's website: http://cm-etf.sourceforge.net/ I basically made it for myself, but it's now at the point where I thought that other people might get some use out of it too. There are still bugs and missing features, and I would appreciate any comments or bug reports. In purpose and function it is similar to FOMUS, but more limited in scope; CM-ETF only outputs rhythms and pitches, not dynamics or other markings. It does try to intelligently render rhythm, pitch spelling and cautionary accidentals. I realize that rather than duplicate all this effort, CM-ETF should probably be turned into a backend for FOMUS. When I started working on this though, I needed something that would run in Clisp. I'm open to any ideas as to how this project should develop, if at all - is there a need for users of CM and Finale to bypass MusicXML and Dolet? If nothing else, CM-ETF provides some documentation on the structure and syntax of enigma files. Anyone interested should look at the source code files "etf-data.lisp" and "file-io.lisp". Nik From taube at uiuc.edu Sun Jul 30 08:56:52 2006 From: taube at uiuc.edu (Rick Taube) Date: Sun, 30 Jul 2006 10:56:52 -0500 Subject: [CM] Sal 1.0.2 available Message-ID: Sal 1.0.2 is available. This release includes a pretty good stab at documentation: http://commonmusic.sf.net/doc/dict/sal-topic.html download sources at: http://sourceforge.net/project/showfiles.php? group_id=9766&package_id=197060&release_id=435680 most important improvments are on the Emacs side: a new SAL menu and interactive help (press key with cursor on a sal reserved word) see changelog for the full list of goodies --rick From bil at ccrma.Stanford.EDU Mon Jul 31 05:05:41 2006 From: bil at ccrma.Stanford.EDU (Bill Schottstaedt) Date: Mon, 31 Jul 2006 05:05:41 -0700 Subject: [CM] Snd 8.3 Message-ID: <44CDF215.8040304@ccrma> Snd 8.3 CLM generators: added filtered-comb ("fcomb" for freeverb) added move-sound (runtime portion of dlocsig) renamed average generator to moving-average renamed windowed-maxamp to moving-max (dsp.scm) added moving-rms, moving-sum, moving-length (dsp.scm) overlay-rms-env (draw.scm) uses moving-rms Perhaps these should be built-in CLM generators. mfilter (dsp.scm) -- Mathews/Smith high-Q filter (similar to formant; another version is maxf.scm/ins) removed make-ppolar|zpolar (use make-two-pole|zero) moved ssb-fm and rmsgain.scm code to clm-ins.scm (removed rmgain.scm) locsig now returns a float (not a frame) dlocsig.scm (translation to Scheme of Fernando's dlocsig.lisp) in CL-CLM, dlocsig.lisp and move-sound.ins now use the move-sound generator. mix-move-sound (extsnd.html) green.scm (bounded brownian noise, from CLM's green.cl) snd8.scm (backwards compatibility stuff for snd 8) shepard-tone (sndscm.html) agc (dsp.scm) with-full-sound (ws.scm) def-clm-float-struct (CL-CLM only) fir+comb (clm.html) removed vct-map g_signal_connect and other such macros, and gtk_print_operation* to xg.c merged new-icons.scm into new-buttons.scm and renamed the latter toolbar.scm toolbar.scm also works in gtk *.fs updates and other improvements from Mike Scholz checked: gtk 2.9.4, 2.10.0|1, autoconf 2.60, fth 0.10.0|2, sbcl 0.9.14, fftw 3.1.2, clisp 2.39 Thanks: Michael Klingbeil, Kjetil Matheussen, Mike Scholz, Oded Ben-Tal, Russell Aspinwall, Anders Vinjar