Version 0.9

Added: Filter type "IIR", which allows to specify a user-defined IIR filter of arbitrary order with custom coefficients.
Improved: For playback devices, the APO is now installed both as GFX (post-mix) and LFX (pre-mix) APO. Normally the filtering happens in GFX, but the command "Stage" allows to select LFX to apply effects based on the number of input channels.
Added: Expression language. The commands "If", "ElseIf", "Else", "EndIf", "Eval" and inline expressions allow to change the filter behaviour based on runtime conditions.
Added: Command "Copy", which copies audio data between channels.
Added: Command "Delay", which delays the audio on the currently selected channels.
Improved: Configuration files are now locked exclusively for writing while reading them.
Improved: There is now a transition (10 ms) from old to new configuration after loading.
Improved: Substantial internal restructuring to improve extensibility and maintainability. Filtering commands now work exactly in the order they were specified.
Fixed: When the microphone input was in stereo but the application requested a mono stream, the audio was heavily distorted.
Fixed: The sine sweep generated by the Benchmark application had floating-point precision issues leading to severe artifacts when certain filters were applied.
This commit is contained in:
jthedering committed 2014-08-10 18:35:59 +00:00
1 parent 11e52f6210
commit 90ee2b0aa9
89 files changed
+6396 -1375

No files matched your search

+18
View File
@@ -0,0 +1,18 @@
# This shows how to create a lowpass biquad filter using the IIR filter type
# The result should be equivalent to the command
# Filter: ON LP Fc 3000 Hz
Do: `freq = 3000`
Do: `Q = 1/sqrt(2)`
Do: `omega = 2 * pi * freq / sampleRate`
Do: `sn = sin(omega)`
Do: `cs = cos(omega)`
Do: `alpha = sin(omega) / (2 * Q)`
Do: `a0 = (1 - cs) / 2`
Do: `a1 = 1 - cs`
Do: `a2 = (1 - cs) / 2`
Do: `b0 = 1 + alpha`
Do: `b1 = -2 * cs`
Do: `b2 = 1 - alpha`
Filter: ON IIR Order 2 Coefficients `a0` `a1` `a2` `b0` `b1` `b2`
+11
View File
@@ -0,0 +1,11 @@
# Copy channels to virtual channels to filter them while keeping the originals
Copy: L2=L R2=R
# Select channels for filtering
Channel: L2 R2
# Limit frequency range for delay
Filter: ON HP Fc 200 Hz
Filter: ON LP Fc 2000 Hz
# Apply delay
Delay: 500 ms
# Add the delayed signal back to the original channels
Copy: L=0.5*L+0.5*L2 R=0.5*R+0.5*R2