From douglas at music.columbia.edu Sat Nov 1 00:00:00 2008 From: douglas at music.columbia.edu (douglas repetto) Date: Sat Nov 1 00:00:07 2008 Subject: [music-dsp] [admin] music-dsp FAQ Message-ID: <20081101040000.9A0404A2EED98@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 www.bigcab at free.fr Sat Nov 8 07:37:36 2008 From: www.bigcab at free.fr (cab) Date: Sat Nov 8 07:38:05 2008 Subject: [music-dsp] Generating piano sound Message-ID: <49158810.90202@free.fr> Hi everybody I know how to generate a sound at a any frequency but the problem is that I can't generate a piano sound I tried to search on google but there's no information on the internet, I didn't find any detailed spectrum analysis of a piano I am a newbie with dsp so that is why I ask many foolish questions but once I am able to play a piano sound Imagine that I have an unknow file, for example a singer sings the note A3 how do I transpose the sound so that the singer would sing a B3.I know Audacity has this ability to do this, but i really don't know how it works Thanks for your help From julian_schmidt at chipmusik.de Sat Nov 8 08:37:41 2008 From: julian_schmidt at chipmusik.de (julian Schmidt) Date: Sat Nov 8 08:37:59 2008 Subject: [music-dsp] Generating piano sound In-Reply-To: <49158810.90202@free.fr> References: <49158810.90202@free.fr> Message-ID: <49159625.8040000@chipmusik.de> cab schrieb: > Hi everybody > > I know how to generate a sound at a any frequency but the problem is > that I can't > generate a piano sound > > I tried to search on google but there's no information on the > internet, I didn't find any detailed spectrum analysis of a piano why not generate a spectrum analysis of a piano.wav yourself? audacity has this feature too. there are different ways to generate piano like sounds. simple, not so pleasing subtractive approaches up to physical models of piano strings being struck by a hammer. > > I am a newbie with dsp so that is why I ask many foolish questions > but once I am able to play a piano sound > > Imagine that I have an unknow file, for example a singer sings the > note A3 > how do I transpose the sound so that the singer would sing a B3.I > know Audacity has this ability to do this, but i really don't know how > it works you want to do pitch shifting. just have a look here http://www.dspdimension.com/admin/time-pitch-overview/ > > Thanks for your help > > > -- > 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 umutsimsekli at su.sabanciuniv.edu Sat Nov 8 08:48:23 2008 From: umutsimsekli at su.sabanciuniv.edu (Umut Simsekli) Date: Sat Nov 8 08:48:42 2008 Subject: [music-dsp] Generating piano sound Message-ID: <20081108154823.0zfvc1qwsgsckk84@webmail.sabanciuniv.edu> I advice you to check out the book "DAFX - Digital Audio Effects" for pitch shifting (or other related topics). For more info: http://www.dafx.de/ -Umut cab wrote: > Imagine that I have an unknow file, for example a singer sings the note A3 > how do I transpose the sound so that the singer would sing a B3.I > know Audacity has this ability to do this, but i really don't know > how it works > > Thanks for your help > > > -- > 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 music.maker at gte.net Sat Nov 8 08:35:12 2008 From: music.maker at gte.net (Scott Gravenhorst) Date: Sat Nov 8 09:35:52 2008 Subject: [music-dsp] New Member Message-ID: <200811081435.mA8EZCTd019041@linux7.lan> Hello music-dsp, I have recently subscribed to the music-dsp email list and I would like to introduce myself. My name is Scott Gravenhorst. I am also a member of synth-diy and of FPGA-synth and I frequent the electro-music.com forum. I was pointed to this list by members of those lists and posters in the USENET comp.dsp newsgroup. I've been interested in electronic music since I was a teenager (I am 55). I have worked with electronics both professionally (computer customer engineer where I was educated in electronic digital computation techniques) and as a hobby and I've always enjoyed audio applications. Until recently, my dabbling in electronics had been in the analogue domain. I've always wondered about DSP and with the changes in the analogue electronics parts market (many things going away) I decided to give it a shot. A friend of mine introduced me to FPGAs which is where I do my DSP experiments. Being a C programmer, I found Verilog to be comfortable. I will probably come here to ask questions from time to time; I am not degreed so please pardon my occasional lack of proper vocabulary. I read about DSP principles (sometimes over and over and over) in places like www.dspguide.com and Stanford (JOS). I have some small experience in DSP now (about 2 years) - I've worked with several digital filters (IIR, FIR, comb, fractional delay and SVF so far), and I've designed several synthesizers including several subtractive types, physical models and a simple ad ditive sinewave synth. Some of these are monophonic, some are polyphonic, all are MIDI. I had subbed here months ago - I'm glad to see some activity on the list and I hope to see some good active discussions and contribute where I know about what I'm talking. (c: -- ScottG ______________________________________________________________ -- Scott Gravenhorst -- GateManPoly - FPGA-based Polyphonic MIDI LA/FM Synthesizer -- GateMan-III - FPGA-based Monophonic MIDI LA/FM Synthesizer -- PolyDaWG/8 - FPGA-based 8 Voice Polyphonic MIDI Synthesizer -- FatMan: home1.gte.net/res0658s/fatman/ -- NonFatMan: home1.gte.net/res0658s/electronics/ -- When the going gets tough, the tough use the command line. From contact at quikquak.com Sat Nov 8 09:50:51 2008 From: contact at quikquak.com (contact) Date: Sat Nov 8 09:51:07 2008 Subject: [music-dsp] Generating piano sound References: <49158810.90202@free.fr> Message-ID: <00f901c941b1$64f11db0$6501a8c0@DaveUpstairs> > Hi everybody > > I know how to generate a sound at a any frequency but the problem is > that I can't > generate a piano sound > > I tried to search on google but there's no information on the internet, > I didn't find any detailed spectrum analysis of a piano > > I am a newbie with dsp so that is why I ask many foolish questions > but once I am able to play a piano sound > > Imagine that I have an unknow file, for example a singer sings the note A3 > how do I transpose the sound so that the singer would sing a B3.I know > Audacity has this ability to do this, but i really don't know how it works > > Thanks for your help MDA has a piano and an e-piano module in their, now free, vst source code. Although from what I remember the paino uses a base waveform that has no comments on it, but it will be a great start. http://sourceforge.net/projects/mda-vst/ From rainwarrior at gmail.com Sat Nov 8 13:13:42 2008 From: rainwarrior at gmail.com (Brad Smith) Date: Sat Nov 8 13:14:04 2008 Subject: [music-dsp] Generating piano sound In-Reply-To: <00f901c941b1$64f11db0$6501a8c0@DaveUpstairs> References: <49158810.90202@free.fr> <00f901c941b1$64f11db0$6501a8c0@DaveUpstairs> Message-ID: The most important factor, in my opinion, for synthesizing a piano sound: 1. Most of the keys on the piano will hit three strings. Lower ones will hit two, and the lowest only one. Because it is very hard to keep three strings in tune (especially when they're being hit with hammers all day), the three pitches are going to be slightly different. Synthesizing a good piano sound will need to produce this effect. (Do it three times, and put a very slight pitch variation.) Another factor that is kind of weird, and does have an appreciable impact on it: 2. The harmonic series of piano strings isn't quite in integer relationships. Each successive harmonic is a little bit sharp of what it "ideally" should be. Putting this into effect is tricky, though, because it will make the pitches harder to tune, and basically you end up with the same tuning problems you get with a real piano. If you ignore this effect, you can still make a decent piano sound, but implementing inharmonicity can add a little bit of "authenticity". One more idea: 3. The hammer sound itself is important, just a little "pak" on the attack. You don't get this if you're just trying to synthesize the string sounds. In the upper ranges of a piano, this part of the sound dominates because of the weakness of the smaller strings. -- Brad Smith From rleffanta at cox.net Sat Nov 8 13:22:31 2008 From: rleffanta at cox.net (rurik leffanta) Date: Sat Nov 8 13:43:35 2008 Subject: [music-dsp] Generating piano sound References: <49158810.90202@free.fr> Message-ID: <001201c941ce$f6a5cfe0$9a47c848@toshibauser> hope i'm not off sides to mention.. julius orion smith III, "commuted piano synthesis" you might be interested in a free vst by mokafix, "monkey orchestra" or something.. it uses a similar commuted model with a set of bridge impulse samples. the plugin itself is designed to randomly modulate the coefficients between notes (ye gods.. :D ) but if you zero all of that out, it's not so bad and might allow you to evaluate that technique without implementing it... ----- Original Message ----- From: "cab" To: Sent: Saturday, November 08, 2008 5:37 AM Subject: [music-dsp] Generating piano sound > Hi everybody > > I know how to generate a sound at a any frequency but the problem is that > I can't > generate a piano sound > > I tried to search on google but there's no information on the internet, I > didn't find any detailed spectrum analysis of a piano > > I am a newbie with dsp so that is why I ask many foolish questions > but once I am able to play a piano sound > > Imagine that I have an unknow file, for example a singer sings the note A3 > how do I transpose the sound so that the singer would sing a B3.I know > Audacity has this ability to do this, but i really don't know how it works > > Thanks for your help > > > -- > 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 radarsat1 at gmail.com Sat Nov 8 14:01:51 2008 From: radarsat1 at gmail.com (Stephen Sinclair) Date: Sat Nov 8 14:02:05 2008 Subject: [music-dsp] Generating piano sound In-Reply-To: <49158810.90202@free.fr> References: <49158810.90202@free.fr> Message-ID: <9b3e2dc20811081101r4b5cf147wc5c3c7702c394915@mail.gmail.com> On Sat, Nov 8, 2008 at 7:37 AM, cab wrote: > Hi everybody > > I know how to generate a sound at a any frequency but the problem is that I > can't > generate a piano sound Here's a few links for you: http://ccrma.stanford.edu/realsimple/piano/ http://www.music.mcgill.ca/~sinclair/content/stk_piano http://www.nabble.com/Piano-patch-td17840932.html Steve From www.bigcab at free.fr Sat Nov 8 18:41:44 2008 From: www.bigcab at free.fr (cab) Date: Sat Nov 8 18:42:02 2008 Subject: [music-dsp] Re: music-dsp Digest, Vol 59, Issue 1 In-Reply-To: <20081108134851.007A54C54E6A4@music.columbia.edu> References: <20081108134851.007A54C54E6A4@music.columbia.edu> Message-ID: <491623B8.9070201@free.fr> music-dsp-request@music.columbia.edu a ?crit : > 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. [admin] music-dsp FAQ (douglas repetto) > 2. Generating piano sound (cab) > 3. Re: Generating piano sound (julian Schmidt) > 4. Re: Generating piano sound (Umut Simsekli) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Sat, 1 Nov 2008 00:00:00 -0400 (EDT) > From: douglas@music.columbia.edu (douglas repetto) > Subject: [music-dsp] [admin] music-dsp FAQ > To: music-dsp@music.columbia.edu > Message-ID: <20081101040000.9A0404A2EED98@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) > > > ------------------------------ > > Message: 2 > Date: Sat, 08 Nov 2008 13:37:36 +0100 > From: cab > Subject: [music-dsp] Generating piano sound > To: music-dsp@music.columbia.edu > Message-ID: <49158810.90202@free.fr> > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > > Hi everybody > > I know how to generate a sound at a any frequency but the problem is > that I can't > generate a piano sound > > I tried to search on google but there's no information on the internet, > I didn't find any detailed spectrum analysis of a piano > > I am a newbie with dsp so that is why I ask many foolish questions > but once I am able to play a piano sound > > Imagine that I have an unknow file, for example a singer sings the note A3 > how do I transpose the sound so that the singer would sing a B3.I know > Audacity has this ability to do this, but i really don't know how it works > > Thanks for your help > > > > > ------------------------------ > > Message: 3 > Date: Sat, 08 Nov 2008 14:37:41 +0100 > From: julian Schmidt > Subject: Re: [music-dsp] Generating piano sound > To: A discussion list for music-related DSP > > Message-ID: <49159625.8040000@chipmusik.de> > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > > cab schrieb: > >> Hi everybody >> >> I know how to generate a sound at a any frequency but the problem is >> that I can't >> generate a piano sound >> >> I tried to search on google but there's no information on the >> internet, I didn't find any detailed spectrum analysis of a piano >> > > why not generate a spectrum analysis of a piano.wav yourself? audacity > has this feature too. > there are different ways to generate piano like sounds. simple, not so > pleasing subtractive approaches up to physical models of piano strings > being struck by a hammer. > >> I am a newbie with dsp so that is why I ask many foolish questions >> but once I am able to play a piano sound >> >> Imagine that I have an unknow file, for example a singer sings the >> note A3 >> how do I transpose the sound so that the singer would sing a B3.I >> know Audacity has this ability to do this, but i really don't know how >> it works >> > you want to do pitch shifting. > just have a look here http://www.dspdimension.com/admin/time-pitch-overview/ > > >> Thanks for your help >> >> >> -- >> 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 >> >> > > > > ------------------------------ > > Message: 4 > Date: Sat, 8 Nov 2008 15:48:23 +0200 > From: Umut Simsekli > Subject: Re: [music-dsp] Generating piano sound > To: A discussion list for music-related DSP > > Message-ID: <20081108154823.0zfvc1qwsgsckk84@webmail.sabanciuniv.edu> > Content-Type: text/plain; charset=ISO-8859-9; DelSp="Yes"; > format="flowed" > > I advice you to check out the book "DAFX - Digital Audio Effects" for > pitch shifting (or other related topics). > > For more info: > http://www.dafx.de/ > > -Umut > > cab wrote: > >> Imagine that I have an unknow file, for example a singer sings the note A3 >> how do I transpose the sound so that the singer would sing a B3.I >> know Audacity has this ability to do this, but i really don't know >> how it works >> >> Thanks for your help >> >> >> -- >> 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 > > End of music-dsp Digest, Vol 59, Issue 1 > **************************************** > > > I thank you for your help, I managed to export the spectrum analysis into a file, but then it is quite hard to work with it I have got the frequencies and the corresponding db's ,I tried to generate the piano sound with a few frequencies only but I can't have a proper result. Is there a way to avoid entering all the frequencies by hand? I give you my code : #include #include #include #define BUF_SIZE 44100 int frequency(short db,short freq,int i) { float amp=pow(10,(float)db/20)*0.75; return (int)(amp* 32768.0 * sin(2 * M_PI * freq * ((float) i/44100))); } ao_device* get_channel_output() { ao_initialize(); ao_device*ao_dev; /*Opening output (speaker)*/ ao_sample_format ao_fmt; ao_fmt.bits=16; ao_fmt.channels=2; ao_fmt.rate=44100; ao_fmt.byte_format=AO_FMT_LITTLE; int ao_id=ao_driver_id("alsa"); ao_dev=ao_open_live(ao_id,&ao_fmt,NULL); return ao_dev; } int main(int argc,char**argv) { ao_device *ao_dev=get_channel_output(); char*buffer=malloc(BUF_SIZE*2*sizeof(char)); int i; int sample; for(i=0;i>8)&0xff; } ao_play(ao_dev,buffer,2*BUF_SIZE*2*sizeof(char)); free(buffer); return 0; } thanks for your help From padawan12 at obiwannabe.co.uk Mon Nov 10 09:08:44 2008 From: padawan12 at obiwannabe.co.uk (Andy Farnell) Date: Mon Nov 10 09:12:53 2008 Subject: [music-dsp] New Member In-Reply-To: <200811081435.mA8EZCTd019041@linux7.lan> References: <200811081435.mA8EZCTd019041@linux7.lan> Message-ID: <20081110140844.17e8d357.padawan12@obiwannabe.co.uk> Welcome Scott, Look forward to hearing some of your creations. best, Andy On Sat, 08 Nov 2008 06:35:12 -0700 Scott Gravenhorst wrote: > Hello music-dsp, > > I have recently subscribed to the music-dsp email list and I would like to introduce myself. > > My name is Scott Gravenhorst. I am also a member of synth-diy and of FPGA-synth and I frequent the electro-music.com forum. I was pointed to this list by members of those lists and posters in the USENET comp.dsp newsgroup. > > I've been interested in electronic music since I was a teenager (I am 55). I have worked with electronics both professionally (computer customer engineer where I was educated in electronic digital computation techniques) and as a hobby and I've always enjoyed audio applications. > > Until recently, my dabbling in electronics had been in the analogue domain. I've always wondered about DSP and with the changes in the analogue electronics parts market (many things going away) I decided to give it a shot. A friend of mine introduced me to FPGAs which is where I do my DSP experiments. Being a C programmer, I found Verilog to be comfortable. > > I will probably come here to ask questions from time to time; I am not degreed so please pardon my occasional lack of proper vocabulary. I read about DSP principles (sometimes over and over and over) in places like www.dspguide.com and Stanford (JOS). I have some small experience in DSP now (about 2 years) - I've worked with several digital filters (IIR, FIR, comb, fractional delay and SVF so far), and I've designed several synthesizers including several subtractive types, physical models and a simple ad > ditive sinewave synth. Some of these are monophonic, some are polyphonic, all are MIDI. > > I had subbed here months ago - I'm glad to see some activity on the list and I hope to see some good active discussions and contribute where I know about what I'm talking. (c: > > -- ScottG > ______________________________________________________________ > -- Scott Gravenhorst > -- GateManPoly - FPGA-based Polyphonic MIDI LA/FM Synthesizer > -- GateMan-III - FPGA-based Monophonic MIDI LA/FM Synthesizer > -- PolyDaWG/8 - FPGA-based 8 Voice Polyphonic MIDI Synthesizer > -- FatMan: home1.gte.net/res0658s/fatman/ > -- NonFatMan: home1.gte.net/res0658s/electronics/ > -- When the going gets tough, the tough use the command line. > > -- > dupswapdrop -- the music-dsp mailing list and website: > subscription info, FAQ, source code archive, list archive, book reviews, dsp links > http://music.columbia.edu/cmc/music-dsp > http://music.columbia.edu/mailman/listinfo/music-dsp -- Use the source From vesa.norilo at saunalahti.fi Mon Nov 10 09:52:26 2008 From: vesa.norilo at saunalahti.fi (Vesa Norilo) Date: Mon Nov 10 09:58:00 2008 Subject: [music-dsp] Generating piano sound In-Reply-To: <49158810.90202@free.fr> References: <49158810.90202@free.fr> Message-ID: <49184AAA.4030305@saunalahti.fi> Hi Cab, I was briefly involved with an upcoming CMJ article describing the synthesis of piano sounds: http://lib.tkk.fi/Diss/2007/isbn9789512290666/ The principal author of this work is Dr. Jukka Rauhala whose dissertation also dealt with the subject. I don't think the actual model sounds as good as possible (at least in comparison to pianoteq etc.), but the papers listed above offer fairly comprehensive overview of many techniques. Regards, Vesa > Hi everybody > > I know how to generate a sound at a any frequency but the problem is > that I can't > generate a piano sound > > I tried to search on google but there's no information on the > internet, I didn't find any detailed spectrum analysis of a piano > > I am a newbie with dsp so that is why I ask many foolish questions > but once I am able to play a piano sound > > Imagine that I have an unknow file, for example a singer sings the > note A3 > how do I transpose the sound so that the singer would sing a B3.I > know Audacity has this ability to do this, but i really don't know how > it works > > Thanks for your help > > > -- > 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 stffn at dibidut.dk Mon Nov 10 12:21:37 2008 From: stffn at dibidut.dk (Steffen Juul) Date: Mon Nov 10 12:25:35 2008 Subject: [music-dsp] Book with math? In-Reply-To: <20080615075009.1e50ae44.padawan12@obiwannabe.co.uk> References: <20080615055320.8FA0A16EC34@ws6-8.us4.outblaze.com> <20080615075009.1e50ae44.padawan12@obiwannabe.co.uk> Message-ID: On 15/06/2008, at 8.50, Andy Farnell wrote: > My book is off to the printers in a few weeks. > Quite light on code and eqs, practical approach to physics based > sound design with dataflow - more info later :) I don't know if Andy is too polite to plug it any more, but click'e'ti'click -> http://aspress.co.uk/ds/ Best, Steffen From vze32p8r at verizon.net Thu Nov 13 01:21:23 2008 From: vze32p8r at verizon.net (Christopher Moore) Date: Tue Nov 11 22:15:15 2008 Subject: [music-dsp] generation of piano sound In-Reply-To: <20081108234219.6BB2A4C75C1FA@music.columbia.edu> References: <20081108234219.6BB2A4C75C1FA@music.columbia.edu> Message-ID: <491BC763.2080003@verizon.net> I was told by a piano expert that the harmonics of a vibrating piano string do not stay in tune as the order of the harmonics rises. Rather, the harmonics gradually rise (or fall? I think rise but am not sure) away from exact multiples of the fundamental. Piano experts believe that this phenomenon, which they call "stretch", varies among manufacturers, models, and individual instruments. The physical cause of "stretch" has to do with the extreme bend the string follows where it cantilevers over the bridge. I believe the way in which the strings are excited--striking the string with a little hammer--is also key to this phenomenon. Google "Al Sanderson" +piano to learn more. BTW, I once posited that stretch might be a factor in the notorious difficulty analog recording had with the piano. An analog tape recorder has has no stretch, but does have harmonic and intermodulation distortion. What happens when the tape recorder creates harmonics (which are in tune) and convolves them with the out-of-tune piano harmonics? The new frequencies formed by this process may be more audible and/or irritating than distortion from instruments whose harmonics are in tune. Chris Moore 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: Generating piano sound (rurik leffanta) > 2. Re: Generating piano sound (Stephen Sinclair) > 3. Re: music-dsp Digest, Vol 59, Issue 1 (cab) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Sat, 8 Nov 2008 11:22:31 -0700 > From: "rurik leffanta" > Subject: Re: [music-dsp] Generating piano sound > To: "A discussion list for music-related DSP" > > Message-ID: <001201c941ce$f6a5cfe0$9a47c848@toshibauser> > Content-Type: text/plain; format=flowed; charset="iso-8859-1"; > reply-type=response > > hope i'm not off sides to mention.. > julius orion smith III, "commuted piano synthesis" > > you might be interested in a free vst by mokafix, "monkey orchestra" or > something.. it uses a similar commuted model with a set of bridge impulse > samples. the plugin itself is designed to randomly modulate the coefficients > between notes (ye gods.. :D ) but if you zero all of that out, it's not so > bad and might allow you to evaluate that technique without implementing > it... > ----- Original Message ----- > From: "cab" > To: > Sent: Saturday, November 08, 2008 5:37 AM > Subject: [music-dsp] Generating piano sound > > > >> Hi everybody >> >> I know how to generate a sound at a any frequency but the problem is that >> I can't >> generate a piano sound >> >> I tried to search on google but there's no information on the internet, I >> didn't find any detailed spectrum analysis of a piano >> >> I am a newbie with dsp so that is why I ask many foolish questions >> but once I am able to play a piano sound >> >> Imagine that I have an unknow file, for example a singer sings the note A3 >> how do I transpose the sound so that the singer would sing a B3.I know >> Audacity has this ability to do this, but i really don't know how it works >> >> Thanks for your help >> >> >> -- >> 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 >> >> > > > > ------------------------------ > > Message: 2 > Date: Sat, 8 Nov 2008 14:01:51 -0500 > From: "Stephen Sinclair" > Subject: Re: [music-dsp] Generating piano sound > To: "A discussion list for music-related DSP" > > Message-ID: > <9b3e2dc20811081101r4b5cf147wc5c3c7702c394915@mail.gmail.com> > Content-Type: text/plain; charset=ISO-8859-1 > > On Sat, Nov 8, 2008 at 7:37 AM, cab wrote: > >> Hi everybody >> >> I know how to generate a sound at a any frequency but the problem is that I >> can't >> generate a piano sound >> > > Here's a few links for you: > > http://ccrma.stanford.edu/realsimple/piano/ > > http://www.music.mcgill.ca/~sinclair/content/stk_piano > > http://www.nabble.com/Piano-patch-td17840932.html > > > Steve > > > ------------------------------ > > Message: 3 > Date: Sun, 09 Nov 2008 00:41:44 +0100 > From: cab > Subject: [music-dsp] Re: music-dsp Digest, Vol 59, Issue 1 > To: music-dsp@music.columbia.edu > Message-ID: <491623B8.9070201@free.fr> > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > > music-dsp-request@music.columbia.edu a ?crit : > >> 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. [admin] music-dsp FAQ (douglas repetto) >> 2. Generating piano sound (cab) >> 3. Re: Generating piano sound (julian Schmidt) >> 4. Re: Generating piano sound (Umut Simsekli) >> >> >> ---------------------------------------------------------------------- >> >> Message: 1 >> Date: Sat, 1 Nov 2008 00:00:00 -0400 (EDT) >> From: douglas@music.columbia.edu (douglas repetto) >> Subject: [music-dsp] [admin] music-dsp FAQ >> To: music-dsp@music.columbia.edu >> Message-ID: <20081101040000.9A0404A2EED98@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) >> >> >> ------------------------------ >> >> Message: 2 >> Date: Sat, 08 Nov 2008 13:37:36 +0100 >> From: cab >> Subject: [music-dsp] Generating piano sound >> To: music-dsp@music.columbia.edu >> Message-ID: <49158810.90202@free.fr> >> Content-Type: text/plain; charset=ISO-8859-1; format=flowed >> >> Hi everybody >> >> I know how to generate a sound at a any frequency but the problem is >> that I can't >> generate a piano sound >> >> I tried to search on google but there's no information on the internet, >> I didn't find any detailed spectrum analysis of a piano >> >> I am a newbie with dsp so that is why I ask many foolish questions >> but once I am able to play a piano sound >> >> Imagine that I have an unknow file, for example a singer sings the note A3 >> how do I transpose the sound so that the singer would sing a B3.I know >> Audacity has this ability to do this, but i really don't know how it works >> >> Thanks for your help >> >> >> >> >> ------------------------------ >> >> Message: 3 >> Date: Sat, 08 Nov 2008 14:37:41 +0100 >> From: julian Schmidt >> Subject: Re: [music-dsp] Generating piano sound >> To: A discussion list for music-related DSP >> >> Message-ID: <49159625.8040000@chipmusik.de> >> Content-Type: text/plain; charset=ISO-8859-1; format=flowed >> >> cab schrieb: >> >> >>> Hi everybody >>> >>> I know how to generate a sound at a any frequency but the problem is >>> that I can't >>> generate a piano sound >>> >>> I tried to search on google but there's no information on the >>> internet, I didn't find any detailed spectrum analysis of a piano >>> >>> >> why not generate a spectrum analysis of a piano.wav yourself? audacity >> has this feature too. >> there are different ways to generate piano like sounds. simple, not so >> pleasing subtractive approaches up to physical models of piano strings >> being struck by a hammer. >> >> >>> I am a newbie with dsp so that is why I ask many foolish questions >>> but once I am able to play a piano sound >>> >>> Imagine that I have an unknow file, for example a singer sings the >>> note A3 >>> how do I transpose the sound so that the singer would sing a B3.I >>> know Audacity has this ability to do this, but i really don't know how >>> it works >>> >>> >> you want to do pitch shifting. >> just have a look here http://www.dspdimension.com/admin/time-pitch-overview/ >> >> >> >>> Thanks for your help >>> >>> >>> -- >>> 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 >>> >>> >>> >> >> ------------------------------ >> >> Message: 4 >> Date: Sat, 8 Nov 2008 15:48:23 +0200 >> From: Umut Simsekli >> Subject: Re: [music-dsp] Generating piano sound >> To: A discussion list for music-related DSP >> >> Message-ID: <20081108154823.0zfvc1qwsgsckk84@webmail.sabanciuniv.edu> >> Content-Type: text/plain; charset=ISO-8859-9; DelSp="Yes"; >> format="flowed" >> >> I advice you to check out the book "DAFX - Digital Audio Effects" for >> pitch shifting (or other related topics). >> >> For more info: >> http://www.dafx.de/ >> >> -Umut >> >> cab wrote: >> >> >>> Imagine that I have an unknow file, for example a singer sings the note A3 >>> how do I transpose the sound so that the singer would sing a B3.I >>> know Audacity has this ability to do this, but i really don't know >>> how it works >>> >>> Thanks for your help >>> >>> >>> -- >>> 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 >> >> End of music-dsp Digest, Vol 59, Issue 1 >> **************************************** >> >> >> >> > I thank you for your help, I managed to export the spectrum analysis > into a file, but then it is quite hard to work with it > I have got the frequencies and the corresponding db's ,I tried to > generate the piano sound with a few frequencies only but I can't have a > proper result. Is there a way to avoid entering all the frequencies by hand? > > I give you my code : > > #include > #include > #include > #define BUF_SIZE 44100 > > > int frequency(short db,short freq,int i) > { > float amp=pow(10,(float)db/20)*0.75; > return (int)(amp* 32768.0 * > sin(2 * M_PI * freq * ((float) i/44100))); > } > > ao_device* get_channel_output() > { > ao_initialize(); > ao_device*ao_dev; > /*Opening output (speaker)*/ > ao_sample_format ao_fmt; > ao_fmt.bits=16; > ao_fmt.channels=2; > ao_fmt.rate=44100; > ao_fmt.byte_format=AO_FMT_LITTLE; > int ao_id=ao_driver_id("alsa"); > > ao_dev=ao_open_live(ao_id,&ao_fmt,NULL); > return ao_dev; > } > > int main(int argc,char**argv) > { > > ao_device *ao_dev=get_channel_output(); > char*buffer=malloc(BUF_SIZE*2*sizeof(char)); > int i; > int sample; > for(i=0;i { > sample = frequency(-49,86,i) > +frequency(-28,172,i) > +frequency(-21,258,i) > +frequency(-27,344,i) > +frequency(-41,430,i) > +frequency(-37,516,i) > +frequency(-42,602,i) > +frequency(-38,689,i) > +frequency(-36,861,i) > +frequency(-44,947,i) > +frequency(-37,1033,i) > +frequency(-41,1119,i) > +frequency(-46,1205,i) > +frequency(-37,1291,i) > +frequency(-40,1378,i) > +frequency(-55,1464,i) > +frequency(-46,1550,i) > +frequency(-48,1636,i) > +frequency(-55,1722,i) > +frequency(-43,1808,i) > +frequency(-44,1894,i) > +frequency(-59,1981,i) > +frequency(0,260,i) > +frequency(-17,784,i) > +frequency(-54,2067,i) > +frequency(-54,2153,i) > +frequency(-64,2239,i) > +frequency(-50,2325,i) > +frequency(-47,2411,i) > +frequency(-58,2497,i) > ; > > buffer[2*i]=sample & 0xff; > buffer[2*i+1]=(sample>>8)&0xff; > } > ao_play(ao_dev,buffer,2*BUF_SIZE*2*sizeof(char)); > > free(buffer); > return 0; > } > > > > > thanks for your help > > > > > ------------------------------ > > -- > 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 > > End of music-dsp Digest, Vol 59, Issue 3 > **************************************** > ------------------------------------------------------------------------ > > > Internal Virus Database is out of date. > Checked by AVG - http://www.avg.com > Version: 8.0.173 / Virus Database: 270.8.1/1733 - Release Date: 10/19/2008 6:02 PM > > From bass_pilot at yahoo.com Wed Nov 12 01:16:20 2008 From: bass_pilot at yahoo.com (mark jamerson) Date: Wed Nov 12 01:16:33 2008 Subject: [music-dsp] Re: music-dsp Digest, Vol 59, Issue 5 References: <20081112031528.C17014D48BE27@music.columbia.edu> Message-ID: <912589.62758.qm@web65701.mail.ac4.yahoo.com> >I was told by a piano expert that the harmonics of a vibrating piano >string do not stay in tune as the order of the harmonics rises. Rather, >the harmonics gradually rise (or fall? I think rise but am not sure) >away from exact multiples of the fundamental. Piano experts believe that >this phenomenon, which they call "stretch", varies among manufacturers, >models, and individual instruments. The phenomenon you are talking about is actually called "inharmonicity". "Stretch" is the technique a piano tuner uses to cope with inharmonicity, Mark From richarddobson at blueyonder.co.uk Wed Nov 12 04:25:25 2008 From: richarddobson at blueyonder.co.uk (Richard Dobson) Date: Wed Nov 12 04:28:20 2008 Subject: [music-dsp] generation of piano sound In-Reply-To: <491BC763.2080003@verizon.net> References: <20081108234219.6BB2A4C75C1FA@music.columbia.edu> <491BC763.2080003@verizon.net> Message-ID: <491AA105.6090506@blueyonder.co.uk> Christopher Moore wrote: > I was told by a piano expert that the harmonics of a vibrating piano > string do not stay in tune as the order of the harmonics rises. Rather, > the harmonics gradually rise (or fall? I think rise but am not sure) > away from exact multiples of the fundamental. Piano experts believe that > this phenomenon, which they call "stretch", varies among manufacturers, > models, and individual instruments. > > The physical cause of "stretch" has to do with the extreme bend the > string follows where it cantilevers over the bridge. I believe the way > in which the strings are excited--striking the string with a little > hammer--is also key to this phenomenon. Google "Al Sanderson" +piano to > learn more. > It's a consequence of the extremely high stiffness of the strings; something that cannot be modelled by a "simple" waveguide (i.e. a modern piano string is close to a metallophone than to a normal string). See the papers by Stefan Bilbao for more on this. Tuning of a piano involves aligning the harmonics as much as possible (and, for equal temperament, getting the numbers of beats "just right"). Decades ago I saw a presentation by a Frenchman called Serge Cordier demonstrating a new piano tuning system based on perfect fifths - sounded better with string quartets etc; quicker to do, and gave a systematic stretching of all octaves. Richard Dobson From akbutler at tiscali.co.uk Wed Nov 12 04:45:52 2008 From: akbutler at tiscali.co.uk (andy butler) Date: Wed Nov 12 04:43:17 2008 Subject: [music-dsp] generation of piano sound In-Reply-To: <20081112031530.42E5F4D48BE33@music.columbia.edu> References: <20081112031530.42E5F4D48BE33@music.columbia.edu> Message-ID: <491AA5D0.3000304@tiscali.co.uk> > Date: Wed, 12 Nov 2008 22:21:23 -0800 > From: Christopher Moore > > I was told by a piano expert that the harmonics of a vibrating piano > string do not stay in tune as the order of the harmonics rises. Rather, > the harmonics gradually rise (or fall? I think rise but am not sure) rise. > away from exact multiples of the fundamental. Piano experts believe that > this phenomenon, which they call "stretch", varies among manufacturers, > models, and individual instruments. > and it's not restricted to piano, all "vibrating strings" have this property to some extent. The famous equations that describe string vibration assume that the string is infinitely flexible. > The physical cause of "stretch" has to do with the extreme bend the > string follows where it cantilevers over the bridge. I believe the way > in which the strings are excited--striking the string with a little > hammer--is also key to this phenomenon. Google "Al Sanderson" +piano to > learn more. > My guess is that even if there could be no bend in the string over the bridge, the stiffness of the string is highly significant at that point. Generally I reckon that higher harmonics need the string to bend more, so encounter more of the stiffness in the string. If the method of excitation contributed, wouldn't the tuning anomaly decrease as the note died away? ( as higher harmonics fade quicker, so method of excitation has less effect on sound after a while). Another effect not mentioned here yet is that of paired (&tripled) strings being able to lock together in frequency if they are tuned close enough. My impression, from piano tuning experiments, was that the tone of the sustained note was slightly brighter when this was happening. andy butler From padawan12 at obiwannabe.co.uk Wed Nov 12 07:59:20 2008 From: padawan12 at obiwannabe.co.uk (Andy Farnell) Date: Wed Nov 12 07:58:50 2008 Subject: [music-dsp] Book with math? In-Reply-To: References: <20080615055320.8FA0A16EC34@ws6-8.us4.outblaze.com> <20080615075009.1e50ae44.padawan12@obiwannabe.co.uk> Message-ID: <20081112125920.478c7c8e.padawan12@obiwannabe.co.uk> I was going to post a note of thanks to pd-list, music-dsp and some other lists before, but cheers Steffen. So it must be said now - Thanyou very much to all who helped make this textbook possible, it was a long three years of LaTeX typesetting and code checking. As to the content. Please do check it out. It is suitable for undergraduate studies in sound engineering or music technology, but the focus is on sound generally rather than music. It develops the idea of procedural audio using dataflow. So, it lies somewhere between Miller Puckette's book and Perry Cook's. There's not much actual physmo (waveguide or FEM), it's more of a 'physically informed' approach using traditional methods (modulation, waveshaping, additive, subtractive etc), avoiding any brute force models. I've tried to collect together a taste of all the important theory that would make for great sound design, some elementary physics, psychoacoustics, simple DSP principles, a bit of aesthetics and a guide to Pure Data as a platform for experimentation. The rest is step by step practical exercises, analysing and deconstructing everyday sounds to build 'behavioural' sound objects. Efficiency for real-time operation is a constant theme. I'm sure this is very much the future of game audio. No doubt it has applications in other interactive domains, animation, film and other traditional sound media. http://aspress.co.uk/ds/ all best, Andy On Mon, 10 Nov 2008 18:21:37 +0100 Steffen Juul wrote: > > On 15/06/2008, at 8.50, Andy Farnell wrote: > > > My book is off to the printers in a few weeks. > > Quite light on code and eqs, practical approach to physics based > > sound design with dataflow - more info later :) > > I don't know if Andy is too polite to plug it any more, but > click'e'ti'click -> http://aspress.co.uk/ds/ > > Best, Steffen > -- > dupswapdrop -- the music-dsp mailing list and website: > subscription info, FAQ, source code archive, list archive, book reviews, dsp links > http://music.columbia.edu/cmc/music-dsp > http://music.columbia.edu/mailman/listinfo/music-dsp -- Use the source From vadim.zavalishin at native-instruments.de Fri Nov 14 07:02:34 2008 From: vadim.zavalishin at native-instruments.de (Vadim Zavalishin) Date: Fri Nov 14 07:03:06 2008 Subject: [music-dsp] Article: nonlinear delayless feedback In-Reply-To: References: <20080615055320.8FA0A16EC34@ws6-8.us4.outblaze.com><20080615075009.1e50ae44.padawan12@obiwannabe.co.uk> Message-ID: Hi everyone A few of you can probably remember a couple of filter design articles I announced a while ago on the list. There is another one now: http://www.native-instruments.com/index.php?id=dsparticles It gets into more detail regarding computation of nonlinear zero-delay feedback in the LTI systems. This time it describes a non-iterative (constant-time) approach, whose possiblity was briefly mentioned in the first article. An interesting side effect of nonlinear zero-delay feedback is that it allows the usage of an anti-saturator in the state-variable filter, which is also described in the article. Hope the whole will be useful. Regards, Vadim -- Vadim Zavalishin Senior Software Developer | R&D Tel +49-30-611035-0 Fax +49-30-611035-2600 NATIVE INSTRUMENTS GmbH Schlesische Str. 28 10997 Berlin, Germany http://www.native-instruments.com Registergericht: Amtsgericht Charlottenburg Registernummer: HRB 72458 UST.-ID.-Nr. DE 20 374 7747 Geschaeftsfuehrer: Daniel Haver, Stephan Schmitt From douglas at music.columbia.edu Sat Nov 15 00:00:01 2008 From: douglas at music.columbia.edu (douglas repetto) Date: Sat Nov 15 00:00:13 2008 Subject: [music-dsp] [admin] music-dsp FAQ Message-ID: <20081115050001.434314E3E67B6@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 contact at quikquak.com Sat Nov 15 10:18:45 2008 From: contact at quikquak.com (contact) Date: Sat Nov 15 10:19:00 2008 Subject: [music-dsp] Wavelet edges References: <20081115050001.434314E3E67B6@music.columbia.edu> Message-ID: <002001c94735$73f0f5e0$6501a8c0@DaveUpstairs> Hello folks, I wonder if anyone can help me? I've been testing different kinds of Wavelet code (C++) , and I want to create filter-bank. If I do:- An audio stream is fed in at 64 sample a time. Forward transform this block (Daubechies - all sizes tested). Zero out 32 to 63 samples, to filter out the top frequency band. Do an inverse transform. Playing a simple sine wave note through the system. I get a sine wave back from the process, but at the edges of 64 sample blocks I get a course blip the shape of the wavelet itself. If I use 256 size blocks, the effect happens on 256 sample intervals. I realize Wavelets have reconstruction alias issues, but I'm guessing this blip is due to non-continuality between blocks. It looks like I'll have to mess up the neat in-place memory usage and store each level's previous signal between successive blocks. Am I correct in this thinking, if so, what's the best way to fix this? The wavelet code uses wrap-around for convolution, and I've also tried 'lifting' but the same problem occured. Thanks in advance, Dave H From czhenry at gmail.com Sat Nov 15 10:39:50 2008 From: czhenry at gmail.com (Charles Henry) Date: Sat Nov 15 10:40:03 2008 Subject: [music-dsp] Wavelet edges In-Reply-To: <002001c94735$73f0f5e0$6501a8c0@DaveUpstairs> References: <20081115050001.434314E3E67B6@music.columbia.edu> <002001c94735$73f0f5e0$6501a8c0@DaveUpstairs> Message-ID: <518fe7b20811150739q4e2d1918y9d5c9a5524443b93@mail.gmail.com> This sounds similar to a project I made. First, I made a wrapper for using the wave++ wavelet transform in Pd. Then I wrote an external to do subband adaptive filtering, using an overlap-add method. Sorry I can't remember how I solved the discontinuity issue--I think I just made a fade-in/out transition on the boundaries. The Daubechies wavelets are made to get a high degree of smoothness of the function, but the edges of each frequency bin are not so clean--the side-bands overlap, and when you're setting the top frequency bin to zero, you're throwing away part of the signal you want. Perhaps, that's what gives you the discontinuities? Chuck On Sat, Nov 15, 2008 at 9:18 AM, contact wrote: > Hello folks, I wonder if anyone can help me? > > I've been testing different kinds of Wavelet code (C++) , and I want to > create filter-bank. > If I do:- > An audio stream is fed in at 64 sample a time. > Forward transform this block (Daubechies - all sizes tested). > Zero out 32 to 63 samples, to filter out the top frequency band. > Do an inverse transform. > Playing a simple sine wave note through the system. > I get a sine wave back from the process, but at the edges of 64 sample > blocks I get a course blip the shape of the wavelet itself. If I use 256 > size blocks, the effect happens on 256 sample intervals. > > I realize Wavelets have reconstruction alias issues, but I'm guessing this > blip is due to non-continuality between blocks. > It looks like I'll have to mess up the neat in-place memory usage and store > each level's previous signal between successive blocks. > > Am I correct in this thinking, if so, what's the best way to fix this? > > The wavelet code uses wrap-around for convolution, and I've also tried > 'lifting' but the same problem occured. > > Thanks in advance, > Dave H > > > > -- > 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 contact at quikquak.com Sat Nov 15 10:59:41 2008 From: contact at quikquak.com (contact) Date: Sat Nov 15 10:59:57 2008 Subject: [music-dsp] Wavelet edges References: <20081115050001.434314E3E67B6@music.columbia.edu><002001c94735$73f0f5e0$6501a8c0@DaveUpstairs> <518fe7b20811150739q4e2d1918y9d5c9a5524443b93@mail.gmail.com> Message-ID: <007901c9473b$2bc1bf10$6501a8c0@DaveUpstairs> Thanks for the quick reply. > This sounds similar to a project I made. First, I made a wrapper for > using the wave++ wavelet transform in Pd. Then I wrote an external to > do subband adaptive filtering, using an overlap-add method. > Sorry I can't remember how I solved the discontinuity issue--I think I > just made a fade-in/out transition on the boundaries. That sounds like it would work. It does appear to be a wavelet sized shape at every boundary. > The Daubechies wavelets are made to get a high degree of smoothness of > the function, but the edges of each frequency bin are not so > clean--the side-bands overlap, and when you're setting the top > frequency bin to zero, you're throwing away part of the signal you > want. Perhaps, that's what gives you the discontinuities? I've found references to zero padding the up-sampling:- http://www.engmath.dal.ca/courses/engm6610/notes/idwt.html I believe this will cancel out the alias between bands? Cheers, Dave > Chuck > On Sat, Nov 15, 2008 at 9:18 AM, contact wrote: >> Hello folks, I wonder if anyone can help me? >> >> I've been testing different kinds of Wavelet code (C++) , and I want to >> create filter-bank. >> If I do:- >> An audio stream is fed in at 64 sample a time. >> Forward transform this block (Daubechies - all sizes tested). >> Zero out 32 to 63 samples, to filter out the top frequency band. >> Do an inverse transform. >> Playing a simple sine wave note through the system. >> I get a sine wave back from the process, but at the edges of 64 sample >> blocks I get a course blip the shape of the wavelet itself. If I use 256 >> size blocks, the effect happens on 256 sample intervals. >> >> I realize Wavelets have reconstruction alias issues, but I'm guessing >> this >> blip is due to non-continuality between blocks. >> It looks like I'll have to mess up the neat in-place memory usage and >> store >> each level's previous signal between successive blocks. >> >> Am I correct in this thinking, if so, what's the best way to fix this? >> >> The wavelet code uses wrap-around for convolution, and I've also tried >> 'lifting' but the same problem occured. >> >> Thanks in advance, >> Dave H >> >> >> >> -- >> 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 -------------------------------------------------------------------------------- No virus found in this incoming message. Checked by AVG - http://www.avg.com Version: 8.0.175 / Virus Database: 270.9.4/1790 - Release Date: 11/15/2008 09:32 From czhenry at gmail.com Sat Nov 15 11:12:28 2008 From: czhenry at gmail.com (Charles Henry) Date: Sat Nov 15 11:12:40 2008 Subject: [music-dsp] Wavelet edges In-Reply-To: <007901c9473b$2bc1bf10$6501a8c0@DaveUpstairs> References: <20081115050001.434314E3E67B6@music.columbia.edu> <002001c94735$73f0f5e0$6501a8c0@DaveUpstairs> <518fe7b20811150739q4e2d1918y9d5c9a5524443b93@mail.gmail.com> <007901c9473b$2bc1bf10$6501a8c0@DaveUpstairs> Message-ID: <518fe7b20811150812w76527575x5f0a4636ae9093c@mail.gmail.com> On Sat, Nov 15, 2008 at 9:59 AM, contact wrote: > I've found references to zero padding the up-sampling:- > http://www.engmath.dal.ca/courses/engm6610/notes/idwt.html > I believe this will cancel out the alias between bands? I'm not sure, but I think that reference is about the lifting scheme that implements the inverse DWT. There's no way to remove the aliasing--only the one wavelet based on sinc functions has no aliasing. In fact, the aliased information is necessary for the perfect reconstruction condition of the inverse wavelet transform. On a side note, the best references I've found on wavelets is the Wickerhauser books. Some deal with applications, others with theory--most authoritative on the subject. Maybe you can find some good info on your problem, there. Chuck From czhenry at gmail.com Sat Nov 15 11:16:18 2008 From: czhenry at gmail.com (Charles Henry) Date: Sat Nov 15 11:16:31 2008 Subject: [music-dsp] Wavelet edges In-Reply-To: <518fe7b20811150812w76527575x5f0a4636ae9093c@mail.gmail.com> References: <20081115050001.434314E3E67B6@music.columbia.edu> <002001c94735$73f0f5e0$6501a8c0@DaveUpstairs> <518fe7b20811150739q4e2d1918y9d5c9a5524443b93@mail.gmail.com> <007901c9473b$2bc1bf10$6501a8c0@DaveUpstairs> <518fe7b20811150812w76527575x5f0a4636ae9093c@mail.gmail.com> Message-ID: <518fe7b20811150816s242e65dcw960e2c80bb71b6ce@mail.gmail.com> On Sat, Nov 15, 2008 at 10:12 AM, Charles Henry wrote: > On a side note, the best references I've found on wavelets is the > Wickerhauser books. Some deal with applications, others with > theory--most authoritative on the subject. Maybe you can find some > good info on your problem, there. This one looks like it's got the info on putting together intervals to form continuous signals: http://www.math.wustl.edu/~victor/mfmm/ It's been a while since I've read that one. From magnus at rubidium.dyndns.org Sat Nov 15 12:57:43 2008 From: magnus at rubidium.dyndns.org (Magnus Danielson) Date: Sat Nov 15 12:58:03 2008 Subject: [music-dsp] Wavelet edges In-Reply-To: <002001c94735$73f0f5e0$6501a8c0@DaveUpstairs> References: <20081115050001.434314E3E67B6@music.columbia.edu> <002001c94735$73f0f5e0$6501a8c0@DaveUpstairs> Message-ID: <491F0D97.5050006@rubidium.dyndns.org> contact wrote: > Hello folks, I wonder if anyone can help me? > > I've been testing different kinds of Wavelet code (C++) , and I want to > create filter-bank. > If I do:- > An audio stream is fed in at 64 sample a time. > Forward transform this block (Daubechies - all sizes tested). > Zero out 32 to 63 samples, to filter out the top frequency band. > Do an inverse transform. > Playing a simple sine wave note through the system. > I get a sine wave back from the process, but at the edges of 64 sample > blocks I get a course blip the shape of the wavelet itself. If I use 256 > size blocks, the effect happens on 256 sample intervals. > > I realize Wavelets have reconstruction alias issues, but I'm guessing this > blip is due to non-continuality between blocks. > It looks like I'll have to mess up the neat in-place memory usage and store > each level's previous signal between successive blocks. > > Am I correct in this thinking, if so, what's the best way to fix this? > > The wavelet code uses wrap-around for convolution, and I've also tried > 'lifting' but the same problem occured. In JPEG2000 they apply boundary handling which mirror samples outside the data frame in order to avoid such edge artifacts, Gibbs phenomena. For odd number of samples in the transform (0..6) this becomes 654321 0123456 543210 For even number of samples in the transform (0..7) this becomes 6543210 01234567 7654321 This expansion is done on left or right side of the sample sequence, if a boundary exists at the space, if not real data from the neighboring block is used in its normal order. It is not a perfect correction, but a workable compensation. The JPEG2000 field is interesting here since they have put alot of effort in making the discrete wavelet transform practical and for faithful reproduction. I am by no means a wavelet expert and learned this from reading up on JPEG2000, but I thought it could possibly be a pointer in the right general direction and usefull as such. Cheers, Magnus From music.maker at gte.net Mon Nov 17 00:42:10 2008 From: music.maker at gte.net (Scott Gravenhorst) Date: Mon Nov 17 01:42:24 2008 Subject: [music-dsp] Xarp-56 Message-ID: <200811170642.mAH6g9PF028855@linux7.lan> Here is the Xarp-56 FPGA 56 voice physical model polysynth. http://home1.gte.net/res0658s/FPGA_synth/Xarp-56.html The sound clip is a piece of Tchaikovsky's "Dance of the Sugar Plum Fairy" that I adapted for this instrument - the entire clip is played on one Xarp-56 instrument. Verilog source is provided if you're interested. While you listen, remember that this is a single integrated circuit that is doing the DSP computations to make the sounds you're hearing. Please enjoy... -- ScottG ________________________________________________________________________ -- Scott Gravenhorst -- FPGA MIDI Synthesizer Information: home1.gte.net/res0658s/FPGA_synth/ -- FatMan: home1.gte.net/res0658s/fatman/ -- NonFatMan: home1.gte.net/res0658s/electronics/ -- When the going gets tough, the tough use the command line. From padawan12 at obiwannabe.co.uk Mon Nov 17 05:43:57 2008 From: padawan12 at obiwannabe.co.uk (Andy Farnell) Date: Mon Nov 17 05:44:41 2008 Subject: [music-dsp] Xarp-56 In-Reply-To: <200811170642.mAH6g9PF028855@linux7.lan> References: <200811170642.mAH6g9PF028855@linux7.lan> Message-ID: <20081117104357.396a2789.padawan12@obiwannabe.co.uk> Thanks for sharing the sounds and sources there Scott. 5 cents is actually a lot! Even to my uncultured ear that sounds a bit wonky on the tuning :) I assume your errors come from non-interpolating delay buffer sizes. Aren't there some interpolation tricks that can improve the tuning of the KS model? cheers, Andy On Sun, 16 Nov 2008 22:42:10 -0700 Scott Gravenhorst wrote: > Here is the Xarp-56 FPGA 56 voice physical model polysynth. > > http://home1.gte.net/res0658s/FPGA_synth/Xarp-56.html > > The sound clip is a piece of Tchaikovsky's "Dance of the Sugar Plum Fairy" that I adapted for this instrument - the entire clip is played on one Xarp-56 instrument. > > Verilog source is provided if you're interested. > > While you listen, remember that this is a single integrated circuit that is doing the DSP computations to make the sounds you're hearing. > > Please enjoy... > > -- ScottG > ________________________________________________________________________ > -- Scott Gravenhorst > -- FPGA MIDI Synthesizer Information: home1.gte.net/res0658s/FPGA_synth/ > -- FatMan: home1.gte.net/res0658s/fatman/ > -- NonFatMan: home1.gte.net/res0658s/electronics/ > -- When the going gets tough, the tough use the command line. > > -- > dupswapdrop -- the music-dsp mailing list and website: > subscription info, FAQ, source code archive, list archive, book reviews, dsp links > http://music.columbia.edu/cmc/music-dsp > http://music.columbia.edu/mailman/listinfo/music-dsp -- Use the source From xue.wen at elec.qmul.ac.uk Mon Nov 17 07:19:25 2008 From: xue.wen at elec.qmul.ac.uk (Wen X) Date: Mon Nov 17 07:26:39 2008 Subject: [music-dsp] Wavelet edges In-Reply-To: <002001c94735$73f0f5e0$6501a8c0@DaveUpstairs> Message-ID: Block processing is in general not time-invariant so that different = parts within the block are treated differently. If the processing is linear = then there is a distinct impulse response attached to each sample. In your = case the response itself is constrained on the very block the sample lies in. = The sound degradation due to this time-variantness depends on how much the response changes from one sample to the next. Responses of adjacent = samples in the same block are usually highly correlated and the artefacts is = known as alias, which does require some attention to be heard. Responses of adjacent samples in two blocks are orthogonal and the artefact is known = as discontinuity, which one can hear even in sleep. Both artefacts are periodical. One common solution to both is overlap-add. If the blocks = are N-fold overlapped then the modulation period becomes 1/N the block size. = In the extreme case, if N equals to block size (so that the next block is = only one-sample shifted from the current one), then the system becomes time-invariant. If you only wish to cure discontinuity, then a sparse overlap with fade-out window shall be enough to correlate cross-block responses. However, one should be careful of choosing the window as it = can also be another source of time-variantness. X. -----Original Message----- From: music-dsp-bounces@music.columbia.edu [mailto:music-dsp-bounces@music.columbia.edu] On Behalf Of contact Sent: 2008=C4=EA11=D4=C215=C8=D5 15:19 To: A discussion list for music-related DSP Subject: [music-dsp] Wavelet edges Hello folks, I wonder if anyone can help me? I've been testing different kinds of Wavelet code (C++) , and I want to create filter-bank. If I do:- An audio stream is fed in at 64 sample a time. Forward transform this block (Daubechies - all sizes tested). Zero out 32 to 63 samples, to filter out the top frequency band. Do an inverse transform. Playing a simple sine wave note through the system. I get a sine wave back from the process, but at the edges of 64 sample blocks I get a course blip the shape of the wavelet itself. If I use 256 size blocks, the effect happens on 256 sample intervals. I realize Wavelets have reconstruction alias issues, but I'm guessing = this blip is due to non-continuality between blocks. It looks like I'll have to mess up the neat in-place memory usage and = store each level's previous signal between successive blocks. Am I correct in this thinking, if so, what's the best way to fix this? The wavelet code uses wrap-around for convolution, and I've also tried 'lifting' but the same problem occured. Thanks in advance, Dave H -- dupswapdrop -- the music-dsp mailing list and website:=20 subscription info, FAQ, source code archive, list archive, book reviews, = dsp links http://music.columbia.edu/cmc/music-dsp http://music.columbia.edu/mailman/listinfo/music-dsp From richarddobson at blueyonder.co.uk Mon Nov 17 09:37:42 2008 From: richarddobson at blueyonder.co.uk (Richard Dobson) Date: Mon Nov 17 09:41:26 2008 Subject: [music-dsp] Xarp-56 In-Reply-To: <20081117104357.396a2789.padawan12@obiwannabe.co.uk> References: <200811170642.mAH6g9PF028855@linux7.lan> <20081117104357.396a2789.padawan12@obiwannabe.co.uk> Message-ID: <492181B6.8000800@blueyonder.co.uk> Andy Farnell wrote: > > Thanks for sharing the sounds and sources there Scott. > > 5 cents is actually a lot! Even to my uncultured ear that sounds > a bit wonky on the tuning :) > More like wrong notes, rhythms, etc. As the only musical demo of the system, this is not really doing the system any favours. Rhythmically it is more than a little haphazard - was it just played "live" from a keyboard? There are original harp pieces galore that would not require any "adaptation", and which would surely display the technology far better (especially if rendered via a sequencer that can tighten rhythms, correct notes, etc). Were the low notes deliberately over-sustained to suggest a high polyphony? A demo has to support repeated listening, and much as I want to applaud the technology and the effort that went into it, the demo itself does not encourage me to listen more than the once! Richard Dobson From music.maker at gte.net Mon Nov 17 08:49:45 2008 From: music.maker at gte.net (Scott Gravenhorst) Date: Mon Nov 17 09:50:04 2008 Subject: [music-dsp] Xarp-56 Message-ID: <200811171449.mAHEnjDq018824@linux7.lan> A discussion list for music-related DSP wrote: >Andy Farnell wrote: >> >> Thanks for sharing the sounds and sources there Scott. >> >> 5 cents is actually a lot! Even to my uncultured ear that sounds >> a bit wonky on the tuning :) >> > >More like wrong notes, rhythms, etc. As the only musical demo of the >system, this is not really doing the system any favours. Rhythmically >it is more than a little haphazard - was it just played "live" from a >keyboard? There are original harp pieces galore that would not require >any "adaptation", and which would surely display the technology far >better (especially if rendered via a sequencer that can tighten >rhythms, correct notes, etc). Were the low notes deliberately >over-sustained to suggest a high polyphony? A demo has to support >repeated listening, and much as I want to applaud the technology and the >effort that went into it, the demo itself does not encourage me to >listen more than the once! Yes, I do think there are wrong notes in the piece, the piece came from a MIDI file I downloaded. Looking at the message times, it appears that someone played it live. This machine, like all of mine, is a continual work in progress. The arithmetic that computes the reflection filter bandwidth could use some work to make the decay more consistent. -- ScottG ________________________________________________________________________ -- Scott Gravenhorst -- FPGA MIDI Synthesizer Information: home1.gte.net/res0658s/FPGA_synth/ -- FatMan: home1.gte.net/res0658s/fatman/ -- NonFatMan: home1.gte.net/res0658s/electronics/ -- When the going gets tough, the tough use the command line. From music.maker at gte.net Mon Nov 17 19:03:49 2008 From: music.maker at gte.net (Scott Gravenhorst) Date: Mon Nov 17 20:04:05 2008 Subject: [music-dsp] Xarp-56 Message-ID: <200811180103.mAI13mVm008274@linux7.lan> A discussion list for music-related DSP wrote: > > >Thanks for sharing the sounds and sources there Scott. > >5 cents is actually a lot! Even to my uncultured ear that sounds >a bit wonky on the tuning :) As has been pointed out, there are wrong notes and bad rythm in the MIDI file. I need to find a better one and redo it. >I assume your errors come from non-interpolating delay buffer >sizes. Aren't there some interpolation tricks that can improve >the tuning of the KS model? I may try Lagrange interpolators perhaps. > >On Sun, 16 Nov 2008 22:42:10 -0700 >Scott Gravenhorst wrote: > >> Here is the Xarp-56 FPGA 56 voice physical model polysynth. >> >> http://home1.gte.net/res0658s/FPGA_synth/Xarp-56.html >> >> The sound clip is a piece of Tchaikovsky's "Dance of the Sugar >Plum Fairy" that I adapted for this instrument - the entire clip >is played on one Xarp-56 instrument. > > Verilog source is >provided if you're interested. > > While you listen, remember >that this is a single integrated circuit that is doing the DSP >computations to make the sounds you're hearing. > > Please >enjoy... > > -- ScottG > >________________________________________________________________________ >> -- Scott Gravenhorst > -- FPGA MIDI Synthesizer Information: >home1.gte.net/res0658s/FPGA_synth/ > -- FatMan: >home1.gte.net/res0658s/fatman/ > -- NonFatMan: >home1.gte.net/res0658s/electronics/ > -- When the going gets >tough, the tough use the command line. > > -- > dupswapdrop -- >the music-dsp mailing list and website: > subscription info, FAQ, >source code archive, list archive, book reviews, dsp links > >http://music.columbia.edu/cmc/music-dsp > >http://music.columbia.edu/mailman/listinfo/music-dsp > > >-- >Use the source >-- >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 > -- ScottG ________________________________________________________________________ -- Scott Gravenhorst -- FPGA MIDI Synthesizer Information: home1.gte.net/res0658s/FPGA_synth/ -- FatMan: home1.gte.net/res0658s/fatman/ -- NonFatMan: home1.gte.net/res0658s/electronics/ -- When the going gets tough, the tough use the command line. From vadim.zavalishin at native-instruments.de Wed Nov 19 10:34:41 2008 From: vadim.zavalishin at native-instruments.de (Vadim Zavalishin) Date: Wed Nov 19 10:35:16 2008 Subject: [music-dsp] Article: nonlinear delayless feedback (demos) In-Reply-To: References: <20080615055320.8FA0A16EC34@ws6-8.us4.outblaze.com><20080615075009.1e50ae44.padawan12@obiwannabe.co.uk> Message-ID: <8AB8A8A86C994D9F9DA761ACA86C5948@nibln01077> Hi once again Just letting everyone interested know, that we have uploaded the proof-of-concept implementations of the filters described in the article. The implementations are built in Reaktor Core, so you need Reaktor to try them out. There's also an MP3 demo. The setup was the following: an addivite-generated sawtooth with up to 20kHz partials playing back at 1:1 sample ratio (to avoid aliasing in the oscillator) was let through ladder, svf lp, svf bp and svf hp filters in turn. The cutoff, resonance and drive (input signal boost) parameters were changed (including high-rate lfo modulation of the cutoff). The setup was running at 44.1kHz, to show that one can obtain reasonable quality without oversampling. As you might notice, at high cutoff settings, the aliasing produced by the nonlinearities in the filters becomes clearly audible. The aliasing is of course less audible at higher sampling rates. Here's the link: http://www.nativeinstruments.de/index.php?id=userlibrary&type=0&ulbr=1&plview=detail&patchid=7299 The MP3 demo is downloadable in the right half of the web page. Regards, Vadim ----- Original Message ----- From: "Vadim Zavalishin" To: "A discussion list for music-related DSP" Sent: Friday, November 14, 2008 13:02 Subject: [music-dsp] Article: nonlinear delayless feedback > Hi everyone > > A few of you can probably remember a couple of filter design articles I > announced a while ago on the list. There is another one now: > http://www.native-instruments.com/index.php?id=dsparticles > > It gets into more detail regarding computation of nonlinear zero-delay > feedback in the LTI systems. This time it describes a non-iterative > (constant-time) approach, whose possiblity was briefly mentioned in the > first article. An interesting side effect of nonlinear zero-delay feedback > is that it allows the usage of an anti-saturator in the state-variable > filter, which is also described in the article. Hope the whole will be > useful. > > Regards, > Vadim -- Vadim Zavalishin Senior Software Developer | R&D Tel +49-30-611035-0 Fax +49-30-611035-2600 NATIVE INSTRUMENTS GmbH Schlesische Str. 28 10997 Berlin, Germany http://www.native-instruments.com Registergericht: Amtsgericht Charlottenburg Registernummer: HRB 72458 UST.-ID.-Nr. DE 20 374 7747 Geschaeftsfuehrer: Daniel Haver, Stephan Schmitt From richarddobson at blueyonder.co.uk Wed Nov 19 12:06:42 2008 From: richarddobson at blueyonder.co.uk (Richard Dobson) Date: Wed Nov 19 12:09:56 2008 Subject: [music-dsp] Article: nonlinear delayless feedback (demos) In-Reply-To: <8AB8A8A86C994D9F9DA761ACA86C5948@nibln01077> References: <20080615055320.8FA0A16EC34@ws6-8.us4.outblaze.com><20080615075009.1e50ae44.padawan12@obiwannabe.co.uk> <8AB8A8A86C994D9F9DA761ACA86C5948@nibln01077> Message-ID: <492447A2.7020401@blueyonder.co.uk> Vadim Zavalishin wrote: > Hi once again > > Just letting everyone interested know, that we have uploaded the > proof-of-concept implementations of the filters described in the > article. The implementations are built in Reaktor Core, so you need > Reaktor to try them out. > Any chance of some example code? Sadly Reaktor is way outside what I can afford, cool though it undoubtedly is. Any chance the examples will run on the demo version, or does that exclude the Core stuff? Richard Dobson From kcdixon at mtu.edu Thu Nov 20 02:11:07 2008 From: kcdixon at mtu.edu (Kevin Dixon) Date: Thu Nov 20 02:11:34 2008 Subject: [music-dsp] StretchFix Message-ID: <49250D8B.4050404@mtu.edu> Just an announcement for those interested, I have released an open source project which is a tool that can be used to restore tape-to-digital dubs where the tape was gunked up, and may not have replayed at real-time. The software can analyze SMPTE Linear Time Code, (assuming there was a SMPTE track on the tape), and then use a Varispeed to correct the existing dubs. It is GPLv2, and uses the Mega-Nerd Secret Rabbit Sample Rate Converter. Please note that the software is for Mac OS X, utilizing Audio Units. http://yano.wasteonline.net/software/stretchfix/ Thanks! -Kevin Dixon From vadim.zavalishin at native-instruments.de Thu Nov 20 05:17:06 2008 From: vadim.zavalishin at native-instruments.de (Vadim Zavalishin) Date: Thu Nov 20 05:19:31 2008 Subject: [music-dsp] Article: nonlinear delayless feedback (demos) In-Reply-To: <492447A2.7020401@blueyonder.co.uk> References: <20080615055320.8FA0A16EC34@ws6-8.us4.outblaze.com><20080615075009.1e50ae44.padawan12@obiwannabe.co.uk> <8AB8A8A86C994D9F9DA761ACA86C5948@nibln01077> <492447A2.7020401@blueyonder.co.uk> Message-ID: <0B853662404E44F4A0E6A7FFFBB653E5@nibln01077> Richard Dobson wrote: > Vadim Zavalishin wrote: >> Hi once again >> >> Just letting everyone interested know, that we have uploaded the >> proof-of-concept implementations of the filters described in the article. >> The implementations are built in Reaktor Core, so you need Reaktor to try >> them out. >> > > > Any chance of some example code? Sadly Reaktor is way outside what I can > afford, cool though it undoubtedly is. Any chance the examples will run > on the demo version, or does that exclude the Core stuff? Hi Richard Thanks for the interest in my humble work. The examples should theoretically run on the demo version, however AFAIK the Reaktor library downloads are restricted to the registered users. The example source code in another form is unfortunately not planned ATM either. I'd be happy to clarify the unclear places in the articles, should there be any. Regards, Vadim -- Vadim Zavalishin Senior Software Developer | R&D Tel +49-30-611035-0 Fax +49-30-611035-2600 NATIVE INSTRUMENTS GmbH Schlesische Str. 28 10997 Berlin, Germany http://www.native-instruments.com Registergericht: Amtsgericht Charlottenburg Registernummer: HRB 72458 UST.-ID.-Nr. DE 20 374 7747 Geschaeftsfuehrer: Daniel Haver, Stephan Schmitt From contact at quikquak.com Thu Nov 20 09:54:26 2008 From: contact at quikquak.com (contact) Date: Thu Nov 20 09:55:50 2008 Subject: [music-dsp] Wavelet edges References: <20081115050001.434314E3E67B6@music.columbia.edu><002001c94735$73f0f5e0$6501a8c0@DaveUpstairs> <491F0D97.5050006@rubidium.dyndns.org> Message-ID: <005501c94b1f$e21adb10$6501a8c0@DaveUpstairs> > contact wrote: >> Hello folks, I wonder if anyone can help me? >> >> I've been testing different kinds of Wavelet code (C++) , and I want to >> create filter-bank. >> If I do:- >> An audio stream is fed in at 64 sample a time. >> Forward transform this block (Daubechies - all sizes tested). >> Zero out 32 to 63 samples, to filter out the top frequency band. >> Do an inverse transform. >> Playing a simple sine wave note through the system. >> I get a sine wave back from the process, but at the edges of 64 sample >> blocks I get a course blip the shape of the wavelet itself. If I use 256 >> size blocks, the effect happens on 256 sample intervals. >> >> I realize Wavelets have reconstruction alias issues, but I'm guessing >> this >> blip is due to non-continuality between blocks. >> It looks like I'll have to mess up the neat in-place memory usage and >> store >> each level's previous signal between successive blocks. >> >> Am I correct in this thinking, if so, what's the best way to fix this? >> >> The wavelet code uses wrap-around for convolution, and I've also tried >> 'lifting' but the same problem occured. > > In JPEG2000 they apply boundary handling which mirror samples outside > the data frame in order to avoid such edge artifacts, Gibbs phenomena. > > For odd number of samples in the transform (0..6) this becomes > > 654321 0123456 543210 > > For even number of samples in the transform (0..7) this becomes > > 6543210 01234567 7654321 > > This expansion is done on left or right side of the sample sequence, if > a boundary exists at the space, if not real data from the neighboring > block is used in its normal order. > > It is not a perfect correction, but a workable compensation. > > The JPEG2000 field is interesting here since they have put alot of > effort in making the discrete wavelet transform practical and for > faithful reproduction. > > I am by no means a wavelet expert and learned this from reading up on > JPEG2000, but I thought it could possibly be a pointer in the right > general direction and usefull as such. > > Cheers, > Magnus Thanks for everyone's replies, it looks like the overlap-add works O.K along with zero value padding on the up-sampling. Cheers, Dave From vadim.zavalishin at native-instruments.de Fri Nov 21 05:01:15 2008 From: vadim.zavalishin at native-instruments.de (Vadim Zavalishin) Date: Fri Nov 21 05:01:55 2008 Subject: [music-dsp] Article: nonlinear delayless feedback (update) In-Reply-To: <8AB8A8A86C994D9F9DA761ACA86C5948@nibln01077> References: <20080615055320.8FA0A16EC34@ws6-8.us4.outblaze.com><20080615075009.1e50ae44.padawan12@obiwannabe.co.uk> <8AB8A8A86C994D9F9DA761ACA86C5948@nibln01077> Message-ID: <5D46DF15B7E1492A8E6D4117AA34D479@nibln01077> Hi again As it just turned out, due to some upload problem we had an older version of demo implementations on our website, which didn't contain the new saturating filters. You are welcome to try downloading the new zip, which should be now be about 180KB and contain three files inside, instead of 90KB with two files. Sorry for the inconvenience. Regards, Vadim ----- Original Message ----- From: "Vadim Zavalishin" To: "A discussion list for music-related DSP" Sent: Wednesday, November 19, 2008 16:34 Subject: Re: [music-dsp] Article: nonlinear delayless feedback (demos) > Hi once again > > Just letting everyone interested know, that we have uploaded the > proof-of-concept implementations of the filters described in the article. > The implementations are built in Reaktor Core, so you need Reaktor to try > them out. > > There's also an MP3 demo. The setup was the following: an > addivite-generated sawtooth with up to 20kHz partials playing back at 1:1 > sample ratio (to avoid aliasing in the oscillator) was let through ladder, > svf lp, svf bp and svf hp filters in turn. The cutoff, resonance and drive > (input signal boost) parameters were changed (including high-rate lfo > modulation of the cutoff). The setup was running at 44.1kHz, to show that > one can obtain reasonable quality without oversampling. As you might > notice, at high cutoff settings, the aliasing produced by the > nonlinearities in the filters becomes clearly audible. The aliasing is of > course less audible at higher sampling rates. > > Here's the link: > http://www.nativeinstruments.de/index.php?id=userlibrary&type=0&ulbr=1&plview=detail&patchid=7299 > > The MP3 demo is downloadable in the right half of the web page. > > Regards, > Vadim > > ----- Original Message ----- > From: "Vadim Zavalishin" > To: "A discussion list for music-related DSP" > > Sent: Friday, November 14, 2008 13:02 > Subject: [music-dsp] Article: nonlinear delayless feedback > > >> Hi everyone >> >> A few of you can probably remember a couple of filter design articles I >> announced a while ago on the list. There is another one now: >> http://www.native-instruments.com/index.php?id=dsparticles >> >> It gets into more detail regarding computation of nonlinear zero-delay >> feedback in the LTI systems. This time it describes a non-iterative >> (constant-time) approach, whose possiblity was briefly mentioned in the >> first article. An interesting side effect of nonlinear zero-delay >> feedback is that it allows the usage of an anti-saturator in the >> state-variable filter, which is also described in the article. Hope the >> whole will be useful. >> >> Regards, >> Vadim > -- Vadim Zavalishin Senior Software Developer | R&D Tel +49-30-611035-0 Fax +49-30-611035-2600 NATIVE INSTRUMENTS GmbH Schlesische Str. 28 10997 Berlin, Germany http://www.native-instruments.com Registergericht: Amtsgericht Charlottenburg Registernummer: HRB 72458 UST.-ID.-Nr. DE 20 374 7747 Geschaeftsfuehrer: Daniel Haver, Stephan Schmitt