User:Garland

From DRC

Jump to: navigation, search

This is a work in progress - check back later for more info and pictures.


Contents

Introduction

I have had good luck using DRC to tune a stereo two-way hybrid horn system in a moderate-sized living room otherwise not well suited for listening. The computer provides both crossover and room-correction filtering. Every driver has its own amplifier channel (four channels total).

The results sound great, and have considerable mad-scientist appeal.

Audio System

Low-frequency: One JBL 2226H 15-inch driver per channel, each in its own homemade sealed cabinet made from MDF and stuffed with fiberglass. The cabinets have an internal volume of 10 cubic feet. They are driven by a Bryston 3B solid-state amplifier with 120 watts per channel.

High-frequency: One TAD 4002 compression driver with a Bentwood 200Hz Horn per channel. They are driven by a single-ended triode amplifier based on EL34 and 6NS7 tubes.

The speakers are crossed at 550 Hz.

Volume Control: A 6-channel stepped attenuator using Welborne modules.

Sound Card: RME Multiface

Measurement: Behringer ECM8000 microphone, Behringer mixer (mainly for phantom power).

Computer System

Intel Core Duo running Ubuntu Linux.

Intel Pentium 4 running Windows (SPDIF output goes to RME SPDIF input).

Readynas network storage box for storing music.

Software

qloud[1] (impulse response measurement) for (1) measuring driver response to select crossover point, (2) measuring step response to time-correct my drivers, and (3) generating the impulse response curves for DRC.

Octave[2] (Matlab workalike) for generating crossover filters using the fir1[3] function. I initially used this to provide driver equalization as well using the fir2[4] function. Now DRC does this and more, and I use Octave only to generate crossover filters.

DRC (Digital Room Correction) for generating room-correction/driver equalization filters.

Brutefir (convolution engine) for applying filters during playback and time-correcting the drivers.

jackd (digital audio bus) for plugging everything together at playback.

quackctl (frontend for jackd) for configuring jackd.

alsaplayer or xmms (players) for playback. Both support jack output.


Procedure

I first use qloud to measure the response of each driver, to select a crossover point. Based on my measurements, I chose 550 Hz for my current set of drivers.

Then I use Octave's FIR function to generate simple crossover filters using this Octave crossover script adapted from Chris Birkinshaw's section on this site.

I plug the resulting filters into brutefir using this brutefir configuration script also adapted from Chris Birkinshaw's pages on this site.

Next, I record impulse responses of the system (including croossovers) in-room using qloud and a Behringer ECM8000 microphone. Care is required to avoid saturating the input during recording. Unsurprisingly, this gives very bad results.

Using the step response calculated by qloud I adjust the delay parameters in brutefir to adjust the drivers into time-alignment (my compression drivers are 3 feet behind the bass drivers because the horns are large). Then I take new impulse response measurements.

Using the impulse response measurements of the time-aligned system, I use DRC to generate room-correction filters from the recorded impulse responses. I find that the soft.drc configuration file distributed with DRC works best for my taste and system.

Finally, I plug the room-correction filters into brutefir before the crossover using this second brutefir congifuration script

I playback using alsaplayer or xmms.

Personal tools