Hot answers tagged

11

When talking about modeling, there are two things that usually get modeled: 1. the guitar amp, and 2. the speaker cabinet. Only the latter is modeled by an impulse response, which means that the cabinet is simply represented by an LTI system and implemented by convolution. This is of course an approximation but it works fairly well. You can find a lot of ...


8

If you're an EE student, you will have encountered the term LTI System (or you certainly will soon enough!): A system that, no matter the absolute time, outputs, given the same input, the same output; if you scale the input by a factor, the output is scaled by the same factor. Linear, time-invariant, so to speak. LTI systems can be applied to time-domain ...


3

I would recommend a streaming RMS detector. The standard approach for computing a streaming RMS detector is to square the input samples and then apply these to a 1st-order lowpass filter. If you want the output in dB, take 10*log10() of this quantity. If you want the output in volts, take the square root of this quantity. If Logs and square-roots are too ...


3

i will agree with Hilmar that it can depend on the specific application. if the application is to essentially losslessly store or transmit audio to later retrieve or receive that audio, including conversions of format (and this includes the A/D and D/A and SRC) then i would say that there is no good reason for a process to not be linear phase (which is ...


2

In practice, this does not matter much. All serious work normalizes audio levels. In our code base, there's even some code that runs a nightly check to verify our algorithms are gain-independent. We recognize that the external format is typically 16 bits, but this does not need to match the internal formats used in transforms. Internally, extra precision ...


2

The semantics for a sampled audio signal is very simple. Each sample represents an amplitude, each sample is done at a specific time. If you create a signal using a microphone, the amplitude is related to the pressure as measured by the microphone diaphragm. The sampling process will introduce time in the equation. In the question, there are two sets of ...


2

I don't know much about this semantics? of WAV files but their numerical format is the following. (assuming mono) Given a recording with 8-bit per sample precision, then those samples are unsigned integers taking values between $0$ and $255$. Due to being unsigned, to represent negative values, there is a bias of $128$, and the sample values are actually ...


2

If you’re looking for modeling the amplifier itself, convolution will not provide a complete model for the internal processes. However, convolution is the basis for a number of cab modeling products. I have a line 6 helix that I use frequently. A dry guitar doesn’t sound great. A dry guitar through an amp model sounds bad. A dry guitar through an amp and ...


2

There are many good answers here. Additional information can be found in this paper: SIGNAL-MATCHED POWER-COMPLEMENTARY CROSS-FADING AND DRY-WET MIXING This is a rather math heavy paper that employs statistical signal processing methods. However, it will give you a more rigorous understanding if you are up to the task. Good Luck!


2

My suggestion is to use a Numerically Controlled Oscillator (NCO). A typical NCO effectively has one cycle of a sine wave in memory and can play back that sine wave as a continuous waveform with very high frequency resolution. But this needn't be a sine wave: you could have any waveform in memory and adjust the rate at which it plays back in the same fashion....


2

As I said in a comment, you can get the envelope of a signal by running it through a lowpass filter. The steps required for this (usually) are Go through all the samples (x(N) ) and check for negative samples. Convert them to positive values Implement a lowpass filter (FIR) by creating a filter kernel of appropriate length M (h(M) ). Note that your FIR ...


1

If you use a high quality interpolator, then you can interpolate a copy of the data at non-integer offsets. If you use a Sinc interpolator on bandlimited data, then the interpolated delayed samples will be near perfect (minus numerical and quantization noise) at any fractional delay (even as close as you can get to irrational fractions using finite width ...


1

This is going to be a long answer. I'm going to start with an analysis of your files and what you can do to improve the audio. I'll also try your files out on an algorithm I designed to detect heartbeats. After that, I'll describe what went into designing my algorithm and how it works. Then I'll make some general suggestions for how to get started with ...


1

Simply observe the noise for a longish while and estimate a PSD of it – for example, simply by doing an FFT and observing the magnitude of that, and calculating the mean square error to the theoretical (triangular) PSD of pink noise. That can be easily implemented only using Python/numpy (fft, abs, mean are all implemented in numpy). Another, pretty ...


1

Yes the sinc kernel $$h[n] = \frac{\sin(\omega_c n)}{\pi n}$$ is the theoretical result for the ideal lowpass brickwall filter whose gain is one and cutoff frequency is $\omega_c$ radian per samples. Your filter impulse response will be samples of that function. Truncate it symmetrically to some finite length, and then apply a window on those samples. ...


1

You may be working the wrong problem here: echo data hiding seems like a sub-optimal choice for an acoustic channel (speaker -> microphone). Transmitting data acoustically in a room is very hard. The channel is quite complicated and difficult to deal with: Loudspeakers tend to be very non-flat and have a fair bit of non-linear distortion. Microphones are ...


1

The answer is that it depends. The wave file format is a RIFF file which is broken up into chunks. One chunk, "fmt ", is the format chunk describing the format. Within that chunk, the 16-bit word at index 8 within that chunk specifies the format. The only one that I know of that is defined is 1, which is a Linear PCM format. In this mode, specifies the ...


1

librosa does one thing, scipy does another Actually you are only using scipy.io.wavfile to read in the int16 values. The difference in results comes from the next step y.astype(float32) where y is a NumPy array, a general purpose numeric container, unaware of the fact that audio data is conventionally in the [-1,1] range in floating point format.


1

Your samples have a finite bitwidth. For example, assume your samples have 16 bit width; if you increase their amplitude beyond what these 16 bit can represent, you end up with an overflow. In case your audio samples being signed integers, that overflow typically first manifests as a sign inversion – exactly what you're seeing here. (That's because only the ...


1

We discussed this phenomenon on the music-dsp mailing list in May 2014. For long enough a period, the audible repetition is not directly about the frequency spectrum but that instances of white noise are not white but usually contain distinct features or patterns that can be learned and then recognized in the later periods. In some instances, there will be ...


1

Rather than generating a longer block of data, i would like to make a longer file by concatenating the block of 4096 samples. Bad idea. That means your noise becomes perfectly correlated with a period of 4096 samples, and that's definitely not white noise anymore, and you'll stand a realistic chance of noticing that audibly; depending on the sampling rate, ...


1

For example, if you double the sampling rate, energy will be boosted by 3db. But power will remain same. Simply, because you have now double samples.


Only top voted, non community-wiki answers of a minimum length are eligible