Re: [music-dsp] tracking drum partials

2017-08-07 Thread gm


There is also "Science of Percussion Instruments" by Rossing.


Am 07.08.2017 um 09:24 schrieb Jacob Møller Hjerrild:

Hi Thomas,
See if you can look up the book "The physics of musical instruments", 
by Fletcher and Rossing.
I can see that there is a chapter on drums in it. It might be of use 
to you!


Best regards
Jacob



___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp



Re: [music-dsp] tracking drum partials

2017-08-07 Thread Jacob Møller Hjerrild
Hi Thomas,
See if you can look up the book "The physics of musical instruments", by
Fletcher and Rossing.
I can see that there is a chapter on drums in it. It might be of use to you!

Best regards
Jacob


On 08/06/2017 11:12 PM, Thomas Rehaag wrote:
> sorry for the late reply. Half of my clients actually need help.
>
> @Theo: I'm not trying to rebuild natural drum sounds. Just tried to get
> a bit more insight about drum sounds
> I'm not quite content with the missing overtones in electro drum
> synthesis.
>
> @Ian & Corey: thanks for pointing me to the parametric estimation method.
>
> Hope I'll find some hours in the next weeks to have a look at all the
> new information and to go on with this.
>
> Best Regards,
>
> Thomas
>
> ___
> dupswapdrop: music-dsp mailing list
> music-dsp@music.columbia.edu
> https://lists.columbia.edu/mailman/listinfo/music-dsp
>

-- 
Med venlig hilsen / Best regards

Jacob Møller
Research Assistant, Audio Analysis Lab
Aalborg University
juni...@gmail.com
mob: +45 29802053

___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Re: [music-dsp] tracking drum partials

2017-08-06 Thread Thomas Rehaag

sorry for the late reply. Half of my clients actually need help.

@Theo: I'm not trying to rebuild natural drum sounds. Just tried to get
a bit more insight about drum sounds
I'm not quite content with the missing overtones in electro drum synthesis.

@Ian & Corey: thanks for pointing me to the parametric estimation method.

Hope I'll find some hours in the next weeks to have a look at all the
new information and to go on with this.

Best Regards,

Thomas

___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp



Re: [music-dsp] tracking drum partials

2017-08-02 Thread Theo Verelst

Thomas Rehaag wrote:

Dear DSP Experts,

can anybody tell me how to track drum partials? Is it even possible?
What I'd like to have are the frequency & amplitude envelopes of the partials 
so that I
can rebuild the drum sounds with additive synthesis.



Hi

In theory, just a little like using mpeg compression om a drum track, nothings in the way, 
you can do a frequency / amplitude encoding of "partials" from drum sounds.


I recall when I was 'shopping around" for a ((Electrical) Network Theory) MSc subject in 
the 80s there was some work in the literature about such things being done or considered, 
because sample space in drum computers was limited and expensive. The idea that also some 
of the sound path of a decomposition in partials would magically concide with interesting 
moments of actual or electronic drums sounds appears to have been not very true. So it 
wasn't a great idea after all, most likely.


Of course it's fun to make something of a digital percussion machine, I concur with that 
desire, but from my experience with sound design and studio effects I know it's a very 
complicated thing to project a working, decent and pleasant percussion sound out of your 
digital monitors, so it would be interesting to do some matching sine components and 
exponential dampings, but exceeding that nice electronic organ drum sound from the 60s 
might be quite some work to do!


Theo V.

___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp



Re: [music-dsp] tracking drum partials

2017-08-01 Thread robert bristow-johnson







 Original Message 

Subject: Re: [music-dsp] tracking drum partials

From: "Ian Esten" <i...@ianesten.com>

Date: Tue, August 1, 2017 4:49 pm

To: "A discussion list for music-related DSP" <music-dsp@music.columbia.edu>

--



> Roland Badeau, R�my Boyer, Bertrand David. EDS parametric modeling and

> tracking of audio signals. Proc. of the 5th International Conference on

> Digital Audio Effects (DAFx), 2002, Hambourg, Germany. pp.139144, 2002.

> 

>

> I remember reading other papers on EDS models that incorporate time varying

> pitch into the model that came from voice compression research. But I

> couldn't find any in my collection...
�
just a guess, but maybe one could autotune it, recording how much pitch 
correction was needed for each frame so they can re-apply pitch variation later.
just like you could maybe somehow take out tremelo from the decaying
amplitude.
i don't see how that would help the more general case where the pitch of some 
partials varies with respect to others.
i realize that, without a human doing it (like with a talking drum), vibrato or 
tremelo is not what i might expect to hear from a drum hit.

