EDIT: I added support for eqAPO and autoEQ.
When you use REW on a MAC, an easy way to apply the generated EQ is provided by Apple: AUNBandEQ is a plugin implementing IIR filters.
REW created an output for AUNBandEQ with frequency/gain/width for each filter.
I usually manually copy each data (3 per filters, up to 16 filters) to the plugin. This is error prone and boring.
I created a small script that takes the eq file generated by REW and generates a AUpreset (a configuration file for the plugin). You then only need to drop the AUpreset file on top of the plugin window and magic, all parameters are set.
Apple is not very transparent on how the AUpreset file is generated. After some reverse engineering, I have found a likely mapping of the data. I do not guaranty that it will always works and/or that Apple will not change the format over time.
This is an alpha version but it can convert
into
The data field is not very well documented, my guesses are:
- uuencoded block
- data is bigendian, 4 bytes for each parameters, parameters comes in pair (key, value)
- first 5 are
- 0
- 0
- number of parameters +1 (uint32)
- 0
- gain (float)
- then 80 parameters (16 eq with 5 parameters each): details
Ideally this would be implemented directly in REW (@JohnPM).
When you use REW on a MAC, an easy way to apply the generated EQ is provided by Apple: AUNBandEQ is a plugin implementing IIR filters.
REW created an output for AUNBandEQ with frequency/gain/width for each filter.
I usually manually copy each data (3 per filters, up to 16 filters) to the plugin. This is error prone and boring.
I created a small script that takes the eq file generated by REW and generates a AUpreset (a configuration file for the plugin). You then only need to drop the AUpreset file on top of the plugin window and magic, all parameters are set.
Apple is not very transparent on how the AUpreset file is generated. After some reverse engineering, I have found a likely mapping of the data. I do not guaranty that it will always works and/or that Apple will not change the format over time.
This is an alpha version but it can convert
Code:
Notes:L w/sub
AU_N-Band_EQ
Number Enabled Control Type Frequency(Hz) Gain(dB) BW_Oct Bandwidth(Hz) TargetT60(ms) FilterT60(ms)
1 True Auto PK 34.25 -9.10 0.62 14.83
2 True Auto PK 109.0 7.40 0.19 14.37
3 True Auto PK 123.0 -7.10 0.25 21.34
4 True Auto PK 177.5 2.30 0.19 23.39
5 True Auto PK 197.0 -6.50 0.22 30.07
6 True Auto PK 221.0 6.30 0.27 41.42
7 True Auto PK 246.0 -7.00 0.27 46.11
8 True Auto PK 292.0 6.00 0.24 48.63
9 True Auto PK 328.0 -7.50 0.52 118.9
10 True Auto PK 683.0 2.80 0.19 90.01
11 True Auto PK 1202 4.50 0.21 175.1
12 True Auto PK 1964 -7.50 1.39 1966
13 True Auto PK 3068 6.80 1.39 3072
14 True Auto PK 3962 -9.90 0.34 935.9
15 True Auto PK 4780 1.80 0.98 3310
16 True Auto PK 6263 -5.40 0.37 1611
into
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ParametricType</key>
<integer>11</integer>
<key>data</key>
<data>
AAAAAAAAAAAAAABRAAAAAAAAAAAAAAPoAAAAAAAAB9AAAAAAAAALuEIJAAAAAA+gwRG
ZmgAAE4g/HrhSAAAD6QAAAAAAAAfRAAAAAAAAC7lC2gAAAAAPoUDszM0AABOJPkKPXA
AAA+oAAAAAAAAH0gAAAAAAAAu6QvYAAAAAD6LA4zMzAAATij6AAAAAAAPrAAAAAAAAB
9MAAAAAAAALu0MxgAAAAA+jQBMzMwAAE4s+Qo9cAAAD7AAAAAAAAAfUAAAAAAAAC7xD
RQAAAAAPpMDQAAAAABOMPmFHrgAAA+0AAAAAAAAH1QAAAAAAAAu9Q10AAAAAD6VAyZm
aAAATjT6KPXEAAAPuAAAAAAAAB9YAAAAAAAALvkN2AAAAAA+mwOAAAAAAE44+ij1xAA
AD7wAAAAAAAAfXAAAAAAAAC79DkgAAAAAPp0DAAAAAABOPPnXCjwAAA/AAAAAAAAAH2
AAAAAAAAAvAQ6QAAAAAD6jA8AAAAAATkD8FHrgAAAPxAAAAAAAAB9kAAAAAAAALwUQq
wAAAAA+pQDMzMwAAE5E+Qo9cAAAD8gAAAAAAAAfaAAAAAAAAC8JElkAAAAAPqkCQAAA
AABOSPlcKPQAAA/MAAAAAAAAH2wAAAAAAAAvDRPWAAAAAD6vA8AAAAAATkz+x64UAAA
P0AAAAAAAAB9wAAAAAAAALxEU/wAAAAA+sQNmZmgAAE5Q/seuFAAAD9QAAAAAAAAfdA
AAAAAAAC8VFd6AAAAAPrcEeZmYAABOVPq4UewAAA/YAAAAAAAAH3gAAAAAAAAvGRZVg
AAAAD64/5mZmAAATlj964UgAAAP3AAAAAAAAB98AAAAAAAALx0XDuAAAAA+vwKzMzQA
AE5c+vXCk
</data>
<key>manufacturer</key>
<integer>1634758764</integer>
<key>name</key>
<string>test</string>
<key>numberOfBands</key>
<integer>16</integer>
<key>subtype</key>
<integer>1851942257</integer>
<key>type</key>
<integer>1635083896</integer>
<key>version</key>
<integer>0</integer>
</dict>
</plist>
The data field is not very well documented, my guesses are:
- uuencoded block
- data is bigendian, 4 bytes for each parameters, parameters comes in pair (key, value)
- first 5 are
- 0
- 0
- number of parameters +1 (uint32)
- 0
- gain (float)
- then 80 parameters (16 eq with 5 parameters each): details
Ideally this would be implemented directly in REW (@JohnPM).
Last edited: