## audacity-nyquist — Discussion among Nyquist programmers creating plug-ins for Audacity

You can subscribe to this list here.

2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov (40) Dec (29) Jan (7) Feb (12) Mar (28) Apr (27) May Jun (13) Jul (4) Aug (7) Sep (1) Oct (2) Nov (32) Dec (49) Jan (31) Feb (16) Mar (15) Apr (15) May (21) Jun (1) Jul (1) Aug (5) Sep (2) Oct (21) Nov Dec (6) Jan (21) Feb Mar Apr (5) May (1) Jun (3) Jul (10) Aug (38) Sep (21) Oct (38) Nov (23) Dec (3) Jan (72) Feb (45) Mar (46) Apr (5) May (2) Jun (33) Jul Aug (9) Sep (6) Oct (1) Nov (17) Dec (73) Jan (20) Feb (28) Mar (7) Apr (24) May (8) Jun (59) Jul (38) Aug (25) Sep (19) Oct (40) Nov (43) Dec (53) Jan (22) Feb (12) Mar (14) Apr (4) May (29) Jun (26) Jul (7) Aug (14) Sep (16) Oct (34) Nov (13) Dec (8) Jan Feb Mar (1) Apr (1) May Jun (5) Jul (10) Aug (2) Sep (3) Oct Nov (1) Dec (1) Jan Feb (1) Mar Apr May Jun Jul (4) Aug Sep (21) Oct Nov Dec Jan Feb Mar (1) Apr May Jun Jul Aug Sep Oct (6) Nov Dec Jan Feb (2) Mar Apr May (1) Jun Jul (3) Aug Sep (1) Oct Nov Dec 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)

Showing results of 59

