Mathematica has excellent functionality for the production of computer sound generation and signal analysis. Putting these together with a USB microphone seemed a good way to examine the frequency response of my home music system.
The system is one I have had since the early 80's. A newer Yamaha CD player drives a Hafler preamp, which goes through a Dahlquist electronic crossover to two 220W Hafler stereo power amps. One of these drives a pair of Dahlquist DQ10 5-way speakers, and the other drives a pair of Dahlquist DQ1W subwoofers, crossed over at 60Hz. Most of the system is now 30 years old, and I have wondered at times if all of the drivers of this 6-way system are still functioning correctly. And so this experiment.
The system, in my living room:
Two Hafler 220 power amps, driven by a Hafler preamp through a Dahlquist electronic crossover:
Closeup of a Dahlquist DQ10 and DQ1W subwoofer:
(The guitar enjoys listening.)
The DQ10 is 5-way, with four of the drivers mounted in an open compartment:
The Blue Yeti USB Mic:
Attached are two notebooks and some ancillary files:
"Interrogation Signals" designs an audio test file for stimulating the system. It produces sounds intended to interrogate the response of an audio system. These sounds consist of tones, sequences of tones, combinations (sums) of tones, and white noise. The discrete tones were selected to match the separate bands of the 6-way crossover. These are then exported as a WAV file. This file can be input to another program (I used ITunes) and used to generate an audio CD. The signal wav file is too large to attach, but when this notebook is evaluated it will build the sound and export it as a wav file to the notebook directory.
This CD was then played on my audio system. The sound so produced can be listened to -- the tone sequence is good for this -- or recorded. I used a Blue Yeti USB microphone and the free audio tool Audacity on my laptop for this. Separate recordings were made for the left and right channel using the audio system balance control, and then put together into a single stereo track using Audacity. (I could have made separate left and right segments in Mathematica.) The combined-discrete-tones and white noise segments were saved separately for analysis. They are attached. (The whole track was saved also, but it exceeds 10MB so it can't be attached.)
The "Analyze Signals" notebook analyzes these recorded responses to signals generated by the Interrogation Signals notebook. Note that the response is really a convolution: CDplayer * Amplifier * speakers * room * microphoneSystem. And room response depends on speaker placement, microphone placement, and the eigenmode structure of the room.
To execute the notebook using the data from my system, place it in a directory and put the wav files in the same Directory. Then just evaluate the notebook.
Comments and criticisms are very welcome!
Thanks for sharing, David, awesome! It would be really cool to see a few photos of your system mics including. I love old electronics and it would give a better feel of the project ;)
Thanks, Sam. I'm glad you enjoyed it. And I think some photos would be nice, so I've updated the post.