You can subscribe to this list here.
2004 
_{Jan}

_{Feb}

_{Mar}

_{Apr}

_{May}

_{Jun}

_{Jul}

_{Aug}

_{Sep}

_{Oct}

_{Nov}
(40) 
_{Dec}
(29) 

2005 
_{Jan}
(7) 
_{Feb}
(12) 
_{Mar}
(28) 
_{Apr}
(27) 
_{May}

_{Jun}
(13) 
_{Jul}
(4) 
_{Aug}
(7) 
_{Sep}
(1) 
_{Oct}
(2) 
_{Nov}
(32) 
_{Dec}
(49) 
2006 
_{Jan}
(31) 
_{Feb}
(16) 
_{Mar}
(15) 
_{Apr}
(15) 
_{May}
(21) 
_{Jun}
(1) 
_{Jul}
(1) 
_{Aug}
(5) 
_{Sep}
(2) 
_{Oct}
(21) 
_{Nov}

_{Dec}
(6) 
2007 
_{Jan}
(21) 
_{Feb}

_{Mar}

_{Apr}
(5) 
_{May}
(1) 
_{Jun}
(3) 
_{Jul}
(10) 
_{Aug}
(38) 
_{Sep}
(21) 
_{Oct}
(38) 
_{Nov}
(23) 
_{Dec}
(3) 
2008 
_{Jan}
(72) 
_{Feb}
(45) 
_{Mar}
(46) 
_{Apr}
(5) 
_{May}
(2) 
_{Jun}
(33) 
_{Jul}

_{Aug}
(9) 
_{Sep}
(6) 
_{Oct}
(1) 
_{Nov}
(17) 
_{Dec}
(73) 
2009 
_{Jan}
(20) 
_{Feb}
(28) 
_{Mar}
(7) 
_{Apr}
(24) 
_{May}
(8) 
_{Jun}
(59) 
_{Jul}
(38) 
_{Aug}
(25) 
_{Sep}
(19) 
_{Oct}
(40) 
_{Nov}
(43) 
_{Dec}
(53) 
2010 
_{Jan}
(22) 
_{Feb}
(12) 
_{Mar}
(14) 
_{Apr}
(4) 
_{May}
(29) 
_{Jun}
(26) 
_{Jul}
(7) 
_{Aug}
(14) 
_{Sep}
(16) 
_{Oct}
(34) 
_{Nov}
(13) 
_{Dec}
(8) 
2011 
_{Jan}

_{Feb}

_{Mar}
(1) 
_{Apr}
(1) 
_{May}

_{Jun}
(5) 
_{Jul}
(10) 
_{Aug}
(2) 
_{Sep}
(3) 
_{Oct}

_{Nov}
(1) 
_{Dec}
(1) 
2012 
_{Jan}

_{Feb}
(1) 
_{Mar}

_{Apr}

_{May}

_{Jun}

_{Jul}
(4) 
_{Aug}

_{Sep}
(21) 
_{Oct}

_{Nov}

_{Dec}

2013 
_{Jan}

_{Feb}

_{Mar}
(1) 
_{Apr}

_{May}

_{Jun}

_{Jul}

_{Aug}

_{Sep}

_{Oct}
(6) 
_{Nov}

_{Dec}

2014 
_{Jan}

_{Feb}
(2) 
_{Mar}

_{Apr}

_{May}
(1) 
_{Jun}

_{Jul}
(3) 
_{Aug}

_{Sep}
(1) 
_{Oct}

_{Nov}

_{Dec}

2015 
_{Jan}
(2) 
_{Feb}

_{Mar}

_{Apr}

_{May}

_{Jun}

_{Jul}

_{Aug}

_{Sep}

_{Oct}

_{Nov}

_{Dec}

S  M  T  W  T  F  S 


1
(1) 
2

3

4

5

6

7

8

9
(2) 
10
(1) 
11

12
(2) 
13
(1) 
14

15

16

17

18
(1) 
19
(1) 
20
(3) 
21
(3) 
22
(6) 
23
(4) 
24

25
(8) 
26
(4) 
27
(6) 
28
(12) 
29
(3) 
30
(1) 




From: paul beach <sniffyraven@fa...>  20090626 03:41:47

Got caught with my foot in my mouth. The derivative is times the radian frequency. Here's my cosine: (scale .001 (slope (hzosc 11) ) ) On Thu, 25 Jun 2009 19:36:02 0400, "Roger Dannenberg" <rbd@...> said: > What amplitude did you expect when you took the derivative of the sine? > What was the amplitude of the square wave output? Roger > > paul beach wrote: > > First derivative of sine is supposed to be cosine. Slope gives a square > > wave output. > > > > ; method to find minor peaks of periodic wave? > > (slope > > (hzosc 11) > > ) > > > >  > _______________________________________________ > Audacitynyquist mailing list > Audacitynyquist@... > https://lists.sourceforge.net/lists/listinfo/audacitynyquist  paul beach sniffyraven@... 
From: Roger Dannenberg <rbd@cs...>  20090625 23:37:46

What amplitude did you expect when you took the derivative of the sine? What was the amplitude of the square wave output? Roger paul beach wrote: > First derivative of sine is supposed to be cosine. Slope gives a square > wave output. > > ; method to find minor peaks of periodic wave? > (slope > (hzosc 11) > ) > 
From: Leland <leland@au...>  20090625 23:01:24

