Preface: I'm taking this thread in a slightly different direction now. I want to test more rigorously
what simhub is actually outputting to our tactile transducers. If simhub is set to make a pulse of xHz for y milliseconds (in response to a gear change or whatever), does it make a nice clean tone at xHz like a tone generator would? Or does it also produce significant harmonic content that requires the use of a crossover or low pass filter to block out? We're about to find out.
This post will contain many images, they will all be thumbnails to improve readability.
I have reason to believe my BK LFE my be faulty or at least worn out and tired, therefore I am removing it from the equation completely. I have a particularly capable DIY subwoofer setup (ask if you want more details), so I can just point simhubs output to my subwoofers instead of the BK and measure the response with my UMIK-1 calibrated measurement microphone (
link).
Measurement methods: I will be using three separate and independent methods to measure simhubs output which I will refer to throughout this post. I will also be doing preliminary and control testing on all three methods using REW (free audio analysis/measurement/correction software used by audio professionals,
link). I will use its tone generator function which is known to be accurate, good quality and free from unwanted harmonics to perform control tests on the three measurement methods.
1.) Creating a virtual audio device using Jriver WDM (thanks to
@Andrew_WOT for showing me this). Simhub can output directly to this audio device, Jriver includes basic spectral analysis. This has the benefit of being entirely within software so many factors that could affect the final output are removed including characteristics of the soundcard and amplifier. Therefore this should provide the 'cleanest' measurement with the least distortions. (Jriver has frequency labels on the horizontal axis, but none on the vertical amplitude axis. I have determined the vertical divisions are every 3dB)
2.) The loop-back method. I will connect the output of the soundcard directly back to it's input with a short cable, then analyse that input with a spectral analysis software. In this case I am using Visual Analyser (
link) which I have used before for spectral analysis and software-oscilloscope functions. It's basic and a bit slow but it's accurate. This method excludes the factors of the amp and the transducer (modeled here by a subwoofer) but includes the factor of the soundcard output.
3.)Sending the output from the soundcard to my subwoofers (via their amplifier of course), I then measure their output with the UMIK-1 calibrated USB microphone, microphone input is analysed and displayed as frequency spectrum by REW. This is probably the most revealing method as it includes everything in the signal chain including amplifiers. (I'm using the same model amplifier for subwoofers and tactile transducer). Therefore it likely to be the least 'clean' of the measurement methods as it has the most possibilities for distortion or other reproduction error.
Preliminary and control measurements:
So lets start of with method no.3, sending output to a subwoofer which performs exactly the same function as a tactile transducer except it puts it's vibration energy into the air instead of into an object like a seat.
Since the microphone picks up every sound in the room, not just what I want it measure, I need to take a baseline measurement with no sound playing at all, no audio output, nothing. Here it is.
Ideally I should measure nothing at all, absolute silence. In reality there are always ambient noises, we are accustomed to ignoring them, but the microphone picks them up all the same, I've circled the main noises in yellow. The first peak at 25Hz and 45dB, I have no clue what that is, maybe airflow from the airbricks, maybe my breath, maybe someone using a powertool a few houses away, who knows. The second peak at 50Hz and 35dB is unmistakably mains hum (UK mains electricity is 50Hz) coming through the subwoofers, I can't hear it at all but the mic can. The peak at 100Hz is the 1st harmonic of the mains hum. The noise at 600-1000Hz at 20dB is my computer case fans.
Just to make sure those 50Hz and 100Hz peaks are indeed mains hum, I'll power off the amps driving the subwoofers and take another baseline measurement.
Yep, as expected the 50Hz and 100Hz peaks are significantly diminished. Still some tiny amount of hum at those frequencies from other electrical equipment, screen, PSU in the PC etc.
Right so lets make some tones and see how they measure. Here is a 400Hz sine-wave tone played from REW and measured by method no.1.
A nice sharp peak at 400Hz with no harmonics or distortion, just as expected, so far so good.
The same 400Hz tone measured by method no.2
Uh oh, significant odd-order harmonics present, not good. But looking at the top graph, it's obvious the signal is just clipped. Obviously I am clipping the soundcard input. I will lower the soundcard output from 100% to 50% and try again.
There we go, much better. A nice, sharp peak at 400Hz, as expected.
400Hz tone again now measured by method no.3.
Nice sharp peak at 400Hz again, awesome. All three measurement methods working well so far.
Just to double check, lets check all three methods again, this time at 40Hz.
Method no.1 and no.2 shown in the same screenshot
Hmm, how strange. Method 2 (visual analyser, green plot) is showing a nice clean peak. Jriver analyser (yellow plot) is showing a very broad peak. Why the difference? Which is correct? Let's look the at result from the microphone (method no.3) to find out.
A nice sharp peak that agrees with method no.2. So why is method no.1 showing a different result? The answer is it is using a smaller FFT sample size (and I'm not sure it can be increased? Maybe I missed that setting?)
A little background: all three methods use what's called a Fast Fourier Transform in order to calculate the data needed to plot a spectral analysis. The accuracy of data decreases as the frequency of the measured signal decreases. To increase accuracy of the calculations more samples can be taken but this means more calculations which means it's slower.
Lets look at this in more detail. Here is the 40Hz tone measured by method no.2 with a sample size of 65536 (the sample size used for all measurements with method no.2 unless otherwise stated)
Nice clean 40Hz peak. Now look at the same tone but with the sample size reduced to 4096.
We can see the peak has broadened because the data at this low frequency is less accurate due to insufficient FFT sample size. It looks just like the result from method no.1 from before.
We can now conclude that method no.1 is unsuitable for measuring tones at low frequencies due to low FFT sample size. Perhaps there is an option hidden in Jriver to increase the sample size? I looked and couldn't find it.
So I have validated that methods 2 and 3 give results consistent with each other. Moving on now to the actual tests of Simhub I will only be using testing methods 2 and 3.
Actual Simhub Tests:
I'm going to start simple and just look at one frequency and the 'add white noise' function for today. Later I will look at other frequencies and combined effects that are overlapping each other.
I set simhub to make a 42Hz tone. Result from method no.2
Lots of harmonic noise, but look at the top trace, the signal is clipped again. I'll reduce the gain on the effect in simhub and try again.
Ah, much better. There is a little bit of noise but it is centred around the fundamental. No significant harmonics.
And the same 42Hz effect measured by method no.3
Aha! A nice sharp 42Hz peak. Some low level noise but no harmonics.
Let's turn on simhub's 'add white noise' feature and see what happens. I'm adding white noise at 25hz, so ideally we should be getting output between 17 and 67Hz and not much outside that range. Let's find out.
Result from method no2 and no3 side by side.
Pretty much as expected. Wide bandwidth noise from 17 to 67Hz and not much output outside of that range. Certainly no harmonics or other serious issues.
Measurements from simultaneous simhub effects overlapping to follow at a later date.