HouseCurve is an iOS application for tuning audio systems. It turns your iPhone/iPad into a capable audio analyzer using the built in microphone. It can be used for tuning tasks like creating room correction filters, subwoofer time alignment, level matching and choosing crossovers. Download here.
This app note will demonstrate room correction using HouseCurve and Volumio’s FusionDSP plugin.
- An audio system running Volumio 3 with the FusionDSP plugin.
- A Volumio control (web interface, dedicated app, etc).
- An iPhone or iPad with HouseCurve installed on it.
HouseCurve achieves reasonable measurement accuracy with the built in iPhone or iPad microphones. For more information see microphones.
You will need a way to transfer files from your iPhone/iPad to Volumio. Use whatever method you are most comfortable with. This app note will use Volumio’s
/mnt/INTERNAL Samba share (comes configured in the Raspberry Pi image).
Samba on Linux doesn’t always work with iOS devices. To ensure compatibility, install the Fruit Samba VFS module. Without this, file transfers may fail with “attribute not found” errors. For instructions see.
For best results, ensure the audio system is set up correctly before applying room correction.
Using the Volumio control, install the plugin by going to Volumio settings -> plugins. You will need to sign your device into a MyVolumio account (free or paid) to see the plugin.
HouseCurve measures your audio system by listening to it play a sine sweep test signal. There are several ways to do this as described in connecting.
For this app note, we will perform measurements using externally played sweeps. This method doesn’t require a direct connection to the audio system. Instead, the test signal is played manually while HouseCurve just listens.
The FusionDSP plugin makes this easy by shipping with HouseCurve’s test signal. To access it, go to FusionDSP settings. In the “Tools” section, select “install tools”. When the install completes, choose HouseCurveTestSignal.wav as the file to play. Press “Play selected file” to play the sweep.
Next, we need to configure HouseCurve for external sweeps. Launch HouseCurve on your iPhone/iPad. Tap to display the Measure Setup screen, then tap Stimulus Type.
Set the stimulus type to External Sine Sweep.
Using the Volumio control, access the FusionDSP plugin and ensure that equalization is disabled.
Launch HouseCurve on your iPhone/iPad. Tap to clear previous measurements.
Tap to display the Plot Setup screen. Ensure that the plot mode is “average”.
To measure with external sweeps, first tap on HouseCurve to start the measurement process. Then use Volumio to play back the test signal. Ensure that the iPhone/iPad microphone is pointed in the direction of the speakers. Measure at a normal listening volume.
Note - HouseCurve must remain in the foreground to measure. If you need to trigger playback with the same iPhone/iPad, start a looped playback, then switch back to HouseCurve to start the measurement. HouseCurve will only collect one measurement at a time.
HouseCurve will automatically average measurements as they are collected. To get a realistic measurement of your listening area, it is important to average measurements from several locations. For a desk (near field), try measuring from 2-3 locations. For a living room, try 3-5 locations.
When you are satisfied with the average measurement, save it by tapping . The saved measurement will be used to generate the room correction filters.
Tap and select Equalize. HouseCurve will display the Equalize tool.
The Equalize tool can produce PEQ (biquad) or FIR filters to correct a saved measurement to a target curve. For this app note, we will use PEQ filters and export them as parametric equalizer settings (ie: Freq, Gain, Q). Note that FusionDSP can also support FIR filters via convolution. The FIR filter produced by HouseCurve has better low frequency resolution, resulting in smoother bass and nicer sound stage/imaging. However, this comes at a cost of higher CPU usage.
The generation process is instantaneous, so the display automatically updates to reflect any setting change (target curve, saved measurement, filter settings, etc).
HouseCurve allocates filters to regions with the largest deviation from the target curve, preferring lower frequencies and ignoring areas with low coherence (SNR). You can adjust the target curve and coherence blanking threshold by tapping . For more information, see gain management.
Tap to display the Equalize Setup screen. Ensure filter type is PEQ. The default settings should provide a good correction, but feel free to experiment.
Filters can be exported to a file by tapping . Ensure that the format is set to “Parametric EQ Settings”. For more information on the format, see file formats.
Tap Export filters, select a location for the filter file and then tap save. The filter file must be placed in
/mnt/INTERNAL/FusionDSP/peq for FusionDSP to see it. Using Volumio’s Samba share, you can save directly to this location:
Using the Volumio control, go to the settings for the FusionDSP plugin. Set Type of DSP to “Parametric equalizer” and apply the setting.
Scroll down to the section labelled Import A Local EQ File. Select the filter file and press load. If the filter isn’t available in the drop down, make sure it was placed in
The filters will be loaded and enabled immediately. Scroll back up to the Settings section to see the loaded filters. You may need to adjust the automatic preamp / gain settings to match the original playback levels. Volumio seems to lower the overall gain when filters are loaded.
With the filters loaded, you can repeat the original measurements to confirm that your system now matches the target curve. The average should be reasonably close to the response predicted by HouseCurve. Happy listening!