Stevethefiddle wrote: > Any progress on the LF+CR issue? > Hi Steve, I can't seem to reproduce it. I've tried it under OSX and Ubuntu and the effect (tremelo.ny) runs just fine. I convert the effect to CRLF before loading: 00000000 3B 6E 79 71 75 69 73 74 20 70 6C 75 67 2D 69 6E ;nyquist plugin 00000010 0D 0A 3B 76 65 72 73 69 6F 6E 20 33 0D 0A 3B 74 MJ;version 3MJ;t 00000020 79 70 65 20 70 72 6F 63 65 73 73 0D 0A 3B 63 61 ype processMJ;ca 00000030 74 65 67 6F 72 69 65 73 20 22 68 74 74 70 3A 2F tegories "http:/ 00000040 2F 6C 76 32 70 6C 75 67 2E 69 6E 2F 6E 73 2F 6C /lv2plug.in/ns/l 00000050 76 32 63 6F 72 65 23 4D 6F 64 75 6C 61 74 6F 72 v2core#Modulator 00000060 50 6C 75 67 69 6E 22 0D 0A 3B 6E 61 6D 65 20 22 Plugin"MJ;name " 00000070 54 72 65 6D 6F 6C 6F 2E 2E 2E 22 0D 0A 3B 61 63 Tremolo..."MJ;ac 00000080 74 69 6F 6E 20 22 41 70 70 6C 79 69 6E 67 20 54 tion "Applying T 00000090 72 65 6D 6F 6C 6F 2E 2E 2E 22 0D 0A 3B 69 6E 66 remolo..."MJ;inf If you still have one that causes problems, gzip it and send it to me. Maybe I'm just not hitting the right combination. Leland 
From: <mszlazak@ao...>  20090625 22:59:31

The slope or tangent to a curve at a point is the first derivative evaluated at that point. Original Message From: paul beach <sniffyraven@...> To: Discussion of developing Nyquist plugins for Audacity <audacitynyquist@...> Sent: Thu, Jun 25, 2009 2:42 pm Subject: [Audacitynyquist] slope = 1st derivative? First derivative of sine is supposed to be cosine. Slope gives a square wave output. ; method to find minor peaks of periodic wave? (slope (hzosc 11) )  paul beach sniffyraven@...  _______________________________________________ Audacitynyquist mailing list Audacitynyquist@... https://lists.sourceforge.net/lists/listinfo/audacitynyquist 
From: paul beach <sniffyraven@fa...>  20090625 21:42:46

First derivative of sine is supposed to be cosine. Slope gives a square wave output. ; method to find minor peaks of periodic wave? (slope (hzosc 11) )  paul beach sniffyraven@... 
From: Leland <leland@au...>  20090625 18:37:22

Good thing you reminded me...I'll take a look tonight. Leland On Thu, Jun 25, 2009 at 12:28 PM, Steve <stevethefiddle@...> wrote: > I've been playing with these two functions and I'm having trouble with > the "n" parameter. > > > (reson sound center bandwidth n) > > > The last parameter n specifies the type of normalization as in Csound: > > A value of 1 specifies a peak amplitude response of 1.0; all > > frequencies other than hz are attenuated. A value of 2 specifies the > > overall RMS value of the amplitude response is 1.0; thus filtered > > white noise would retain the same power. A value of zero specifies no > > scaling. > > It is clearly doing some kind of scaling, but setting n=1 does not > produce a peak amplitude of 1.0 > > Steve > > > >  > _______________________________________________ > Audacitynyquist mailing list > Audacitynyquist@... > https://lists.sourceforge.net/lists/listinfo/audacitynyquist > 
From: Roger Dannenberg <rbd@cs...>  20090625 17:40:19

"peak amplitude response" means the filter gain is 1.0 at the center frequency. If you put in a sinusoid at that frequency, you should expect it to pass through without attenuation (or gain). It doesn't mean the filter output is normalized to a peak amplitude of 1, which would require knowledge of entire future of the input signal. Roger Steve wrote: > I've been playing with these two functions and I'm having trouble with > the "n" parameter. > > >> (reson sound center bandwidth n) >> > > >> The last parameter n specifies the type of normalization as in Csound: >> A value of 1 specifies a peak amplitude response of 1.0; all >> frequencies other than hz are attenuated. A value of 2 specifies the >> overall RMS value of the amplitude response is 1.0; thus filtered >> white noise would retain the same power. A value of zero specifies no >> scaling. >> > > It is clearly doing some kind of scaling, but setting n=1 does not > produce a peak amplitude of 1.0 > > Steve > > >  > _______________________________________________ > Audacitynyquist mailing list > Audacitynyquist@... > https://lists.sourceforge.net/lists/listinfo/audacitynyquist > > 
From: Stevethefiddle <stevethefiddle@gm...>  20090625 17:37:05

Any progress on the LF+CR issue? steve Leland (Audacity Team) wrote: > > I believe I've fixed everything mentioned and have added: > > 1) an About dialog > 2) Toolbar, menu items, and accelerators for moving to toplevel sexpr, > parent sexpr, previous sexpr, next sexpr, and jump to matching paren > 3) Paren highlighting works with the mouse now as well > 4) Window size and position are now saved > 5) The ability to run arbitrary XLisp/Nyquist code...doesn't have to be > an Audacity effect > 6) Running programs can now be interrupted with the Stop toolbar > button, menu item, or accelerator > > If no one finds anything wrong, I'm considering this complete and > (probably) won't add anything else to it other that use it to experiment > with external module APIs. > > It can be had from: > > http://audacity.homerow.net/index.php?dir=modules%2F&download=NyqBench09.066.zip > > Leland > > >  > Open Source Business Conference (OSBC), March 2425, 2009, San Francisco, > CA > OSBC tackles the biggest issue in open source: Open Sourcing the > Enterprise > Strategies to boost innovation and cut costs with open source > participation > Receive a $600 discount off the registration fee with the source code: > SFAD > http://p.sf.net/sfu/XcvMzF8H > _______________________________________________ > Audacitynyquist mailing list > Audacitynyquist@... > https://lists.sourceforge.net/lists/listinfo/audacitynyquist > >  View this message in context: http://n2.nabble.com/NyquistEffectWorkbench...finaltp2442161p3156516.html Sent from the audacitynyquist mailing list archive at Nabble.com. 
From: Steve <stevethefiddle@gm...>  20090625 17:29:10