--
r b-j � � � � � � � � �r...@audioimagination.com
"Imagination is more important than knowledge."
___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Re: [music-dsp] tracking drum partials

2017-07-31 Thread Corey K
Ian, do you have some references for the time-varying methods? Just
curious...

On Jul 31, 2017 12:04 AM, "Ian Esten" <i...@ianesten.com> wrote:

> That would also be my first choice. It might also be worth looking at
> modern algorithms in that family of methods. A lot of effort has gone into
> designing exponentially damped sine methods for voice compression and
> transmission. They will be more robust to noise than Prony's method. Some
> methods can even handle arbitrarily coloured noise, not just white. Some
> methods also deal with time-varying damped sinusoids, which would be
> interesting if your drums can change their resonant modes over time, as
> happens with the tabla, timpani and others.
>
> Best,
> Ian
>
> On Sun, Jul 30, 2017 at 12:14 PM, Corey K <corey...@gmail.com> wrote:
>
>> You might want to look into a parametric method of estimating the
>> partials as well, e.g., Prony's method, which could give you much higher
>> resolution than the FFT.
>>
>> Best,
>>
>> Corey Kereliuk
>> www.reverberate.ca
>>
>>
>> On Jul 28, 2017 12:47 PM, "Thomas Rehaag" <develo...@netcologne.de>
>> wrote:
>>
>> see below.
>>
>>
>>>  Original Message
>>> 
>>> Subject: Re: [music-dsp] tracking drum partials
>>> From: "Thomas Rehaag" <develo...@netcologne.de>
>>> Date: Thu, July 27, 2017 4:02 pm
>>> To: music-dsp@music.columbia.edu
>>> 
>>> --
>>>
>>> >
>>> > @Robert:
>>> > I didn't quite get "for analysis, i would recommend Gaussian windows
>>> > because each partial will have it's own gaussian bump in the frequency
>>> > domain ..."
>>> > Looks like you wouldn't just pick up the peaks like I do.
>>> >
>>>
>>> well, i *would* sorta, but it's not always as simple as that.
>>>
>>> ...
>>>
>>>
>>> > Next the highest peaks are taken from every FFT and then tracks in time
>>> > are built.
>>> >
>>> > And it looks like I've just found the simple key for better results
>>> > after putting the whole stuff aside for 3 weeks now.
>>> > It's just to use samples from drums that have been hit softly.
>>> > Else every bin of the first FFTs will be crossed by 2 or 3 sweeps which
>>> > leads to lots of artifacts.
>>>
>>> are you using MATLAB/Octave?  you might need to think about  fftshift() .
>>>
>>> suppose you have a sinusoid that goes on forever and you use a **very**
>>> long FFT and transform it.  if you can imagine that very long FFT as
>>> approximating the Fourier Transform, you will get better than a "peak", you
>>> will get a *spike* and +/- f0, the frequency of that sinusoid (the
>>> "negative frequency" spike will be at N-f0).  in the F.T., it's a pair
>>> dirac impulses at +/- f0.  then when you multiply by a window in the time
>>> domain, that is convolving by the F.T. of the window in the frequency
>>> domain.  i will call that F.T. of the window, the "window spectrum".  a
>>> window function is normally a low-pass kinda signal, which means the window
>>> spectrum will peak at a frequency of 0.   convolving that window spectrum
>>> with a dirac spike at f0 simply moves that window spectrum to f0.  so it's
>>> no longer a spike, but a more rounded peak at f0.  i will call that "more
>>> rounded peak" the "main lobe" of the window spectrum.  and it is what i
>>> meant by the "gaussian bump" in the previous response.
>>>
>>> now most (actually all, to some degree) window spectra have sidelobes
>>> and much of what goes on with designing a good window function is to deal
>>> with those sidelobe bumps.  because the sidelobe of one partial will add to
>>> the mainlobe of another partial and possibly skew the apparent peak
>>> location and peak height.  one of the design goals behind the Hamming
>>> window was to beat down the sidelobes a little.  a more systematic approach
>>> is the Kaiser window which allows you to trade off sidelobe height and
>>> mainlobe width.  you would like *both* a skinny mainlobe and small
>>> sidelobes, but you can't get both without increasing the window length "L".
>>>
>>> another property that *some* windows have that are of

Re: [music-dsp] tracking drum partials

