Ever thought of using Signal Wizard 2?

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
Octave

Ronanski-

Here is a sample Octave script that will generate filters for a 3way crossover. Just change fxo_low and fxo_hi to the two crossover points, and it will generate low-pass, band-pass, and high-pass filters suitable for use with brutefir. You will need to delete the first few lines of the output files - it will be obvious which ones. I will post the corresponding brutefir config file in s separate post

#
# Robert Scheer 10/6/2004
# Chris Birkinshaw 06/05/05
#
# Beginning of user parameters
#
n=12; # exponent for filter size
fxo_low=450; # ir_low crossover frequency in Hz
fxo_hi=13000; # mid/high crossover frequency in Hz
fs=44100; # sample rate in Hz
#
# End of user parameters
#
#
k=2^n; # order of filter
fn_low=2*fxo_low/fs; # normalized ir_lowsonic cutoff frequency
fn_hi=2*fxo_hi/fs; # normalized xo frequency

i=linspace(1,k,k); # k_tap filter array

ir_hi=fir1(k,fn_hi,'high','scale'); # high_pass impulse response
ir_mid=fir1(k,[fn_low,fn_hi],'pass','scale'); # band_pass ir
ir_low=fir1(k,fn_low,'low','scale'); # low_pass ir

ir_hitxt=ir_hi(i); # my klugey way of taking k elements
ir_midtxt=ir_mid(i); # from the k_element impulse responses
ir_lowtxt=ir_low(i);

save -ascii ./high_oct.txt ir_hitxt
save -ascii ./mid_oct.txt ir_midtxt
save -ascii ./low_oct.txt ir_lowtxt
 
Octave/brutefir

Ronanski-

Here is the corresponding brutefir config file I use. Note that the 4096 filter length corresponds to the n=2^12 filter order in the Octave script.

Pick up a multiface on ebay (I did) and give this a try. It's way cool.

filter_length: 4096,32;
float_bits: 32;
sampling_rate: 44100;
overflow_warnings: true;
max_dither_table_size: 0;
monitor_rate: true;
powersave: true;
lock_memory: false;
debug: false;
logic: "cli" { port: 3000; };


#########################
# xover coeffs

coeff "low" {
format: "text";
filename: "./low.txt";
shared_mem: false;
};

coeff "mid" {
format: "text";
filename: "./mid.txt";
shared_mem: false;
};

coeff "high" {
format: "text";
filename: "./high.txt";
shared_mem: false;
};

##########################
# io

input "in_1", "in_2" {
device: "jack" { ports: "", ""; };
sample: "AUTO";
channels: 2;
};

output "out_1", "out_2", "out_3", "out_4", "out_5", "out_6" {
device: "jack" { ports: "", "",
"", "",
"", ""; };
delay: 0,0,12,12,0,0;
sample: "AUTO";
channels: 6;
};

###################################
# xover filtering

filter "midrange_left" {
from_inputs: "in_1";
outputs: "out_1";
coeff: "mid";
};

filter "midrange_right" {
from_inputs: "in_2";
outputs: "out_2";
coeff: "mid";
};

filter "low_left" {
from_inputs: "in_1";
outputs: "out_3";
coeff: "low";
};

filter "low_right" {
from_inputs: "in_2";
outputs: "out_4";
coeff: "low";
};

filter "tweeter_left" {
from_inputs: "in_1";
outputs: "out_5";
coeff: "high";
};

filter "tweeter_right" {
from_inputs: "in_2";
outputs: "out_6";
coeff: "high";
};
 
Octave/brutefir

I neglected to mention that after deleting the first four lines of the text files output by the Octave script you will need to rename them without the _oct part of the filename. I automate all of this with yet another script (I also do DRC with brutefir, which you should also try).
 
A few notes I'd like to add if you want to try brutefir.

With Virtual Fidelity you can change your filters, delays and attenuation in real time, and it will create the brutefir config files for you.

