Skip to content

Commit 50b4e9d

Browse files
committed
added chorus, echo, echos; minor architectural changes
1 parent dea1843 commit 50b4e9d

File tree

1,300 files changed

+79275
-45047
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,300 files changed

+79275
-45047
lines changed

README.md

Lines changed: 58 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<TH>
44
<H1>SoX Plugins for DAWs</H1>
55
<TH>
6-
<IMG SRC="./doc/latex/figures/title.svg" STYLE="float:right"
6+
<IMG SRC="./doc/latex/figures/SoX-A-title.png" STYLE="float:right"
77
WIDTH="55%" HEIGHT="55%">
88
</TH>
99
</TR>
@@ -12,30 +12,26 @@
1212
Overview
1313
--------
1414

15-
The SoXPlugins software package provides plugins for being used in
16-
digital audio workstations (DAW); they implement some of the more
17-
prominent audio processing effects from SoX as DAW audio plugins.
18-
19-
*[SoX][]* is a command line audio processing tool for Unix, Windows
20-
and Mac OS that transforms source audio files in several formats into
21-
other audio files. It provides several standard audio effects (like
22-
e.g. filters or reverb) in good quality and with a transparent,
23-
open-source implementation.
24-
25-
This plugin implementation is completely free, open-source,
26-
platform-neutral and based on the *[JUCE][]* audio framework.
27-
Currently only plugin versions as VST3 under Windows 10, VST3 and AU
28-
under MacOSX (x86_64) and VST3 under Linux (x86_64) are provided, but
29-
porting to other targets should be straightforward, since building is
30-
supported by a platform-neutral CMAKE build file.
31-
32-
The effects provided here are a complete rewrite in C++ of the SoX
33-
algorithms for producing *(bit-exact) identical* renderings in the
34-
DAW. This can easily be checked by rendering some audio externally
35-
with SoX and internally with the plugins and subtracting the results.
36-
Apart from roundoff errors (SoX often uses 32bit integer processing,
37-
while the SoXPlugins always uses double floating point processing) the
38-
results cancel out with typically a residual noise of -140dBFS.
15+
The SoX Plugins software package provides plugins for being used in
16+
digital audio workstations (DAW); they implement some of the audio
17+
processing effects from SoX.
18+
19+
*[SoX][reference:SoX]* is a command line audio processing tool for
20+
Unix, Windows and Mac OS that transforms source audio files in several
21+
formats into other audio files. It provides several standard audio
22+
effects (like e.g. filters or reverb) in good quality and with a
23+
transparent, open-source implementation. Currently a project called
24+
[SoX_ng][reference:SoXNG] and led by Martin W. Guy is modernizing all
25+
those effects and hence serves as the reference for this project.
26+
27+
The effects provided here are a complete rewrite in
28+
C++ of the SoX algorithms for producing
29+
*(bit-exact) identical* renderings in the DAW. This can easily be
30+
checked by rendering some audio externally with SoX and internally
31+
with the plugins and subtracting the results. Apart from roundoff
32+
errors (SoX often uses 32bit integer processing, while the SoXPlugins
33+
always uses double floating point processing) the results cancel out
34+
with typically a residual noise of -140dBFS.
3935

4036
The main motivation for this package is to be able to play around with
4137
effects in a DAW and be sure that the external rendering by SoX will
@@ -67,6 +63,13 @@ complexity in the original sources due to their several contributors.
6763
Nevertheless - as pointed out - the effects provided here faithfully
6864
model the SoX command-line processing.
6965

66+
This plugin implementation is completely free, open-source,
67+
platform-neutral and based on the *[JUCE][reference:JUCE]* audio
68+
framework. Currently only plugin versions as VST3 under Windows 10,
69+
VST3 and AU under MacOSX (x86_64) and VST3 under Linux (x86_64) are
70+
provided, but porting to other targets should be straightforward,
71+
since building is supported by a platform-neutral CMAKE build file.
72+
7073
Available Effects
7174
-----------------
7275

@@ -92,11 +95,21 @@ The following effects are available in this package:
9295
- *biquad*: a generic biquad (iir) filter with 6 coefficients
9396
b0, b1, b2, a0, a1 and a2
9497

98+
- *chorus*: a chorus effect with multiple parallel echos modulated
99+
either by sine or triangle signals,
100+
95101
- *compand*: a compander with attack, release, input gain
96102
shift, threshold and compression and soft knee; this
97103
is a reduced version of SoX compand with only a
98104
simple transfer function
99105

106+
- *echo*: a tapped delay with several absolute delay times and
107+
signal decays,
108+
109+
- *echos*: a sequential delay with delay stages with absolute
110+
delay times and signal decays fed with signals from the previous
111+
stages,
112+
100113
- *equalizer*: a biquad filter for equalizing with
101114
settings for the pole count, the filter frequency
102115
and the filter bandwith (in several units)
@@ -132,14 +145,17 @@ The following effects are available in this package:
132145
- *tremolo*: a tremolo effect with sine modulation using a
133146
double-sideband suppressed carrier modulation
134147

148+
149+
135150
Installation
136151
------------
137152

138153
The installation is as follows:
139154

140-
1. Expand the appropriate binary archive of the <TT>SoXPlugins</TT>
141-
for your platform from this [repository](../../releases) into
142-
the directory for VST plugins of your DAW.
155+
1. Expand the appropriate binary archive of the
156+
<TT>SoXPlugins</TT> for your platform from this
157+
[repository](../../releases) into the directory for VST plugins
158+
of your DAW.
143159

