VOGONS


MT32 Impulse response

Topic actions

First post, by BadHellie

User metadata
Rank Newbie
Rank
Newbie

In analog.cpp I read in the comments:
”...the coefficients below are found by windowing the inverse DFT of the 1024 pin frequency response converted to the minimum phase..."
Can somebody explain what does "1024 pin" means ? Maybe he rather means "bins" ?
But my point is: how can you compute the freq resp of the hardware analog part, since we can't generate a single sample pulse via software ? Even by setting a very short adsr (lev1=100, lev2=0, t1=0, t2=0) you still can't generate a single sample pulse from eg. a square wave or pcm wave... Maybe the IR was sampled by feeding physically an external short pulse ? I think that, not being able to generate a pulse by software, any attempt to guess the real IR will always be a rude approximation. Or I am so wrong ? Thx

Reply 1 of 2, by multiplebaboons

User metadata
Rank Newbie
Rank
Newbie
BadHellie wrote on 2025-07-18, 21:47:
In analog.cpp I read in the comments: ”...the coefficients below are found by windowing the inverse DFT of the 1024 pin frequen […]
Show full quote

In analog.cpp I read in the comments:
”...the coefficients below are found by windowing the inverse DFT of the 1024 pin frequency response converted to the minimum phase..."
Can somebody explain what does "1024 pin" means ? Maybe he rather means "bins" ?
But my point is: how can you compute the freq resp of the hardware analog part, since we can't generate a single sample pulse via software ? Even by setting a very short adsr (lev1=100, lev2=0, t1=0, t2=0) you still can't generate a single sample pulse from eg. a square wave or pcm wave... Maybe the IR was sampled by feeding physically an external short pulse ? I think that, not being able to generate a pulse by software, any attempt to guess the real IR will always be a rude approximation. Or I am so wrong ? Thx

You need a signal processing forum for questions like this. 😉 It is very likely that this refers to bin frequency, as in the simple fact that this is a 1024-bin FFT. I haven't done any signal processing in a long time, but this does sound like a typo.

Reply 2 of 2, by BadHellie

User metadata
Rank Newbie
Rank
Newbie

Yep but my question was not about DSP, since I know perfectly all the ways one could process an IR, convert to min phase etc. Simply, since I have no obvious means to contact Munt developers, I was trying here.
My point is that I don't see how could they extrapolate or estimate the MT32 IR, considering that there is no way to have the LA32 engine generate a one-sample pulse !
One could in theory use two square waves of lowest frequency, one slightly out of pitch: at some point in the output you get a very short pulse because of interference. But the LA32 engine never outputs true square waves: even when setting TVF=100 and a maximally opened TVF ENV, very low frew square waves (eg midi note # 0) still get a cosine edge, for some strange reason. And I mentioned very low freq because one must have enough silence samples past the pulse, to capture a long enough IR (in particular for the DC response). So I was wondering the trick they used, because (other than the pin/bin typo) that is not explained in the source ! 😀