Also, the M-Audio Delta 410 card is available at newegg now for $82. They call it the 9900 but it is a 410. This is a really great card and gives you 8 analog outs. That's enough to do a three way stereo with a sub.
 
johnnymc said:
A few notes I'd like to add if you want to try brutefir.

With Virtual Fidelity you can change your filters, delays and attenuation in real time, and it will create the brutefir config files for you.

Also, the M-Audio Delta 410 card is available at newegg now for $82. They call it the 9900 but it is a 410. This is a really great card and gives you 8 analog outs. That's enough to do a three way stereo with a sub.

Thank you johnnymc! I checked out the 410 and it has a LF spec of down to 22hz unfortunately I need subsonic capability.... but interesting low cost product!

I'm going to be using long-throw woofers and active equalization to try to pump out 8-18Hz for my sub-sub's.

Thanks alot
R
 
Re: Octave/brutefir

houstonian said:
Ronanski-

Here is the corresponding brutefir config file I use. Note that the 4096 filter length corresponds to the n=2^12 filter order in the Octave script.

Pick up a multiface on ebay (I did) and give this a try. It's way cool.

filter_length: 4096,32;
float_bits: 32;
sampling_rate: 44100;
overflow_warnings: true;
max_dither_table_size: 0;
monitor_rate: true;
powersave: true;
lock_memory: false;
debug: false;
logic: "cli" { port: 3000; };


#########################
# xover coeffs

coeff "low" {
format: "text";
filename: "./low.txt";
shared_mem: false;
};

coeff "mid" {
format: "text";
filename: "./mid.txt";
shared_mem: false;
};

coeff "high" {
format: "text";
filename: "./high.txt";
shared_mem: false;
};

##########################
# io

input "in_1", "in_2" {
device: "jack" { ports: "", ""; };
sample: "AUTO";
channels: 2;
};

output "out_1", "out_2", "out_3", "out_4", "out_5", "out_6" {
device: "jack" { ports: "", "",
"", "",
"", ""; };
delay: 0,0,12,12,0,0;
sample: "AUTO";
channels: 6;
};

###################################
# xover filtering

filter "midrange_left" {
from_inputs: "in_1";
outputs: "out_1";
coeff: "mid";
};

filter "midrange_right" {
from_inputs: "in_2";
outputs: "out_2";
coeff: "mid";
};

filter "low_left" {
from_inputs: "in_1";
outputs: "out_3";
coeff: "low";
};

filter "low_right" {
from_inputs: "in_2";
outputs: "out_4";
coeff: "low";
};

filter "tweeter_left" {
from_inputs: "in_1";
outputs: "out_5";
coeff: "high";
};

filter "tweeter_right" {
from_inputs: "in_2";
outputs: "out_6";
coeff: "high";
};

Thank you hustonian, I'll try this after I settle on a sound card ... Suse 10.1 seems to be working well. Appreciate the sample definition - makes things very easy.

Ronan
 
johnnymc said:
Ronan:

If you go with the RME cards, I'd be interested in what you come up with to do 7.1. I think it's possible to get 14 output channels with two of their ADE 8O add-on cards. That will be pushing the price over $1200.


Hi Johnnymc,

I'm probably going to have to ask RME to be certain -- yes this is definitely a huge investment. I could buy a very nice standalone crossover+EQ for $1200 (or multiple Behringer units). But, the RME does go down to 5HZ.

if anyone else here knows the answer to this, can you please advise?

1. The replacement for the RME 96/32 PAD card is the HDSP9632 which has only stereo analog output. You need to buy the expansion card(s) -- apparently 4ch or I or O each card. The 9632 can handle supposedly 6 I/O simultaneously. Is my assumption I'd need one output card for use with a 2X6 (the 4ch output card being stereo) correct? My info from http://www.rme-audio.com/english/hdsp/hdsp9632.htm#TECHNICAL.

2. is this card compatible with Suse 10.1 (linux in general) and with BruteFIR and Jack etc?

Thanks everyone, this being the 10,000$ question...
Ronan
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.