2017-07-30 Thread Ian Esten
That would also be my first choice. It might also be worth looking at
modern algorithms in that family of methods. A lot of effort has gone into
designing exponentially damped sine methods for voice compression and
transmission. They will be more robust to noise than Prony's method. Some
methods can even handle arbitrarily coloured noise, not just white. Some
methods also deal with time-varying damped sinusoids, which would be
interesting if your drums can change their resonant modes over time, as
happens with the tabla, timpani and others.

Best,
Ian

On Sun, Jul 30, 2017 at 12:14 PM, Corey K <corey...@gmail.com> wrote:

> You might want to look into a parametric method of estimating the partials
> as well, e.g., Prony's method, which could give you much higher resolution
> than the FFT.
>
> Best,
>
> Corey Kereliuk
> www.reverberate.ca
>
>
> On Jul 28, 2017 12:47 PM, "Thomas Rehaag" <develo...@netcologne.de> wrote:
>
> see below.
>
>
>> ------------ Original Message ----
>> Subject: Re: [music-dsp] tracking drum partials
>> From: "Thomas Rehaag" <develo...@netcologne.de>
>> Date: Thu, July 27, 2017 4:02 pm
>> To: music-dsp@music.columbia.edu
>> 
>> --
>>
>> >
>> > @Robert:
>> > I didn't quite get "for analysis, i would recommend Gaussian windows
>> > because each partial will have it's own gaussian bump in the frequency
>> > domain ..."
>> > Looks like you wouldn't just pick up the peaks like I do.
>> >
>>
>> well, i *would* sorta, but it's not always as simple as that.
>>
>> ...
>>
>>
>> > Next the highest peaks are taken from every FFT and then tracks in time
>> > are built.
>> >
>> > And it looks like I've just found the simple key for better results
>> > after putting the whole stuff aside for 3 weeks now.
>> > It's just to use samples from drums that have been hit softly.
>> > Else every bin of the first FFTs will be crossed by 2 or 3 sweeps which
>> > leads to lots of artifacts.
>>
>> are you using MATLAB/Octave?  you might need to think about  fftshift() .
>>
>> suppose you have a sinusoid that goes on forever and you use a **very**
>> long FFT and transform it.  if you can imagine that very long FFT as
>> approximating the Fourier Transform, you will get better than a "peak", you
>> will get a *spike* and +/- f0, the frequency of that sinusoid (the
>> "negative frequency" spike will be at N-f0).  in the F.T., it's a pair
>> dirac impulses at +/- f0.  then when you multiply by a window in the time
>> domain, that is convolving by the F.T. of the window in the frequency
>> domain.  i will call that F.T. of the window, the "window spectrum".  a
>> window function is normally a low-pass kinda signal, which means the window
>> spectrum will peak at a frequency of 0.   convolving that window spectrum
>> with a dirac spike at f0 simply moves that window spectrum to f0.  so it's
>> no longer a spike, but a more rounded peak at f0.  i will call that "more
>> rounded peak" the "main lobe" of the window spectrum.  and it is what i
>> meant by the "gaussian bump" in the previous response.
>>
>> now most (actually all, to some degree) window spectra have sidelobes and
>> much of what goes on with designing a good window function is to deal with
>> those sidelobe bumps.  because the sidelobe of one partial will add to the
>> mainlobe of another partial and possibly skew the apparent peak location
>> and peak height.  one of the design goals behind the Hamming window was to
>> beat down the sidelobes a little.  a more systematic approach is the Kaiser
>> window which allows you to trade off sidelobe height and mainlobe width.
>> you would like *both* a skinny mainlobe and small sidelobes, but you can't
>> get both without increasing the window length "L".
>>
>> another property that *some* windows have that are of interest to the
>> music-dsp crowd is that of being (or not) complementary.  that is adjacent
>> windows add to 1.  this is important in **synthesis** (say in the phase
>> vocoder), but is not important in **analysis**.  for example, the Kaiser
>> window is not complementary, but the Hann window is.  so, if you don't need
>> complementary, then you might wanna choose a window with good sidelobe
>> behavior.
>>
>> the reason i suggested Gaussian over Kaiser was just sorta knee-jerk.
>> p

Re: [music-dsp] tracking drum partials

2017-07-30 Thread Corey K
You might want to look into a parametric method of estimating the partials
as well, e.g., Prony's method, which could give you much higher resolution
than the FFT.

Best,

Corey Kereliuk
www.reverberate.ca