I've been playing with these two functions and I'm having trouble with the "n" parameter. > (reson sound center bandwidth n) > The last parameter n specifies the type of normalization as in Csound: > A value of 1 specifies a peak amplitude response of 1.0; all > frequencies other than hz are attenuated. A value of 2 specifies the > overall RMS value of the amplitude response is 1.0; thus filtered > white noise would retain the same power. A value of zero specifies no > scaling. It is clearly doing some kind of scaling, but setting n=1 does not produce a peak amplitude of 1.0 Steve 
From: Roger Dannenberg <rbd@cs...>  20090623 03:10:44

I think your calculations are right and it looks like tapv is working as predicted. Here's what I tried: (defun test () (vector (hzosc 1000.0) (shifter (hzosc 1000.0)))) (defun shifter (s) (sndtapv s (* 0.001 (/ 60.0 360.0)) (mult (* 0.001 (/ 30.0 360.0)) (lfo 1.0)) 0.001)) (play (test)) Viewing this in Audacity, I can see a small phase shift with maximum shift 1/4 of the way through and minimum at 3/4 as you would expect since the lfo rises to a peak of 1 after 1/4 cycle and to 1 at 3/4 cycle. Roger Dave Storer wrote: > I'm trying to build a simple plugin which will apply an oscillating phase shift to one channel of a stereo signal. Both channels of the stereo signal consist of a constant frequency sine wave, the same frequency on each channel. > > What I would like is a plugin which would accept as input the frequency of the input signal, the minimum and maximum phase shift, in degrees, and the modulation frequency of the oscillation. The plugin would apply a varying time delay to the signal on one channel, so that its phase changes withing the given limits. > > For example, the starting signal is a 1Khz sine wave. Minimum phase shift is to be 30 degrees, and the maximum 90 degrees, with a modulation frequency of 1 Hz. > > To watch the phase shifts, I have a copy of the Goldwave editor running, with its display set to plot the left and right channels on the x and y axes of a graph, essentially displaying a Lissajous figure. > > I've tried several approaches using sndtapv, but without throwing in a mysterious scale factor, I can't get it to work. > > With a 1KHz signal, one period is 0.001 second, so the minimum delay should be 0.083333 x 0.001 (30 degrees is 1/12 of a circle  1/12 = 0.083333). This much works. The problem is in specifying the scale factor for the low frequency oscillator. If the fixed delay is set to 60/360 x 0.001, it seems like the scale factor for the lfo should be 30/360 x 0.001, but this gives a barely noticeable oscilation. In order to get the desired phase shift, I have to throw in a fudgefactor, scaling up the lfo as described above by approximately 110. Different values for the minimum and maximum require different scale factors, and the variations seem to be nonlinear. For example, the same requirements as above, but on a 100Hz signal, requires a fudgefactor of about 35. > > Obviously, I'm missing some key understanding of how sndtapv works. Can anyone suggest a different approach. > > Thanks for any insight you can give me. > Dave Storer > > >  > Are you an open source citizen? Join us for the Open Source Bridge conference! > Portland, OR, June 1719. Two days of sessions, one day of unconference: $250. > Need another reason to go? 24hour hacker lounge. Register today! > http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org > _______________________________________________ > Audacitynyquist mailing list > Audacitynyquist@... > https://lists.sourceforge.net/lists/listinfo/audacitynyquist > > 
From: Roger Dannenberg <rbd@cs...>  20090623 02:34:09

If anything, the frequency is doubling and period is halving, consistent with a big increase in amplitude of the the second harmonic. Early papers by John Chowning have an analysis. Roger paul beach wrote: > I did a graphic to compare increments of modulation. Period doubling > seems to be obvious, though not in the chaotic sense. Will look at > Bessel functions, to see if any sense can be made of this. > > http://www.climatehoax.ca/music/fm_doubling.gif > 
From: Dave Storer <davewstorer@ya...>  20090623 02:24:18

I'm trying to build a simple plugin which will apply an oscillating phase shift to one channel of a stereo signal. Both channels of the stereo signal consist of a constant frequency sine wave, the same frequency on each channel. What I would like is a plugin which would accept as input the frequency of the input signal, the minimum and maximum phase shift, in degrees, and the modulation frequency of the oscillation. The plugin would apply a varying time delay to the signal on one channel, so that its phase changes withing the given limits. For example, the starting signal is a 1Khz sine wave. Minimum phase shift is to be 30 degrees, and the maximum 90 degrees, with a modulation frequency of 1 Hz. To watch the phase shifts, I have a copy of the Goldwave editor running, with its display set to plot the left and right channels on the x and y axes of a graph, essentially displaying a Lissajous figure. I've tried several approaches using sndtapv, but without throwing in a mysterious scale factor, I can't get it to work. With a 1KHz signal, one period is 0.001 second, so the minimum delay should be 0.083333 x 0.001 (30 degrees is 1/12 of a circle  1/12 = 0.083333). This much works. The problem is in specifying the scale factor for the low frequency oscillator. If the fixed delay is set to 60/360 x 0.001, it seems like the scale factor for the lfo should be 30/360 x 0.001, but this gives a barely noticeable oscilation. In order to get the desired phase shift, I have to throw in a fudgefactor, scaling up the lfo as described above by approximately 110. Different values for the minimum and maximum require different scale factors, and the variations seem to be nonlinear. For example, the same requirements as above, but on a 100Hz signal, requires a fudgefactor of about 35. Obviously, I'm missing some key understanding of how sndtapv works. Can anyone suggest a different approach. Thanks for any insight you can give me. Dave Storer 
From: paul beach <sniffyraven@fa...>  20090623 01:06:11

