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:
1 parent
11e52f6210
commit
90ee2b0aa9
89 files changed
+6396
-1375
No files matched your search
@@ -0,0 +1,6 @@
|
||||
[{000214A0-0000-0000-C000-000000000046}]
|
||||
Prop3=19,2
|
||||
[InternetShortcut]
|
||||
URL=http://sourceforge.net/p/equalizerapo/wiki/Configuration%20reference
|
||||
IDList=
|
||||
HotKey=0
|
||||
@@ -118,6 +118,7 @@ Section "Install" SecInstall
|
||||
File "${LIBPATH}\msvcr100.dll"
|
||||
|
||||
File "Configuration tutorial (online).url"
|
||||
File "Configuration reference (online).url"
|
||||
|
||||
CreateDirectory "$INSTDIR\config"
|
||||
|
||||
@@ -126,6 +127,8 @@ Section "Install" SecInstall
|
||||
File /oname=config\example.txt "config\example.txt"
|
||||
File /oname=config\demo.txt "config\demo.txt"
|
||||
File /oname=config\multichannel.txt "config\multichannel.txt"
|
||||
File /oname=config\iir_lowpass.txt "config\iir_lowpass.txt"
|
||||
File /oname=config\selective_delay.txt "config\selective_delay.txt"
|
||||
SetOverwrite on
|
||||
|
||||
;Grant write access to the config directory for all users
|
||||
@@ -141,6 +144,7 @@ Section "Install" SecInstall
|
||||
;Create shortcuts
|
||||
CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
|
||||
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Configuration tutorial (online).lnk" "$INSTDIR\Configuration tutorial (online).url"
|
||||
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Configuration reference (online).lnk" "$INSTDIR\Configuration reference (online).url"
|
||||
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Configurator.lnk" "$INSTDIR\Configurator.exe"
|
||||
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Benchmark.lnk" "$INSTDIR\Benchmark.exe"
|
||||
CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
|
||||
@@ -184,6 +188,7 @@ Section "-un.Uninstall"
|
||||
!insertmacro MUI_STARTMENU_GETFOLDER Application $StartMenuFolder
|
||||
RMDir /r "$SMPROGRAMS\$StartMenuFolder"
|
||||
|
||||
Delete "$INSTDIR\Configuration reference (online).url"
|
||||
Delete "$INSTDIR\Configuration tutorial (online).url"
|
||||
|
||||
Delete /REBOOTOK "$INSTDIR\msvcr100.dll"
|
||||
|
||||
@@ -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`
|
||||
@@ -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
|
||||
Reference in new issue
Block a user