On Jul 28, 2017 12:47 PM, "Thomas Rehaag" <develo...@netcologne.de> wrote:

see below.


>  Original Message --------
> Subject: Re: [music-dsp] tracking drum partials
> From: "Thomas Rehaag" <develo...@netcologne.de>
> Date: Thu, July 27, 2017 4:02 pm
> To: music-dsp@music.columbia.edu
> --
>
> >
> > @Robert:
> > I didn't quite get "for analysis, i would recommend Gaussian windows
> > because each partial will have it's own gaussian bump in the frequency
> > domain ..."
> > Looks like you wouldn't just pick up the peaks like I do.
> >
>
> well, i *would* sorta, but it's not always as simple as that.
>
> ...
>
>
> > Next the highest peaks are taken from every FFT and then tracks in time
> > are built.
> >
> > And it looks like I've just found the simple key for better results
> > after putting the whole stuff aside for 3 weeks now.
> > It's just to use samples from drums that have been hit softly.
> > Else every bin of the first FFTs will be crossed by 2 or 3 sweeps which
> > leads to lots of artifacts.
>
> are you using MATLAB/Octave?  you might need to think about  fftshift() .
>
> suppose you have a sinusoid that goes on forever and you use a **very**
> long FFT and transform it.  if you can imagine that very long FFT as
> approximating the Fourier Transform, you will get better than a "peak", you
> will get a *spike* and +/- f0, the frequency of that sinusoid (the
> "negative frequency" spike will be at N-f0).  in the F.T., it's a pair
> dirac impulses at +/- f0.  then when you multiply by a window in the time
> domain, that is convolving by the F.T. of the window in the frequency
> domain.  i will call that F.T. of the window, the "window spectrum".  a
> window function is normally a low-pass kinda signal, which means the window
> spectrum will peak at a frequency of 0.   convolving that window spectrum
> with a dirac spike at f0 simply moves that window spectrum to f0.  so it's
> no longer a spike, but a more rounded peak at f0.  i will call that "more
> rounded peak" the "main lobe" of the window spectrum.  and it is what i
> meant by the "gaussian bump" in the previous response.
>
> now most (actually all, to some degree) window spectra have sidelobes and
> much of what goes on with designing a good window function is to deal with
> those sidelobe bumps.  because the sidelobe of one partial will add to the
> mainlobe of another partial and possibly skew the apparent peak location
> and peak height.  one of the design goals behind the Hamming window was to
> beat down the sidelobes a little.  a more systematic approach is the Kaiser
> window which allows you to trade off sidelobe height and mainlobe width.
> you would like *both* a skinny mainlobe and small sidelobes, but you can't
> get both without increasing the window length "L".
>
> another property that *some* windows have that are of interest to the
> music-dsp crowd is that of being (or not) complementary.  that is adjacent
> windows add to 1.  this is important in **synthesis** (say in the phase
> vocoder), but is not important in **analysis**.  for example, the Kaiser
> window is not complementary, but the Hann window is.  so, if you don't need
> complementary, then you might wanna choose a window with good sidelobe
> behavior.
>
> the reason i suggested Gaussian over Kaiser was just sorta knee-jerk.
> perhaps Kaiser would be better, but one good thing about the Gaussian is
> that its F.T. is also a Gaussian (and there are other cool properties
> related to chirp functions).  a theoretical Gaussian window has no
> sidelobes.  so, if you let your Gaussian window get extremely close to zero
> before it is truncated, then it's pretty close to a theoretical Gaussian
> and you need not worry about sidelobes and the behavior of the window
> spectrum is also nearly perfectly Gaussian and you can sometimes take
> advantage of that.  like in interpolating around an apparent peak (at an
> integer FFT bin) to get the precise peak location.
>
> now you probably do not need to get this anal-retentive about it, but if
> you want to, you can look at this:
> https://www.researchgate.net/publication/3927319_Intraframe_
> time-scaling_of_nonstationary_sinusoids_within_the_phase_vocoder
> and i might have some old MATLAB code to run for it, if

Re: [music-dsp] tracking drum partials

2017-07-28 Thread Thomas Rehaag

see below.


 Original Message 
Subject: Re: [music-dsp] tracking drum partials
From: "Thomas Rehaag" <develo...@netcologne.de>
Date: Thu, July 27, 2017 4:02 pm
To: music-dsp@music.columbia.edu
--

