User:JohnElliott
From DRC
Contents |
My system is modest, but sounds as good as any I've heard. It has really exceeded my expectations. It consists of Magenepan MMG and MMG-W mains planar speakers (more on that later), a HSU VTF sub, JVC RX-F10 6.1 digital hybrid amplifier, and an HTPC with a M-Audio Delta 410 sound card. I also love my Panasonic LT500U high def front projector. You might be familiar with my brutEQ equalizer experiment or my Private Radio web-based jukebox.
Room Treatments
I'm a real believer in room treatments and speaker placements as essential. This is from experience. In Spring of 2004 I moved my system into a small room (15x8x10h). This was good as the room is isolated from the rest of my house so I could turn it up loud. But the small room had muddy bass and a loss of resolution, no detail at all in low-mids on down.
I solved most of that problem with ten 4x2 foot bass traps that I made for around $300. See my bass traps recipe. This made a phenomenal difference. I was now hooked on room treatments.
Speaker Placements
| http://www.privateradio.org/blog/wp-content/maggies.gif |
Speaker placement with Magnepans is really tricky but if you get it right you know it. Close your eyes and they disappear, and it really sounds like the musicians are right there in front of you. Alison Krauss is giving you a private concert! But here's the unusual part of my setup. I'm using two sets of speakers as mains, MMGs and MMG-W speakers, in a strange config -- The MMGs are facing each other, and only 10 inches from the sidewalls (see diagram).
I still have a few problems to solve, there is some boomy bass that come out in about 10% of my recordings. There's a problem with a very slight buzz that's noticeable with male singers -- sounds like they smoked even more cigarettes than they do.
Update: I've now split the MMGW and MMGS into two separate systems, MMGW for home theater and MMGS for two channel.
Brutefir
Now I am in the first phases of my Brutefir project. My goal is to take my system as far as it can go, and that means Brutefir and more amps! So far, I've generated digital crossovers using Uli Brüggemann's maXO program. I'm using an AMD Athlon 800mhz PC with Redhat Fedora Core 3, alsa and jack. I ripped my CDs with flac lossless compression. For the player, I use mplayer with Ed Wildgoose's jack:brutefir patches. Mplayer is a nearly universal audio player, and does a great job with DVDs and video too. My Delta 410 card has eight channels out, so I am using one for sub, two for the MMGs and two for the MMG-Ws. And I've got the sub/MMGs crossed at 80 and the MMG-Ws at 100. Is it an improvement over my receiver's 80hz crossover? Maybe, certainly different. Needs more experimentation.
Update 9/25/05 I've made some changes to my system recently. The MMGs are now dedicated to two channel listening, and are tucked away when not in use. I use the MMGWs for theatre with the HSU sub.
This allowed me to do some experimenting. Mainly bi-amping.
I bypassed the MMGs internal crossovers and wired the drivers direct to a four channel power amplifier. I confess to being a little scared of blowing the tweeters.
I then created digital xover filters using <a href="http://www.duffroomcorrection.com/wiki/User:Birkinshawc">Chris Birkinshaw's</a> octave scripts. I crossed at different frequencies, 85 and 1500 hz.
The filters were then implemented with the brutefir convolution engine. Speakers are the aforementioned MMGs and a HSU sub.
I then pumped some Ella/Armstrong flac files through mplayer and into the brutefir engine. What emerged on the other side was the most detailed trumpet I've ever heard. Close your eyes and you can see the stage lights glistening off Satchmo's horn.
Wow, this active system was worth the effort!
What I really liked about this was I could control the levels of the drivers separately. I've felt the MMGs were a little bright and I was able to tame this by adjusting the mixer levels on the analog outs. This could also be tweaked with brutefirs attenuate directive.
The brutefir software is elegant and simple. It amazes me to see the effort and expense people go through to achieve active systems in the forums and DIY groups. With Brutefir it is nearly effortless, and with amazing flexibility. The filters can be made and implemented in minutes.
Photos
Coming soon.
Scripts
jack/brutefir/mplayer startup scripts
#!/bin/sh killall brutefir killall mplayer killall jackd sleep 3 ipcrm -M 0x00282929 jackd --realtime --timeout 5000 -d alsa -d hw:1 -r 44100 -p 2048 -H > /dev/null 2>&1 & 2>/dev/null sleep 3 brutefir /prirad/brutefir/brutefir-sub.conf > /dev/null 2>&1 & 2>/dev/null mplayer -ao jack:brutefir music.................
brutefir config file
Updated 09/23/05 to include digital xover
## DEFAULT GENERAL SETTINGS ##
float_bits: 32; # internal floating point precision
sampling_rate: 44100; # sampling rate in Hz of audio interfaces
filter_length: 2048,32; # length of filters
#config_file: "~/.brutefir_config"; # standard location of main config file
overflow_warnings: true; # echo warnings to stderr if overflow occurs
show_progress: true; # echo filtering progress to stderr
max_dither_table_size: 0; # maximum size in bytes of precalculated dither
allow_poll_mode: true; # allow use of input poll mode
monitor_rate: true; # monitor sample rate
powersave: true; # pause filtering when input is zero
lock_memory: true; # try to lock memory if realtime prio is set
convolver_config: "./brutefir_convolver"; # location of convolver config file
modules_path: "/usr/brutefir/lib";
logic:
"cli" { port: 3000; };
input "left-in", "right-in" {
device: "jack" { ports: "alsa_pcm:capture_1", "alsa_pcm:capture_2"; };
sample: "AUTO";
channels: 2;
};
output "left-mid-out", "right-mid-out","left-high-out","right-high-out","sub-out","ext-1","ext-2" {
device: "jack" { ports: "alsa_pcm:playback_1", "alsa_pcm:playback_2","alsa_pcm:playback_7","alsa_pcm:playback_8","alsa_pcm:playback_4","alsa_pcm:playback_5","alsa_pcm:playback_6"; };
delay: 0,0,0,0,156,0,0;
dither: true;
sample: "AUTO";
channels: 7;
};
###################################
# xover filtering
filter "mid-left" {
inputs: "left-in";
outputs: "left-mid-out";
coeff: "midBW85hz-150khz.pcm";
#coeff: "mid-l";
#coeff: "mid_low";
#to_filters: "left_eq";
#coeff: "80hz-fl";
#coeff: -1;
};
filter "mid-right" {
inputs: "right-in";
outputs: "right-mid-out";
#to_filters: "right_eq";
coeff: "midBW85hz-150khz.pcm";
#coeff: "mid-r";
#coeff: "mid_low";
#coeff: "80hz-fr";
#coeff: -1;
};
filter "high-left" {
inputs: "left-in";
outputs: "left-high-out";
#coeff: "high-l";
#coeff: "mid_high";
coeff: "highBW85hz-150khz.pcm";
#to_filters: "left_eq_sr";
#coeff: "80hz-sl";
#coeff: -1;
};
filter "high-right" {
inputs: "right-in";
outputs: "right-high-out";
#coeff: "high-r";
#coeff: "mid_high";
coeff: "highBW85hz-150khz.pcm";
#to_filters: "right_eq_sr";
#coeff: "80hz-sr";
#coeff: -1;
};
filter "sub" {
inputs: "left-in","right-in";
outputs: "sub-out";
#coeff: "low";
#coeff: "sub_low";
coeff: "lowBW85hz-150khz.pcm";
#to_filters: "sub_eq";
#coeff: -1;
};
filter "ext-left" {
inputs: "left-in";
outputs: "ext-1";
coeff: "80hz-fl";
#coeff: "100hz-fl";
#coeff: "highBW85hz-150khz.pcm";
};
filter "ext-right" {
inputs: "right-in";
outputs: "ext-2";
coeff: "80hz-fl";
#coeff: "80hz-XOHighR44.pcm";
#coeff: "highBW85hz-150khz.pcm";
};
#########################
# xover coeffs
coeff "sub_low" {
format: "text";
filename: "/prirad/brutefir/filters/sub_low.txt";
shared_mem: false;
};
coeff "mid_low" {
format: "text";
filename: "/prirad/brutefir/filters/mid_low.txt";
shared_mem: false;
};
coeff "mid_high" {
format: "text";
filename: "/prirad/brutefir/filters/mid_high.txt";
shared_mem: false;
};
coeff "lowBW85hz-150khz.pcm" {
format: "FLOAT_LE";
filename: "/prirad/brutefir/filters/lowBW85hz-150khz.pcm";
shared_mem: false;
};
coeff "midBW85hz-150khz.pcm" {
format: "FLOAT_LE";
filename: "/prirad/brutefir/filters/midBW85hz-150khz.pcm";
shared_mem: false;
};
coeff "highBW85hz-150khz.pcm" {
format: "FLOAT_LE";
filename: "/prirad/brutefir/filters/highBW85hz-150khz.pcm";
shared_mem: false;
};
coeff "100hz-fl" {
format: "FLOAT_LE";
filename: "/prirad/brutefir/100hz-XOHighL44.pcm";
shared_mem: false;
};
coeff "100hz-fr" {
format: "FLOAT_LE";
filename: "/prirad/brutefir/100hz-XOHighR44.pcm";
shared_mem: false;
};
coeff "80hz-fl" {
format: "FLOAT_LE";
filename: "/prirad/brutefir/100hz-XOHighL44.pcm";
shared_mem: false;
};
coeff "80hz-fr" {
format: "FLOAT_LE";
filename: "/prirad/brutefir/100hz-XOHighR44.pcm";
shared_mem: false;
};
coeff "low" {
format: "FLOAT_LE";
filename: "/prirad/brutefir/tproject/low.pcm";
shared_mem: false;
};
coeff "mid-l" {
format: "FLOAT_LE";
filename: "/prirad/brutefir/tproject/mid.pcm";
shared_mem: false;
};
coeff "mid-r" {
format: "FLOAT_LE";
filename: "/prirad/brutefir/tproject/mid.pcm";
shared_mem: false;
};
coeff "high-l" {
format: "FLOAT_LE";
filename: "/prirad/brutefir/tproject/high.pcm";
shared_mem: false;
};
coeff "high-r" {
format: "FLOAT_LE";
filename: "/prirad/brutefir/tproject/high.pcm";
shared_mem: false;
};
Final Goals
So I'm waiting for behringer measurement mic and preamp to ship from Parts Express and will be doing the full correction using Birkinshaw's excellent instructions. If there's an improvement I'll start biamping the MMGs and I think that will be as far as I can go with my gear.
Update 9/25/05 So the next project is to get high-quality power amps. My research has led me to <a href="http://www.hypex.nl/">UCD 180</a> Class D Digital amplifiers. I'll probably build a pair of two-channel boxes for bi-amping. These are DIY modules and look fairly easy to build.
