I wrote a small plugin for spreading mono content to stereo and I would
like to receive some feedback on it from people more knowledgable in DSP
matters than me.
It has one nice property: It spreads the signal over the spectrum by way
of a conjugate pair of random phase all-pass filters, and since it's a
conjugate pair it sums back to unity when down-mixing to mono. So, no
ugly comb filter effects like when downmixing a Haas-expanded signal.
The page has an example sound..
How it works:
It's actually rather simple:
1. create a vector of random phases (matlab notation):
filter_length = 1000;
spread = pi;
hfft1 = exp(-1i*(spread*rand(filter_length,1) - spread/2));
And for the second filter just take the complex conjugate:
hfft2 = conj(hfft1);
This ensures that what is a phase theta in the first filter becomes a
phase of -theta in the second filter, and summed that just gives a phase
2. Then assemble the coefficients such that it corresponds to a fft of a
real signal and do the inverse fft (possibly I have a small error here
which i needed to fix with the 'symmetric' flag in matlab):
f1 = ifft([1; hfft1; conj(hfft1((end-1):-1:1))], 'symmetric');
f2 = ifft([1; hfft2; conj(hfft2((end-1):-1:1))], 'symmetric');
3. The two IRs f1 and f2 implement the pair of filters and can be
applied via convolution (which the above plugin does).
It seems to be possible with little ill effect to reduce the length of
the filter down to a size of 50 samples or so by just cutting it off
before the convolution.
What do you think?
The FFADO project announces the availability of FFADO version 2.4.7. This
is a bug-fix release to address issues encountered since version 2.4.6.
This is a source-only release: libffado-2.4.7.tgz.
Changes since FFADO 2.4.6:
* Address additional type-related issues encounted in ffado-mixer when
using python 3.10. Components affected were the crossbar router and the
M-Audio device mixer.
* Update config.guess to the latest version. This supports newer
architectures such as RISCV64.
* Address compiler warnings reported by newer versions of gcc.
* Add a configuration entry for the Apogee Duet.
Thanks to those who have helped with this release, including Salvador O.G.,
Letu Ren, Nils Philippsen and Greg Dorian.
(on behalf of ffado.org)
Finally I have released SoundTracker v1.0.3. Comparing to the last
pre-release, 1.0.3-pre2, this is only the bugfixing release with few
small improvements only. Here are main features of the 1.0.3 release
comparing to 1.0.2:
- Indication of the current playing instrument / sample number in scopes
(optional via Settings)
- Extended pattern sequence editor with DND (activaled by right-click on
the playlist area)
- Quick instrument selection
* Track editor:
- Track line insertion / removal
- Masking for cut / copy / paste operations (also the contents of CCP
buffers can be inspected)
* Instrument editor:
- Envelopes cutting / copying / pasting / scaling
- Indication of the keys playing with the current instrument also in the
pattern / song playing mode
* Sample editor:
- Automatic Gain Control sample processing procedure
- Selection from loop and to the left / right of the exising selection
- Optional loop playback when playing selection
- Waveform value indication
- Loop Facility, an advanced tool for manipulations with sample loops
You can find more new features in NEWS file.
SoundTracker download page:
this is another "weird" plugin which I finally found the time to
implement. It's a dynamics processor that doesn't care about absolute
thresholds. It just computes two envelopes, env1 and env2, filtered with
exponential smoothing filters with different time constants t1 and t2
(usually t1 < t2). Their ratio r is computed and the audio signal is
then multiplied by 1/r.
Some additional controls (clamping of the resulting factor and optional
delaying of the original audio relative to the envelopes) are provided
for fun and profit..
The Programmable Audio Workshop (PAW: https://paw.grame.fr/) is a yearly one day event gathering members of the programmable audio community around scientific talks and hands-on workshops. The 2022 edition of PAW will be hosted by the INRIA/INSA/GRAME-CNCM Emeraude Team at the CITI Lab of INSA Lyon (France) on December 3d, 2022. The theme of PAW this year is "Networked and Embedded Audio Systems" with a strong focus on spatial audio and Field-Programmable Gate Arrays (FPGAs).
Registration form here: https://docs.google.com/forms/d/e/1FAIpQLScJAyoREj0HJkoENLQb1OfpZpQe8f5_taU…
Stéphane for the PAW team