I did a graphic to compare increments of modulation. Period doubling seems to be obvious, though not in the chaotic sense. Will look at Bessel functions, to see if any sense can be made of this. http://www.climatehoax.ca/music/fm_doubling.gif  paul beach sniffyraven@... 
From: Roger Dannenberg <rbd@cs...>  20090622 23:14:57

paul beach wrote: > Thanks Roger, your comments have helped me with this result. > > The synth bassoon (double reed insturment) sounds like so: > > http://www.climatehoax.ca/music/bassoon.mp3 > > Feigenbaum first studied the discrete equation, > f(x) = A * x * (1x) on the domain 0<x<1, and found period doubling as > "A" increases. > > The same principal is supposed to apply for other nonlinear equations, > such as frequency modulation: An increase in M causes period doubling. > F = sin(t + M * sin(t)) > I don't think period doubling applies here. FM produces sidebands that are the carrier frequency + or  multiples of the modulating frequency. > There is also another principle, a male voice cannot become a female > voice, simply by increasing the speed. This would NOT be time invariant. > > Therefore each (bassoon)note has to have M readjusted. > The main attraction of FM in synthesis is that a timevarying index of modulation (essentially M) can be used to generate spectral evolution with low cost and few parameters. But I agree that the spectrum in steady state will vary as a function of amplitude and pitch. 
From: paul beach <sniffyraven@fa...>  20090622 20:01:16

Thanks Roger, your comments have helped me with this result. The synth bassoon (double reed insturment) sounds like so: http://www.climatehoax.ca/music/bassoon.mp3 Feigenbaum first studied the discrete equation, f(x) = A * x * (1x) on the domain 0<x<1, and found period doubling as "A" increases. The same principal is supposed to apply for other nonlinear equations, such as frequency modulation: An increase in M causes period doubling. F = sin(t + M * sin(t)) There is also another principle, a male voice cannot become a female voice, simply by increasing the speed. This would NOT be time invariant. Therefore each (bassoon)note has to have M readjusted. Basson can be copied and pasted into Nyquist prompt. Note that musical intruments have an (almost) regular overtone series in one dimension. Paul Beach ;bassoon (scale 3 (bandpass2 (sexp (scale 2 (fmosc 50 (mult 450 (osc 50))) ) ) 222 22 ) )  paul beach sniffyraven@... 
From: Roger Dannenberg <rbd@cs...>  20090622 17:49:06

I thought we were talking about FM synthesis and computer music. Is there a question I could help with? Roger paul beach wrote: > FM does not make sense for a modulation of say, more than 5%; at least > not, for electronic signal applications. > > Frequency deviation for commercial FM stations is in parts per thousand, > say 200khz where the carrier is 100Mhz. > > Just comparing with a graphics program. > > M in the formula seems to be scaled, (if this is equivalent to FM below) > (fmosc 57 (mult 500 (osc 45))) > 500 == 2 > > M = maximum frequency deviation/modulating frequency. > > FM signal can be represented as: > > v = ac sin(wct + M sin wmt ) > > reference: > http://cnyack.homestead.com/files/modulation/modfm.htm > On Sun, 21 Jun 2009 21:16:23 0400, "Roger Dannenberg" <rbd@...> > said: > >> Are you expecting significant sidebands? If so, try increasing the index >> of modulation, e.g. (fmosc 57 (mult 500 (osc 45))) >> >> Roger >> >> paul beach wrote: >> >>> I am trying fmosc. It returns audio but there is no infinite spectrum. >>> Just A220 and A110, below. >>> >>> Paul >>> >>> (scale 0.5 >>> ( fmosc 57 (osc 45) ) >>> ) >>> >>> >>  >> Are you an open source citizen? Join us for the Open Source Bridge >> conference! >> Portland, OR, June 1719. Two days of sessions, one day of unconference: >> $250. >> Need another reason to go? 24hour hacker lounge. Register today! >> http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org >> _______________________________________________ >> Audacitynyquist mailing list >> Audacitynyquist@... >> https://lists.sourceforge.net/lists/listinfo/audacitynyquist >> 
From: David R. Sky <davidsky@sh...>  20090622 15:08:51

