Bjorn Roche
• Member for 9 years, 7 months
• Last seen more than 1 year ago

## 24 Answers

7 votes

the formula $$\text{result} = A + B - AB$$ doesn't make any sense, even if you mean something other than $AB = A*B$. One thing you need to think about is that sound varies above and below zero. A ...

View answer
Accepted answer
7 votes

I don't know the precise formula for 1920's gramophone, but this is the general process for audio antiquing and should get you started. Depending on the exact settings, you can get vinyl, telephone, ...

View answer
4 votes

while you could do this in the frequency domain, there are many problems with this approach, some of which are outlined here. A better approach is to use a time domain filter. There is a tutorial ...

View answer
4 votes

Here are some suggestions: There are plenty of opensource implementations (Sox, Audacity, etc). Even if you don't understand them, you might be able to translate the code from C to javascript. I'm ...

View answer
4 votes

A few things: Not all instruments have partials neatly defined by the $h_n = nf$. Kettle drums would be an obvious example, but bells are another. In this case, you will be way off looking in the "...

View answer
4 votes

Your technique might work, provided you window and so on correctly, but it does not really strike me as the right approach for pitch vibrato for a lot of reasons, mostly that the change in pitch is ...

View answer
3 votes

As someone suggested in the comments, filtering a sine wave is just a change in amplitude and possibly phase, although you will have some edge effects at the beginning. I assume this is not simply an ...

View answer
3 votes

I know the signal could be passed through a low pass filter, and then windowed before the FFT. Yes, it could be, and it's usually advisable to use a window, but these are not just things you do ...

View answer
3 votes

I think you can accomplish this pretty easily: start with a low sample rate (simply because there is no reason for a high sample rate). use a low pass filter to eliminate signal above ~100 Hz. (You'...

View answer
Accepted answer
2 votes

Audio EQ in by FFT?!? Please don't do that. CPU usage will be the least of your worries. http://blog.bjornroche.com/2012/08/why-eq-is-done-in-time-domain.html There was also a related discussion ...

View answer
2 votes

While I agree with one of the comments that using speech recognition techniques might be a good start, these sounds are different and I'm not aware of anyone having done any research into categorizing ...

View answer
2 votes

Another answer suggests PLL. I think you should stay away from PLL: most literature on pitch tracking focuses on auto-correlation (search for "YIN Pitch Tracking" -- YIN is a modern pitch tracking ...

View answer
Accepted answer
2 votes

Wiener filtering is one approach. It might even be the best approach. A Wiener filter is designed to minimize the noise (in the least squares sense) and invert the effect of the impulse response, ...

View answer
Accepted answer
2 votes

I am not %100 sure, but it sounds like you are recording the file in stereo. If this is the case, then Windows Sound recorder is taking stereo input, which means it's accessing 2 AD converters which ...

View answer
2 votes

There are many alternatives, but it depends on what you are doing. Physically, I would argue our ears are more like a parallel filter bank than an FFT, which gives them good time resolution, and a ...

View answer
1 votes

I've never implemented this myself, but here are my (possibly incorrect) thoughts: The general method of feedback elimination is to Detect the frequencies that are feeding back Tune a filter to ...

View answer
1 votes

Loudness is defined as human perception of volume. In general, there is a very good correspondence between the two. Therefore, you can often use one as a proxy for the other. In this case, you can ...

View answer
Accepted answer
1 votes

All formulas I'm using come from the wikipedia page you cite in your code. First, calculate RC. We have, fc = 1/(2*pi*RC) so RC = 1/(2*pi*fc) Now, ALPHA is simply: ALPHA = dt / ( dt + RC ) ...

View answer
1 votes

There are two things you can do: Use a different algorithm, like autocorrelation. Use the phase information! This technique is discussed in chapter 9 of DAFX. You can find matlab source here. DAFX ...

View answer
Accepted answer
1 votes

Based on the spectrum, it looks to me like this was generated by FM synthesis. The mathematics of starting with a sound and working backwards to generate it using FM synthesis can be time consuming. ...

View answer
1 votes

As hotpaw2 said, you are not going to hear an echo or delay effect unless your signal changes, so you are not hearing it because you are sending in pure, unchanging signal. You might want to try ...

View answer
Accepted answer
1 votes

The first and best solution is to increase the input gain which should be possible on most platforms. If not, then read on... If multiplying by a constant caused distortion then either: it is too ...

View answer
1 votes

One possible approach would be to use an echo cancellation algorithm to do the heavy lifting of telling you where the echos were coming in. Just make sure the code you use is able to give you that ...

View answer
Accepted answer
-1 votes

Not sure I understand your question exactly, but make sure to take the magnitude not just the real/imaginary components. Also, it will probably help to window your incoming data, and it sounds like ...

View answer