<< < 1 2 3 > >> (Page 2 of 3)
 Re: [Audacity-nyquist] slope = 1st derivative? From: paul beach - 2009-06-26 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" 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) > > ) > > > > ------------------------------------------------------------------------------ > _______________________________________________ > Audacity-nyquist mailing list > Audacity-nyquist@... > https://lists.sourceforge.net/lists/listinfo/audacity-nyquist -- paul beach sniffyraven@... ```
 Re: [Audacity-nyquist] slope = 1st derivative? From: Roger Dannenberg - 2009-06-25 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) > ) > ```
 Re: [Audacity-nyquist] Nyquist Effect Workbench ... final From: Leland - 2009-06-25 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 plug-in 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 ```
 Re: [Audacity-nyquist] slope = 1st derivative? From: - 2009-06-25 22:59:31 Attachments: Message as HTML ``` The slope or tangent to a curve at a point is the first derivative evaluated at that point. -----Original Message----- From: paul beach To: Discussion of developing Nyquist plug-ins for Audacity Sent: Thu, Jun 25, 2009 2:42 pm Subject: [Audacity-nyquist] 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@... ------------------------------------------------------------------------------ _______________________________________________ Audacity-nyquist mailing list Audacity-nyquist@... https://lists.sourceforge.net/lists/listinfo/audacity-nyquist ```
 [Audacity-nyquist] slope = 1st derivative? From: paul beach - 2009-06-25 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@... ```
 Re: [Audacity-nyquist] (reson...) and (areson...) From: Leland - 2009-06-25 18:37:22 Attachments: Message as HTML ```Good thing you reminded me...I'll take a look tonight. Leland On Thu, Jun 25, 2009 at 12:28 PM, 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 > > > > ------------------------------------------------------------------------------ > _______________________________________________ > Audacity-nyquist mailing list > Audacity-nyquist@... > https://lists.sourceforge.net/lists/listinfo/audacity-nyquist > ```
 Re: [Audacity-nyquist] (reson...) and (areson...) From: Roger Dannenberg - 2009-06-25 17:40:19 Attachments: Message as HTML ```"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 > > > ------------------------------------------------------------------------------ > _______________________________________________ > Audacity-nyquist mailing list > Audacity-nyquist@... > https://lists.sourceforge.net/lists/listinfo/audacity-nyquist > > ```
 Re: [Audacity-nyquist] Nyquist Effect Workbench ... final From: Stevethefiddle - 2009-06-25 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 s-expr, > parent s-expr, previous s-expr, next s-expr, 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=NyqBench-09.066.zip > > Leland > > > ------------------------------------------------------------------------------ > Open Source Business Conference (OSBC), March 24-25, 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 > _______________________________________________ > Audacity-nyquist mailing list > Audacity-nyquist@... > https://lists.sourceforge.net/lists/listinfo/audacity-nyquist > > -- View this message in context: http://n2.nabble.com/Nyquist-Effect-Workbench-...-final-tp2442161p3156516.html Sent from the audacity-nyquist mailing list archive at Nabble.com. ```
 [Audacity-nyquist] (reson...) and (areson...) From: Steve - 2009-06-25 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 ```
 Re: [Audacity-nyquist] Trying to build phase-shifter plug-in using (snd-tapv ....) with no luck. From: Roger Dannenberg - 2009-06-23 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) (snd-tapv 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 plug-in 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 plug-in 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 plug-in 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 snd-tapv, 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 fudge-factor, 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 non-linear. For example, the same requirements as above, but on a 100Hz signal, requires a fudge-factor of about 35. > > Obviously, I'm missing some key understanding of how snd-tapv 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 17-19. Two days of sessions, one day of unconference: \$250. > Need another reason to go? 24-hour hacker lounge. Register today! > http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org > _______________________________________________ > Audacity-nyquist mailing list > Audacity-nyquist@... > https://lists.sourceforge.net/lists/listinfo/audacity-nyquist > > ```
 Re: [Audacity-nyquist] Graphic looks like doubling : Basson and Feigenbaum numbers (period doubling From: Roger Dannenberg - 2009-06-23 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 > ```
 [Audacity-nyquist] Trying to build phase-shifter plug-in using (snd-tapv ....) with no luck. From: Dave Storer - 2009-06-23 02:24:18 ```I'm trying to build a simple plug-in 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 plug-in 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 plug-in 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 snd-tapv, 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 fudge-factor, 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 non-linear. For example, the same requirements as above, but on a 100Hz signal, requires a fudge-factor of about 35. Obviously, I'm missing some key understanding of how snd-tapv works. Can anyone suggest a different approach. Thanks for any insight you can give me. Dave Storer ```
 [Audacity-nyquist] Graphic looks like doubling : Basson and Feigenbaum numbers (period doubling From: paul beach - 2009-06-23 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@... ```
 Re: [Audacity-nyquist] Basson and Feigenbaum numbers (period doubling From: Roger Dannenberg - 2009-06-22 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 * (1-x) on the domain 0 "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 time-varying 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. ```
 [Audacity-nyquist] Basson and Feigenbaum numbers (period doubling From: paul beach - 2009-06-22 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 * (1-x) on the domain 0
 Re: [Audacity-nyquist] OK but scale not specified: F.M. does not give a spectrum From: Roger Dannenberg - 2009-06-22 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" > 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 A-220 and A-110, 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 17-19. Two days of sessions, one day of unconference: >> \$250. >> Need another reason to go? 24-hour hacker lounge. Register today! >> http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org >> _______________________________________________ >> Audacity-nyquist mailing list >> Audacity-nyquist@... >> https://lists.sourceforge.net/lists/listinfo/audacity-nyquist >> ```
 Re: [Audacity-nyquist] INTRODUCTION TO DIGITAL FILTERS--Help with individual signal ... From: David R. Sky - 2009-06-22 15:08:51 Attachments: fir101.ny ```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, 2009-06-20 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 SND-FETCH or SND-FETCH-ARRAY and proceed >> with f(i). >> But I do see that your suggestion maybe easier. When using convolve >> with a signal-of-f(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 signal-of-f(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 zero-padding suggestion does not shorten the new signal. Is >> zero-padding 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.audacity-forum.de/download/edgar/nyquist/nyquist-doc/xlisp/xlisp-ref/xlisp-ref-index.htm > > Steve > > > >> >> Have a good day. >> >> Mark. >> >> >> >> >> -----Original Message----- >> From: paul beach >> To: Discussion of developing Nyquist plug-ins for Audacity >> >> Sent: Sat, Jun 20, 2009 7:58 am >> Subject: [Audacity-nyquist] INTRODUCTION TO DIGITAL FILTERS--Help 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" >> >> said: >> >>> Here's a high-level 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 SND-FROM-ARRAY, and you can construct >> >>> an array by allocating a new one using MAKE-ARRAY 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 non-negative 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 >> >>>> Nyquist-Lisp 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(j-7) >> >>>> f(-6)s(j-6) >> >>>> f(-5)s(j-5) >> >>>> ... >> >>>> 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 17-19. Two days of sessions, one day of unconference: \$250. > Need another reason to go? 24-hour hacker lounge. Register today! > http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org > _______________________________________________ > Audacity-nyquist mailing list > Audacity-nyquist@... > https://lists.sourceforge.net/lists/listinfo/audacity-nyquist > >```
 [Audacity-nyquist] OK but scale not specified: F.M. does not give a spectrum From: paul beach - 2009-06-22 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" 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 A-220 and A-110, 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 17-19. Two days of sessions, one day of unconference: > \$250. > Need another reason to go? 24-hour hacker lounge. Register today! > http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org > _______________________________________________ > Audacity-nyquist mailing list > Audacity-nyquist@... > https://lists.sourceforge.net/lists/listinfo/audacity-nyquist -- paul beach sniffyraven@... ```
 Re: [Audacity-nyquist] F.M. does not give a spectrum From: Roger Dannenberg - 2009-06-22 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 A-220 and A-110, below. > > Paul > > (scale 0.5 > ( fmosc 57 (osc 45) ) > ) > ```
 [Audacity-nyquist] F.M. does not give a spectrum From: paul beach - 2009-06-21 23:18:21 ```I am trying fmosc. It returns audio but there is no infinite spectrum. Just A-220 and A-110, below. Paul (scale 0.5 ( fmosc 57 (osc 45) ) ) -- paul beach sniffyraven@... ```
 Re: [Audacity-nyquist] INTRODUCTION TO DIGITAL FILTERS--Help with individual signal ... From: Steve - 2009-06-21 19:18:24 ```On Sat, 2009-06-20 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 SND-FETCH or SND-FETCH-ARRAY and proceed > with f(i). > But I do see that your suggestion maybe easier. When using convolve > with a signal-of-f(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 signal-of-f(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 zero-padding suggestion does not shorten the new signal. Is > zero-padding 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.audacity-forum.de/download/edgar/nyquist/nyquist-doc/xlisp/xlisp-ref/xlisp-ref-index.htm Steve > > Have a good day. > > Mark. > > > > > -----Original Message----- > From: paul beach > To: Discussion of developing Nyquist plug-ins for Audacity > > Sent: Sat, Jun 20, 2009 7:58 am > Subject: [Audacity-nyquist] INTRODUCTION TO DIGITAL FILTERS--Help 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" > > said: > > > Here's a high-level 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 SND-FROM-ARRAY, and you can construct > > > an array by allocating a new one using MAKE-ARRAY 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 non-negative 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 > > > > Nyquist-Lisp 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(j-7) > > > > f(-6)s(j-6) > > > > f(-5)s(j-5) > > > > ... > > > > 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. ```
 [Audacity-nyquist] convolve in Nyquist From: Roger Dannenberg - 2009-06-21 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 (raised-cosine)))) ;; from fft_tutorial.html (defun raised-cosine () (scale 0.5 (sum (const 1) (lfo (/ 1.0 (get-duration 1)) 1 *sine-table* 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 (control-srate-abs *sound-srate* (const 1.0 (/ 0.9 *sound-srate*))) (s-rest (- dur (/ 0.9 *sound-srate*))))) (defun my-signal () (seq (impulse 0.003) (impulse 0.005) (impulse 0.003))) ;; plot the result (s-plot (convolve (my-signal) (response 0.002 2000.0)) 600 0.02) ```
 Re: [Audacity-nyquist] INTRODUCTION TO DIGITAL FILTERS--Help with individual signal ... From: - 2009-06-20 17:53:18 Attachments: Message as HTML ``` 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 SND-FETCH or SND-FETCH-ARRAY and proceed with f(i). But I do see that your suggestion maybe easier. When using convolve with a signal-of-f(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 signal-of-f(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 zero-padding suggestion does not shorten the new signal. Is zero-padding 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 To: Discussion of developing Nyquist plug-ins for Audacity Sent: Sat, Jun 20, 2009 7:58 am Subject: [Audacity-nyquist] INTRODUCTION TO DIGITAL FILTERS--Help 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" said: > Here's a high-level 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 SND-FROM-ARRAY, and you can construct > an array by allocating a new one using MAKE-ARRAY 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 non-negative 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 > > Nyquist-Lisp 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(j-7) > > f(-6)s(j-6) > > f(-5)s(j-5) > > ... > > 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 > > ; for the grill. > > ------------------------------------------------------------------------ > > > > ------------------------------------------------------------------------------ > > Are you an open source citizen? Join us for the Open Source Bridge conference! > > Portland, OR, June 17-19. Two days of sessions, one day of unconference: \$250. > > Need another reason to go? 24-hour hacker lounge. Register today! > > http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org > > ------------------------------------------------------------------------ > > > > _______________________________________________ > > Audacity-nyquist mailing list > > Audacity-nyquist@... > > https://lists.sourceforge.net/lists/listinfo/audacity-nyquist > > -- paul beach sniffyraven@... ------------------------------------------------------------------------------ Are you an open source citizen? Join us for the Open Source Bridge conference! Portland, OR, June 17-19. Two days of sessions, one day of unconference: \$250. Need another reason to go? 24-hour hacker lounge. Register today! http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org _______________________________________________ Audacity-nyquist mailing list Audacity-nyquist@... https://lists.sourceforge.net/lists/listinfo/audacity-nyquist ```
 [Audacity-nyquist] INTRODUCTION TO DIGITAL FILTERS--Help with individual signal ... From: paul beach - 2009-06-20 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" said: > Here's a high-level 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 SND-FROM-ARRAY, and you can construct > an array by allocating a new one using MAKE-ARRAY 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 non-negative 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 > > Nyquist-Lisp 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(j-7) > > f(-6)s(j-6) > > f(-5)s(j-5) > > ... > > 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 > > ; for the grill. > > ------------------------------------------------------------------------ > > > > ------------------------------------------------------------------------------ > > Are you an open source citizen? Join us for the Open Source Bridge conference! > > Portland, OR, June 17-19. Two days of sessions, one day of unconference: \$250. > > Need another reason to go? 24-hour hacker lounge. Register today! > > http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org > > ------------------------------------------------------------------------ > > > > _______________________________________________ > > Audacity-nyquist mailing list > > Audacity-nyquist@... > > https://lists.sourceforge.net/lists/listinfo/audacity-nyquist > > -- paul beach sniffyraven@... ```
 Re: [Audacity-nyquist] Help with individual signal samples. From: Roger Dannenberg - 2009-06-20 14:13:24 Attachments: Message as HTML ```Here's a high-level 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 SND-FROM-ARRAY, and you can construct an array by allocating a new one using MAKE-ARRAY 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 non-negative 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 > Nyquist-Lisp 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(j-7) > f(-6)s(j-6) > f(-5)s(j-5) > ... > 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 > ; for the grill. > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------------ > Are you an open source citizen? Join us for the Open Source Bridge conference! > Portland, OR, June 17-19. Two days of sessions, one day of unconference: \$250. > Need another reason to go? 24-hour hacker lounge. Register today! > http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org > ------------------------------------------------------------------------ > > _______________________________________________ > Audacity-nyquist mailing list > Audacity-nyquist@... > https://lists.sourceforge.net/lists/listinfo/audacity-nyquist > ```

Showing results of 59

<< < 1 2 3 > >> (Page 2 of 3)