From mjkoskin at kolumbus.fi Mon May 1 11:48:05 2017 From: mjkoskin at kolumbus.fi (Matti Koskinen) Date: Mon, 1 May 2017 21:48:05 +0300 Subject: [CM] Erkki Kurenniemi RIP Message-ID: <7963bd8d-92cf-a001-7177-397ed87f0b8b@kolumbus.fi> Erkki Kurenniemi, the pioneer of Finnish electronic music died last night at the age of 75. His works are partly the reason, why I still hang around on Csound- and CM-lists. R.I.P -m From ahcnz at orcon.net.nz Wed May 3 01:28:58 2017 From: ahcnz at orcon.net.nz (adam) Date: Wed, 03 May 2017 20:28:58 +1200 Subject: [CM] Erkki Kurenniemi RIP In-Reply-To: <7963bd8d-92cf-a001-7177-397ed87f0b8b@kolumbus.fi> References: <7963bd8d-92cf-a001-7177-397ed87f0b8b@kolumbus.fi> Message-ID: <1493800138.3372.14.camel@ahcnz> A true pioneer, great engineer and artist. I hope his writings become more available. http://www.soundonsound.com/people/pioneer-digital-synthesis On Mon, 2017-05-01 at 21:48 +0300, Matti Koskinen wrote: > Erkki Kurenniemi, the pioneer of Finnish electronic music died last > night at the age of 75. His works are partly the reason, why I still > hang around on Csound- and CM-lists. > > R.I.P > > > -m > > _______________________________________________ > Cmdist mailing list > Cmdist at ccrma.stanford.edu > https://cm-mail.stanford.edu/mailman/listinfo/cmdist > From bil at ccrma.Stanford.EDU Sat May 6 04:46:57 2017 From: bil at ccrma.Stanford.EDU (bil at ccrma.Stanford.EDU) Date: Sat, 06 May 2017 04:46:57 -0700 Subject: [CM] Snd 17.4 Message-ID: <876939032ff051d3589c9470284d17c3@ccrma.stanford.edu> Snd 17.4: the clm optimizer has been totally rewritten. s7 new built-in function: type-of checked: gtk 3.90.0, sbcl 1.3.17 Thanks!: Tito Latini, Kjetil Matheussen, Renato Fabbri. From k.s.matheussen at gmail.com Mon May 8 06:49:13 2017 From: k.s.matheussen at gmail.com (Kjetil Matheussen) Date: Mon, 8 May 2017 15:49:13 +0200 Subject: [CM] s7: Legality of calling s7_error from C (without being called from scheme) Message-ID: Hi, I wonder about this code: int main(){ do_lots_of_things(); s7scheme *s7 = s7_init(); load_some_scheme_code(s7); do_lots_of_more_things(); s7_pointer data = s7_call(s7, s7_name_to_value(s7, "get-some-data"), s7_list(s7, 0)); if (!s7_is_number(data)) s7_error(s7, s7_make_symbol(s7, "wrong-data"), s7_list(s7, 1, s7_make_string(s7, "got wrong data"")) ); printf("hello\n"); do_even_more_things(); return 0; } Is this fully supported to work in s7? Will "hello" always be printed to the terminal even if "get-some-data" doesn't return a number? (i.e. could 's7_error' call 'longjmp' or similar functions in the code above?) I do this to make my *rootlet-redefinition-hook* hook print out history of the last executed scheme code. It seems to work just fine, but I don't feel confident enough about what's happening. Thanks! -------------- next part -------------- An HTML attachment was scrubbed... URL: From bil at ccrma.Stanford.EDU Mon May 8 07:57:09 2017 From: bil at ccrma.Stanford.EDU (bil at ccrma.Stanford.EDU) Date: Mon, 08 May 2017 07:57:09 -0700 Subject: [CM] =?utf-8?q?s7=3A_Legality_of_calling_s7=5Ferror_from_C_=28wit?= =?utf-8?q?hout_being_called_from_scheme=29?= In-Reply-To: References: Message-ID: <5ae6b1d5cce8864294ecadb0be67d582@ccrma.stanford.edu> s7_error will look for an active (s7-internal) setjmp if the error is not otherwise caught, and not handled by *error-hook*; if it doesn't find one, it just returns. In the code you sent, I think it just returns after trying to print the error info. I think Snd sets up its own top-level setjmp and catches this case so that uncaught errors always return to its top level. From k.s.matheussen at gmail.com Mon May 8 08:03:39 2017 From: k.s.matheussen at gmail.com (Kjetil Matheussen) Date: Mon, 8 May 2017 17:03:39 +0200 Subject: [CM] s7: Legality of calling s7_error from C (without being called from scheme) In-Reply-To: <5ae6b1d5cce8864294ecadb0be67d582@ccrma.stanford.edu> References: <5ae6b1d5cce8864294ecadb0be67d582@ccrma.stanford.edu> Message-ID: Thank you. That makes sense. (And I meant *error-hook*, not *rootlet-redefinition-hook*, of course. Too quick with the copy/pasting there.) On Mon, May 8, 2017 at 4:57 PM, wrote: > s7_error will look for an active (s7-internal) > setjmp if the error > is not otherwise caught, and not handled by *error-hook*; > if it doesn't find one, it just returns. In the > code you sent, I think it just returns after > trying to print the error info. > > I think Snd sets up its own top-level setjmp > and catches this case so that uncaught errors > always return to its top level. > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From j_hearon at hotmail.com Thu May 25 12:00:15 2017 From: j_hearon at hotmail.com (James Hearon) Date: Thu, 25 May 2017 19:00:15 +0000 Subject: [CM] make-pvocoder In-Reply-To: References: Message-ID: Hi, I'm working thru snd make-pvocoder, clm make-phase-vocoder trying to find more info on the analyze, edit, and synthesize methods, such as the one below the manual which shows a lambda func for the synthesis or resynthesis method. Most of what I've been able to find is based on a gen from readin of a file or input samples to access spectral data. I know this is a bit odd, but I was trying to create designer spectra, by filling empty vectors with various numbers etc, as opposed to getting the data from a readin generator. So far mine just sounds like noise, so I don't have it quite right. I'm wondering if I'm on the right track by using original vectors in the analyze, edit, and synthesize methods. Or maybe I should just be creating sound files using something like infinite sums, for example, and sticking with the readin generator to analyze those sounds? I've looked at at the moving-spectrum and pins insts too. Thank you, Jim (with-sound (:srate 22050 :statistics #t) (let ((pv (make-phase-vocoder (make-readin "oboe.snd") 512 4 128 1.0 #f ; no change to analysis method #f ; no change to spectrum (lambda (gen) ; resynthesis function (float-vector-add! (phase-vocoder-amps gen) (phase-vocoder-amp-increments gen)) (float-vector-add! (phase-vocoder-phase-increments gen) (phase-vocoder-freqs gen)) (float-vector-add! (phase-vocoder-phases gen) (phase-vocoder-phase-increments gen)) (let ((sum 0.0) (n (length (phase-vocoder-amps gen)))) (do ((k 0 (+ k 1))) ((= k n)) (set! sum (+ sum (* (float-vector-ref (phase-vocoder-amps gen) k) (sin (* 0.5 (float-vector-ref (phase-vocoder-phases gen) k))))))) sum))))) (do ((i 0 (+ i 1))) ((= i 44100)) (outa i (phase-vocoder pv))))) -------------------- (with-sound (:reverb nrev :srate 48000 :channels 2 :header-type mus-riff :statistics #t :output "/myTest.wav" :play #t ) (let* ((samps (* 2 (mus-sound-framples "/Sample1.wav"))) (hop 512) (jsampvec (make-float-vector hop)) ;create empty vectors (jsampincvec (make-float-vector hop)) (jsfreqvec (make-float-vector hop)) (jsphasevec (make-float-vector hop)) (jsphaseincvec (make-float-vector hop)) (pv (make-phase-vocoder (make-readin "/Sample1.wav") 512 4 128 1.75 ;fft-size, overlap, interp, pitch #f ; no change to analysis #f ; no change to edit (lambda (gen) ; *attempt resynthesis function* (do ((i 0 (+ i 1))) ((= i hop)) (set! (jsampvec i) (mus-random .02) ) ;fill vectors with numbers (set! (jsampincvec i) (mus-random .05) ) (set! (jsfreqvec i) (mus-random 500) ) (set! (jsphasevec i) (mus-random 360) ) (set! (jsphaseincvec i) (mus-random .02) ) ) ;end do (float-vector-add! jsampvec jsampincvec) ;add the vectors (float-vector-add! jsphaseincvec jsfreqvec) (float-vector-add! jsphasevec jsphaseincvec) (let ((sum 0.0) (n hop)) (do ((k 0 (+ k 1))) ((= k n)) (set! sum (+ sum (* (jsampvec k)(sin (* 0.5 (jsphasevec k)))))) ;create waveform ) sum) ))) (do ((i 0 (+ i 1))) ((= i samps)) (outa i (* 4 (phase-vocoder pv))) (outb i (* 4 (phase-vocoder pv))) ))) -------------- next part -------------- An HTML attachment was scrubbed... URL: From bil at ccrma.Stanford.EDU Thu May 25 14:40:33 2017 From: bil at ccrma.Stanford.EDU (bil at ccrma.Stanford.EDU) Date: Thu, 25 May 2017 14:40:33 -0700 Subject: [CM] make-pvocoder In-Reply-To: References: Message-ID: <6940b572444d077c52c1342ced6d1baf@ccrma.stanford.edu> Your instrument fills all the vocoder arrays with noise, so you get noise as the output. Are you trying to do additive synthesis?