From douglas at music.columbia.edu Tue Jan 1 00:00:01 2008 From: douglas at music.columbia.edu (douglas repetto) Date: Tue Jan 1 00:00:11 2008 Subject: [music-dsp] [admin] music-dsp FAQ Message-ID: <20080101050001.DCC669D80ACE@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 Jason_Page at scee.net Tue Jan 1 01:00:04 2008 From: Jason_Page at scee.net (Jason_Page@scee.net) Date: Tue Jan 1 00:53:23 2008 Subject: [music-dsp] Jason Page (SCEE) is out of the office. Message-ID: I will be out of the office starting 22/12/2007 and will not return until 07/02/2008. Please send any audio support questions to the usual support channels. ********************************************************************** This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify postmaster@scee.net This footnote also confirms that this email message has been checked for all known viruses. Sony Computer Entertainment Europe Limited Registered Office: 10 Great Marlborough Street, London W1F 7LP, United Kingdom Registered in England: 3277793 ********************************************************************** From johannes.oberg at gmail.com Thu Jan 3 00:00:27 2008 From: johannes.oberg at gmail.com (=?ISO-8859-1?Q?Johannes_=D6berg?=) Date: Thu Jan 3 00:00:37 2008 Subject: [music-dsp] Cymbal Simulation In-Reply-To: <20071218174640.79e1546e.padawan12@obiwannabe.co.uk> References: <475E776A.4030501@nilsschneider.de> <476127ED.6090009@elec.qmul.ac.uk> <20071214210048.7192362b.padawan12@obiwannabe.co.uk> <20071218174640.79e1546e.padawan12@obiwannabe.co.uk> Message-ID: Thanks! Didn't see the email until now (covered in heaps of mailinglist noise), will check it out. /Johannes On 12/18/07, Andy Farnell wrote: > > Hey Johannes, > > I dumped the patch diagrams and the code and notes here > sorry it's all a bit messy, but I'm sure you or anyone else > can pick out the basic principle (4 x triangle FM + AM + delay > feedback + moog filter to smooth it all out a bit) > > http://www.obiwannabe.co.uk/html/toys/cymbal-FMAM/cymbalfmam.html > > On Tue, 18 Dec 2007 16:32:38 +0100 > "Johannes ?berg" wrote: > > > I thought these were fantastic, especially considering it's only FM. > > Love the fifth hit (ride cymbal)! I'd really like that Pd source, or > > even better a plain old patchsheet printout since I'm not into Pd. > > > > /Johannes From Gualtiero.Volpe at unige.it Tue Jan 8 12:37:21 2008 From: Gualtiero.Volpe at unige.it (Gualtiero Volpe) Date: Tue Jan 8 12:37:34 2008 Subject: [music-dsp] CFP - 8th Intl. Conf. on New Interfaces for Musical Expression (NIME 2008) Message-ID: <014401c8521d$1fa315d0$5ee94170$@Volpe@unige.it> I apologize for possible multiple copies. Kind regards, Gualtiero Volpe === NIME 2008 - 8th INTERNATIONAL CONFERENCE ON NEW INTERFACES FOR MUSICAL EXPRESSION http://nime2008.casapaganini.org June 5 - 7, 2008 InfoMus Lab, Casa Paganini, University of Genova, Piazza Santa Maria in Passione 34, 16123 Genova, Italy www.casapaganini.org CALL FOR PARTICIPATION On behalf of the NIME 2008 Committee, we would like to invite you to be part of the 8th International Conference on New Interfaces for Musical Expression, organized by Casa Paganini InfoMus Lab - Universit? degli Studi di Genova in collaboration with Regione Liguria, Comune di Genova - Ufficio Paganiniano, Conservatorio di Musica "Niccol? Paganini", GOG - Giovine Orchestra Genovese, Accademia Ligustica di Belle Arti, Museo Villa Croce. We encourage contributions of the following kinds: Papers (full papers, short papers, posters), Demos, Live Performances, Installations. Complete submission guidelines are available on the conference website (http://nime2008.casapaganini.org). NIME 2008 will include a welcome concert on June 4th evening, focusing on novel music pieces by young composers using EyesWeb XMI. NIME 2008 will include the "Club NIME" events, tutorials. Special events organized in collaboration with the EU IST-ICT SAME project (www.sameproject.eu) and the EU Culture 2007 CO-ME-DI-A project will precede and follow the official NIME 2008 program. TOPICS We invite submissions on topics related to new interfaces for music performance including, but not restricted to: * Novel controllers and interfaces for musical expression * Novel controllers for collaborative performance * Novel musical instruments * Augmented/hyper instruments * Interfaces for dance and physical expression * Interactive sound and multimedia installations * Interactive sonification * Sensor and actuator technologies * Haptic and force feedback devices * Interface protocols and data formats * Gesture and music * Perceptual & cognitive issues * Interactivity design and software tools * Musical mapping strategies * Performance analysis and machine learning * Performance rendering and generative algorithms * Experiences with novel interfaces in education and entertainment * Experiences with novel interfaces in live performance and composition * Surveys of past work and stimulating ideas for future research * Historical studies in twentieth-century instrument design * Reports on students projects in the framework of NIME related courses * Artistic, cultural, and social impact of NIME technology * Gesture measurement * Enabling music networks * Bio-music IMPORTANT DATES Submission of proposals (papers, posters, performances, installations): January 31, 2008 Notification of acceptance/rejection (installations and performances): March 12, 2008 Notification of acceptance/rejection (papers and posters): March 20, 2008 Submission of final papers: April 15, 2008 Early registration: April 15, 2008 Papers and posters author registration: April 30, 2008 FURTHER INFORMATION AND CONTACT For any further information/question/comment/suggestion, please visit the NIME2008 website at: http://nime2008.casapaganini.org or send a message to the local organizing committee at nime2008@infomus.org From pfultz2 at yahoo.com Thu Jan 10 18:02:03 2008 From: pfultz2 at yahoo.com (paul Fultz) Date: Thu Jan 10 18:02:13 2008 Subject: [music-dsp] Linear Phase IIR Message-ID: <482881.97172.qm@web90614.mail.mud.yahoo.com> If i have a simple IIR filter and i want it to create an implementation of it with linear or zero phase i heard i can process it forward then backwards to get it zero phase. In order to do that in real-time i would break it into smaller pieces and then overlap, is that a feasible solution? ____________________________________________________________________________________ Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ From rbj at audioimagination.com Thu Jan 10 18:45:39 2008 From: rbj at audioimagination.com (robert bristow-johnson) Date: Thu Jan 10 18:45:57 2008 Subject: [music-dsp] Linear Phase IIR Message-ID: <20080110234539.9FD7D2011C@ws6-7.us4.outblaze.com> > ----- Original Message ----- > From: "paul Fultz" > To: music-dsp@music.columbia.edu > Subject: [music-dsp] Linear Phase IIR > Date: Thu, 10 Jan 2008 15:02:03 -0800 (PST) > > > If i have a simple IIR filter and i want it to create > an implementation of it with linear or zero phase i > heard i can process it forward then backwards to get > it zero phase. In order to do that in real-time i > would break it into smaller pieces and then overlap, > is that a feasible solution? yes, if you're willing accept that your IIR cannot be truly an *infinite* impulse response and to put up with some throughput delay, that has been done. i can think of two authors who have written about it: S. R. Powell & P. M. Chau, "A Technique for Realizing Linear Phase IIR Filters", IEEE ASSP-39, no.11, pp. 2425-2435, (Nov. 1991). S. A. Azizi, "Performance Analysis of Linear Phase Audio Filters Based on the Zero Phase Filtering Concept", 103rd AES Convention (Sept. 1997), AES preprint no. 4535. if you have trouble getting these papers, i can tell you how Azizi did it (which is, i think the same way that the previous authors did it). there is a similar (but) method of doing linear phase (truncated) IIR filtering, but instead of time-reversing, they are using unstable truncated IIR filters: http://ccrma.stanford.edu/~jos/tiirts/tiirts.pdf i came up with a synthesis of both methods, using two *stable* truncated IIRs and time-reversing segments. this beats the Powell/Azizi method theoretically (they just ignore the tail of the IIR if it gets small enought) and i like it better than the Wang/Smith scheme because they use an unstable element (it has unstable poles that happen to be canceled by zeros in the TIIR, but internally the states can explode) and then, in ping-ponged segments, they clear out the states and overlap add. so, i suggest to use time-reversed segments like Powell/Chau/Azizi, but instead of using a *real* IIR for the forward and backward filters, use *truncated* IIRs like Wang/Smith. then it has no unstable internal states, and it actually truly *is* an FIR (truncated IIRs are FIR in the same sense that a moving sum or moving address using an integrator is an FIR). -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge." From rbj at audioimagination.com Thu Jan 10 18:53:13 2008 From: rbj at audioimagination.com (robert bristow-johnson) Date: Thu Jan 10 18:53:24 2008 Subject: [music-dsp] Linear Phase IIR Message-ID: <20080110235313.47F642011B@ws6-7.us4.outblaze.com> a little screw-up. sorta fixed below. > ----- Original Message ----- > From: "robert bristow-johnson" > To: "A discussion list for music-related DSP" > Subject: Re: [music-dsp] Linear Phase IIR > Date: Thu, 10 Jan 2008 18:45:39 -0500 > > > > > ----- Original Message ----- > > From: "paul Fultz" > > To: music-dsp@music.columbia.edu > > Subject: [music-dsp] Linear Phase IIR > > Date: Thu, 10 Jan 2008 15:02:03 -0800 (PST) > > > > > > If i have a simple IIR filter and i want it to create > > an implementation of it with linear or zero phase i > > heard i can process it forward then backwards to get > > it zero phase. In order to do that in real-time i > > would break it into smaller pieces and then overlap, > > is that a feasible solution? > > yes, if you're willing accept that your IIR cannot be truly an *infinite* > impulse response and to put up with some throughput delay, that has been > done. i can think of two authors who have written about it: > > S. R. Powell & P. M. Chau, "A Technique for Realizing Linear Phase IIR > Filters", IEEE ASSP-39, no.11, pp. 2425-2435, (Nov. 1991). > > S. A. Azizi, "Performance Analysis of Linear Phase Audio Filters Based > on the Zero Phase Filtering Concept", 103rd AES Convention (Sept. 1997), > AES preprint no. 4535. > > if you have trouble getting these papers, i can tell you how Azizi did it > (which is, i think the same way that the previous authors did it). > > there is a similar (but different) method of doing linear phase (truncated) > IIR filtering, but instead of time-reversing, they are using unstable > truncated IIR filters: > > http://ccrma.stanford.edu/~jos/tiirts/tiirts.pdf this isn't the paper i thought it was. the title of the paper i am looking for is: A. Wang and J. O. Smith, "On fast FIR Filters implemented as tail-canceling IIR Filters," IEEE Transactions on Signal Processing, vol. 45, pp. 1415{1427, June 1997 i got a pdf copy of it somewhere, but i can't find it now. > i came up with a synthesis of both methods, using two *stable* truncated IIRs > and time-reversing segments. this beats the Powell/Azizi method > theoretically (they just ignore the tail of the IIR if it gets small enought) > and i like it better than the Wang/Smith scheme because they use an unstable > element (it has unstable poles that happen to be canceled by zeros in the > TIIR, but internally the states can explode) and then, in ping-ponged > segments, they clear out the states and overlap add. > > so, i suggest to use time-reversed segments like Powell/Chau/Azizi, but > instead of using a *real* IIR for the forward and backward filters, use > *truncated* IIRs like Wang/Smith. then it has no unstable internal states, > and it actually truly *is* an FIR (truncated IIRs are FIR in the same sense > that a moving sum or moving address using an integrator is an FIR). -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge." From frederik at hjorth-jensen.dk Thu Jan 10 21:11:18 2008 From: frederik at hjorth-jensen.dk (Frederik Hjorth-Jensen) Date: Thu Jan 10 21:11:56 2008 Subject: [music-dsp] musical features for low frequency content Message-ID: <002901c853f7$40b217e0$e91f10ac@fredemobile> Hi I'm working on my master project concerning instrument detection in music. For that purpose I have implementet af kernel PLS algorithm to classify music samples. Currently I'm using MFCC, crest factor, spectral centroid and a cepstral coefficients based on a constant Q filterbank. It seem to work ok but I have some trouble with bassy instruments. So I would like to add another feature to try and acount for that. So my question to the list is: Which musical feature would be suiteable for this? /Frederik From Christian at savioursofsoul.de Fri Jan 11 15:52:55 2008 From: Christian at savioursofsoul.de (Christian Budde) Date: Fri Jan 11 15:53:05 2008 Subject: [music-dsp] Re: music-dsp Digest, Vol 49, Issue 2 In-Reply-To: <20080110235345.6DB87B01679F@music.columbia.edu> References: <20080110235345.6DB87B01679F@music.columbia.edu> Message-ID: <4787D727.9010204@savioursofsoul.de> paul Fultz wrote: > If i have a simple IIR filter and i want it to create > an implementation of it with linear or zero phase i > heard i can process it forward then backwards to get > it zero phase. In order to do that in real-time i > would break it into smaller pieces and then overlap, > is that a feasible solution? Keep also in mind, that a such a simple method of forward and backward processing increases the filter order. So a second order lowpass applied forward and backward will result in a fourth order lowpass. If you like to realize filters with an odd order this can be a problem. Kind regards, Christian From rbj at audioimagination.com Fri Jan 11 16:59:02 2008 From: rbj at audioimagination.com (robert bristow-johnson) Date: Fri Jan 11 16:59:08 2008 Subject: [music-dsp] Linear Phase IIR Message-ID: <20080111215902.79CB7EEBA3@ws6-1.us4.outblaze.com> > ----- Original Message ----- > From: "Christian Budde" > To: music-dsp@music.columbia.edu > Subject: [music-dsp] Re: music-dsp Digest, Vol 49, Issue 2 i changed the subject header back, so that people can recognize the topic. i would be nice if the folks who get the digest version of the list, please paste in the correct subject header for the specific post they are responding to. "music-dsp Digest, Vol 49, Issue 2" doesn't convey much useful information. > Date: Fri, 11 Jan 2008 18:52:55 -0200 > > > paul Fultz wrote: > > > If i have a simple IIR filter and i want it to create > > an implementation of it with linear or zero phase i > > heard i can process it forward then backwards to get > > it zero phase. In order to do that in real-time i > > would break it into smaller pieces and then overlap, > > is that a feasible solution? > > Keep also in mind, that a such a simple method of forward and backward > processing increases the filter order. So a second order lowpass applied > forward and backward will result in a fourth order lowpass. If you like to > realize filters with an odd order this can be a problem. of course it doubles the order as well as doubles the dB gain (or loss) at every frequency. the problem then is what to do about all of the gains being doubled in regard to the specification of the filter that one is trying to realize. that spec consists of magnitude gain values at different significant frequencies and, for phase, the spec defines it be linear phase. when using this technique, we simply cut the dB gain specifications in half, design an IIR (of whatever order is necessary) to accomodate that new spec (with the halved dB gains), and then do this FILTFILT thing (whether it's the real time thing that the OP wants to do, or the simpler processing twice the sound file, once in reverse). this thing is real easy to do with parametric EQs with gain specifications (we just cut the gain in half) such as in the cookbook. -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge." From klangmeister at googlemail.com Fri Jan 11 23:13:40 2008 From: klangmeister at googlemail.com (Roman Katzer) Date: Fri Jan 11 23:13:49 2008 Subject: [music-dsp] Linear Phase IIR In-Reply-To: <20080110234539.9FD7D2011C@ws6-7.us4.outblaze.com> References: <20080110234539.9FD7D2011C@ws6-7.us4.outblaze.com> Message-ID: <7f04b05d0801112013j474855d5w74d540eb1677a905@mail.gmail.com> Robert and Paul, On 10/01/2008, robert bristow-johnson wrote: > so, i suggest to use time-reversed segments like Powell/Chau/Azizi, but instead of using a *real* IIR for the forward and backward filters, use *truncated* IIRs like Wang/Smith. then it has no unstable internal states, and it actually truly *is* an FIR (truncated IIRs are FIR in the same sense that a moving sum or moving address using an integrator is an FIR). Hm. I've tried zero-phase filtering (synthesized FIR filters) and it sounded like crap, the reason being that the energy of teh impulse response is concentrated around the beginning and end of your IR. Then when you zero out the right half of your IR you're throwing away lots of energy (and phase) and end up with a filter that's neither zero phase nor has the amplirude characteristics you wanted. Why did I do all that? I was changing filter coefficients on the fly, and to avoid aliasing in the overlap-add section you need 1/2 of your IR be zero. So what I wanted to say is, if you don't so static filtering, be careful. Roman -- From rbj at audioimagination.com Sat Jan 12 00:21:09 2008 From: rbj at audioimagination.com (robert bristow-johnson) Date: Sat Jan 12 00:21:31 2008 Subject: [music-dsp] Linear Phase IIR Message-ID: <20080112052109.84BCFEEC46@ws6-1.us4.outblaze.com> > ----- Original Message ----- > From: "Roman Katzer" > To: "A discussion list for music-related DSP" > Subject: Re: [music-dsp] Linear Phase IIR > Date: Fri, 11 Jan 2008 23:13:40 -0500 > > > Robert and Paul, > > On 10/01/2008, robert bristow-johnson wrote: > > so, i suggest to use time-reversed segments like Powell/Chau/Azizi, but > > instead of using a *real* IIR for the forward and backward filters, use > > *truncated* IIRs like Wang/Smith. then it has no unstable internal states, > > and it actually truly *is* an FIR (truncated IIRs are FIR in the same sense > > that a moving sum or moving address using an integrator is an FIR). > > Hm. I've tried zero-phase filtering (synthesized FIR filters) and it > sounded like crap, the reason being that the energy of the impulse > response is concentrated around the beginning and end of your IR. Then > when you zero out the right half of your IR you're throwing away lots > of energy (and phase) and end up with a filter that's neither zero > phase nor has the amplitude characteristics you wanted. you shouldn't need to be throwing away *any* part of your IR if you use *truncated* "IIR" filters (a la Wang and Smith). i put quotes around "IIR" because a TIIR filter is not actually an IIR. it is an FIR, but it is implemented by use of recursion. the simplest non-trivial example is a moving average or moving sum filter where you use an integrator (that's where the feedback is) and delay line to subtract out what you added to the integrator, but at a later time. now you can do the same sorta thing with *any* IIR, but it gets more complicated. if the IIR is a 2nd order IIR (say, with complex conjugate poles), then your impulse response is an exponentially damped sinusoid. the numerator (zeros and gain) of the 2nd order determine the magnitude and phase of the damped sinusoidal IR. now imagine, using the same denominator, but different numerator coefs, an associated and similar filter that *exactly* matches the IR of the first IIR, but starting at some known delayed sample value (the "tail" of the IIR). then you delay the output of the associated filter by that known delay and subtract it from the output of the first IIR thereby cancelling the tail of the IIR (by use of a linear filter). so this TIIR is really an FIR. > > Why did I do all that? I was changing filter coefficients on the fly, > and to avoid aliasing in the overlap-add section you need 1/2 of your > IR be zero. well, before cancelling the tails, the IR is infinite length, after cancelling the tails the IR is whatever length of that delay line. then you need two buffers of that length that you ping-pong with. you should be able to do this without *any* real-time errors that click or distort. > So what I wanted to say is, if you don't so static filtering, be careful. i would think that you oughta be able to do it in such a way that the filter coefs can be changed at the time boundaries when you switch from "ping" to "pong". -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge." From Christian at savioursofsoul.de Sat Jan 12 14:00:52 2008 From: Christian at savioursofsoul.de (Christian Budde) Date: Sat Jan 12 14:01:00 2008 Subject: [music-dsp] Linear Phase IIR In-Reply-To: <20080112041350.3525FB0AA304@music.columbia.edu> References: <20080112041350.3525FB0AA304@music.columbia.edu> Message-ID: <47890E64.9090101@savioursofsoul.de> r b-j wrote: > i changed the subject header back, so that people can recognize the topic. i would be nice if the folks who get the digest version of the list, please paste in the correct subject header for the specific post they are responding to. "music-dsp Digest, Vol 49, Issue 2" doesn't convey much useful information. > Sorry for that. I'm currently in Brazil working on my diploma thesis and having only limited access to the net. Thus everything needs to be done very quickly, when I have access. > Hm. I've tried zero-phase filtering (synthesized FIR filters) and it > sounded like crap, the reason being that the energy of teh impulse > response is concentrated around the beginning and end of your IR. Then > when you zero out the right half of your IR you're throwing away lots > of energy (and phase) and end up with a filter that's neither zero > phase nor has the amplirude characteristics you wanted. > > Why did I do all that? I was changing filter coefficients on the fly, > and to avoid aliasing in the overlap-add section you need 1/2 of your > IR be zero. > > So what I wanted to say is, if you don't so static filtering, be careful. I've successfully built linear phase filters using the overlap-add method with IIR filters and backward processing. However my approach is very simple and not approached on such rocket science TIIRs. There might be some issues, but no-one complained so far, not even if you change the filter coefficients very quickly. It seems as if I had chosen a stable setup so far. About linear phase filters: For a yet unreleased paper I experimented with backward processed filters to create maximally short mixed phase filters. A parameter ranging from -1 to 1 allows you to adjust the phase from minimum phase, linear phase to maximum phase. In contrast to other algorithms my approach has less artefacts around nyquist (which will arise if you try to 'morph' the phase/group delay) and thus will be in fact maximally short since the energy is concentrated around the impulse. If someone likes to know more about the technique, just send me a mail, since I won't be able to finish the paper in the next month (because of my diploma thesis). Kind regards, Christian From rbj at audioimagination.com Sat Jan 12 15:30:23 2008 From: rbj at audioimagination.com (robert bristow-johnson) Date: Sat Jan 12 15:30:42 2008 Subject: [music-dsp] Linear Phase IIR Message-ID: <20080112203023.49FF79E850@ws6-2.us4.outblaze.com> > ----- Original Message ----- > From: "Christian Budde" > To: music-dsp@music.columbia.edu > Subject: Re: [music-dsp] Linear Phase IIR > Date: Sat, 12 Jan 2008 17:00:52 -0200 > ... > I've successfully built linear phase filters using the overlap-add method > with IIR filters and backward processing. However my approach is very simple > and not approached on such rocket science TIIRs. what you had to do is cut off the ringing of the filter, potentially making a click, but if your buffer is long enough (and you're willing to put up with the throughput delay), you can specify any inaudible bound for the size of the click. the ringing of the same filter, but with the ringing truncated as this recursive FIR, that has the ringing stopped at a specified time (which might be sooner than the IIR with inaudible click) so there's no click with taking that finite buffer, reversing it back in time, and adding it to the other buffer that is emptying out. > About linear phase filters: For a yet unreleased paper I experimented with > backward processed filters to create maximally short mixed phase filters. A > parameter ranging from -1 to 1 allows you to adjust the phase from minimum > phase, linear phase to maximum phase. i thought that i heard something like this at an AES or something. are you that guy? Christian, i know i heard of this before, but haven't remembered who it was that was presenting it. > In contrast to other algorithms my > approach has less artefacts around nyquist (which will arise if you try to > 'morph' the phase/group delay) and thus will be in fact maximally short since > the energy is concentrated around the impulse. > > If someone likes to know more about the technique, just send me a mail, since > I won't be able to finish the paper in the next month (because of my diploma > thesis). well, count me in. an arbitrary (sorta) phase real-time filter is an interesting potential tool to think about. L8r, -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge." From kcdixon at mtu.edu Sat Jan 12 17:13:57 2008 From: kcdixon at mtu.edu (Kevin Dixon) Date: Sat Jan 12 17:14:05 2008 Subject: [music-dsp] SMPTE parsing algorithm? In-Reply-To: <20080112203023.49FF79E850@ws6-2.us4.outblaze.com> References: <20080112203023.49FF79E850@ws6-2.us4.outblaze.com> Message-ID: <49219.70.224.196.37.1200176037.squirrel@huskymail.mtu.edu> Has anyone come across any SMPTE parsing algorithms? I've read some information on how the SMPTE standard is setup, but I'd like to see some other work that may have been done on this topic as a starting point. Thanks, -Kevin Dixon From apsimoes at student.dei.uc.pt Sat Jan 12 18:45:45 2008 From: apsimoes at student.dei.uc.pt (=?ISO-8859-1?Q?Ant=F3nio_Pedro_Oliveira?=) Date: Sat Jan 12 18:45:49 2008 Subject: [music-dsp] Listen and tag some music :) Message-ID: <47895129.6010700@student.dei.uc.pt> Apologies for multiple postings. Just in case you would like to listen (and tag) some music go to the following address :) You'll need more or less 10 minutes for that. http://student.dei.uc.pt/~apsimoes/PhD/Music/icmc08/index.html Thanks for your attention, -- Ant?nio Pedro Oliveira From tom_info at ticino.com Sun Jan 13 05:53:33 2008 From: tom_info at ticino.com (Tom O'Hara) Date: Sun Jan 13 05:55:38 2008 Subject: [music-dsp] Linear Phase IIR References: <20080112052109.84BCFEEC46@ws6-1.us4.outblaze.com> Message-ID: <007f01c855d2$cc872080$a201a8c0@tomxpa> >> So what I wanted to say is, if you don't so static filtering, be careful. >i would think that you oughta be able to do it in such a way that the >filter coefs can be changed at the time boundaries when you >witch from >"ping" to "pong". I just cross fade between two filters, one with the new coefficients on one with the old, doing sinusoidal fades at both the input and output of the filters (to get equal power at the sum). Works great for real-time filter control in professional mixing consoles. Tom From music-dsp at robhumphrey.me.uk Sun Jan 13 18:17:41 2008 From: music-dsp at robhumphrey.me.uk (Robert Humphrey) Date: Sun Jan 13 18:17:49 2008 Subject: [music-dsp] Multichannel Audio I/O in Matlab using PortAudio Message-ID: As part of my University project over a year ago I created a utility that allows continuous, non-blocking access to soundcards from within Matlab. This has now been resurrected to work with the latest version of PortAudio and can be downloaded from http://www.playrec.co.uk/. Using PortAudio means that it can use ASIO, WMME and DirectSound under Windows and support multichannel I/O without problems. At the moment the source code is provided along with a Matlab file to compile the utility on the target platform, which I believe can be either Windows, Mac or Unix (not yet tested). I have tried to make the instructions as clear as possible and for it to work on as many versions of Matlab as possible, but if you are having any problems then you can use the forum to contact me and I'll try and help where possible. Any feedback, both good and bad, will be very useful to help direct future development. Thanks, Rob Humphrey From jamesmichaelmcdermott at gmail.com Mon Jan 14 02:58:02 2008 From: jamesmichaelmcdermott at gmail.com (James McDermott) Date: Mon Jan 14 02:58:25 2008 Subject: [music-dsp] musical features for low frequency content In-Reply-To: <002901c853f7$40b217e0$e91f10ac@fredemobile> References: <002901c853f7$40b217e0$e91f10ac@fredemobile> Message-ID: Hi Frederik, On Jan 11, 2008 2:11 AM, Frederik Hjorth-Jensen wrote: > Currently I'm using MFCC, crest factor, spectral centroid and a cepstral > coefficients based on a constant Q filterbank. > > It seem to work ok but I have some trouble with bassy instruments. So I > would like to add another feature to try and acount for that. I'd recommend trying the music-ir mailing list, where questions like this are more common :) jmmcd From jamesmichaelmcdermott at gmail.com Mon Jan 14 03:11:31 2008 From: jamesmichaelmcdermott at gmail.com (James McDermott) Date: Mon Jan 14 03:49:48 2008 Subject: [music-dsp] musical features for low frequency content In-Reply-To: References: <002901c853f7$40b217e0$e91f10ac@fredemobile> Message-ID: On Jan 14, 2008 7:58 AM, James McDermott wrote: > I'd recommend trying the music-ir mailing list, where questions like > this are more common :) (Or the Auditory list) -- jmmcd From klangmeister at googlemail.com Mon Jan 14 13:45:24 2008 From: klangmeister at googlemail.com (Roman Katzer) Date: Mon Jan 14 13:48:33 2008 Subject: [music-dsp] Multichannel Audio I/O in Matlab using PortAudio In-Reply-To: References: Message-ID: <7f04b05d0801141045t52c616ediead2d9da108d0d23@mail.gmail.com> Rob, On 13/01/2008, Robert Humphrey wrote: > As part of my University project over a year ago I created a utility > that allows continuous, non-blocking access to soundcards from within > Matlab. [...] this is very, very cool! Thanks for such a great utility! I was successful in setting this up with Matlab 2007b on Windows XP with a RME Multiface in ASIO mode, it took me about 15 minutes from download to playing stuff. Now I wonder if it would be possible to do measurements with this setup - that is, play a sound (say noise or a sine sweep) repeatedly while recording the input. Would playrec keep a uniform delay between output and input? Even if I played my sound, maybe 16348 samples at 48kHz, repeatedly and recorded it? Would there be gaps between the pages output? Finally, would it be possible to get a precise number of samples of delay between the output and input? My idea of a measurement: have a white or pink source signal (the aforementioned sweep or noise) as one page, play it as often as needed to achieve the desired SNR, record while playing and average the recorded runs. FFT, divide, IFFT -> impulse response (voila!), rinse, repeat. For this to work I need to know the precise delay between output and input, down to the sample. Best regards, Roman From klangmeister at googlemail.com Mon Jan 14 13:58:57 2008 From: klangmeister at googlemail.com (Roman Katzer) Date: Mon Jan 14 14:00:57 2008 Subject: [music-dsp] Multichannel Audio I/O in Matlab using PortAudio In-Reply-To: <7f04b05d0801141045t52c616ediead2d9da108d0d23@mail.gmail.com> References: <7f04b05d0801141045t52c616ediead2d9da108d0d23@mail.gmail.com> Message-ID: <7f04b05d0801141058wf0f3277t48a68130c2296d5f@mail.gmail.com> On 14/01/2008, Roman Katzer wrote: > I was successful in setting this up with Matlab 2007b on Windows XP Ach. Make that 2006b. I compiled playrec using Microsoft Visual C/C++ version 8.0. Roman From ahm105 at ohm.york.ac.uk Mon Jan 14 14:21:14 2008 From: ahm105 at ohm.york.ac.uk (Alastair Moore) Date: Mon Jan 14 14:20:56 2008 Subject: [music-dsp] Multichannel Audio I/O in Matlab using PortAudio In-Reply-To: <7f04b05d0801141045t52c616ediead2d9da108d0d23@mail.gmail.com> References: <7f04b05d0801141045t52c616ediead2d9da108d0d23@mail.gmail.com> Message-ID: <7a7992351a7931f782a145254d7c9bf5@ohm.york.ac.uk> Hi Roman, I've been using the previous version of Rob's utility (which used v18 of portaudio) for the past year and half and, yes, you can make impulse response measurements using it. In fact, that is pretty much what it was written for. Personally, I use a logartithmic swept sine as the stimulus signal, so there is no need to do averaging. As far as I am aware, the only way to be sure of the output-input delay is to use an extra channel to record a loopback and to measure the delay on it. Best regards, Alastair Moore -- Research Student Intelligent Systems Group | Audio Lab Electronics Department University of York Heslington, York, YO10 5DD +44 (0) 1904 432 408 On 14 Jan 2008, at 18:45, Roman Katzer wrote: > > Now I wonder if it would be possible to do measurements with this > setup - that is, play a sound (say noise or a sine sweep) repeatedly > while recording the input. Would playrec keep a uniform delay between > output and input? Even if I played my sound, maybe 16348 samples at > 48kHz, repeatedly and recorded it? Would there be gaps between the > pages output? > Finally, would it be possible to get a precise number of samples of > delay between the output and input? > ... > For this to work I need to know the precise delay between output and > input, down to the sample. > From klangmeister at googlemail.com Mon Jan 14 14:33:28 2008 From: klangmeister at googlemail.com (Roman Katzer) Date: Mon Jan 14 14:33:38 2008 Subject: [music-dsp] Multichannel Audio I/O in Matlab using PortAudio In-Reply-To: <7a7992351a7931f782a145254d7c9bf5@ohm.york.ac.uk> References: <7f04b05d0801141045t52c616ediead2d9da108d0d23@mail.gmail.com> <7a7992351a7931f782a145254d7c9bf5@ohm.york.ac.uk> Message-ID: <7f04b05d0801141133p57df590gc6ecc8b72ba63bb3@mail.gmail.com> Alastair, On 14/01/2008, Alastair Moore wrote: > Personally, I use a logartithmic swept sine as the > stimulus signal, so there is no need to do averaging. There's still noise, whatever signal you use. > As far as I am > aware, the only way to be sure of the output-input delay is to use an > extra channel to record a loopback and to measure the delay on it. Can I record more than two channels at once? Imagine trying to record IRs for two artificial heads and then the extra channel for delay determination. On my Multiface, a pair of channels is one device, so I would need to record three devices at once. Is this possible? Best regards, Roman From music-dsp at robhumphrey.me.uk Mon Jan 14 14:55:48 2008 From: music-dsp at robhumphrey.me.uk (Robert Humphrey) Date: Mon Jan 14 14:56:35 2008 Subject: [music-dsp] Multichannel Audio I/O in Matlab using PortAudio In-Reply-To: <7a7992351a7931f782a145254d7c9bf5@ohm.york.ac.uk> References: <7f04b05d0801141045t52c616ediead2d9da108d0d23@mail.gmail.com> <7a7992351a7931f782a145254d7c9bf5@ohm.york.ac.uk> Message-ID: Hi, In addition to what Alistair said, here's what I believe to be the case (I say it like this because I don't know how everyone's hardware will behave): Provided the input and output are on the same device and it has true full-duplex hardware, the relative delay between input and output on all pages should remain constant. This might change if the processor is excessively loaded, but I haven't been able to spend time testing things like this yet - its not caused me a problem so far, and I was doing something very similar to you. Although PortAudio V19 provides timing information, this has not been utilised and so a physical loopback is required to determine the delay. You might find that you can do this at the start of a test as a calibration step and then use that result throughout provided the utility isn't reset. I suggest writing a little test to do this and see if the delay ever fluctuates. If a new page is received before all previous pages have finished then there will never be a gap in the output or a gap between the inputs recorded on the consecutive pages. Therefore, in your case where the output samples are known long in advance you can cue up 4 (for example) or more pages in advance and then you can guarantee there wont be a gap, even if the processing of one page is slow for some reason. Also, in response to your question about number of channels: you can access as many channels as the device reports. You'll probably find that the WMME and DirectSound versions group the device into pairs of channels, but normally the ASIO represents devices as an N-channel device. Check what getDevices returns, specifically looking for the ASIO host API. If you can access the device as one N-channel device in other applications then you should be able to do so here also. Hope this helps, Rob On 14/01/2008, Alastair Moore wrote: > Hi Roman, > > I've been using the previous version of Rob's utility (which used v18 > of portaudio) for the past year and half and, yes, you can make impulse > response measurements using it. In fact, that is pretty much what it > was written for. Personally, I use a logartithmic swept sine as the > stimulus signal, so there is no need to do averaging. As far as I am > aware, the only way to be sure of the output-input delay is to use an > extra channel to record a loopback and to measure the delay on it. > > Best regards, > > Alastair Moore > > > -- > Research Student > Intelligent Systems Group | Audio Lab > Electronics Department > University of York > Heslington, York, YO10 5DD > +44 (0) 1904 432 408 > > > On 14 Jan 2008, at 18:45, Roman Katzer wrote: > > > > Now I wonder if it would be possible to do measurements with this > > setup - that is, play a sound (say noise or a sine sweep) repeatedly > > while recording the input. Would playrec keep a uniform delay between > > output and input? Even if I played my sound, maybe 16348 samples at > > 48kHz, repeatedly and recorded it? Would there be gaps between the > > pages output? > > Finally, would it be possible to get a precise number of samples of > > delay between the output and input? > > > ... > > For this to work I need to know the precise delay between output and > > input, down to the sample. > > > > -- > 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 ahm105 at ohm.york.ac.uk Mon Jan 14 14:59:50 2008 From: ahm105 at ohm.york.ac.uk (Alastair Moore) Date: Mon Jan 14 14:59:15 2008 Subject: [music-dsp] Multichannel Audio I/O in Matlab using PortAudio In-Reply-To: <7f04b05d0801141133p57df590gc6ecc8b72ba63bb3@mail.gmail.com> References: <7f04b05d0801141045t52c616ediead2d9da108d0d23@mail.gmail.com> <7a7992351a7931f782a145254d7c9bf5@ohm.york.ac.uk> <7f04b05d0801141133p57df590gc6ecc8b72ba63bb3@mail.gmail.com> Message-ID: Roman Katzer wrote: > Alastair, > > On 14/01/2008, Alastair Moore wrote: >> Personally, I use a logartithmic swept sine as the >> stimulus signal, so there is no need to do averaging. > > There's still noise, whatever signal you use. Indeed, but with a swept sine you can increase the length of the sweep to improve the SNR rather than having to do multiple measurements and time align them. Having said that, playrec is certainly capable of doing multiple measurements, across multiple pages, with a consistent output-input delay and without gaps. > >> As far as I am >> aware, the only way to be sure of the output-input delay is to use an >> extra channel to record a loopback and to measure the delay on it. > > Can I record more than two channels at once? Imagine trying to record > IRs for two artificial heads and then the extra channel for delay > determination. On my Multiface, a pair of channels is one device, so I > would need to record three devices at once. Is this possible? > You can record as many channels as your sound card has. If you compile playrec using ASIO as the API then the sound card will appear as just one device with all outputs/inputs in sync. Best regards, Alastair Moore From frederik at hjorth-jensen.dk Mon Jan 14 17:12:47 2008 From: frederik at hjorth-jensen.dk (Frederik Hjorth-Jensen) Date: Mon Jan 14 17:12:58 2008 Subject: [music-dsp] musical features for low frequency content References: <002901c853f7$40b217e0$e91f10ac@fredemobile> Message-ID: <003f01c856fa$98a98b80$5d0aa8c0@fredemobile> thnx for the recommendation. Turned out to be a good idea :-) /Frederik ----- Original Message ----- From: "James McDermott" To: "A discussion list for music-related DSP" Sent: Monday, January 14, 2008 8:58 AM Subject: Re: [music-dsp] musical features for low frequency content > Hi Frederik, > > On Jan 11, 2008 2:11 AM, Frederik Hjorth-Jensen > wrote: >> Currently I'm using MFCC, crest factor, spectral centroid and a cepstral >> coefficients based on a constant Q filterbank. >> >> It seem to work ok but I have some trouble with bassy instruments. So I >> would like to add another feature to try and acount for that. > > I'd recommend trying the music-ir mailing list, where questions like > this are more common :) > > jmmcd > -- > 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 czhenry at gmail.com Mon Jan 14 17:21:45 2008 From: czhenry at gmail.com (Charles Henry) Date: Mon Jan 14 17:21:52 2008 Subject: [music-dsp] Multichannel Audio I/O in Matlab using PortAudio In-Reply-To: <7f04b05d0801141045t52c616ediead2d9da108d0d23@mail.gmail.com> References: <7f04b05d0801141045t52c616ediead2d9da108d0d23@mail.gmail.com> Message-ID: <518fe7b20801141421o55ea247dtd19c744ad04c5aef@mail.gmail.com> Impulse response calculations is something I have studied a lot about. It cannot be done in real time--I have learned this with my attempts to do it in Pd. You will need to use cross-covariance and auto-covariance, as you would find in typical system identification tasks. The good news is, this will greatly simplify your averaging problem--I will write more later on this... suppose you have a reference signal X and a signal from the microphone M system response(t)=IFFT(FFT(cov(M,X))/FFT(cov(X,X))) the spectrum of the response is the FFT of cross-covariance divided by the FFT of reference signal auto-covariance You will also need to give some thought to make full-rank (everywhere non-zero) reference signal spectra. I suggest using sinc(fs*t) to capture low frequencies between 0 and fs/2 and sin(pi*(f_H-f_L)*t)*cos(pi*(f_H+f_L)*t)/(pi*(f_H-f_L)*t) This second function is a band-limited impulse with frequencies between f_L and f_H You just have to figure out where/how to truncate these functions--they work pretty well. more later... Chuck On 1/14/08, Roman Katzer wrote: > Rob, > > On 13/01/2008, Robert Humphrey wrote: > > As part of my University project over a year ago I created a utility > > that allows continuous, non-blocking access to soundcards from within > > Matlab. [...] > > this is very, very cool! Thanks for such a great utility! > I was successful in setting this up with Matlab 2007b on Windows XP > with a RME Multiface in ASIO mode, it took me about 15 minutes from > download to playing stuff. > > Now I wonder if it would be possible to do measurements with this > setup - that is, play a sound (say noise or a sine sweep) repeatedly > while recording the input. Would playrec keep a uniform delay between > output and input? Even if I played my sound, maybe 16348 samples at > 48kHz, repeatedly and recorded it? Would there be gaps between the > pages output? > Finally, would it be possible to get a precise number of samples of > delay between the output and input? > > My idea of a measurement: have a white or pink source signal (the > aforementioned sweep or noise) as one page, play it as often as needed > to achieve the desired SNR, record while playing and average the > recorded runs. > FFT, divide, IFFT -> impulse response (voila!), rinse, repeat. > > For this to work I need to know the precise delay between output and > input, down to the sample. > > Best regards, > Roman > -- > 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 czhenry at gmail.com Mon Jan 14 23:56:46 2008 From: czhenry at gmail.com (Charles Henry) Date: Mon Jan 14 23:56:54 2008 Subject: [music-dsp] Multichannel Audio I/O in Matlab using PortAudio In-Reply-To: <518fe7b20801141421o55ea247dtd19c744ad04c5aef@mail.gmail.com> References: <7f04b05d0801141045t52c616ediead2d9da108d0d23@mail.gmail.com> <518fe7b20801141421o55ea247dtd19c744ad04c5aef@mail.gmail.com> Message-ID: <518fe7b20801142056o3c508571r6d53e03b67a9cd27@mail.gmail.com> There are a few ways to do system identification for room reverberation. I should have implemented this stuff sooner (using Pd for data collection and octave for calculations)... I have been lazy, but never too lazy for math. There are common assumptions about room reverberation that are not true. 1. Reflections by walls can be treated as impulses --this is commonly assumed by ray-tracing methods. They treat the wave front as moving along straight lines connecting the source and listener through reflections. Actually it is better to consider the wave front expanding spherically from the source. The straight lines from ray tracing can only give the shortest distance of a reflection. The shape of the impulse is given by integrating over the area of the reflection, to get a function of the distribution of the total propagation time in the path. The reflection is not an impulse because it has variance, and the effect is to smear/blur the sound. 2. There is a single linear system that defines room reverberation through a convolution operation for a fixed source and listener --actually there are (at least) two effects that make this untrue: refraction and variation of sound absorbtion with respect to frequency. Both of these are wavelength dependent effects. For a narrow band of frequencies there exists a single function which describes the distribution of a reverberation. It is not the same for all frequencies. The geometry of the problem is the same, but for different wavelengths, refraction results in different paths the sound will follow. Likewise, common materials will have varying apsorbtion. The paths and geometry are the same, but the reflections will have varying effects. So, there's a couple methods to employ: 1. Naive deconvolution (don't be put off by the idea... I've used it myself) 2. System identification 3. Adaptive systems The key thing to see that these systems can be solved is to see that convolution operators are "diagonalized" by fourier transforms. When you have a matrix equation, you find the eigenvalues/eigenvectors of the matrix to diagonalize it. Same thing goes for convolution. We have a kernel used in convolution and we take the fourier transform of the kernel. y(t)=Conv (k(t), x(t)) The convolution operator is L(.)=Conv (k(t) , . ) e.g. y=Lx Just like a matrix equation. In fact a discrete convolution operator can be written as a Toeplitz matrix (just start with summation notation and re-write as vector multiplication). y=F^-1 D Fx where F is the fourier transform and D is a diagonal matrix of the complex valued coefficients of the discrete fourier transform or in the case of operators, a simple multiplication operator, multiplying by the continuous fourier transform... The treatment is the same in either case... So, we can easily find D, when x and y are known. We simply take the fourier transform of each and divide Fy/Fx, point by point. So, let's include the noise y=Lx + n Then, we get the diagonal values of D with some noise in the coefficients {D}=F(y-n)/Fx Also, we could change our operation. Convolution is symmetric--we could easily say that our room reverberation function is convolved by the source signal. y=X k + n (where X is a convolution operator and k is our room reverberation function) Then, k= (FX)^-1 F(y-n) but we can't actually know what n is, in order to subtract it. Suppose Fx was very small for some value, but the noise was significant compared to y. Then, you would get a big fourier coefficient in D (or k) that's not supposed to be there. That's the big pitfall of naive deconvolution. De-noising a signal is not accurate for making a better deconvolution (I've tried that too, with spectral noise gating and wavelet semi-soft shrinkage--makes me soft just saying it). okay, so, we make a different method. This time, we will use cross covariance as a method to limit the contributions of noise only where they overlap with the signals. Everybody knows the Moore-Penrose pseudo-inverse, right? a=Xb, then |a-Xb|^2 is minimized by b=(X' X)^-1 X' a where ' denotes transpose Same goes for operators... except we use the adjoint (complex conjugate transpose for matrices) for doing this. The adjoint of convolution operators in cross-covariance. Adjoints (*) are defined by the following relationship = We can use this fact to show that cross-covariance is the adjoint of convolution--the ordering is important, in this case! Ax=integral(-inf, inf, K(t-tau) * x(tau) dtau ) Then we write the inner product: =double integral( -inf, inf, y(t)*K(t-tau)*x(tau) dtau dt Then, we simply change the order of integration, and we will have an inner product A*y = integral(-inf, inf, y(t)*K(t-tau) dt) (here we have our cross-covariance function) or A*y = integral(-inf, inf, y(t+tau)*K(t) dt) =double integral( -inf, inf, x(tau) * y(t)*K(t-tau) dt dtau Suppose we have L, a convolution operator L*=(F^-1 D F)* well, F*=F^-1 (the fourier transform is unitary) so, L*=F^-1 D* F (remember that transpose also switches the order) y=X k + n Then, X*(y-n)=X*X k and k=(X*X)^-1 X*(y-n) = (X*X)^-1 X* y - (X*X)^-1 X* n Now, we've got something a little different. The noise contribution only includes the places where n is related to the signal x. Since x and n are uncorrelated, the expectation of (X*X)^-1 X* n is zero. Here, your averaging method will work very well, and is certain to converge properly. This is your typical system identification method. Also, you will have a better way to do the averaging. The auto-covariance (X*X) and cross covariance (X*y) can be limited to the range of times you are interested in and accumulated. There is absolutely no need for syncing the trials! The best way to do this: Take a nice long measurement ( much greater than twice the reverberation time upper bound--call it U for example). You send out a signal x. You record x and the recieved signal y. Set U seconds at beginning and end of the signal x to zero and store it to another signal s. cross-covariance, X*y = F^-1 ( conj(Fs) Fy) You will get back a function that is as long as the orignal function, but you only need a function that goes from -U to U. The end of the signal contains the interval [-U,0) and the beginning of the function has [0,U]. Put them together into a signal function from [-U, U]. This is your cross-covariance function which can be added to by further measurements. Do the same thing for the auto covariance F^-1( conj(Fs) Fx) Pad each of them with zeros of length 2*U, and do the naive deconvolution to find the reverberation. There are also adaptive methods. You will find gradient descent algorithms for adaptive system identification (LMS, RLS, NLMS, etc...) in many textbooks. On the other hand it's not so hard to find Gauss-Newton methods for the adaptive method, which converge much more quickly. You start with an error surface. Usually this is the quadratic error. So, we set up an adaptive filter that runs parallel to the original system we want to identify. x-> [ L ] -> y x-> [W] -> z, and we want z to match y as close as possible our error, e= z-y = X w - X k total error E= = (w-k)* X* X (w-k) (the error in RLS uses a weighted inner product which is trickier) next we create a sequence: w(n+1)=w(n) - alpha*dE/dw (gradient descent) or w(n+1)=w(n) - alpha*(d^2E/dw^2)^-1 dE/dw (gauss-newton method) dE/dw=2X* X (w-k) = 2X* e d^2E/dw^2= 2X* X Now you will see why the Gauss newton method converges much faster. Suppose alpha=1 w(n+1)=w(n) - (2X* X)^-1 2X* X(w-k) w(n+1)=w(n) - (2X* X)^-1 2X* X w + (2X* X)^-1 2X* X k w(n+1)=w(n) - w(n) + (X* X)^-1 X* y w(n+1)=(X* X)^-1 X* y which is the same as our system identification formula. The adaptive method has the advantage of reducing alpha to zero over time, which limits the mistuning of the system due to noise. Happy deconvolutions! and good luck! blah Chuck From douglas at music.columbia.edu Tue Jan 15 00:00:01 2008 From: douglas at music.columbia.edu (douglas repetto) Date: Tue Jan 15 00:00:10 2008 Subject: [music-dsp] [admin] music-dsp FAQ Message-ID: <20080115050001.594A6B210051@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 pickman at inwind.it Sun Jan 20 02:09:42 2008 From: pickman at inwind.it (pickman@inwind.it) Date: Sun Jan 20 02:09:59 2008 Subject: [music-dsp] 12AX7A Pspice Model Message-ID: For the interested ones ,I released the Version 3.0. www.fuzone.it/pspice_model.htm From djnik1362 at gmail.com Thu Jan 24 05:16:07 2008 From: djnik1362 at gmail.com (mehdi nikoo) Date: Thu Jan 24 05:16:16 2008 Subject: [music-dsp] Start programming Message-ID: hi everyone please recommended me some great book or e-book for starting sound programming. i write my programs in C++. thank you. From bogac at bteaudio.com Thu Jan 24 08:23:50 2008 From: bogac at bteaudio.com (Bogac Topaktas) Date: Thu Jan 24 08:24:04 2008 Subject: [music-dsp] Start programming Message-ID: Introduction to Sound Processing http://www.mondo-estremo.com/info/publications/public.html http://profs.sci.univr.it/~rocchess/htmls/corsi/SoundProcessing/SoundProcessingBook/vsp.pdf Theory and Techniques of Electronic Music http://crca.ucsd.edu/~msp/techniques/latest/book-html/book.html Music: a Mathematical Offering http://www.maths.abdn.ac.uk/~bensondj/html/maths-music.html Harmony Central - Audio Programming http://www.harmony-central.com/Computer/Programming/ INTRODUCTION TO DIGITAL FILTERS WITH AUDIO APPLICATIONS http://ccrma.stanford.edu/~jos/filters/ -----Original message----- From: "mehdi nikoo" djnik1362@gmail.com Date: Thu, 24 Jan 2008 02:16:24 -0800 To: music-dsp@music.columbia.edu Subject: [music-dsp] Start programming > hi everyone > > please recommended me some great book or e-book for starting sound > programming. i write my programs in C++. > > thank you. > -- > 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 pickman at inwind.it Thu Jan 24 10:57:47 2008 From: pickman at inwind.it (pickman@inwind.it) Date: Thu Jan 24 10:58:06 2008 Subject: [music-dsp] Start programming Message-ID: "Numerical Recipes in C",Press,Teukolsky,Vetterling,Flannery,2nd edition 1992 ---------- Initial Header ----------- >From : music-dsp-bounces@music.columbia.edu To : "A discussion list for music-related DSP" music-dsp@music.columbia.edu Cc : Date : Thu, 24 Jan 2008 05:23:50 -0800 Subject : Re: [music-dsp] Start programming > Introduction to Sound Processing > http://www.mondo-estremo.com/info/publications/public.html > http://profs.sci.univr.it/~rocchess/htmls/corsi/SoundProcessing/SoundProcessingBook/vsp.pdf > > Theory and Techniques of Electronic Music > http://crca.ucsd.edu/~msp/techniques/latest/book-html/book.html > > Music: a Mathematical Offering > http://www.maths.abdn.ac.uk/~bensondj/html/maths-music.html > > Harmony Central - Audio Programming > http://www.harmony-central.com/Computer/Programming/ > > INTRODUCTION TO DIGITAL FILTERS WITH AUDIO APPLICATIONS > http://ccrma.stanford.edu/~jos/filters/ > > > -----Original message----- > From: "mehdi nikoo" djnik1362@gmail.com > Date: Thu, 24 Jan 2008 02:16:24 -0800 > To: music-dsp@music.columbia.edu > Subject: [music-dsp] Start programming > > > hi everyone > > > > please recommended me some great book or e-book for starting sound > > programming. i write my programs in C++. > > > > thank you. > > -- > > 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 > -- > 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 > ----------------------------------------------------------- www.fuzone.it " Il sito della mia nuova Rock-Fusion Band " " The website of my new Rock-Fusion Band" From scoofy at inf.elte.hu Thu Jan 24 15:00:03 2008 From: scoofy at inf.elte.hu (Peter Schoffhauzer) Date: Thu Jan 24 15:01:33 2008 Subject: [music-dsp] Start programming In-Reply-To: References: Message-ID: <4798EE43.6010705@inf.elte.hu> The Scientist and Engineer's Guide to Digital Signal Processing (Steven W. Smith, Ph.D.) http://dspguide.com/ pickman@inwind.it wrote: > "Numerical Recipes in C",Press,Teukolsky,Vetterling,Flannery,2nd edition 1992 > > >> Introduction to Sound Processing >> http://www.mondo-estremo.com/info/publications/public.html >> http://profs.sci.univr.it/~rocchess/htmls/corsi/SoundProcessing/SoundProcessingBook/vsp.pdf >> >> Theory and Techniques of Electronic Music >> http://crca.ucsd.edu/~msp/techniques/latest/book-html/book.html >> >> Music: a Mathematical Offering >> http://www.maths.abdn.ac.uk/~bensondj/html/maths-music.html >> >> Harmony Central - Audio Programming >> http://www.harmony-central.com/Computer/Programming/ >> >> INTRODUCTION TO DIGITAL FILTERS WITH AUDIO APPLICATIONS >> http://ccrma.stanford.edu/~jos/filters/ >> >> >> -----Original message----- >> From: "mehdi nikoo" djnik1362@gmail.com >> Date: Thu, 24 Jan 2008 02:16:24 -0800 >> To: music-dsp@music.columbia.edu >> Subject: [music-dsp] Start programming >> >>> hi everyone >>> >>> please recommended me some great book or e-book for starting sound >>> programming. i write my programs in C++. >>> >>> thank you. >>> -- >>> 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 >> -- >> 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 >> > > ----------------------------------------------------------- > www.fuzone.it > > " Il sito della mia nuova Rock-Fusion Band " > > " The website of my new Rock-Fusion Band" > > > -- > 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 djnik1362 at gmail.com Thu Jan 24 17:21:59 2008 From: djnik1362 at gmail.com (mehdi nikoo) Date: Thu Jan 24 17:22:15 2008 Subject: [music-dsp] Start programming In-Reply-To: <4798EE43.6010705@inf.elte.hu> References: <4798EE43.6010705@inf.elte.hu> Message-ID: thanks guy very useful thanks a lot On 1/24/08, Peter Schoffhauzer wrote: > The Scientist and Engineer's Guide to Digital Signal Processing > (Steven W. Smith, Ph.D.) > > http://dspguide.com/ > > > pickman@inwind.it wrote: > > "Numerical Recipes in C",Press,Teukolsky,Vetterling,Flannery,2nd edition > 1992 > > > > > >> Introduction to Sound Processing > >> http://www.mondo-estremo.com/info/publications/public.html > >> > http://profs.sci.univr.it/~rocchess/htmls/corsi/SoundProcessing/SoundProcessingBook/vsp.pdf > >> > >> Theory and Techniques of Electronic Music > >> http://crca.ucsd.edu/~msp/techniques/latest/book-html/book.html > >> > >> Music: a Mathematical Offering > >> http://www.maths.abdn.ac.uk/~bensondj/html/maths-music.html > >> > >> Harmony Central - Audio Programming > >> http://www.harmony-central.com/Computer/Programming/ > >> > >> INTRODUCTION TO DIGITAL FILTERS WITH AUDIO APPLICATIONS > >> http://ccrma.stanford.edu/~jos/filters/ > >> > >> > >> -----Original message----- > >> From: "mehdi nikoo" djnik1362@gmail.com > >> Date: Thu, 24 Jan 2008 02:16:24 -0800 > >> To: music-dsp@music.columbia.edu > >> Subject: [music-dsp] Start programming > >> > >>> hi everyone > >>> > >>> please recommended me some great book or e-book for starting sound > >>> programming. i write my programs in C++. > >>> > >>> thank you. > >>> -- > >>> 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 > >> -- > >> 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 > >> > > > > ----------------------------------------------------------- > > www.fuzone.it > > > > " Il sito della mia nuova Rock-Fusion Band " > > > > " The website of my new Rock-Fusion Band" > > > > > > -- > > 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 > > > > -- > 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 stephen.blinkhorn at audiospillage.com Thu Jan 24 19:26:21 2008 From: stephen.blinkhorn at audiospillage.com (Stephen Blinkhorn) Date: Thu Jan 24 19:26:43 2008 Subject: [music-dsp] Oversampling a sampled buffer prior to interpolation Message-ID: <650B37EB-39B2-4BF1-9025-9131C8432E47@audiospillage.com> Hello, a quick newbie question. Is it normal for a sampler (software or hardware) to pre-calculate and store an oversampled version of a sound so that the interpolator can use this oversampled buffer in real time then downsample before output? Seems odd due to extended memory requirements but I can't get my head around oversampling when you are modulating the playback rate of a sample and using block processing. thanks, Stephen. From rbj at audioimagination.com Thu Jan 24 19:49:44 2008 From: rbj at audioimagination.com (robert bristow-johnson) Date: Thu Jan 24 19:49:54 2008 Subject: [music-dsp] Oversampling a sampled buffer prior to interpolation Message-ID: <20080125004944.B175420115@ws6-7.us4.outblaze.com> > ----- Original Message ----- > From: "Stephen Blinkhorn" > To: "music-dsp" > Subject: [music-dsp] Oversampling a sampled buffer prior to interpolation > Date: Fri, 25 Jan 2008 00:26:21 +0000 > > > Hello, a quick newbie question. Is it normal for a sampler (software or > hardware) to pre-calculate and store an oversampled version of a sound so > that the interpolator can use this oversampled buffer in real time then > downsample before output? Seems odd due to extended memory requirements but > I can't get my head around oversampling when you are modulating the playback > rate of a sample and using block processing. it depends on what events you are applying the "pre-" to. i think that samplers like to have lotsa sounds stored in them; the more sounds the merrier. so i would think that even if they were originally sampled at a very high sampling rate (hell, why not 96 or 192 kHz?) that these sounds will be stored in the sampler's ROM as compactly as possible (close to being undersampled). but, it would seem to me that if, at program change time, a selection of sounds are loaded up for prime-time and, in the action of loading the sounds from their compact version in ROM to (copious amounts of) RAM, that it would make sense for the sounds to be upsampled significantly so that, perhaps, a cheap interpolation method (perhaps linear) can be used when playing them back in real time. what is being traded off is the time needed at program change when all of the needed sounds are "downloaded" from ROM and expanded into RAM versus how much real-time computation is needed in barfing the samples out the back end. -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge." From kcdixon at mtu.edu Thu Jan 24 21:13:27 2008 From: kcdixon at mtu.edu (Kevin Dixon) Date: Thu Jan 24 21:13:34 2008 Subject: [music-dsp] parsing SMPTE LTC code In-Reply-To: <20080125004944.B175420115@ws6-7.us4.outblaze.com> References: <20080125004944.B175420115@ws6-7.us4.outblaze.com> Message-ID: <49502.141.219.93.0.1201227207.squirrel@huskymail.mtu.edu> I've been working on my problem of parsing SMPTE LTC. So far I've come up with some preliminary, but useful data structures. Here they are: http://yano.wasteonline.net/software/smptelib/ Let me know if any of you find them useful or have questions/comments. Thanks! -Kevin Dixon From rossb-lists at audiomulch.com Fri Jan 25 00:44:05 2008 From: rossb-lists at audiomulch.com (Ross Bencina) Date: Fri Jan 25 00:44:17 2008 Subject: [music-dsp] Oversampling a sampled buffer prior to interpolation References: <650B37EB-39B2-4BF1-9025-9131C8432E47@audiospillage.com> Message-ID: <025001c85f15$4c9a1f20$9300a8c0@rossmacbook> Hi Stephen I seem to remember an Emu interpolator patent where the samples were stored in a pre-filtered form which compensated for (low pass?) filtering effects of their interpolation method. It's not unusual to store samples in a pre-processed form (such as caching the difference between each adjacent pair of samples to accellerate interpolation). Personally I'd be carefull of trading RAM for interpolation complexity if you have to pull all that storage through multiple caches to execute a simpler interpolation scheme. > Seems odd due to extended memory requirements but I can't get my head > around oversampling when you are modulating the playback rate of a sample > and using block processing. Sorry I'm not sure where your confusion is within that. Best wishes Ross. ----- Original Message ----- From: "Stephen Blinkhorn" To: "music-dsp" Sent: Friday, January 25, 2008 11:26 AM Subject: [music-dsp] Oversampling a sampled buffer prior to interpolation > Hello, a quick newbie question. Is it normal for a sampler (software or > hardware) to pre-calculate and store an oversampled version of a sound so > that the interpolator can use this oversampled buffer in real time then > downsample before output? Seems odd due to extended memory requirements > but I can't get my head around oversampling when you are modulating the > playback rate of a sample and using block processing. > > thanks, > Stephen. > -- > 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 stephen.blinkhorn at audiospillage.com Fri Jan 25 07:33:04 2008 From: stephen.blinkhorn at audiospillage.com (Stephen Blinkhorn) Date: Fri Jan 25 07:33:36 2008 Subject: [music-dsp] Oversampling a sampled buffer prior to interpolation In-Reply-To: <025001c85f15$4c9a1f20$9300a8c0@rossmacbook> References: <650B37EB-39B2-4BF1-9025-9131C8432E47@audiospillage.com> <025001c85f15$4c9a1f20$9300a8c0@rossmacbook> Message-ID: <73D99B2C-29D6-42E3-88BD-867F86F4014C@audiospillage.com> On 25 Jan 2008, at 05:44, Ross Bencina wrote: >> Seems odd due to extended memory requirements but I can't get my >> head around oversampling when you are modulating the playback rate >> of a sample and using block processing. > > Sorry I'm not sure where your confusion is within that. The part I'm struggling with is how to oversample in real-time whilst I am modulating the playback of a sample with some other signal. Which is why I am considering doing the oversampling first. Incidentally I am using a 4 point 4th order interpolator that yields pretty low aliasing but sounds a little dull/uninspiring perhaps. I am coding for a high quality drum sampler so maybe pre-calculating oversampled data for relatively short sounds isn't so bad but a dull interpolator is bad. Thanks for the replies, Stephen. > > > Best wishes > > Ross. > > > > ----- Original Message ----- From: "Stephen Blinkhorn" > > To: "music-dsp" > Sent: Friday, January 25, 2008 11:26 AM > Subject: [music-dsp] Oversampling a sampled buffer prior to > interpolation > > >> Hello, a quick newbie question. Is it normal for a sampler >> (software or hardware) to pre-calculate and store an oversampled >> version of a sound so that the interpolator can use this >> oversampled buffer in real time then downsample before output? >> Seems odd due to extended memory requirements but I can't get my >> head around oversampling when you are modulating the playback rate >> of a sample and using block processing. >> >> thanks, >> Stephen. >> -- >> 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 > > -- > 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 orlarey at grame.fr Fri Jan 25 09:37:15 2008 From: orlarey at grame.fr (Orlarey Yann) Date: Fri Jan 25 09:37:53 2008 Subject: [music-dsp] [ANN] FAUST 0.9.9.3 released Message-ID: <4799F41B.6060709@grame.fr> Grame - Centre National de Creation Musicale - is pleased to announce the release of Faust 0.9.9.3. Faust AUdio STreams is a powerful and expressive functional programming language for realtime audio signal processing. The Faust compiler translates DSP specifications into efficient C++ code. A variety of platforms and plugin formats are supported. A single Faust specification can be used to easily generate JACK and ALSA applications, as well as LADSPA, MAX/MSP, PD, Q, SC and VST plugins. In addition to C++ code, the Faust compiler can also generate SVG block-diagram representations as well as XML descriptions. To easily test the compiler before installing it, please refer to http://faust.grame.fr. The Faust distribution can be downloaded at http://sourceforge.net/projects/faudiostream ------------ What's new : ------------ - New architecture files : . vst2p4.cpp (VST-2.4 architecture file), . vsti-mono.cpp (mono VSTi synth architecture file), . matlabplot.cpp (architecture file to plot data in Matlab or Octave format). - New scripts for a very easy generation of executable applications : . faust2alsa (call the faust compiler and g++ to produce an Alsa application), . faust2jack (call the faust compiler and g++ to produce a Jack application), . faust2plot (call the faust compiler and g++ to produce an plot application), . faust2svg (call the faust compiler to produce SVG block-diagrams), . faust2firefox,(faust2svg + display with firefox) . faust2octave (faust2plot + display with octave) - New libraries : . filter.lib (Faust filters library) . effect.lib (Faust effects library) - faust2pd updated to Q 7.8, - Improved metadata management : tags are no more limited to a predifined set, metadata are now reported as comments in the generated C++ code - Support for new --simple-names option when drawing block-diagrams . ------------ Bugs fixed : ------------ - out-of-order generation of complex mutual recursions corrected - Lexer modified to support multiplateform end of line - Erroneous code sharing corrected --------------- Acknowledgments --------------- We are grateful to all the contributors of this new release, with special mentions to Albert Graef and Julius O. Smith. Keep sending us remarks, suggestions, bug reports and contributions. From czhenry at gmail.com Fri Jan 25 09:48:42 2008 From: czhenry at gmail.com (Charles Henry) Date: Fri Jan 25 09:49:02 2008 Subject: [music-dsp] Oversampling a sampled buffer prior to interpolation In-Reply-To: <73D99B2C-29D6-42E3-88BD-867F86F4014C@audiospillage.com> References: <650B37EB-39B2-4BF1-9025-9131C8432E47@audiospillage.com> <025001c85f15$4c9a1f20$9300a8c0@rossmacbook> <73D99B2C-29D6-42E3-88BD-867F86F4014C@audiospillage.com> Message-ID: <518fe7b20801250648m13831f1q7eb371d84f92d5a5@mail.gmail.com> If you want to upsample from a digital source, you'll have to use an interpolator anyway. You won't be able to improve the quality.... consider a different design for the interpolator first, and if it becomes too expensive to run in real time, you may have to consider upsampling when loading samples. Chuck On Jan 25, 2008 6:33 AM, Stephen Blinkhorn wrote: > > On 25 Jan 2008, at 05:44, Ross Bencina wrote: > > >> Seems odd due to extended memory requirements but I can't get my > >> head around oversampling when you are modulating the playback rate > >> of a sample and using block processing. > > > > Sorry I'm not sure where your confusion is within that. > > The part I'm struggling with is how to oversample in real-time whilst > I am modulating the playback of a sample with some other signal. > Which is why I am considering doing the oversampling first. > Incidentally I am using a 4 point 4th order interpolator that yields > pretty low aliasing but sounds a little dull/uninspiring perhaps. I > am coding for a high quality drum sampler so maybe pre-calculating > oversampled data for relatively short sounds isn't so bad but a dull > interpolator is bad. > > Thanks for the replies, > Stephen. > > > > > > > > > > Best wishes > > > > Ross. > > > > > > > > ----- Original Message ----- From: "Stephen Blinkhorn" > > > > To: "music-dsp" > > Sent: Friday, January 25, 2008 11:26 AM > > Subject: [music-dsp] Oversampling a sampled buffer prior to > > interpolation > > > > > >> Hello, a quick newbie question. Is it normal for a sampler > >> (software or hardware) to pre-calculate and store an oversampled > >> version of a sound so that the interpolator can use this > >> oversampled buffer in real time then downsample before output? > >> Seems odd due to extended memory requirements but I can't get my > >> head around oversampling when you are modulating the playback rate > >> of a sample and using block processing. > >> > >> thanks, > >> Stephen. > >> -- > >> 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 > > > > -- > > 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 > > -- > 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 darren.landrum at sbcglobal.net Sat Jan 26 20:04:34 2008 From: darren.landrum at sbcglobal.net (Darren Landrum) Date: Sat Jan 26 20:04:50 2008 Subject: [music-dsp] Researching circuit modeling Message-ID: <479BD8A2.9030109@sbcglobal.net> I've been fascinated with circuit modeling (tubes, mainly, but other components as well) for some time, but it's been only recently I've worked my way through enough math classes to possibly understand it. I found some great old theory books on tubes and tube circuits, and looked up various mathematical models for tubes on the web (Koren and Rydel), but there is still a leap in getting from the math to code. I was wondering if there was anything out there that could help me with that. Thank you very much! Regards, Darren Landrum From bogac at bteaudio.com Sun Jan 27 06:17:50 2008 From: bogac at bteaudio.com (Bogac Topaktas) Date: Sun Jan 27 06:17:55 2008 Subject: [music-dsp] Researching circuit modeling Message-ID: <14860d401d12cf619b365cdb47e567d5@bteaudio.com> Understanding the theory behind circuit simulators is the first step, as it provides the insight which enables the development of far more efficient approximations for real-time audio signal processing applications. A few of the relevant resources on this subject are as follows: Jan Ogrodzki (Editor), "Circuit Simulation Methods and Algorithms", CRC-Press, 1994. A. Vladimirescu, "The Spice Book", Wiley, New York, 1994. W. J. McCalla, "Fundamentals of Computer-Aided Circuit Simulation", Kluwer Academic Publishers, Boston, 1987. K.G. Nichols, T.J. Kazmierski, M. Zwolinski, and A.D. Brown, "Overview of SPICE-like circuit simulation algorithms", IEE Proceedings - Circuits, Devices and Systems, August 1994, Volume 141, Issue 4, p. 242-250 P. Mole and H. Rokos, "Techniques for Nonlinear Circuit Simulation," Editorial, IEE Proc.—Circuits Devices Syst., vol. 141, p. 241 (1994). And here are some important resources on both theory and practice of vacuum tube circuit modeling and simulation: W. M. Leach, Jr., "SPICE Models for Vacuum Tube Amplifiers," Journal of the Audio Engineering Society, Vol. 43, No. 3, pp. 117-126, March 1995. http://users.ece.gatech.edu/~mleach/papers/tubeamp/tubeamp.pdf Vacuum Tube Preamplifier Analysis and SPICE Simulation http://bear.cwru.edu/eecs_cad/tut_spice3_tube.html Leonardo Di Carlo's Vacuum Tube page http://www.fuzone.it/pspice_model.htm A Generalized Algebraic Technique For Modeling Triodes http://www.lynx.bc.ca/~jc/model.html Inside Fender and Marshall Tube Amps http://www.lynx.bc.ca/~jc/ifmta.html Circuit Analysis of a Legendary Tube Amplifier: The Fender Bassman 5F6-A http://www.pentodepress.com/contents.html Tubes Versus Transistors http://users.ece.gatech.edu/~mleach/papers/TubeVsTrans.pdf Articles and publications at SimulAnalog.org: http://www.simulanalog.org/ David Yeh's Publications: http://ccrma.stanford.edu/~dtyeh/papers/pubs.html -----Original message----- From: Darren Landrum darren.landrum@sbcglobal.net Date: Sat, 26 Jan 2008 17:04:47 -0800 To: music-dsp@music.columbia.edu Subject: [music-dsp] Researching circuit modeling > I've been fascinated with circuit modeling (tubes, mainly, but other > components as well) for some time, but it's been only recently I've > worked my way through enough math classes to possibly understand it. I > found some great old theory books on tubes and tube circuits, and looked > up various mathematical models for tubes on the web (Koren and Rydel), > but there is still a leap in getting from the math to code. I was > wondering if there was anything out there that could help me with that. > > Thank you very much! > > Regards, > Darren Landrum > -- > 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 darren.landrum at sbcglobal.net Sun Jan 27 11:08:53 2008 From: darren.landrum at sbcglobal.net (Darren Landrum) Date: Sun Jan 27 11:09:40 2008 Subject: [music-dsp] Researching circuit modeling In-Reply-To: <14860d401d12cf619b365cdb47e567d5@bteaudio.com> References: <14860d401d12cf619b365cdb47e567d5@bteaudio.com> Message-ID: <479CAC95.5040009@sbcglobal.net> Wow, thank you very much for all of that. Most of those are things that never came up in my previous searches. -- Darren Bogac Topaktas wrote: > Understanding the theory behind circuit simulators is the first step, as it provides the insight > which enables the development of far more efficient approximations for real-time audio signal > processing applications. A few of the relevant resources on this subject are as follows: > > Jan Ogrodzki (Editor), "Circuit Simulation Methods and Algorithms", > CRC-Press, 1994. > > A. Vladimirescu, "The Spice Book", Wiley, New York, 1994. > > W. J. McCalla, "Fundamentals of Computer-Aided Circuit > Simulation", Kluwer Academic Publishers, Boston, 1987. > > K.G. Nichols, T.J. Kazmierski, M. Zwolinski, and A.D. Brown, > "Overview of SPICE-like circuit simulation algorithms", > IEE Proceedings - Circuits, Devices and Systems, August 1994, > Volume 141, Issue 4, p. 242-250 > > P. Mole and H. Rokos, "Techniques for Nonlinear > Circuit Simulation," Editorial, IEE Proc.?Circuits Devices > Syst., vol. 141, p. 241 (1994). > > > And here are some important resources on both theory and practice of > vacuum tube circuit modeling and simulation: > > W. M. Leach, Jr., "SPICE Models for Vacuum Tube Amplifiers," > Journal of the Audio Engineering Society, Vol. 43, No. 3, pp. 117-126, March 1995. > http://users.ece.gatech.edu/~mleach/papers/tubeamp/tubeamp.pdf > > Vacuum Tube Preamplifier Analysis and SPICE Simulation > http://bear.cwru.edu/eecs_cad/tut_spice3_tube.html > > Leonardo Di Carlo's Vacuum Tube page > http://www.fuzone.it/pspice_model.htm > > A Generalized Algebraic Technique For Modeling Triodes > http://www.lynx.bc.ca/~jc/model.html > > Inside Fender and Marshall Tube Amps > http://www.lynx.bc.ca/~jc/ifmta.html > > Circuit Analysis of a Legendary Tube Amplifier: The Fender Bassman 5F6-A > http://www.pentodepress.com/contents.html > > Tubes Versus Transistors > http://users.ece.gatech.edu/~mleach/papers/TubeVsTrans.pdf > > Articles and publications at SimulAnalog.org: > http://www.simulanalog.org/ > > David Yeh's Publications: > http://ccrma.stanford.edu/~dtyeh/papers/pubs.html > > > -----Original message----- > From: Darren Landrum darren.landrum@sbcglobal.net > Date: Sat, 26 Jan 2008 17:04:47 -0800 > To: music-dsp@music.columbia.edu > Subject: [music-dsp] Researching circuit modeling > >> I've been fascinated with circuit modeling (tubes, mainly, but other >> components as well) for some time, but it's been only recently I've >> worked my way through enough math classes to possibly understand it. I >> found some great old theory books on tubes and tube circuits, and looked >> up various mathematical models for tubes on the web (Koren and Rydel), >> but there is still a leap in getting from the math to code. I was >> wondering if there was anything out there that could help me with that. >> >> Thank you very much! >> >> Regards, >> Darren Landrum >> -- >> 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 > -- > 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 pickman at inwind.it Sun Jan 27 13:43:05 2008 From: pickman at inwind.it (pickman@inwind.it) Date: Sun Jan 27 13:45:38 2008 Subject: [music-dsp] Researching circuit modeling Message-ID: Good way to start.I want to suggest you a book that can help in understanding and hopefully solving mathematical problems involved in circuit simulation "Computer Methods for Ordinary Differential Equations and Differential-Algebraic Equations",Ascher,Petzold,1994 ---------- Initial Header ----------- >From : music-dsp-bounces@music.columbia.edu To : "A discussion list for music-related DSP" music-dsp@music.columbia.edu Cc : Date : Sun, 27 Jan 2008 03:17:50 -0800 Subject : Re: [music-dsp] Researching circuit modeling > Understanding the theory behind circuit simulators is the first step, as it provides the insight > which enables the development of far more efficient approximations for real-time audio signal > processing applications. A few of the relevant resources on this subject are as follows: > > Jan Ogrodzki (Editor), "Circuit Simulation Methods and Algorithms", > CRC-Press, 1994. > > A. Vladimirescu, "The Spice Book", Wiley, New York, 1994. > > W. J. McCalla, "Fundamentals of Computer-Aided Circuit > Simulation", Kluwer Academic Publishers, Boston, 1987. > > K.G. Nichols, T.J. Kazmierski, M. Zwolinski, and A.D. Brown, > "Overview of SPICE-like circuit simulation algorithms", > IEE Proceedings - Circuits, Devices and Systems, August 1994, > Volume 141, Issue 4, p. 242-250 > > P. Mole and H. Rokos, "Techniques for Nonlinear > Circuit Simulation," Editorial, IEE Proc.?Circuits Devices > Syst., vol. 141, p. 241 (1994). > > > And here are some important resources on both theory and practice of > vacuum tube circuit modeling and simulation: > > W. M. Leach, Jr., "SPICE Models for Vacuum Tube Amplifiers," > Journal of the Audio Engineering Society, Vol. 43, No. 3, pp. 117-126, March 1995. > http://users.ece.gatech.edu/~mleach/papers/tubeamp/tubeamp.pdf > > Vacuum Tube Preamplifier Analysis and SPICE Simulation > http://bear.cwru.edu/eecs_cad/tut_spice3_tube.html > > Leonardo Di Carlo's Vacuum Tube page > http://www.fuzone.it/pspice_model.htm > > A Generalized Algebraic Technique For Modeling Triodes > http://www.lynx.bc.ca/~jc/model.html > > Inside Fender and Marshall Tube Amps > http://www.lynx.bc.ca/~jc/ifmta.html > > Circuit Analysis of a Legendary Tube Amplifier: The Fender Bassman 5F6-A > http://www.pentodepress.com/contents.html > > Tubes Versus Transistors > http://users.ece.gatech.edu/~mleach/papers/TubeVsTrans.pdf > > Articles and publications at SimulAnalog.org: > http://www.simulanalog.org/ > > David Yeh's Publications: > http://ccrma.stanford.edu/~dtyeh/papers/pubs.html > > > -----Original message----- > From: Darren Landrum darren.landrum@sbcglobal.net > Date: Sat, 26 Jan 2008 17:04:47 -0800 > To: music-dsp@music.columbia.edu > Subject: [music-dsp] Researching circuit modeling > > > I've been fascinated with circuit modeling (tubes, mainly, but other > > components as well) for some time, but it's been only recently I've > > worked my way through enough math classes to possibly understand it. I > > found some great old theory books on tubes and tube circuits, and looked > > up various mathematical models for tubes on the web (Koren and Rydel), > > but there is still a leap in getting from the math to code. I was > > wondering if there was anything out there that could help me with that. > > > > Thank you very much! > > > > Regards, > > Darren Landrum > > -- > > 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 > -- > 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 > ----------------------------------------------------------- www.fuzone.it " Il sito della mia nuova Rock-Fusion Band " " The website of my new Rock-Fusion Band" From dnl at xs4all.nl Tue Jan 29 05:18:55 2008 From: dnl at xs4all.nl (Daniel Schorno) Date: Tue Jan 29 05:19:02 2008 Subject: [music-dsp] Re: music-dsp Digest, Vol 49, Issue 14 In-Reply-To: <20080127160953.63B89DC4FEBE@music.columbia.edu> References: <20080127160953.63B89DC4FEBE@music.columbia.edu> Message-ID: <4A09D8B1-962F-435D-AF69-B61632C10C14@pop.xs4all.nl> Sent from my iPod On Jan 27, 2008, at 17:09, music-dsp-request@music.columbia.edu wrote: > Send music-dsp mailing list submissions to > music-dsp@music.columbia.edu > > To subscribe or unsubscribe via the World Wide Web, visit > http://music.columbia.edu/mailman/listinfo/music-dsp > or, via email, send a message with subject or body 'help' to > music-dsp-request@music.columbia.edu > > You can reach the person managing the list at > music-dsp-owner@music.columbia.edu > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of music-dsp digest..." > > > Today's Topics: > > 1. Re: Researching circuit modeling (Bogac Topaktas) > 2. Re: Researching circuit modeling (Darren Landrum) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Sun, 27 Jan 2008 03:17:50 -0800 > From: "Bogac Topaktas" > Subject: Re: [music-dsp] Researching circuit modeling > To: "A discussion list for music-related DSP" > > Message-ID: <14860d401d12cf619b365cdb47e567d5@bteaudio.com> > Content-Type: text/plain; charset="us-ascii" > > Understanding the theory behind circuit simulators is the first > step, as it provides the insight > which enables the development of far more efficient approximations > for real-time audio signal > processing applications. A few of the relevant resources on this > subject are as follows: > > Jan Ogrodzki (Editor), "Circuit Simulation Methods and Algorithms", > CRC-Press, 1994. > > A. Vladimirescu, "The Spice Book", Wiley, New York, 1994. > From mtonelli at anwida.com Tue Jan 29 11:38:23 2008 From: mtonelli at anwida.com (Massimiliano Tonelli) Date: Tue Jan 29 11:38:46 2008 Subject: [music-dsp] Unitary power condition for FIR filter coefficients References: <20080112052109.84BCFEEC46@ws6-1.us4.outblaze.com> <007f01c855d2$cc872080$a201a8c0@tomxpa> Message-ID: <002a01c86295$5fa076e0$0300a8c0@laptopm> Hello everyone, Does a simple and general condition on the FIR coefficients exist so that feeding the filter with a unit variance white noise a unit variance output signal is obtained? Or is it necessary to evaluate the filter spectral power explicitly? Thanks Massimiliano Tonelli From czhenry at gmail.com Tue Jan 29 12:05:41 2008 From: czhenry at gmail.com (Charles Henry) Date: Tue Jan 29 12:06:30 2008 Subject: [music-dsp] Unitary power condition for FIR filter coefficients In-Reply-To: <002a01c86295$5fa076e0$0300a8c0@laptopm> References: <20080112052109.84BCFEEC46@ws6-1.us4.outblaze.com> <007f01c855d2$cc872080$a201a8c0@tomxpa> <002a01c86295$5fa076e0$0300a8c0@laptopm> Message-ID: <518fe7b20801290905i4b20e71bk540769431000fedd@mail.gmail.com> > Does a simple and general condition on the FIR coefficients exist so that > feeding the filter with a unit variance white noise a unit variance output > signal is obtained? Or is it necessary to evaluate the filter spectral power > explicitly? All-pass filters will do this, I think. There is a property of convolution operators, in general (proofs available on request), and their norms in L1 and L2 the L1 norm |f|.1 = integral( -inf, inf, |f|dt) | conv(f,g) |.1 = |f|.1 * |g|.1 the L2 norm squared |f|^2 = integral( -inf, inf, f^2dt) | conv(f,g) |^2 <= |f|^2*|g|^2 When you're talking about variance, that's an L2 norm squared (where the signal mean is 0). So, there's an inequality. The total energy remains constant, only if the filter has unitary gain for all frequencies (i.e. an all-pass filter). Chuck On Jan 29, 2008 10:38 AM, Massimiliano Tonelli wrote: > Hello everyone, > > Does a simple and general condition on the FIR coefficients exist so that > feeding the filter with a unit variance white noise a unit variance output > signal is obtained? Or is it necessary to evaluate the filter spectral power > explicitly? > > Thanks > Massimiliano Tonelli > > > > > > -- > 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 mtonelli at anwida.com Tue Jan 29 13:08:28 2008 From: mtonelli at anwida.com (Massimiliano Tonelli) Date: Tue Jan 29 13:08:56 2008 Subject: [music-dsp] Unitary power condition for FIR filter coefficients References: <20080112052109.84BCFEEC46@ws6-1.us4.outblaze.com><007f01c855d2$cc872080$a201a8c0@tomxpa><002a01c86295$5fa076e0$0300a8c0@laptopm> <518fe7b20801290905i4b20e71bk540769431000fedd@mail.gmail.com> Message-ID: <006901c862a2$02d88f30$0300a8c0@laptopm> Thank you very much. Actually I was looking for the case of a magnitude shaping filter (so not an all pass). Without wanting to preserve unitary magnitude in the frequency domain, I was interested to calculate the scaler that must be applied to a given FIR to obtain a unitary power signal in the time domain. More specifically I was wondering if there was any simple method to calculate this scaler from the FIR filter coefficients (without going into the frequency domain). Practically, I would like to change the filter coefficients on the flight, applying them to a white noise, without causing appreciable changes of the amplitude of the output signal (that will have a non white spectrum). Thanks again Massimiliano From czhenry at gmail.com Tue Jan 29 13:45:39 2008 From: czhenry at gmail.com (Charles Henry) Date: Tue Jan 29 13:45:54 2008 Subject: [music-dsp] Unitary power condition for FIR filter coefficients In-Reply-To: <006901c862a2$02d88f30$0300a8c0@laptopm> References: <20080112052109.84BCFEEC46@ws6-1.us4.outblaze.com> <007f01c855d2$cc872080$a201a8c0@tomxpa> <002a01c86295$5fa076e0$0300a8c0@laptopm> <518fe7b20801290905i4b20e71bk540769431000fedd@mail.gmail.com> <006901c862a2$02d88f30$0300a8c0@laptopm> Message-ID: <518fe7b20801291045qde8cea4m1ca985e36159a566@mail.gmail.com> How about an adaptive gain controller instead? Follow the output with something that measures the amplitude and tunes the gain in small increments. I can't think of a good way to vary the gain systematically at the moment... Chuck On Jan 29, 2008 12:08 PM, Massimiliano Tonelli wrote: > Thank you very much. > Actually I was looking for the case of a magnitude shaping filter (so not an > all pass). > Without wanting to preserve unitary magnitude in the frequency domain, I was > interested to calculate the scaler that must be applied to a given FIR to > obtain a unitary power signal in the time domain. > More specifically I was wondering if there was any simple method to > calculate this scaler from the FIR filter coefficients (without going into > the frequency domain). > Practically, I would like to change the filter coefficients on the flight, > applying them to a white noise, without causing appreciable changes of the > amplitude of the output signal (that will have a non white spectrum). > > Thanks again > Massimiliano > > > > > -- > 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 rbj at audioimagination.com Tue Jan 29 14:09:30 2008 From: rbj at audioimagination.com (robert bristow-johnson) Date: Tue Jan 29 14:09:57 2008 Subject: [music-dsp] Unitary power condition for FIR filter coefficients Message-ID: <20080129190931.172415482E5@ws6-6.us4.outblaze.com> > ----- Original Message ----- > From: "Massimiliano Tonelli" > To: "A discussion list for music-related DSP" > Subject: [music-dsp] Unitary power condition for FIR filter coefficients > Date: Tue, 29 Jan 2008 17:38:23 +0100 > > > Does a simple and general condition on the FIR coefficients exist so that > feeding the filter with a unit variance white noise a unit variance output > signal is obtained? Or is it necessary to evaluate the filter spectral power > explicitly? i don't think it is necessary to go to the frequency domain. doesn't Parseval's theorem have something to say about this? i'll bet if N-1 SUM{ |h[n]|^2 } = 1 n=0 you'll preserve the power from input to output. -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge." From bwillk1 at lsu.edu Tue Jan 29 14:34:07 2008 From: bwillk1 at lsu.edu (Brian Willkie) Date: Tue Jan 29 14:34:18 2008 Subject: [music-dsp] Unitary power condition for FIR filter coefficients Message-ID: <20080129193407.BB14611B724@ws4-1.us4.outblaze.com> Apologies if I don't follow all of the nuanced discussion (also I missed the first few messages in this thread), but this sounds similar to what I was looking for back in August. Does this help: http://music.columbia.edu/pipermail/music-dsp/2007-August/066400.html http://music.columbia.edu/pipermail/music-dsp/2007-August/066401.html -Brian > ----- Original Message ----- > From: "Massimiliano Tonelli" > To: "A discussion list for music-related DSP" > Subject: Re: [music-dsp] Unitary power condition for FIR filter coefficients > Date: Tue, 29 Jan 2008 19:08:28 +0100 > > > Thank you very much. > Actually I was looking for the case of a magnitude shaping filter > (so not an all pass). > Without wanting to preserve unitary magnitude in the frequency > domain, I was interested to calculate the scaler that must be > applied to a given FIR to obtain a unitary power signal in the time > domain. > More specifically I was wondering if there was any simple method to > calculate this scaler from the FIR filter coefficients (without > going into the frequency domain). > Practically, I would like to change the filter coefficients on the > flight, applying them to a white noise, without causing appreciable > changes of the amplitude of the output signal (that will have a non > white spectrum). > > Thanks again > Massimiliano > > > > -- > 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 czhenry at gmail.com Tue Jan 29 21:44:43 2008 From: czhenry at gmail.com (Charles Henry) Date: Tue Jan 29 21:45:13 2008 Subject: [music-dsp] Unitary power condition for FIR filter coefficients In-Reply-To: <20080129190931.172415482E5@ws6-6.us4.outblaze.com> References: <20080129190931.172415482E5@ws6-6.us4.outblaze.com> Message-ID: <518fe7b20801291844r7b98cdb7j9e51532d7460d8f8@mail.gmail.com> On Jan 29, 2008 1:09 PM, robert bristow-johnson wrote: > > > ----- Original Message ----- > > From: "Massimiliano Tonelli" > > To: "A discussion list for music-related DSP" > > Subject: [music-dsp] Unitary power condition for FIR filter coefficients > > Date: Tue, 29 Jan 2008 17:38:23 +0100 > > > > > > Does a simple and general condition on the FIR coefficients exist so that > > feeding the filter with a unit variance white noise a unit variance output > > signal is obtained? Or is it necessary to evaluate the filter spectral power > > explicitly? > > i don't think it is necessary to go to the frequency domain. > > doesn't Parseval's theorem have something to say about this? It says that the Fourier transform is isometric (wikipedia)--the energy in the time domain is the same as the energy in the frequency domain. We can expand a function as an orthonormal basis and the energy in the signal is equal to the sum of the energy in the components. > i'll bet if > > N-1 > SUM{ |h[n]|^2 } = 1 > n=0 > > you'll preserve the power from input to output. Now that I think about it, that is definitely the case for a filter fed by white noise. I wholly concur. Since the noise spectrum is flat by expectation, you won't be losing anything. When you sum up the energy in the components, the total energy in the output does not depend on it's distribution in the fourier basis. Chuck > > -- > > r b-j rbj@audioimagination.com > > "Imagination is more important than knowledge." > >