Hi, For whatever it's worth, I've attached a plug I wrote several years ago for someone, fir101.ny. According to the guy, the output was "off" by one sample, whatever he meant by that. I had lots of trouble communicating with him and eventually gave up. David  David R. Sky http://www.shellworld.net/~davidsky/ On Sun, 21 Jun 2009, Steve wrote: > On Sat, 20090620 at 13:53 0400, mszlazak@... wrote: >> Hi Roger, >> >> First, thank you for the tips. >> The documentation in Nyquists functions for CONVOLVE is sparse. I'll >> need to research this one a bit more. >> >> I was going to approach things by sample indexes where I changed the >> sound s to an array using SNDFETCH or SNDFETCHARRAY and proceed >> with f(i). >> But I do see that your suggestion maybe easier. When using convolve >> with a signaloff(i) and s, since f(i) is short (15 samples) then >> does f(i) have to be repeat over and over (at s's sampling rate) in >> the creation of the signaloff(i) to make it the same length as the >> sound signal s? >> >> I was wondering about boundary conditions. I thought I would create >> the new signal from however many 15 sample "windows" I got from the >> original signal. This shortens the new signal. >> Your zeropadding suggestion does not shorten the new signal. Is >> zeropadding what's used in Nyquist's function to calculate RMS values >> of some signal and is this a "standard" approach found other places? >> >> >> Also, any suggestion on a good (easy to understand) Lisp tutorial. > > > > There are examples shown for each function in the XLisp manual: > http://www.audacityforum.de/download/edgar/nyquist/nyquistdoc/xlisp/xlispref/xlisprefindex.htm > > Steve > > > >> >> Have a good day. >> >> Mark. >> >> >> >> >> Original Message >> From: paul beach <sniffyraven@...> >> To: Discussion of developing Nyquist plugins for Audacity >> <audacitynyquist@...> >> Sent: Sat, Jun 20, 2009 7:58 am >> Subject: [Audacitynyquist] INTRODUCTION TO DIGITAL FILTERSHelp with >> individual signal ... >> >> http://ccrma.stanford.edu/~jos/filters/ >> >> >> >> INTRODUCTION TO DIGITAL FILTERS >> >> WITH AUDIO APPLICATIONS >> >> JULIUS O. SMITH III >> >> >> >> Center for Computer Research in Music and Acoustics (CCRMA) >> >> Department of Music, Stanford University, Stanford, California 94305 USA >> >> >> >> On Sat, 20 Jun 2009 10:13:10 0400, "Roger Dannenberg" <rbd@...> >> >> said: >> >>> Here's a highlevel view and answer: >> >>> >> >>> What you are computing is called convolution. Convolution is a common >> >>> way to implement an FIR filter. In Nyquist, convolution by a short >> >>> signal like f(i) is implemented efficiently by CONVOLVE. You can >> >>> construct a signal like f(i) using SNDFROMARRAY, and you can construct >> >>> an array by allocating a new one using MAKEARRAY and filling in the >> >>> values with SETF, or you can call VECTOR to create and initialize an >> >>> array from arguments. Nyquist signals are indexed by nonnegative time, >> >>> not by integers, so you will have to map your problem to the time domain >> >>> and think about boundary conditions  you didn't say what is the origin >> >>> (initial index) of the input or output signals. You might have to pad >> >>> with zeros or remove some result samples to get the result you want. >> >>> When you construct a signal to represent f(i), give it the same sample >> >>> rate as s(j). >> >>> >> >>> Roger >> >>> >> >>> mszlazak@... wrote: >> >>>> I posted something similar on an Audacity forum but was referred to >> >>>> Appendix 1 on extending Nyquist with C programming. >> >>>> Since programming is a hobby and I don't know C or Lisp I thought a >> >>>> NyquistLisp type solution might be easier but I'm not sure. >> >>>> Here is what I need. >> >>>> >> >>>> Say f(i) is a function of sampling index i and f(i) is fully defined >> >>>> on just 15 index values. >> >>>> >> >>>> Specifically, f(i) = 27/16(i^3 + 2i^2 + i) for i = 7 to 7. >> >>>> Now, there is some sound signal s(j) where j is it's sampling index. >> >>>> I wanted to form a new sound signal n(j) by summing the multiplied >> >>>> pairs f(i)s(j+i) for i = 7 to +7 for each possible j. >> >>>> >> >>>> f(7)s(j7) >> >>>> f(6)s(j6) >> >>>> f(5)s(j5) >> >>>> ... >> >>>> f(6)s(j+6) >> >>>> f(7)s(j+7) >> >>>>  >> >>>> SUM the above to give a single value of n at some value of index j. >> >>>>  >> >>>> Furthermore, I want to do this across all possible values of j for >> >>>> signal s to form the new signal n. >> >>>> Nyquist has some filter functions but none are cubic and I don't see a >> >>>> way to specify ones own filter function that would do what I want. >> >>>> How do you set this thing up? >> >>>> >> >>>> Thanks. > > > >  > Are you an open source citizen? Join us for the Open Source Bridge conference! > Portland, OR, June 1719. Two days of sessions, one day of unconference: $250. > Need another reason to go? 24hour hacker lounge. Register today! > http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org > _______________________________________________ > Audacitynyquist mailing list > Audacitynyquist@... > https://lists.sourceforge.net/lists/listinfo/audacitynyquist > > 
From: paul beach <sniffyraven@fa...>  20090622 14:33:28

FM does not make sense for a modulation of say, more than 5%; at least not, for electronic signal applications. Frequency deviation for commercial FM stations is in parts per thousand, say 200khz where the carrier is 100Mhz. Just comparing with a graphics program. M in the formula seems to be scaled, (if this is equivalent to FM below) (fmosc 57 (mult 500 (osc 45))) 500 == 2 M = maximum frequency deviation/modulating frequency. FM signal can be represented as: v = ac sin(wct + M sin wmt ) reference: http://cnyack.homestead.com/files/modulation/modfm.htm On Sun, 21 Jun 2009 21:16:23 0400, "Roger Dannenberg" <rbd@...> said: > Are you expecting significant sidebands? If so, try increasing the index > of modulation, e.g. (fmosc 57 (mult 500 (osc 45))) > > Roger > > paul beach wrote: > > I am trying fmosc. It returns audio but there is no infinite spectrum. > > Just A220 and A110, below. > > > > Paul > > > > (scale 0.5 > > ( fmosc 57 (osc 45) ) > > ) > > > >  > Are you an open source citizen? Join us for the Open Source Bridge > conference! > Portland, OR, June 1719. Two days of sessions, one day of unconference: > $250. > Need another reason to go? 24hour hacker lounge. Register today! > http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org > _______________________________________________ > Audacitynyquist mailing list > Audacitynyquist@... > https://lists.sourceforge.net/lists/listinfo/audacitynyquist  paul beach sniffyraven@... 
From: Roger Dannenberg <rbd@cs...>  20090622 01:16:50

