From douglas at music.columbia.edu Wed Oct 1 00:00:00 2008 From: douglas at music.columbia.edu (douglas repetto) Date: Wed Oct 1 00:00:09 2008 Subject: [music-dsp] [admin] music-dsp FAQ Message-ID: <20081001040000.6204D4262395F@music.columbia.edu> Hi, Just a reminder that if you are new to the list you should read the music-dsp FAQ. It contains answers to both technical _and_ adminstrative questions that often come up on the list. If your question appears in the FAQ it is safe to assume that it has been discussed on the list many times in the past, and you should probably have a look through the list archives before posting your question to the list. http://music.columbia.edu/cmc/music-dsp/musicdspFAQ.html Also of interest to new and not-so-new list members: The music-dsp list archives http://music.columbia.edu/cmc/music-dsp/musicdsparchives.html The music-dsp source code archive http://www.musicdsp.org music-dsp books and reviews http://music.columbia.edu/cmc/music-dsp/dspbooks.html All this and more at: http://music.columbia.edu/cmc/music-dsp Hasta la pasta, douglas (this is an automated message sent out on the 1st and 15th of each month) From darren.landrum at sbcglobal.net Wed Oct 1 16:36:19 2008 From: darren.landrum at sbcglobal.net (Darren Landrum) Date: Wed Oct 1 16:37:01 2008 Subject: [music-dsp] Lumped modeling and WDFs In-Reply-To: <001b01c9225d$597f7d00$0c01a8c0@Arbeitsgruppe> References: <48DABDB4.7010406@sbcglobal.net> <001b01c9225d$597f7d00$0c01a8c0@Arbeitsgruppe> Message-ID: <48E3DF43.1090503@sbcglobal.net> Martin Eisenberg wrote: > Is realizing the more complex adaptors your problem? With a > little practice you can read the code directly from a block > diagram. Do you understand this link in simple cases, e.g. the > common 2nd-order IIR? Or are you wondering how to join all those > blocks into a running system? Perhaps you can point out a > specific block or circuit that you have trouble handling. I guess one of the problems I'm having is conceptual. At first, I was under the impression that the inductors, capacitors, and resistors were separate components from the port adapters, and that a "circuit" went together by putting the port adapters in-between the electronic pieces. However, based on some stuff I've managed to find on the web, it appears that the network of components for a part of a circuit would actually go inside of an N-port adapter, depending on the number of ports needed. Unfortunately, nothing is very clear on how this works. The math that describes the I/C/R components is presented, the math describing the port adapters is presented, but I'm having difficulty figuring out how to use it all together. Perhaps some of my confusion will be alleviated (or added to) if I just started trying to build some of these pieces in Faust and see what happens. Another confusing bit is the Binary Connection Tree, a term that Google turned up nothing on other than references to various DSP papers. Several comp-sci friends of mine were also unable to tell me what that might mean. Thank you very much for your reply. Regards, Darren Landrum From martin.eisenberg at udo.edu Thu Oct 2 11:42:58 2008 From: martin.eisenberg at udo.edu (Martin Eisenberg) Date: Thu Oct 2 11:41:40 2008 Subject: [music-dsp] Lumped modeling and WDFs References: <48DABDB4.7010406@sbcglobal.net><001b01c9225d$597f7d00$0c01a8c0@Arbeitsgruppe> <48E3DF43.1090503@sbcglobal.net> Message-ID: <002101c924a5$8f9ffb40$0c01a8c0@Arbeitsgruppe> From: "Darren Landrum" > I guess one of the problems I'm having is conceptual. At first, > I was under the impression that the inductors, capacitors, and > resistors were separate components from the port adapters, > and that a "circuit" went together by putting the port adapters > in-between the electronic pieces. And that's true. For instance, a simple RC filter would become a 3-port series adaptor with R, C, and source terminating the ports. Each time step you'd then read all 1-ports' outputs (which depend only on older inputs), feed those to the adaptor network, update the 1-ports with the adaptor outputs, and finally get the output quantity from both terminal values of the C (or R, as the case may be). (Please note that my earlier integrator example is actually wrong because reading and writing occur separately.) For larger circuits, while we can implement an N-port adaptor as a single block in our network, it's convenient to use a chain of 3-ports. That is computable because each internal connection involves one adapted port. In the above sequence, these adapted ports are treated along with the 1-ports -- read first, written last. So from a bird's view the adaptors encode circuit topology and the terminating 1-ports endow it with dynamics. (Let's leave scattering junctions aside for now.) > However, based on some stuff I've managed to find on the > web, it appears that the network of components for a part of > a circuit would actually go inside of an N-port adapter, > depending on the number of ports needed. Before my first reply I too failed to google up any source. Where is that example? > Another confusing bit is the Binary Connection Tree, a term > that Google turned up nothing on other than references to > various DSP papers. It's nothing too arcane -- if you use only 3-port adaptors and let the whole structure "dangle" from any one of the 1-ports, you have a binary tree. BCT is about leveraging that fact in implementing the computation sequence I described above. Martin From darren.landrum at sbcglobal.net Thu Oct 2 17:04:33 2008 From: darren.landrum at sbcglobal.net (Darren Landrum) Date: Thu Oct 2 17:05:18 2008 Subject: [music-dsp] Lumped modeling and WDFs In-Reply-To: <002101c924a5$8f9ffb40$0c01a8c0@Arbeitsgruppe> References: <48DABDB4.7010406@sbcglobal.net><001b01c9225d$597f7d00$0c01a8c0@Arbeitsgruppe> <48E3DF43.1090503@sbcglobal.net> <002101c924a5$8f9ffb40$0c01a8c0@Arbeitsgruppe> Message-ID: <48E53761.5050203@sbcglobal.net> Martin Eisenberg wrote: > And that's true. For instance, a simple RC filter would become a > 3-port series adaptor with R, C, and source terminating the > ports. Each time step you'd then read all 1-ports' outputs (which > depend only on older inputs), feed those to the adaptor network, > update the 1-ports with the adaptor outputs, and finally get the > output quantity from both terminal values of the C (or R, as the > case may be). That paragraph has actually helped me a lot more than all of the papers I have found thus far. Thank you. > Before my first reply I too failed to google up any source. Where > is that example? I honestly can't remember. I thought I had saved it but I can't find it now. However, based upon your first paragraph in this email, I now know how I was reading it wrong. > It's nothing too arcane -- if you use only 3-port adaptors and > let the whole structure "dangle" from any one of the 1-ports, you > have a binary tree. BCT is about leveraging that fact in > implementing the computation sequence I described above. I also got pointed to another DAFX paper on the subject, so hopefully that will clear things up for me. Thank you very much for the reply. You've been very helpful in clearing this up. Regards, Darren Landrum From lseltzer at alumni.caltech.edu Tue Oct 7 15:04:31 2008 From: lseltzer at alumni.caltech.edu (Linda Seltzer) Date: Tue Oct 7 15:04:52 2008 Subject: [music-dsp] Reed-Solomon error correction question Message-ID: <3336.71.231.103.249.1223406271.squirrel@mail.alumni.caltech.edu> (Please let me know about any other groups to send this message to.) I am normally a speech/audio processing engineer, so this is somewhat (understatement) out of my primary expertise area. I have recently implemented the Reed Solomon error correction algorithm and have gotten it to work for the following case: the roots of the generator polynomial are in positions 1 through 2t, where t is the number of errors. However, I implemented the case where the roots of the generator polynomial start at n, where n > 1. I looked through many library books and found a formula for finding the error values in only a couple of books. The problem is that it does not work. I found errors in several books concerning Reed Solomon, and there are a lot of details not explained in most texts. (BTW, I reed French, so if there is a text in French that explains all of this, please let me know, and also if the best source is in Chinese, I can find someone to translate.) I am looking for reliable and accurate equations for finding the error values when the generator polynomial roots start in a position greater than 1. When I implemented the case where the generator polynomial roots start in position 1, you have the omega polynomial in the numerator and the derivative of the sigma polynomial in the denominator. The coefficient becomes 1. This works fine. The forumla for the case of n > 1, is the same except the coefficient is given as: - alpha^(j(1-n)) where n is the index for the first root of the generator polynomial. This doesn't work, as I am stress testing the algorithm over thousands of randomly generated messages. Thank you for any information, either formulas or books and articles or code that clearly explain this. I have another question: we were asked to implement am (n,k) code, but the particular values of n and K are not listed in any table of valid BCH codes. The textbooks, however, refer to R-S as a type of BCH code. Does this mean that R-S cannot work with these values of n and h? I have a specification in front of me with these values of n and k, and also the AHA website seems to have an implementation of it running online (without the equations or source available). Is it possible to have an R-S decoder for values of (n,k) that are not listed in the tables of BCH codes? Linda Seltzer lseltzer@alumni.caltech.edu From ebrombaugh1 at cox.net Tue Oct 7 15:13:52 2008 From: ebrombaugh1 at cox.net (Eric Brombaugh) Date: Tue Oct 7 15:14:10 2008 Subject: [music-dsp] Reed-Solomon error correction question In-Reply-To: <3336.71.231.103.249.1223406271.squirrel@mail.alumni.caltech.edu> References: <3336.71.231.103.249.1223406271.squirrel@mail.alumni.caltech.edu> Message-ID: <48EBB4F0.6050802@cox.net> Linda Seltzer wrote: > (Please let me know about any other groups to send this message to.) Try posting this one on Usenet comp.dsp - there are some folks there who are pretty sharp at FEC and should have some pertinent advice. Eric From xcolwell at gmail.com Thu Oct 9 02:11:54 2008 From: xcolwell at gmail.com (brien colwell) Date: Thu Oct 9 02:12:11 2008 Subject: [music-dsp] layers of experience in sound Message-ID: hi all -- I want to segment a sound into seven layers of experience (or maybe fewer or a little more). One way I've been playing with is to break it up along frequencies, so I have buckets of frequencies, ranging from lows to highs. Can anyone think of a different way to segment sound that is maybe better aligned with our physical sensors or cognitive models? thanks! From padawan12 at obiwannabe.co.uk Thu Oct 9 08:31:25 2008 From: padawan12 at obiwannabe.co.uk (Andy Farnell) Date: Thu Oct 9 08:31:32 2008 Subject: [music-dsp] layers of experience in sound In-Reply-To: References: Message-ID: <20081009133125.57df9573.padawan12@obiwannabe.co.uk> On Thu, 9 Oct 2008 02:11:54 -0400 "brien colwell" wrote: > hi all -- > > I want to segment a sound into seven layers of experience (or maybe > fewer or a little more). One way I've been playing with is to break it > up along frequencies, so I have buckets of frequencies, ranging from > lows to highs. Can anyone think of a different way to segment sound > that is maybe better aligned with our physical sensors or cognitive > models? > > thanks! Hi Brien, Here's a few ways you can decompose a sound into data that makes more sense to us humans (with some pointers to keywords for further research) Bark/Sensible band decomposition into critical bands, about 20 of them. This is the frequency bin approach you are already looking at, but it might be useful to take a perceptual approach to the analysis. Harmonic analysis. Try splitting the sound into odd, even or nth harmonic series (Fourier, FFT, DTFT) Inharmonic analysis. Get a measure of roughness by looking for the degree of non-linearity evidenced by distortion, (2nd and 3rd harmonic distortion, intermodulation components) Noisiness. Find the entropy thresholds and split into periodic, quasi-periodic, turbulent sources, this is used in speech work to separate vowels from fricatives and stops. (LPC analysis, correlation) Boundary / edge detection. Derivatives of amplitude and frequency bin functions will help you find 'edges', identify transient and energetically sustained portions, decays etc. Basis functions - packet/quanta decomposition into grains, wavelets etc, (DCT/wavelet/Karhunen-Loeve) Spectral centroid - where is the 'centre of gravity' of the sound? Localisation. If you have stereo or multi-channel data, where is the sound? (IID, ITD, Haas separation, deconvolution) Generally speaking, two subjects to study that may help you are audio data compression (not dynamic compression) a la MPEG. Also look for papers on the subject of 'machine listening' (MIT and Queen Mary College) > -- > dupswapdrop -- the music-dsp mailing list and website: > subscription info, FAQ, source code archive, list archive, book reviews, dsp links > http://music.columbia.edu/cmc/music-dsp > http://music.columbia.edu/mailman/listinfo/music-dsp -- Use the source From garton at columbia.edu Thu Oct 9 08:43:54 2008 From: garton at columbia.edu (Brad Garton) Date: Thu Oct 9 08:44:13 2008 Subject: [music-dsp] layers of experience in sound In-Reply-To: References: Message-ID: Check out our "MEAPsoft" analysis software: http://labrosa.ee.columbia.edu/meapsoft/ I'm not sure if it will capture "layers of experience", but it has a number of features that can be used to segment/organize sound. brad http://music.columbia.edu/~brad On Oct 9, 2008, at 2:11 AM, brien colwell wrote: > hi all -- > > I want to segment a sound into seven layers of experience (or maybe > fewer or a little more). One way I've been playing with is to break it > up along frequencies, so I have buckets of frequencies, ranging from > lows to highs. Can anyone think of a different way to segment sound > that is maybe better aligned with our physical sensors or cognitive > models? > > thanks! > -- > dupswapdrop -- the music-dsp mailing list and website: > subscription info, FAQ, source code archive, list archive, book > reviews, dsp links > http://music.columbia.edu/cmc/music-dsp > http://music.columbia.edu/mailman/listinfo/music-dsp From xcolwell at gmail.com Sun Oct 12 20:49:30 2008 From: xcolwell at gmail.com (brien colwell) Date: Sun Oct 12 20:49:48 2008 Subject: [music-dsp] layers of experience in sound In-Reply-To: <20081009133125.57df9573.padawan12@obiwannabe.co.uk> References: <20081009133125.57df9573.padawan12@obiwannabe.co.uk> Message-ID: <48F29B1A.40901@gmail.com> thanks Andy and Brad ... this is a great start Andy Farnell wrote: > On Thu, 9 Oct 2008 02:11:54 -0400 > "brien colwell" wrote: > > >> hi all -- >> >> I want to segment a sound into seven layers of experience (or maybe >> fewer or a little more). One way I've been playing with is to break it >> up along frequencies, so I have buckets of frequencies, ranging from >> lows to highs. Can anyone think of a different way to segment sound >> that is maybe better aligned with our physical sensors or cognitive >> models? >> >> thanks! >> > > Hi Brien, > > Here's a few ways you can decompose a sound into data > that makes more sense to us humans (with some pointers > to keywords for further research) > > Bark/Sensible band decomposition into critical bands, about > 20 of them. This is the frequency bin approach you are already > looking at, but it might be useful to take a perceptual approach > to the analysis. > > Harmonic analysis. Try splitting the sound into odd, even or > nth harmonic series (Fourier, FFT, DTFT) > > Inharmonic analysis. Get a measure of roughness by looking > for the degree of non-linearity evidenced by distortion, > (2nd and 3rd harmonic distortion, intermodulation components) > > Noisiness. Find the entropy thresholds and split into periodic, > quasi-periodic, turbulent sources, this is used in speech > work to separate vowels from fricatives and stops. > (LPC analysis, correlation) > > Boundary / edge detection. Derivatives of amplitude and frequency > bin functions will help you find 'edges', identify transient and > energetically sustained portions, decays etc. > > Basis functions - packet/quanta decomposition into grains, wavelets > etc, (DCT/wavelet/Karhunen-Loeve) > > Spectral centroid - where is the 'centre of gravity' of the sound? > > Localisation. If you have stereo or multi-channel data, where is the > sound? (IID, ITD, Haas separation, deconvolution) > > > Generally speaking, two subjects to study that may help you are > audio data compression (not dynamic compression) a la MPEG. > Also look for papers on the subject of 'machine listening' > (MIT and Queen Mary College) > > >> -- >> dupswapdrop -- the music-dsp mailing list and website: >> subscription info, FAQ, source code archive, list archive, book reviews, dsp links >> http://music.columbia.edu/cmc/music-dsp >> http://music.columbia.edu/mailman/listinfo/music-dsp >> > > > From douglas at music.columbia.edu Wed Oct 15 00:00:01 2008 From: douglas at music.columbia.edu (douglas repetto) Date: Wed Oct 15 00:00:18 2008 Subject: [music-dsp] [admin] music-dsp FAQ Message-ID: <20081015040001.3597746B75EDD@music.columbia.edu> Hi, Just a reminder that if you are new to the list you should read the music-dsp FAQ. It contains answers to both technical _and_ adminstrative questions that often come up on the list. If your question appears in the FAQ it is safe to assume that it has been discussed on the list many times in the past, and you should probably have a look through the list archives before posting your question to the list. http://music.columbia.edu/cmc/music-dsp/musicdspFAQ.html Also of interest to new and not-so-new list members: The music-dsp list archives http://music.columbia.edu/cmc/music-dsp/musicdsparchives.html The music-dsp source code archive http://www.musicdsp.org music-dsp books and reviews http://music.columbia.edu/cmc/music-dsp/dspbooks.html All this and more at: http://music.columbia.edu/cmc/music-dsp Hasta la pasta, douglas (this is an automated message sent out on the 1st and 15th of each month) From dwuertz at gmx.net Thu Oct 16 14:11:21 2008 From: dwuertz at gmx.net (Dominique =?ISO-8859-1?Q?W=FCrtz?=) Date: Thu Oct 16 14:11:47 2008 Subject: [music-dsp] Bandlimited waveform generation Message-ID: <1224180681.6424.24.camel@desktop> Hi, in [1], bandlimited signals (sawtooth, square etc.) are generated by integrating over either unipolar or bipolar bandlimited pulse trains given by y1(t) = exp(k*cos(omega*t)-k) * cos(omega*t) (unipolar) y2(t) = exp(k*cos(2*omega*t)-k) * cos(omega*t) (bipolar) where k is the modulation index (constant). I didn't read about the theory behind this. However, I found that y3(t) = cos(0.5*omega*t)^N N even (unipolar) y4(t) = cos(omega*t)^N N odd (bipolar) gives very similar results and looks like it can be evaluated more efficiently. Furthermore, if I understand correctly, y1 and y2 are not perfectly bandlimited while y3 and y4 are (with omega_max = floor(N/2) * omega). I'm wondering if there is some theoretic relationship between y1/y2 and y3/y4. What do you think about this approach? Regards, Dominique [1] "A modified FM synthesis approach to bandlimited signal generation" Joseph Timoney, Victor Lazzarini, Thomas Lysaght, DAFx-08 From Victor.Lazzarini at nuim.ie Thu Oct 16 14:49:39 2008 From: Victor.Lazzarini at nuim.ie (victor) Date: Thu Oct 16 14:49:54 2008 Subject: [music-dsp] Bandlimited waveform generation References: <1224180681.6424.24.camel@desktop> Message-ID: <001501c92fbf$f1e203f0$0201a8c0@family> Dominic, yep, in general cos(x)^N = (2/2^N) SUM[k=0, (N-1)/2] (N!/(k!(n-k)!))cos((n -2k)x) (for N odd) cos(x)^N =(1/2^N)*(N!/((N/2)!(N-N/2)!) + 2/2^N SUM[k=0, N/2-1]cos((n -2k)x) (for N even) Not sure about the efficiency as there will be N multiplications, when the first method is just a couple of table lookups plus one multiplication. The soft implementation I use is quite fast. But then again I am not that clued up on speed ups for power calculations. I would have thought the original summation formula for pulses is still a winner in terms of efficiency (but with practical problems perhaps). As far as bandlimiting is concerned, the first method is effectively bandlimited, because in practical terms you can place any aliased components below the system's noise threshold, whatever that might be. I have not thought of investigating the question you raised, but would be curious to see what perspective you have been considering it from. Regards Victor ----- Original Message ----- From: "Dominique W?rtz" To: "A discussion list for music-related DSP" Sent: Thursday, October 16, 2008 7:11 PM Subject: [music-dsp] Bandlimited waveform generation > Hi, > > in [1], bandlimited signals (sawtooth, square etc.) are generated by > integrating over either unipolar or bipolar bandlimited pulse trains > given by > > y1(t) = exp(k*cos(omega*t)-k) * cos(omega*t) (unipolar) > y2(t) = exp(k*cos(2*omega*t)-k) * cos(omega*t) (bipolar) > > where k is the modulation index (constant). I didn't read about the > theory behind this. > > However, I found that > > y3(t) = cos(0.5*omega*t)^N N even (unipolar) > y4(t) = cos(omega*t)^N N odd (bipolar) > > gives very similar results and looks like it can be evaluated more > efficiently. Furthermore, if I understand correctly, y1 and y2 are not > perfectly bandlimited while y3 and y4 are (with omega_max = floor(N/2) * > omega). > > I'm wondering if there is some theoretic relationship between y1/y2 and > y3/y4. What do you think about this approach? > > Regards, > Dominique > > [1] "A modified FM synthesis approach to bandlimited signal generation" > Joseph Timoney, Victor Lazzarini, Thomas Lysaght, DAFx-08 > > > -- > dupswapdrop -- the music-dsp mailing list and website: > subscription info, FAQ, source code archive, list archive, book reviews, > dsp links > http://music.columbia.edu/cmc/music-dsp > http://music.columbia.edu/mailman/listinfo/music-dsp From martin.eisenberg at udo.edu Thu Oct 16 20:03:16 2008 From: martin.eisenberg at udo.edu (Martin Eisenberg) Date: Thu Oct 16 20:10:09 2008 Subject: [music-dsp] Bandlimited waveform generation References: <1224180681.6424.24.camel@desktop> Message-ID: <002101c92feb$c5231300$0c01a8c0@Arbeitsgruppe> From: "Dominique W?rtz" > y3(t) = cos(0.5*omega*t)^N N even (unipolar) > y4(t) = cos(omega*t)^N N odd (bipolar) > > gives very similar results and looks like it can be evaluated > more efficiently. Interesting thought! N = 160 basically reproduces the k = 40 example and takes 7 multiplies. That may very well be faster than a LUT on a desktop system. However, the continuous parameter k gives you sort of a built-in filter in the spirit of Lazzaro and Wawrzynek's paper "Subtractive Synthesis without Filters", which might be nice. > Furthermore, if I understand correctly, y1 and y2 are not > perfectly bandlimited while y3 and y4 are That is correct. > I'm wondering if there is some theoretic relationship > between y1/y2 and y3/y4. None that is both rigorous and not contrived, I'd say. Martin From david.lowenfels at gmail.com Fri Oct 17 00:03:11 2008 From: david.lowenfels at gmail.com (david.lowenfels@gmail.com) Date: Fri Oct 17 00:03:38 2008 Subject: [music-dsp] Bandlimited waveform generation In-Reply-To: <1224180681.6424.24.camel@desktop> References: <1224180681.6424.24.camel@desktop> Message-ID: The integration causes problems (DC) that are hard to work around. I recommend that minBLEP as the best way to go... this pre-integrates the impulse into a step, which is then mixed in at the right points. D On Oct 16, 2008, at 11:11 AM, Dominique W?rtz wrote: > Hi, > > in [1], bandlimited signals (sawtooth, square etc.) are generated by > integrating over either unipolar or bipolar bandlimited pulse trains > given by > > y1(t) = exp(k*cos(omega*t)-k) * cos(omega*t) (unipolar) > y2(t) = exp(k*cos(2*omega*t)-k) * cos(omega*t) (bipolar) > > where k is the modulation index (constant). I didn't read about the > theory behind this. > > However, I found that > > y3(t) = cos(0.5*omega*t)^N N even (unipolar) > y4(t) = cos(omega*t)^N N odd (bipolar) > > gives very similar results and looks like it can be evaluated more > efficiently. Furthermore, if I understand correctly, y1 and y2 are not > perfectly bandlimited while y3 and y4 are (with omega_max = floor(N/ > 2) * > omega). > > I'm wondering if there is some theoretic relationship between y1/y2 > and > y3/y4. What do you think about this approach? > > Regards, > Dominique > > [1] "A modified FM synthesis approach to bandlimited signal > generation" > Joseph Timoney, Victor Lazzarini, Thomas Lysaght, DAFx-08 > > > -- > dupswapdrop -- the music-dsp mailing list and website: > subscription info, FAQ, source code archive, list archive, book > reviews, dsp links > http://music.columbia.edu/cmc/music-dsp > http://music.columbia.edu/mailman/listinfo/music-dsp From Victor.Lazzarini at nuim.ie Fri Oct 17 04:17:18 2008 From: Victor.Lazzarini at nuim.ie (victor) Date: Fri Oct 17 04:17:31 2008 Subject: [music-dsp] Bandlimited waveform generation References: <1224180681.6424.24.camel@desktop> <002101c92feb$c5231300$0c01a8c0@Arbeitsgruppe> Message-ID: <000801c93030$c5e989f0$0201a8c0@family> ah, yes we don't need N multiplies, I was wrong. But still, the number of multiplies depends on N, whereas for modFM, it's fixed (two in fact), no matter how many partials you want. I can't see that being more efficient, but you can tell me where I am wrong. In fact k can go much higher than 40 for a full spectrum, depending on what fundamental you want (there is an expression in the paper that demonstrates this). By the way, where was the Lazzaro paper published originally? I can only find an online PDF. Victor > Interesting thought! N = 160 basically reproduces the k = 40 > example and takes 7 multiplies. That may very well be faster than > a LUT on a desktop system. However, the continuous parameter k > gives you sort of a built-in filter in the spirit of Lazzaro and > Wawrzynek's paper "Subtractive Synthesis without Filters", which > might be nice. > >> Furthermore, if I understand correctly, y1 and y2 are not >> perfectly bandlimited while y3 and y4 are > > That is correct. > >> I'm wondering if there is some theoretic relationship >> between y1/y2 and y3/y4. > > None that is both rigorous and not contrived, I'd say. > > > Martin > > -- > dupswapdrop -- the music-dsp mailing list and website: > subscription info, FAQ, source code archive, list archive, book reviews, > dsp links > http://music.columbia.edu/cmc/music-dsp > http://music.columbia.edu/mailman/listinfo/music-dsp From martin.eisenberg at udo.edu Fri Oct 17 11:57:55 2008 From: martin.eisenberg at udo.edu (Martin Eisenberg) Date: Fri Oct 17 11:57:43 2008 Subject: [music-dsp] Bandlimited waveform generation References: <1224180681.6424.24.camel@desktop><002101c92feb$c5231300$0c01a8c0@Arbeitsgruppe> <000801c93030$c5e989f0$0201a8c0@family> Message-ID: <001901c93071$22567960$0c01a8c0@Arbeitsgruppe> From: "victor" > ah, yes we don't need N multiplies, I was wrong. But still, the > number of multiplies depends on N, whereas for modFM, > it's fixed (two in fact), no matter how many partials you want. > I can't see that being more efficient, but you can tell me where > I am wrong. I said that because the power method is neither memory-bound nor encumbered with branching. But you're most probably right about full spectra. For instance, let's say we want the spectrum at 20 kHz down by about 90 dB from a 5 Hz fundamental (4000 harmonics) -- achieved by an exponent of 2^21 + 2^20. This takes 22 multiplies and, more importantly, brings about evil denormalization or underflow when the cosine is itself small. > By the way, where was the Lazzaro paper published originally? Sorry, I don't know. Martin From john.lazzaro at gmail.com Fri Oct 17 12:43:12 2008 From: john.lazzaro at gmail.com (John Lazzaro) Date: Fri Oct 17 12:43:27 2008 Subject: [music-dsp] Bandlimited waveform generation Message-ID: <302f570810170943g39b73964qcd5f6b1e7fa18310@mail.gmail.com> > From: "victor" > By the way, where was the Lazzaro paper published originally? Appears as a chapter in this book: http://books.google.com/books?id=BcUiXmJuVdsC By the way, the algorithm in this chapter is what we used for the SAOL buzz() opcode implementation that sfront generates. -- John Lazzaro http://www.cs.berkeley.edu/~lazzaro john [dot] lazzaro [at] gmail [dot] com From Victor.Lazzarini at nuim.ie Fri Oct 17 12:44:46 2008 From: Victor.Lazzarini at nuim.ie (victor) Date: Fri Oct 17 12:44:58 2008 Subject: [music-dsp] Bandlimited waveform generation References: <302f570810170943g39b73964qcd5f6b1e7fa18310@mail.gmail.com> Message-ID: <000601c93077$aa5ca6d0$0201a8c0@family> John, thanks a lot. Victor ----- Original Message ----- From: "John Lazzaro" To: Sent: Friday, October 17, 2008 5:43 PM Subject: Re: [music-dsp] Bandlimited waveform generation >> From: "victor" >> By the way, where was the Lazzaro paper published originally? > > Appears as a chapter in this book: > > http://books.google.com/books?id=BcUiXmJuVdsC > > By the way, the algorithm in this chapter is what we > used for the SAOL buzz() opcode implementation that > sfront generates. > > -- > John Lazzaro > http://www.cs.berkeley.edu/~lazzaro > john [dot] lazzaro [at] gmail [dot] com > -- > dupswapdrop -- the music-dsp mailing list and website: > subscription info, FAQ, source code archive, list archive, book reviews, > dsp links > http://music.columbia.edu/cmc/music-dsp > http://music.columbia.edu/mailman/listinfo/music-dsp From richarddobson at blueyonder.co.uk Thu Oct 23 08:18:25 2008 From: richarddobson at blueyonder.co.uk (Richard Dobson) Date: Thu Oct 23 08:21:47 2008 Subject: [music-dsp] test - please ignore Message-ID: <49006B91.5030102@blueyonder.co.uk> testing... From stephen.blinkhorn at audiospillage.com Mon Oct 27 18:00:08 2008 From: stephen.blinkhorn at audiospillage.com (Stephen Blinkhorn) Date: Mon Oct 27 18:02:07 2008 Subject: [music-dsp] DPCM & FS1R Message-ID: <14052020-0B2E-49F4-815B-BC333169290E@audiospillage.com> Hello, In the Yamaha FS1R manual regarding the LO-FI sampling frequency parameter I find this: "Word Length (1-27).. Differential bit length of DPCM" Is it common for hardware synths to use DPCM techniques? Anyone know if in this case they are referring to Differencial or Delta Pulse Code Modulation? Might this have some perceived effect on sound quality or just a design/efficiency issue. Just curious, Stephen.