• WANTED: Happy members who like to discuss audio and other topics related to our interest. Desire to learn and share knowledge of science required. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

jaakkopasanen

Member
Joined
Jul 12, 2020
Messages
87
Likes
343
Let me first say, awesome post @sweetchaos . For me more so for the hows and whys. After reading some things I am going to fire the AutoEQ VM back up and redo some things.

I spent a huge chunk of yesterday getting AutoEQ working (pip, python versions, the vm env, dependencies, something else I'm forgetting I think, were as they say, a "royal pita" -lol . But thanx to stackoverflow and other support sites for said dependencies, I prevailed). Then playing with variations of equalization produced for my new Audeze Euclid, with peq constrained to the filter count limits of the E1DA PowerDAC V2 DSP (the only [ahem] portable [lol] hp amp I have with the balls to drive the demanding Euclid with authority in the bass region) ... I can see how AutoEQ coupled with WebPlotDigitizer might change my life.

That said for me it just reinforced that "I dont like the Harman (or really, any generally accepted) target" rather than giving me some sort of epiphany in appreciation of it. I spent a good deal of time manually altering filter settings AutoEQ gave me. I'm going to give --sound_signature a try; not to simulate another hp's signature but rather to alter a target to my preference so I dont have to fiddle afterwards.

Moreso however in that regard I have some questions I'd like to pose to you Jaakko and why I replied to the above post, that are OT to this post having to do with use cases pertaining to the PowerDAC V2. What is your forum of choice where you spend your most time, where I can discuss my particular use cases? I will go there and post my questions. (Hope this tag when replying to your reply reaches you.) Thanx!
I think I prefer ASR over all others. So fore away.
 

thunderchicken

Active Member
Joined
Feb 5, 2019
Messages
152
Likes
150
Location
Seattle
Thanks. I read the paper, but I think I was tripping/focusing over/on the math too much. But with the foundation provided by the paper, and these two YouTube videos (particularly the second):
&
I think I'm understanding it now.

I'm just curious as to how these are saved into WAV files and how it's all put together to make EQ adjustments. Let me take a stab and you can tell me how wrong I am, LOL:

A known/stadardized audio source/file/pattern is played, the output is recorded and saved as a WAV/audio file. This audio (output) file represents what the "system" (e.g., headphones/speakers) had output/generated/"played" with its own flaws/deficiencies baked in. (Q: Would the "system" also include the DAC and/or amp used?) The WAV file is then loaded into the DSP software and it analyzes the recorded audio from the first step, and based off the known/standardized input, calculates the affect (i.e., altered frequency response) the "system" (e.g., headphones/speakers) had on the input. The DSP software then generates and applies EQ (Q: anything done regarding timing?) adjustments so the output would/should match the known input by compensating for the "system's affect(s)".

In summary the DSP (software) is characterizing the "blackbox"/unknown system (e.g., headphones/speakers) by comparing a know input to a(n) recorded/observed output and combining/convolving the two to make a correction (e.g., EQ)? (Regarding convolution: or maybe the correct statement would be the convolution is the recorded output?)

Hoping I'm not totally lost on this...

What I'm seeing here reminds me of "servo-controlled" subwoofers, where some internal DSP corrects FR based on the difference between the original waveform and the output. We see the inverse of this all the time in any sort of "active" noise reduction system.
 
OP
sweetchaos

sweetchaos

Major Contributor
The Curator
Joined
Nov 29, 2019
Messages
3,912
Likes
11,987
Location
BC, Canada
How to install AutoEQ for Windows 64-bit:
Note: The instructions are already provided on the AutoEQ github page, but I figure I'd simplify it for those interested...
1. Install Git (download link). Get latest 64-bit. At this time, it was version 2.31.1.
When installing, check the "Use the native Windows Secure Channel library" option, not the "use the OpenSSL library".
1618426076853.png
2. Download the latest 64-bit version of Python 3.8.x (DO NOT INSTALL Python 3.9.x since it will FAIL when installing dependencies)
From the time I wrote this, I see that the latest version is python 3.8.9 (released on April 2, 2021) (direct link).
When installing, make sure to enable "Add Python 3.8 to PATH" option.
1618426307993.png
Once it's installed, make sure to click on "Disable Path Length Limit", before hitting "close".
1618426363164.png
3. Install Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017, and 2019.
Direct link.
Simple installation, with nothing to configure.
4. start menu, type cmd, type:
git clone https://github.com/jaakkopasanen/AutoEq.git
This takes several minutes to download the necessary files (over 1gb in size).
5. type and wait for each cmd to finish:
cd autoeq
python -m venv venv
venv\Scripts\activate.bat
python -m pip install -U pip
python -m pip install -U -r requirements.txt

That's it.
To verify that it's working type:
python autoeq.py --help
If you see the list of commands that AutoEQ accepts, then everything worked 100%. If you see any error message, then something went wrong.
But if you followed my guide, it should have worked.

Then run the script python autoeq.py .... as needed.

Hopefully this helped you out!
 
Last edited:

m8o

Senior Member
Forum Donor
Joined
Jan 28, 2019
Messages
348
Likes
224
...
That's it.
...
For me, that was definitely not it. very big lol. But I figured installing it into my existing Ubuntu Windows VM App was just as good as doing anything else. I was very...very, wrong. Lol.

But thankfully all the info of what also needs to be installed or upgraded is out there when asking dr. google about each error messages encountered. So I managed. What you provided is extremely helpful tho; hope others see it and use it before going the road I went. ;)
 