Are you expecting significant sidebands? If so, try increasing the index of modulation, e.g. (fmosc 57 (mult 500 (osc 45))) Roger paul beach wrote: > I am trying fmosc. It returns audio but there is no infinite spectrum. > Just A220 and A110, below. > > Paul > > (scale 0.5 > ( fmosc 57 (osc 45) ) > ) > 
From: paul beach <sniffyraven@fa...>  20090621 23:18:21

I am trying fmosc. It returns audio but there is no infinite spectrum. Just A220 and A110, below. Paul (scale 0.5 ( fmosc 57 (osc 45) ) )  paul beach sniffyraven@... 
From: Steve <stevethefiddle@gm...>  20090621 19:18:24

On Sat, 20090620 at 13:53 0400, mszlazak@... wrote: > Hi Roger, > > First, thank you for the tips. > The documentation in Nyquists functions for CONVOLVE is sparse. I'll > need to research this one a bit more. > > I was going to approach things by sample indexes where I changed the > sound s to an array using SNDFETCH or SNDFETCHARRAY and proceed > with f(i). > But I do see that your suggestion maybe easier. When using convolve > with a signaloff(i) and s, since f(i) is short (15 samples) then > does f(i) have to be repeat over and over (at s's sampling rate) in > the creation of the signaloff(i) to make it the same length as the > sound signal s? > > I was wondering about boundary conditions. I thought I would create > the new signal from however many 15 sample "windows" I got from the > original signal. This shortens the new signal. > Your zeropadding suggestion does not shorten the new signal. Is > zeropadding what's used in Nyquist's function to calculate RMS values > of some signal and is this a "standard" approach found other places? > > > Also, any suggestion on a good (easy to understand) Lisp tutorial. There are examples shown for each function in the XLisp manual: http://www.audacityforum.de/download/edgar/nyquist/nyquistdoc/xlisp/xlispref/xlisprefindex.htm Steve > > Have a good day. > > Mark. > > > > > Original Message > From: paul beach <sniffyraven@...> > To: Discussion of developing Nyquist plugins for Audacity > <audacitynyquist@...> > Sent: Sat, Jun 20, 2009 7:58 am > Subject: [Audacitynyquist] INTRODUCTION TO DIGITAL FILTERSHelp with > individual signal ... > > http://ccrma.stanford.edu/~jos/filters/ > > > > INTRODUCTION TO DIGITAL FILTERS > > WITH AUDIO APPLICATIONS > > JULIUS O. SMITH III > > > > Center for Computer Research in Music and Acoustics (CCRMA) > > Department of Music, Stanford University, Stanford, California 94305 USA > > > > On Sat, 20 Jun 2009 10:13:10 0400, "Roger Dannenberg" <rbd@...> > > said: > > > Here's a highlevel view and answer: > > > > > > What you are computing is called convolution. Convolution is a common > > > way to implement an FIR filter. In Nyquist, convolution by a short > > > signal like f(i) is implemented efficiently by CONVOLVE. You can > > > construct a signal like f(i) using SNDFROMARRAY, and you can construct > > > an array by allocating a new one using MAKEARRAY and filling in the > > > values with SETF, or you can call VECTOR to create and initialize an > > > array from arguments. Nyquist signals are indexed by nonnegative time, > > > not by integers, so you will have to map your problem to the time domain > > > and think about boundary conditions  you didn't say what is the origin > > > (initial index) of the input or output signals. You might have to pad > > > with zeros or remove some result samples to get the result you want. > > > When you construct a signal to represent f(i), give it the same sample > > > rate as s(j). > > > > > > Roger > > > > > > mszlazak@... wrote: > > > > I posted something similar on an Audacity forum but was referred to > > > > Appendix 1 on extending Nyquist with C programming. > > > > Since programming is a hobby and I don't know C or Lisp I thought a > > > > NyquistLisp type solution might be easier but I'm not sure. > > > > Here is what I need. > > > > > > > > Say f(i) is a function of sampling index i and f(i) is fully defined > > > > on just 15 index values. > > > > > > > > Specifically, f(i) = 27/16(i^3 + 2i^2 + i) for i = 7 to 7. > > > > Now, there is some sound signal s(j) where j is it's sampling index. > > > > I wanted to form a new sound signal n(j) by summing the multiplied > > > > pairs f(i)s(j+i) for i = 7 to +7 for each possible j. > > > > > > > > f(7)s(j7) > > > > f(6)s(j6) > > > > f(5)s(j5) > > > > ... > > > > f(6)s(j+6) > > > > f(7)s(j+7) > > > >  > > > > SUM the above to give a single value of n at some value of index j. > > > >  > > > > Furthermore, I want to do this across all possible values of j for > > > > signal s to form the new signal n. > > > > Nyquist has some filter functions but none are cubic and I don't see a > > > > way to specify ones own filter function that would do what I want. > > > > How do you set this thing up? > > > > > > > > Thanks. 
From: Roger Dannenberg <rbd@cs...>  20090621 01:10:56