>
> @Robert:
> I didn't quite get "for analysis, i would recommend Gaussian windows
> because each partial will have it's own gaussian bump in the frequency
> domain ..."
> Looks like you wouldn't just pick up the peaks like I do.
>

well, i *would* sorta, but it's not always as simple as that.

...


> Next the highest peaks are taken from every FFT and then tracks in time
> are built.
>
> And it looks like I've just found the simple key for better results
> after putting the whole stuff aside for 3 weeks now.
> It's just to use samples from drums that have been hit softly.
> Else every bin of the first FFTs will be crossed by 2 or 3 sweeps which
> leads to lots of artifacts.

are you using MATLAB/Octave?  you might need to think about  fftshift() .

suppose you have a sinusoid that goes on forever and you use a 
**very** long FFT and transform it.  if you can imagine that very long 
FFT as approximating the Fourier Transform, you will get better than a 
"peak", you will get a *spike* and +/- f0, the frequency of that 
sinusoid (the "negative frequency" spike will be at N-f0).  in the 
F.T., it's a pair dirac impulses at +/- f0.  then when you multiply by 
a window in the time domain, that is convolving by the F.T. of the 
window in the frequency domain.  i will call that F.T. of the window, 
the "window spectrum".  a window function is normally a low-pass kinda 
signal, which means the window spectrum will peak at a frequency of 0. 
  convolving that window spectrum with a dirac spike at f0 simply 
moves that window spectrum to f0.  so it's no longer a spike, but a 
more rounded peak at f0.  i will call that "more rounded peak" the 
"main lobe" of the window spectrum.  and it is what i meant by the 
"gaussian bump" in the previous response.


now most (actually all, to some degree) window spectra have sidelobes 
and much of what goes on with designing a good window function is to 
deal with those sidelobe bumps.  because the sidelobe of one partial 
will add to the mainlobe of another partial and possibly skew the 
apparent peak location and peak height.  one of the design goals 
behind the Hamming window was to beat down the sidelobes a little.  a 
more systematic approach is the Kaiser window which allows you to 
trade off sidelobe height and mainlobe width.  you would like *both* a 
skinny mainlobe and small sidelobes, but you can't get both without 
increasing the window length "L".


another property that *some* windows have that are of interest to the 
music-dsp crowd is that of being (or not) complementary.  that is 
adjacent windows add to 1.  this is important in **synthesis** (say in 
the phase vocoder), but is not important in **analysis**.  for 
example, the Kaiser window is not complementary, but the Hann window 
is.  so, if you don't need complementary, then you might wanna choose 
a window with good sidelobe behavior.


the reason i suggested Gaussian over Kaiser was just sorta knee-jerk. 
 perhaps Kaiser would be better, but one good thing about the Gaussian 
is that its F.T. is also a Gaussian (and there are other cool 
properties related to chirp functions).  a theoretical Gaussian window 
has no sidelobes.  so, if you let your Gaussian window get extremely 
close to zero before it is truncated, then it's pretty close to a 
theoretical Gaussian and you need not worry about sidelobes and the 
behavior of the window spectrum is also nearly perfectly Gaussian and 
you can sometimes take advantage of that.  like in interpolating 
around an apparent peak (at an integer FFT bin) to get the precise 
peak location.


now you probably do not need to get this anal-retentive about it, but 
if you want to, you can look at this:
https://www.researchgate.net/publication/3927319_Intraframe_time-scaling_of_nonstationary_sinusoids_within_the_phase_vocoder 

and i might have some old MATLAB code to run for it, if you want it 
(or anyone else), lemme know.



big thanks for the elaborate explanation!
Looks like you've turned my head into the right direction.
Had a look at the spectrum of my window: a 4096 Hann win. in the middle 
of 64k samples.

A big sidelobe party!
A 64k gaussian window that just sets priority to an area of ~4096 
samples will of course fix that.


Btw.: no Matlab here. C++ only.

Best Regards,

Thomas


___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp



Re: [music-dsp] tracking drum partials

2017-07-27 Thread robert bristow-johnson







 Original Message 

Subject: Re: [music-dsp] tracking drum partials

From: "Thomas Rehaag" <develo...@netcologne.de>

Date: Thu, July 27, 2017 4:02 pm

To: music-dsp@music.columbia.edu

--



>

> @Robert:

> I didn't quite get "for analysis, i would recommend Gaussian windows

> because each partial will have it's own gaussian bump in the frequency

> domain ..."

> Looks like you wouldn't just pick up the peaks like I do.

>
�
well, i *would* sorta, but it's not always as simple as that.
...


