Crossover filters
Date | 2016-03-01 20:15 |
From | Peter Burgess |
Subject | Crossover filters |
Hi there, I'm planning to knock up a multi-band compressor, and I was wondering if csound has any filters built for this job? My first thought was to use butterworths, but I've just read that the combined signal has a slight peak at the crossover point. Apparently Linkwitz-Riley filters are better for the job. Do we have anything like that? Pete |
Date | 2016-03-01 20:50 |
From | "Dr. Richard Boulanger" |
Subject | Re: Crossover filters |
We could really use a multi-band compressor opcode! -dB _____________________________________________ Dr. Richard Boulanger Professor of Electronic Production and Design Professional Writing and Music Technology Division Berklee College of Music 1140 Boylston Street, FB-75 Boston, MA 02215-3693 Office @ 161 Mass Ave - 4th Floor 617-747-2384 (office) 774-488-9166 (cell) ______________________________________________ rboulanger@berklee.edu (email) https://www.facebook.com/richard.boulanger.58 (facebook) ______________________________________________ President of Boulanger Labs - http://boulangerlabs.com Director of Csounds.com - http://csounds.com Author & Editor: The Csound Book - http://mitpress.mit.edu/books/csound-book Author & Editor: The Audio Programming Book - http://mitpress.mit.edu/books/audio-programming-book ______________________________________________ about: http://www.boulangerlabs.com/about/richardboulanger/ about: http://www.csounds.com/community/developers/dr-richard-boulanger/ ______________________________________________ music: http://www.csounds.com/community/developers/dr-richard-boulanger/dr-richard-boulanger-music/ On Tue, Mar 1, 2016 at 3:15 PM, Peter Burgess <pete.soundtechnician@gmail.com> wrote: Hi there, I'm planning to knock up a multi-band compressor, and I was |
Date | 2016-03-01 21:35 |
From | Peter Burgess |
Subject | Re: Crossover filters |
I was thinking that too, and a big part of me wants to try and write one, but I've already started 3 opcodes and never found the time to finish any of them, so I should probably stop kidding myself that I'm gonna get round to something like that in the near future, haha! :D On Tue, Mar 1, 2016 at 8:50 PM, Dr. Richard Boulanger |
Date | 2016-03-01 23:14 |
From | Rory Walsh |
Subject | Re: Crossover filters |
Why not just use the opcodes we have to create one? On 1 Mar 2016 21:35, "Peter Burgess" <pete.soundtechnician@gmail.com> wrote:
Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here
I was thinking that too, and a big part of me wants to try and write |
Date | 2016-03-01 23:28 |
From | "Dr. Richard Boulanger" |
Subject | Re: Crossover filters |
For sure Rory,
Csound mailing list
Csound@listserv.heanet.ie
https://listserv.heanet.ie/cgi-bin/wa?A0=CSOUND
Send bugs reports to
https://github.com/csound/csound/issues
Discussions of bugs and features can be posted here
That is what we do; but Csound could really use some "mastering" opcodes not just "mastering instruments" Dr.B. _____________________________________________ On Tue, Mar 1, 2016 at 6:14 PM, Rory Walsh <rorywalsh@ear.ie> wrote:
|
Date | 2016-03-01 23:30 |
From | Rory Walsh |
Subject | Re: Crossover filters |
A suite of mastering UDOs would be a good start. Gleb proposed such a thing some time back, but I don't think much came of it. On 1 March 2016 at 23:28, Dr. Richard Boulanger <rboulanger@berklee.edu> wrote:
|
Date | 2016-03-01 23:36 |
From | Peter Burgess |
Subject | Re: Crossover filters |
That's fine, and is what I was intending, but does Csound have a suitable filter for a crossover? As I have read and now also tested, the butterworth isn't suitable On Tue, Mar 1, 2016 at 11:30 PM, Rory Walsh |
Date | 2016-03-02 00:58 |
From | Peter Burgess |
Subject | Re: Crossover filters |
Ah hang on, a further read about crossovers says that the most commonly used filters are 4th order Linkwitz–Riley filters, which apparently just use two cascaded 2nd order butterworth filter.... I'm no DSP expert, but doesn't that just make it a 4th order butterworth? On Tue, Mar 1, 2016 at 11:36 PM, Peter Burgess |
Date | 2016-03-02 16:04 |
From | Peter Burgess |
Subject | Re: Crossover filters |
Attachments | Spectrum_2x2Pole.png Spectrum_4Pole.png Spectrum_Unfilt.png multibandCompKick_2x2PoleSeries.wav multibandCompKick_4Pole.wav multibandCompKick_Unfiltered.wav |
I've done some 2 band crossover tests using these two butterworth filter configurations: icrossfreq = 60 ; Crossover Test 1 (butxp opcodes) alowsig1 butlp gacompsig, icrossfreq alowsig2 butlp alowsig1, icrossfreq ahisig1 buthp gacompsig, icrossfreq ahisig2 buthp ahisig1, icrossfreq out alowsig2 + ahisig2 ; Crossover Test 2 (clfilt opcode) inpol init 4 alowsig clfilt gacompsig, icrossfreq, 0, inpol ahisig clfilt gacompsig, icrossfreq, 1, inpol out alowsig + ahisig I have tested these two crossovers with a rich kick sound, and with pink noise, using various different crossover frequencies. When watching the amplitudes in the terminal, it would appear that both crossover setups produce an output with a higher peak somewhere, compared to the unaffected sound. For the kick, the unaltered sound has an amplitude of 0.49851. With a crossover frequency of 60, Test 1 produces amplitudes of between 0.72 and 0.86, while Test 2 produces amplitudes of between 0.75 and 0.94. I couldn't hear a great deal of audible difference between the three, so I spectrum analysed some samples. I have attached these spectrums, as well as the audio samples. The spectrum analysis shows a slight difference near the crossover point for Test 1, but a much more noticeable difference around the crossover for Test 2. I am drawing the conclusion that Test 1's crossover is better, but are there filters that will do even better still? Is it possible or easy to get a totally level crossover? Or could I just limit the output of the crossovers to the original signals level? On Wed, Mar 2, 2016 at 12:58 AM, Peter Burgess |
Date | 2016-03-04 14:30 |
From | Peter Burgess |
Subject | Re: Crossover filters |
Anyone have any ideas on this? Basically I just need to know, is it generally acceptable to just live with a bit of a peak in the crossover points, or should I aim for a near flat response all round? Are there any better filters for the job, or any tricks (like simply using a limiter) that will help me overcome? Pete On Wed, Mar 2, 2016 at 4:04 PM, Peter Burgess |
Date | 2016-03-04 15:30 |
From | Steven Yi |
Subject | Re: Crossover filters |
Hi Pete, I've been interested in this thread and did some preliminary research but haven't had any time to investigate further. Out of curiosity, have you tried measuring the bandpass signal returned from the statevar filter? steven On Fri, Mar 4, 2016 at 9:30 AM, Peter Burgess |
Date | 2016-03-04 15:58 |
From | Peter Burgess |
Subject | Re: Crossover filters |
No actually, I've not gone beyond the butterworths yet. I will certainly give that a try! I'm currently working on an opcode that relates to the crossover experiments, so I will get back onto the filters again tomorrow I think, or as soon as I have my opcode fully operational. Let me know if you find anything out :D On Fri, Mar 4, 2016 at 3:30 PM, Steven Yi |
Date | 2016-03-05 11:25 |
From | Peter Burgess |
Subject | Re: Crossover filters |
I've had a go with svfilter, and I've tried both one instance, and 2 instances in series (actually 3, the second for lowpass, and the third for highpass). I've had a go with statevar aswell as you suggested, but only with a single instance so far. I'm not sure if I'm using it in the best way for the task though. I am using default oversampling (3 times), and a Q of 1. Will that give the best roll-off for a crossover? I'm not entirely sure what figure to use for Q for no resonance with statevar. It just occured to me though, that I can simply use 2x2 pole LP butterworths for the low band, and simply take that away from the original signal for the high band, thus achieving the exact oposite of the lowband curve. Am I right in remembering that that's how you make a highpass filter anyway? This might not give a symetrical curve, but it shoudn't be too far off, and it's probably more important to have a flat frequency response than symetrical curves. What dyou think? On Fri, Mar 4, 2016 at 3:58 PM, Peter Burgess |