Here's an example using CONVOLVE. I'll put this in nyquist/demos/convolve.lsp for future reference. Roger ;; simple convolution example ;; Roger B. Dannenberg, 2009 ;; convolve a simple response with a train of impulses. ;; each impulse should turn into a copy of the simple response ;; shifted by the time of the impulse ;; for the response, I'll use a few cycles of a sine tone with a ;; smoothing window (defun response (dur freq) (mult (stretch dur (hzosc freq)) (stretch dur (raisedcosine)))) ;; from fft_tutorial.html (defun raisedcosine () (scale 0.5 (sum (const 1) (lfo (/ 1.0 (getduration 1)) 1 *sinetable* 270)))) ;; for the signal, create some impulses (defun impulse (dur) ;; to make an impulse, make a const signal with a duration of one sample ;; const runs at the control rate by default so run in an environment ;; where the control rate is set to the current sound sample rate (seq (controlsrateabs *soundsrate* (const 1.0 (/ 0.9 *soundsrate*))) (srest ( dur (/ 0.9 *soundsrate*))))) (defun mysignal () (seq (impulse 0.003) (impulse 0.005) (impulse 0.003))) ;; plot the result (splot (convolve (mysignal) (response 0.002 2000.0)) 600 0.02) 
From: <mszlazak@ao...>  20090620 17:53:18

Hi Roger, First, thank you for the tips. The documentation in Nyquists functions for CONVOLVE is sparse. I'll need to research this one a bit more. I was going to approach things by sample indexes where I changed the sound s to an array using SNDFETCH or SNDFETCHARRAY and proceed with f(i). But I do see that your suggestion maybe easier. When using convolve with a signaloff(i) and s, since f(i) is short (15 samples) then does f(i) have to be repeat over and over (at s's sampling rate) in the creation of the signaloff(i) to make it the same length as the sound signal s?? I was wondering about boundary conditions. I thought I would create the new signal from however many 15 sample "windows" I got from the original signal. This shortens the new signal. Your zeropadding suggestion does not shorten the new signal. Is zeropadding what's used in Nyquist's function to calculate RMS values of some signal and is this a "standard" approach found other places? ? Also, any suggestion on a good (easy to understand) Lisp tutorial. Have a good day. Mark. Original Message From: paul beach <sniffyraven@...> To: Discussion of developing Nyquist plugins for Audacity <audacitynyquist@...> Sent: Sat, Jun 20, 2009 7:58 am Subject: [Audacitynyquist] INTRODUCTION TO DIGITAL FILTERSHelp with individual signal ... http://ccrma.stanford.edu/~jos/filters/ INTRODUCTION TO DIGITAL FILTERS WITH AUDIO APPLICATIONS JULIUS O. SMITH III Center for Computer Research in Music and Acoustics (CCRMA) Department of Music, Stanford University, Stanford, California 94305 USA On Sat, 20 Jun 2009 10:13:10 0400, "Roger Dannenberg" <rbd@...> said: > Here's a highlevel view and answer: > > What you are computing is called convolution. Convolution is a common > way to implement an FIR filter. In Nyquist, convolution by a short > signal like f(i) is implemented efficiently by CONVOLVE. You can > construct a signal like f(i) using SNDFROMARRAY, and you can construct > an array by allocating a new one using MAKEARRAY and filling in the > values with SETF, or you can call VECTOR to create and initialize an > array from arguments. Nyquist signals are indexed by nonnegative time, > not by integers, so you will have to map your problem to the time domain > and think about boundary conditions  you didn't say what is the origin > (initial index) of the input or output signals. You might have to pad > with zeros or remove some result samples to get the result you want. > When you construct a signal to represent f(i), give it the same sample > rate as s(j). > > Roger > > mszlazak@... wrote: > > I posted something similar on an Audacity forum but was referred to > > Appendix 1 on extending Nyquist with C programming. > > Since programming is a hobby and I don't know C or Lisp I thought a > > NyquistLisp type solution might be easier but I'm not sure. > > Here is what I need. > > > > Say f(i) is a function of sampling index i and f(i) is fully defined > > on just 15 index values. > > > > Specifically, f(i) = 27/16(i^3 + 2i^2 + i) for i = 7 to 7. > > Now, there is some sound signal s(j) where j is it's sampling index. > > I wanted to form a new sound signal n(j) by summing the multiplied > > pairs f(i)s(j+i) for i = 7 to +7 for each possible j. > > > > f(7)s(j7) > > f(6)s(j6) > > f(5)s(j5) > > ... > > f(6)s(j+6) > > f(7)s(j+7) > >  > > SUM the above to give a single value of n at some value of index j. > >  > > Furthermore, I want to do this across all possible values of j for > > signal s to form the new signal n. > > Nyquist has some filter functions but none are cubic and I don't see a > > way to specify ones own filter function that would do what I want. > > How do you set this thing up? > > > > Thanks. > > > >  > > Make your summer sizzle with fast and easy recipes > > <http://food.aol.com/grilling?ncid=emlcntusfood00000003>; for the grill. > >  > > > >  > > Are you an open source citizen? Join us for the Open Source Bridge conference! > > Portland, OR, June 1719. Two days of sessions, one day of unconference: $250. > > Need another reason to go? 24hour hacker lounge. Register today! > > http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org > >  > > > > _______________________________________________ > > Audacitynyquist mailing list > > Audacitynyquist@... > > https://lists.sourceforge.net/lists/listinfo/audacitynyquist > >  paul beach sniffyraven@...  Are you an open source citizen? Join us for the Open Source Bridge conference! Portland, OR, June 1719. Two days of sessions, one day of unconference: $250. Need another reason to go? 24hour hacker lounge. Register today! http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org _______________________________________________ Audacitynyquist mailing list Audacitynyquist@... https://lists.sourceforge.net/lists/listinfo/audacitynyquist 
From: paul beach <sniffyraven@fa...>  20090620 14:58:58