> Next the highest peaks are taken from every FFT and then tracks in time

> are built.

>

> And it looks like I've just found the simple key for better results

> after putting the whole stuff aside for 3 weeks now.

> It's just to use samples from drums that have been hit softly.

> Else every bin of the first FFTs will be crossed by 2 or 3 sweeps which

> leads to lots of artifacts.

�
are you using MATLAB/Octave? �you might need to think about �fftshift() .
�
suppose you have a sinusoid that goes on forever and you use a **very** long 
FFT and transform it. �if you can imagine that very long FFT as approximating 
the Fourier Transform,
you will get better than a "peak", you will get a *spike* and +/- f0, the 
frequency of that sinusoid (the "negative frequency" spike will be at N-f0). 
�in the F.T., it's a pair dirac impulses at +/- f0. �then when you multiply by 
a window in the time domain, that is
convolving by the F.T. of the window in the frequency domain. �i will call that 
F.T. of the window, the "window spectrum". �a window function is normally a 
low-pass kinda signal, which means the window spectrum will peak at a frequency 
of 0. � convolving that window spectrum
with a dirac spike at f0 simply moves that window spectrum to f0. �so it's no 
longer a spike, but a more rounded peak at f0. �i will call that "more rounded 
peak" the "main lobe" of the window spectrum. �and it is what i meant by the 
"gaussian bump" in
the previous response.
now most (actually all, to some degree) window spectra have sidelobes and much 
of what goes on with designing a good window function is to deal with those 
sidelobe bumps. �because the sidelobe of one partial will add to the mainlobe 
of another partial and possibly
skew the apparent peak location and peak height. �one of the design goals 
behind the Hamming window was to beat down the sidelobes a little. �a more 
systematic approach is the Kaiser window which allows you to trade off sidelobe 
height and mainlobe width. �you would like *both* a
skinny mainlobe and small sidelobes, but you can't get both without increasing 
the window length "L".
another property that *some* windows have that are of interest to the music-dsp 
crowd is that of being (or not) complementary. �that is adjacent windows add to 
1. �this is
important in **synthesis** (say in the phase vocoder), but is not important in 
**analysis**. �for example, the Kaiser window is not complementary, but the 
Hann window is. �so, if you don't need complementary, then you might wanna 
choose a window with good sidelobe behavior.
the
reason i suggested Gaussian over Kaiser was just sorta knee-jerk. �perhaps 
Kaiser would be better, but one good thing about the Gaussian is that its F.T. 
is also a Gaussian (and there are other cool properties related to chirp 
functions). �a theoretical Gaussian window has no sidelobes.
�so, if you let your Gaussian window get extremely close to zero before it is 
truncated, then it's pretty close to a theoretical Gaussian and you need not 
worry about sidelobes and the behavior of the window spectrum is also nearly 
perfectly Gaussian and you can sometimes take advantage of
that. �like in interpolating around an apparent peak (at an integer FFT bin) to 
get the precise peak location.
now you probably do not need to get this anal-retentive about it, but if you 
want to, you can look at this:
https://www.researchgate.net/publication/3927319_Intraframe_time-scaling_of_nonstationary_sinusoids_within_the_phase_vocoder�

and i might have some old MATLAB code to run for it, if you want it (or anyone 
else), lemme know.
�
--
r b-j � � � � � � � � �r...@audioimagination.com
"Imagination is more important than knowledge."
___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Re: [music-dsp] tracking drum partials

2017-07-27 Thread Esteban Maestre

https://ccrma.stanford.edu/~scottl/thesis.html

Esteban


On 7/27/2017 4:02 PM, Thomas Rehaag wrote:

@Esteban:
Have you got a link to a (Levine and Smith, 98) PDF? Found the other 
one and it looks promising after a short glimpse.


--

Esteban Maestre
Computational Acoustic Modeling Lab
Department of Music Research, McGill University
http://ccrma.stanford.edu/~esteban

___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp



Re: [music-dsp] tracking drum partials

2017-07-27 Thread Olli Niemitalo
Thomas,

you could try https://github.com/mangledjambon/drumbooth to separate
sinusoidal and impulse-like parts of sounds, and then do your additive
analysis on the sinusoidal part only. The deconstruction is based on Derry
FitzGerald HARMONIC/PERCUSSIVE SEPARATION USING MEDIAN FILTERING, Proc. of
the 13th Int. Conference on Digital Audio Effects (DAFx-10), Graz, Austria
, September 6-10, 2010,
http://dafx10.iem.at/papers/DerryFitzGerald_DAFx10_P15.pdf .