luft262

Senior Member
Joined
Mar 25, 2021
Messages
465
Likes
236
Location
Phoenix
Hi,

I was able to load the Sony WH-1000XM4 127 band GEQ into the Wavelet App. One funny thing is that when you import a file, it is merely added to the database. Then you must search for and choose it before it can be selected. I was confused at first because I assumed that importing the file would automatically select it. Nope, it is a 2 step process.

Here is the process that I used:

1. Copy/Pasted the line into a text file (UTF-8, LF, no BOM)
2. Saved the file as Sony WH-1000XM4(Amir).txt
2. Downloaded the file onto my Google Pixel 5, Download folder
3. Imported the file, nothing obvious will happen
4. Search for XM4, selected the Sony WH-1000XM4(Amir)

Attached below are screenshots of the GEQ loaded from here, also for academic interest, I attached a screenshot of the built-in AutoEQ for the XM4.

What does "(UTF-8, LF, no BOM)" mean? When I try to import the .txt file it says "failed to import". Thank you for your help!
 
OP
sweetchaos

sweetchaos

Major Contributor
The Curator
Joined
Nov 29, 2019
Messages
3,912
Likes
11,987
Location
BC, Canada

luft262

Senior Member
Joined
Mar 25, 2021
Messages
465
Likes
236
Location
Phoenix
"UTF-8" is a character encoding.
BOM is Byte Order Mark.

You can also try "ASCII" character encoding, since it was reported to work as well.

An app like the "QuickEdit Text Editor - Writer & Code Editor" (link to Google Play store) can select any encoding you want.

Thanks. I was able to get it to work by saving it as a .txt file using Windows basic text editor. For some reason when I did it using Google Docs it didn't work, even though it was being saved as a .txt file.

Cool! Thanks!
 

balangandio

New Member
Joined
May 15, 2021
Messages
1
Likes
1
I was just looking for a way to convert parametric EQ to fixedband last week and found nothing about it. Thanks for exposing this work around method, I managed to convert successfully some Tin hifi P1 profile.

I'm pretty sure this can be automated with a bit of Python code. But I searched and didn't find a straightforward way to plot the parametric EQ in python, to capture the points on the curve. It takes some experience with python scientific libraries.
 

DOS_boot

New Member
Joined
May 16, 2021
Messages
1
Likes
6
I have also been looking for a way to convert PEQ filters to Wavelet's format. I have tried using AutoEQ, but the amount of effort required to get the EQ profile into a format that AutoEQ can use was...tedious. I eventually decided to write my own tool in Excel/Sheets using the biquad equations. I've put the worksheet up on Google Sheets and made it publicly available here.

The "Wavelet output" sheet has everything that a user needs to interact with. Up to 10 peaking, high shelf, or low shelf filters (since those are the most common) can be input in the green cells. Unused filters can be set to "Disabled". Once all of the filters are input, the resulting GraphicEQ line needed for Wavelet can be copied out of the red cell and pasted in to a text editor. A graph below the green input cells shows the result of the filter inputs as a quick check for the resulting EQ profile. The other sheets are either behind-the-scene calculations or the list of sources I used to make the tool.

Anyone should be able to copy the tool to their own Google Drive or download it for their own use. Hopefully this makes it easier for other Wavelet users to create and import PEQ filters from here or other sources.
 

GodspeedYou

New Member
Joined
May 23, 2022
Messages
1
Likes
0
Thank you very much for your work @sweetchaos.

However, may I ask if you did take into account that the default --max_gain parameter of auto_eq.py is set to 6.0 dB (as specified there)? This can cause issues in some cases where a gain higher than 6.0 dB is recommendable, such as on the HD560S.

Furthermore it should be recommended to use either a negative post-gain value or use the channel imbalance feature to adjust for preamp, which Wavelet does not do by default as it tries to normalize values back to 0 dB. At least that is my understanding from reading that explanation.
 
Last edited:
Top Bottom