http://ccrma.stanford.edu/~jos/filters/ INTRODUCTION TO DIGITAL FILTERS WITH AUDIO APPLICATIONS JULIUS O. SMITH III Center for Computer Research in Music and Acoustics (CCRMA) Department of Music, Stanford University, Stanford, California 94305 USA On Sat, 20 Jun 2009 10:13:10 0400, "Roger Dannenberg" <rbd@...> said: > Here's a highlevel view and answer: > > What you are computing is called convolution. Convolution is a common > way to implement an FIR filter. In Nyquist, convolution by a short > signal like f(i) is implemented efficiently by CONVOLVE. You can > construct a signal like f(i) using SNDFROMARRAY, and you can construct > an array by allocating a new one using MAKEARRAY and filling in the > values with SETF, or you can call VECTOR to create and initialize an > array from arguments. Nyquist signals are indexed by nonnegative time, > not by integers, so you will have to map your problem to the time domain > and think about boundary conditions  you didn't say what is the origin > (initial index) of the input or output signals. You might have to pad > with zeros or remove some result samples to get the result you want. > When you construct a signal to represent f(i), give it the same sample > rate as s(j). > > Roger > > mszlazak@... wrote: > > I posted something similar on an Audacity forum but was referred to > > Appendix 1 on extending Nyquist with C programming. > > Since programming is a hobby and I don't know C or Lisp I thought a > > NyquistLisp type solution might be easier but I'm not sure. > > Here is what I need. > > > > Say f(i) is a function of sampling index i and f(i) is fully defined > > on just 15 index values. > > > > Specifically, f(i) = 27/16(i^3 + 2i^2 + i) for i = 7 to 7. > > Now, there is some sound signal s(j) where j is it's sampling index. > > I wanted to form a new sound signal n(j) by summing the multiplied > > pairs f(i)s(j+i) for i = 7 to +7 for each possible j. > > > > f(7)s(j7) > > f(6)s(j6) > > f(5)s(j5) > > ... > > f(6)s(j+6) > > f(7)s(j+7) > >  > > SUM the above to give a single value of n at some value of index j. > >  > > Furthermore, I want to do this across all possible values of j for > > signal s to form the new signal n. > > Nyquist has some filter functions but none are cubic and I don't see a > > way to specify ones own filter function that would do what I want. > > How do you set this thing up? > > > > Thanks. > > > >  > > Make your summer sizzle with fast and easy recipes > > <http://food.aol.com/grilling?ncid=emlcntusfood00000003>; for the grill. > >  > > > >  > > Are you an open source citizen? Join us for the Open Source Bridge conference! > > Portland, OR, June 1719. Two days of sessions, one day of unconference: $250. > > Need another reason to go? 24hour hacker lounge. Register today! > > http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org > >  > > > > _______________________________________________ > > Audacitynyquist mailing list > > Audacitynyquist@... > > https://lists.sourceforge.net/lists/listinfo/audacitynyquist > >  paul beach sniffyraven@... 
From: Roger Dannenberg <rbd@cs...>  20090620 14:13:24

Here's a highlevel view and answer: What you are computing is called convolution. Convolution is a common way to implement an FIR filter. In Nyquist, convolution by a short signal like f(i) is implemented efficiently by CONVOLVE. You can construct a signal like f(i) using SNDFROMARRAY, and you can construct an array by allocating a new one using MAKEARRAY and filling in the values with SETF, or you can call VECTOR to create and initialize an array from arguments. Nyquist signals are indexed by nonnegative time, not by integers, so you will have to map your problem to the time domain and think about boundary conditions  you didn't say what is the origin (initial index) of the input or output signals. You might have to pad with zeros or remove some result samples to get the result you want. When you construct a signal to represent f(i), give it the same sample rate as s(j). Roger mszlazak@... wrote: > I posted something similar on an Audacity forum but was referred to > Appendix 1 on extending Nyquist with C programming. > Since programming is a hobby and I don't know C or Lisp I thought a > NyquistLisp type solution might be easier but I'm not sure. > Here is what I need. > > Say f(i) is a function of sampling index i and f(i) is fully defined > on just 15 index values. > > Specifically, f(i) = 27/16(i^3 + 2i^2 + i) for i = 7 to 7. > Now, there is some sound signal s(j) where j is it's sampling index. > I wanted to form a new sound signal n(j) by summing the multiplied > pairs f(i)s(j+i) for i = 7 to +7 for each possible j. > > f(7)s(j7) > f(6)s(j6) > f(5)s(j5) > ... > f(6)s(j+6) > f(7)s(j+7) >  > SUM the above to give a single value of n at some value of index j. >  > Furthermore, I want to do this across all possible values of j for > signal s to form the new signal n. > Nyquist has some filter functions but none are cubic and I don't see a > way to specify ones own filter function that would do what I want. > How do you set this thing up? > > Thanks. > >  > Make your summer sizzle with fast and easy recipes > <http://food.aol.com/grilling?ncid=emlcntusfood00000003>; for the grill. >  > >  > Are you an open source citizen? Join us for the Open Source Bridge conference! > Portland, OR, June 1719. Two days of sessions, one day of unconference: $250. > Need another reason to go? 24hour hacker lounge. Register today! > http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org >  > > _______________________________________________ > Audacitynyquist mailing list > Audacitynyquist@... > https://lists.sourceforge.net/lists/listinfo/audacitynyquist > 