-olli

On Thu, Jul 27, 2017 at 3:08 AM, robert bristow-johnson <
r...@audioimagination.com> wrote:

>
>
>
>
> Thomas, are you recording single isolated drum hits that you analyze?  or
> are you trying to lift this partial information from a drum track with many
> hits?
>
> if the latter, you'll need to do a transient detection which should be
> pretty easy with monophonic drum hits.  if the former, then you just need
> to trim off the silence preceding the onset of the hit.  and the
> Levine/Smith model is good, but you can probably do it most easily on
> isolated drum hits even without much reference.
>
> then you want a window (or a half-window, like the latter half of a Hann
> window) to capture the attack transient and window down to zero at the
> "steady-state".  if there are no snare wires or beads, then i don't think
> there should be much of a noise component after the initial transient that
> you window off.  so what is left after the transient should be a collection
> of decaying sinusoidal partials
>
> since it's a drum and not a string or horn, the partials are not likely
> harmonic.  so then you need to use well-overlapped windowed frames and FFT
> it.  for analysis, the windows need not be a Hann or Hamming or some
> complementary window.  for analysis, i would recommend Gaussian windows
> because each partial will have it's own gaussian bump in the frequency
> domain and there should be very little sidelobe behavior between partials.
>  the frequency and amplitude of the partial should be the horizontal
> location and height of the interpolated peak of each gaussian bump in the
> frequency domain.  remember the phase for a particular partial of a frame
> should be the phase of the same partial in the previous frame plus the
> (angular) frequency times the elapsed time between frames.  that should
> help confirm tracking of the partial to make sure you're connecting each
> partial to it's counterpart in the previous frame.  if you're careful, the
> envelopes should be smooth and mostly monotonically decreasing in amplitude.
>
> then synthesize with basic sinusoidal additive synthesis, adding to the
> windowed attack.
>
> good luck.
>
> r b-j
>
> >
> > Sinusoidal-only modeling could be limiting for some of the intrinsic
> > features of percussive sounds.
> > A possibility would be to encode partials + noise (Serra and Smith, 89)
> > or partials + noise + transients (Levine and Smith, 98).
> >
> >
> >
> > On 7/26/2017 4:37 PM, Thomas Rehaag wrote:
> >>
> >> can anybody tell me how to track drum partials? Is it even possible?
> >> What I'd like to have are the frequency & amplitude envelopes of the
> >> partials so that I can rebuild the drum sounds with additive synthesis.
> >>
> >> I've tried it with heavily overlapping FFTs and then building tracks
> >> from the peaks.
> >> Feeding the results into the synthesis (~60 generators) brought
> >> halfway acceptable sounds. Of course after playing with FFT- and
> >> overlapping step sizes for a while.
> >>
> >> But those envelopes were strange and it was very frustrating to see
> >> the results when I analyzed a synthesized sound containing some simple
> >> sine sweeps this way.
> >> Got a good result for the loudest sweep. But the rest was scattered in
> >> short signals with strange frequencies.
> >>
> >> Large FFTs have got the resolution to separate the partials but a bad
> >> resolution in time so you don't even see the higher partials which are
> >> gone within a short part of the buffer.
> >> With small FFTs every bin is crowded with some partials. And every
> >> kind of mask adds the more artifacts the smaller the FFT is.
> >>
> >> Also tried BP filter banks. Even worse!
> >> It's always resolution in time and frequency fighting each other too
> >> much for this subject.
> >>
>
>
> --
>
>
>
>
> r b-j  r...@audioimagination.com
>
>
>
>
> "Imagination is more important than knowledge."
>
> ___
> dupswapdrop: music-dsp mailing list
> music-dsp@music.columbia.edu
> https://lists.columbia.edu/mailman/listinfo/music-dsp
>
___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Re: [music-dsp] tracking drum partials

2017-07-26 Thread robert bristow-johnson