144160
2. The distribution also contains a documentation [pdf
145161
file](./SoXPlugins-documentation.pdf) in subdirectory doc and
@@ -149,7 +165,7 @@ The installation is as follows:
149165
3. When installing the plugins on MacOSX, note that those are
150166
**not signed**; so you have to explicitly remove the quarantine
151167
flag from them (e.g. by applying the command `sudo xattr -rd
152-
com.apple.quarantine «vstPath»`).
168+
com.apple.quarantine vstPath`).
153169

154170
4. When installing the plugins on Windows, they require the
155171
so-called *Microsoft Visual C++ Redistributable* library. Very
@@ -163,7 +179,7 @@ The installation is as follows:
163179
Plugin Example - Phaser
164180
-----------------------
165181

166-
![Panel for SoXPlugins Phaser](./doc/latex/figures/SoX-Phaser.png)
182+
![Panel for SoXPlugins Phaser](./doc/latex/figures/SoX-C-Eff_Phaser.png)
167183

168184
The above diagram gives an example for one of the plugins: this is the
169185
UI for the phaser effect.
@@ -199,13 +215,13 @@ those test and result files and applies the corresponding effect
199215
plugins. Ideally (because the result files have inverted phase),
200216
everything should cancel out as shown here:
201217

202-
![Example Noise Floor for Regression Test](./doc/latex/figures/noiseFloor.png)
218+
![Example Noise Floor for Regression Test](./doc/latex/figures/SoX-A-noiseFloor.png)
203219

204220
Details
205221
-------
206222

207223
The detailed user manual can be found
208-
*[here](./SoXPlugins-documentation.pdf)*.
224+
*[here][reference:manual]*.
209225

210226
Acknowledgements
211227
----------------
@@ -215,9 +231,10 @@ SoX community. Although the algorithms used were modified and
215231
redesigned, this project would been much more complicated and tedious
216232
without this basis.
217233

218-
Hence my thanks go to Chris Bagwell, Nick Bailey, Daniel Pouzzner,
219-
Måns Rullgård, Rob Sewell and all the other contributors of the SoX
220-
project: without your effort this would not have been possible!
234+
Hence my thanks go to Chris Bagwell, Nick Bailey, Martin W. Guy,
235+
Daniel Pouzzner, Måns Rullgård, Rob Sewell and all the other
236+
contributors of the SoX project: without your effort this would not
237+
have been possible!
221238

222239
## License
223240

@@ -229,6 +246,9 @@ There are two license models for this project:
229246

230247
This means that if you do *not* use the given binaries and compile the source code by yourself, the MIT license applies. If you *do* use the binaries, then the AGPL v3 license applies.
231248

232-
[JUCE]: http://www.juce.com/
233-
[SoX]: http://sox.sourceforge.net/
234-
[VCCLib]: https://learn.microsoft.com/cpp/windows/latest-supported-vc-redist
249+
[reference:JUCE]: http://www.juce.com/
250+
[reference:manual]: ./SoXPlugins-Documentation.pdf
251+
[reference:reaJS]: https://www.reaper.fm/reaplugs/
252+
[reference:SoX]: http://sox.sourceforge.net/
253+
[reference:SoXNG]: https://codeberg.org/sox_ng/sox_ng
254+
[reference:VCCLib]: https://learn.microsoft.com/cpp/windows/latest-supported-vc-redist

SoXPlugins-documentation.pdf

196 KB
Binary file not shown.

buildSetup/MacOS/Info.plist.in

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3+
<plist version="1.0">
4+
<dict>
5+
<key>AudioComponents</key>
6+
<array>
7+
<dict>
8+
<key>description</key>
9+
<string>${JUCE_auPluginName}</string>
10+
<key>factoryFunction</key>
11+
<string>${JUCE_auPluginName}AUFactory</string>
12+
<key>manufacturer</key>
13+
<string>${JUCE_manufacturerName}</string>
14+
<key>name</key>
15+
<string>${JUCE_auLongPluginName}</string>
16+
<key>sandboxSafe</key>
17+
<true/>
18+
<key>subtype</key>
19+
<string>${JUCE_auSubType}</string>
20+
<key>type</key>
21+
<string>${JUCE_auMainType}</string>
22+
<key>version</key>
23+
<integer>65536</integer>
24+
</dict>
25+
</array>
26+
<key>BuildMachineOSBuild</key>
27+
<string>19H1217</string>
28+
<key>CFBundleDevelopmentRegion</key>
29+
<string>English</string>
30+
<key>CFBundleExecutable</key>
31+
<string>${JUCE_auPluginName}</string>
32+
<key>CFBundleIdentifier</key>
33+
<string>${JUCE_bundlePrefix}.${JUCE_auPluginName}</string>
34+
<key>CFBundleName</key>
35+
<string>${JUCE_auPluginName}</string>
36+
<key>CFBundlePackageType</key>
37+
<string>BNDL</string>
38+
<key>CFBundleShortVersionString</key>
39+
<string>1.0.0</string>
40+
<key>CFBundleSignature</key>
41+
<string>????</string>
42+
<key>CFBundleSupportedPlatforms</key>
43+
<array><string>MacOSX</string></array>
44+
<key>CFBundleVersion</key>
45+
<string>1.0</string>
46+
<key>CSResourcesFileMapped</key> <true/>
47+
<key>LSMinimumSystemVersion</key>
48+
<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
49+
<key>NSHumanReadableCopyright</key>
50+
<string></string>
51+
<key>NSMainNibFile</key>
52+
<string>RecentFilesMenuTemplate.nib</string>
53+
<key>NSPrincipalClass</key>
54+
<string>SoX${pluginName}</string>
55+
</dict>
56+
</plist>
2.78 KB
Binary file not shown.

0 commit comments

Comments
 (0)