�
�
Thomas, are you recording single isolated drum hits that you analyze? �or are 
you trying to lift this partial information from a drum track with many hits?
if the latter, you'll need to do a transient detection which should be pretty 
easy with monophonic drum
hits. �if the former, then you just need to trim off the silence preceding the 
onset of the hit. �and the Levine/Smith model is good, but you can probably do 
it most easily on isolated drum hits even without much reference.
then you want a window (or a half-window, like the latter
half of a Hann window) to capture the attack transient and window down to zero 
at the "steady-state". �if there are no snare wires or beads, then i don't 
think there should be much of a noise component after the initial transient 
that you window off. �so what is left after the
transient should be a collection of decaying sinusoidal partials
since it's a drum and not a string or horn, the partials are not likely 
harmonic. �so then you need to use well-overlapped windowed frames and FFT it. 
�for analysis, the windows need not be a Hann or Hamming or some
complementary window. �for analysis, i would recommend Gaussian windows because 
each partial will have it's own gaussian bump in the frequency domain and there 
should be very little sidelobe behavior between partials. �the frequency and 
amplitude of the partial should be the horizontal
location and height of the interpolated peak of each gaussian bump in the 
frequency domain. �remember the phase for a particular partial of a frame 
should be the phase of the same partial in the previous frame plus the 
(angular) frequency times the elapsed time between frames. �that should
help confirm tracking of the partial to make sure you're connecting each 
partial to it's counterpart in the previous frame. �if you're careful, the 
envelopes should be smooth and mostly monotonically decreasing in amplitude.
then synthesize with basic sinusoidal additive synthesis, adding
to the windowed attack.
good luck.
r b-j


>

> Sinusoidal-only modeling could be limiting for some of the intrinsic

> features of percussive sounds.

> A possibility would be to encode partials + noise (Serra and Smith, 89)

> or partials + noise + transients (Levine and Smith, 98).

>

>

>

> On 7/26/2017 4:37 PM, Thomas Rehaag wrote:

>>

>> can anybody tell me how to track drum partials? Is it even possible?

>> What I'd like to have are the frequency & amplitude envelopes of the

>> partials so that I can rebuild the drum sounds with additive synthesis.

>>

>> I've tried it with heavily overlapping FFTs and then building tracks

>> from the peaks.

>> Feeding the results into the synthesis (~60 generators) brought

>> halfway acceptable sounds. Of course after playing with FFT- and

>> overlapping step sizes for a while.

>>

>> But those envelopes were strange and it was very frustrating to see

>> the results when I analyzed a synthesized sound containing some simple

>> sine sweeps this way.

>> Got a good result for the loudest sweep. But the rest was scattered in

>> short signals with strange frequencies.

>>

>> Large FFTs have got the resolution to separate the partials but a bad

>> resolution in time so you don't even see the higher partials which are

>> gone within a short part of the buffer.

>> With small FFTs every bin is crowded with some partials. And every

>> kind of mask adds the more artifacts the smaller the FFT is.

>>

>> Also tried BP filter banks. Even worse!

>> It's always resolution in time and frequency fighting each other too

>> much for this subject.

>>





--
�


r b-j � � � � � � � � �r...@audioimagination.com
�


"Imagination is more important than knowledge."
___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Re: [music-dsp] tracking drum partials

2017-07-26 Thread Esteban Maestre

Hi Thomas,

Sinusoidal-only modeling could be limiting for some of the intrinsic 
features of percussive sounds.
A possibility would be to encode partials + noise (Serra and Smith, 89) 
or partials + noise + transients (Levine and Smith, 98).


Cheers,

Esteban



On 7/26/2017 4:37 PM, Thomas Rehaag wrote:

Dear DSP Experts,

can anybody tell me how to track drum partials? Is it even possible?
What I'd like to have are the frequency & amplitude envelopes of the 
partials so that I can rebuild the drum sounds with additive synthesis.


I've tried it with heavily overlapping FFTs and then building tracks 
from the peaks.
Feeding the results into the synthesis (~60 generators) brought 
halfway acceptable sounds. Of course after playing with FFT- and 
overlapping step sizes for a while.


But those envelopes were strange and it was very frustrating to see 
the results when I analyzed a synthesized sound containing some simple 
sine sweeps this way.
Got a good result for the loudest sweep. But the rest was scattered in 
short signals with strange frequencies.


Large FFTs have got the resolution to separate the partials but a bad 
resolution in time so you don't even see the higher partials which are 
gone within a short part of the buffer.
With small FFTs every bin is crowded with some partials. And every 
kind of mask adds the more artifacts the smaller the FFT is.


Also tried BP filter banks. Even worse!
It's always resolution in time and frequency fighting each other too 
much for this subject.


Any solution for this?

Best Regards,

Thomas

___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp



--

Esteban Maestre
Computational Acoustic Modeling Lab
Department of Music Research, McGill University
http://ccrma.stanford.edu/~esteban

___
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp