easyeffects icon indicating copy to clipboard operation
easyeffects copied to clipboard

Feature: Built-in AutoEq

Open bernharl opened this issue 2 years ago • 23 comments

Hi,

I think it would be great for for Easyeffects to have the FIR filters from https://github.com/jaakkopasanen/AutoEq built in to the convolver plugin. How desirable / feasible is this? This would get headphone tuning in Easyeffects closer to the ease of use provided by Wavelet https://pittvandewitt.github.io/Wavelet/ .

Is this a feasible addition to Easyeffects? :)

bernharl avatar Dec 09 '22 13:12 bernharl

Is this a feasible addition to Easyeffects? :)

I think the same approach being thought to #1771 should be used here. The reasons are similar:

  • AutoEq has more than 2500 impulse response files. Showing all of them to the user in the impulse menu would not be a good thing to do. Specially because the AutoEq impulse have headphones as target. For people like me that use speakers almost 100% of the time there is no point in seeing all those impulses in the menu by default.
  • With a community package providing the impulses the maintenance burden of making sure they would be updated would not be on our hands.
  • License is another thing to keep in mind. Although I imagine the ones created by AutoEq have an open source friendly license In the future it may not be the case for other impulse sources people request to be available.

wwmm avatar Dec 09 '22 14:12 wwmm

I believe the AutoEQ dataset comes from various published papers on HRTF. I'm no expert on this but just because something has been published in a research paper does not mean it's void of intellectual property such s copyrights and patents, so, while it might be enough to just cite the original source of each profile, distributing such dataset and using it in 3rd party software might be uncharted territory.

pinkflames avatar Jan 22 '23 08:01 pinkflames

FWIW it looks like AutoEq presets come from https://github.com/jaakkopasanen/AutoEq and are MIT licensed.

malinges avatar Jan 26 '23 22:01 malinges

Exactly. I could be wrong, since this is not my area of expertise but I believe that the MIT license does not require assigning patent use rights to source code recipients and is therefore compatible with publishing code that's actually encumbered and not free to distribute/use commercially. While possibly dubious it's likely that MIT license could be applied to copyrighted (e.g. freemium) material without breaking its licensing, as well. As I said, this is likely a legal gray area but I'm not a lawyer.

LIkewise, I think, this was discussed over at PipeWire project not that long ago and the conclusion was that, while we could add the ability to use AutoEq profiles, if present, most likely no legally competent distro would dare to ship the AutoEq dataset due to its dubious legal standing. But this is my personal opinion and is by no means legal advice nor is this the opinion of the PipeWire project.

pinkflames avatar Jan 26 '23 22:01 pinkflames

Independently of the possible legal issues I don't think that embedding more than 2500 impulse files in our sources and making sure they are updated is the way to go.

wwmm avatar Jan 26 '23 23:01 wwmm

IMO as a user, copying an impulse file is not that hard. However, it would be convenient of course, if it auto-detected the connected bluetooth headphones and downloaded the correct .wav files from AutoEQ git repository. But it's also more complicated than it sounds. For many headphones, there are different curves for when they are in active or passive mode, etc. As long as the manual routine of importing a .wav impulse is kept straightforward, I don't really see the need.

magicgoose avatar Apr 07 '23 08:04 magicgoose

no reason not to have it. peace APO has had it for years. doesnt need to do anything other than have a button to apply autoeq presets.

wabkia avatar Feb 18 '24 06:02 wabkia

doesnt need to do anything other than have a button to apply autoeq presets.

Let's be reasonable. A button does nothing by itself. So it is more than just putting a button in the window. The impulse response files have to come from somewhere. And we have to change our window in a way that the user can import from a list of AutoEQ files just what is needed.

How is peace apo handling the problem? As long as it does not involve copying thousands of impulse files to EasyEffects source code folder I am willing to listen.

wwmm avatar Feb 18 '24 14:02 wwmm

How is peace apo handling the problem? As long as it does not involve copying thousands of impulse files to EasyEffects source code folder I am willing to listen.

On Windows, clicking the AutoEQ button pops up a window where you can search for the preset you want and then hit "use" to apply it. This seems similar to how SoundSource and eqMac built it in on OSX.

AUTOEQ

edsimpsons83 avatar Apr 24 '24 17:04 edsimpsons83

Now it's the time someone should make a community preset with all jaakkopasanen filters.

Digitalone1 avatar Apr 24 '24 21:04 Digitalone1

How is peace apo handling the problem? As long as it does not involve copying thousands of impulse files to EasyEffects source code folder I am willing to listen.

On Windows, clicking the AutoEQ button pops up a window where you can search for the preset you want and then hit "use" to apply it. This seems similar to how SoundSource and eqMac built it in on OSX.

AUTOEQ

Ok. But the main problem is the location of all these impulse files. Are they downloading the file list directly from the AutoEq site and then download only the file selected by the user? Or is this list coming from files shipped together with AutoEQ? Having thousands of impulse files suddenly copied to our sources is definitely not happening. The other approach will depend on how hard it is to do...

Now it's the time someone should make a community preset with all jaakkopasanen filters.

It would definitely be the easier solution. And would use all that infrastructure that was put in place for community presets.

wwmm avatar Apr 24 '24 22:04 wwmm

Are they downloading the file list directly from the AutoEq site and then download only the file selected by the user? Or is this list coming from files shipped together with AutoEQ? Having thousands of impulse files suddenly copied to our sources is definitely not happening. The other approach will depend on how hard it is to do...

It's the former. The window seems to grab a list of all the AutoEq options. When you pick one to use, it downloads the file and applies the settings.

edsimpsons83 avatar Apr 25 '24 12:04 edsimpsons83

The problem with those AutoEQ is that they are too many. They are also in APO which could only be parsed by the app inserting them manually in the Equalizer UI.

Someone with very high perseverance can make a script to convert them all in our json format. You should start from this and adapt the code to make a json preset for every apo file. Then bundle them all in a community preset and they will be all visible in the preset menu.

It's not easy. Maybe in Javascript is good idea. Good luck.

Digitalone1 avatar Apr 25 '24 13:04 Digitalone1

I think, we should always download the latest response files directly from AutoEq, instead of shipping the dataset in the EasyEffects package. And then we come the problem of rely one online service. And because of that, I suggest implement this in a plugin. Please dont't bolt this down to EasyEffects.

The plugin would fetch the latest files from EasyEQ with something "standardized" API. I don't mean make a real standard, but sort of de-facto solution. And by that allow users to ability to add also other sources than just EasyEQ. Cooperation with EasyEQ is crucial in this because it's so important and a big response file dataset.

What do you think @wwmm?

CC: @jaakkopasanen

korpe1 avatar May 05 '24 17:05 korpe1

@korpe1 That won't happen.

With all the effort we made for community presets, which was hard to implement, but still easier than fetching things online, someone should make a script to convert all the AutoEQ APO profiles to EE presets and run it regularly to keep it up to date.

Meanwhile a community package is published on Flatpak so you can install it and use inside EE.

Digitalone1 avatar May 05 '24 17:05 Digitalone1

Meanwhile a community package is published on Flatpak so you can install it and use inside EE.

What is a community package?

korpe1 avatar May 05 '24 17:05 korpe1

AutoEQ APO profiles to EE presets

Have EasyEffects own format?

AFAIK EasyEffects support only preset formats "APO" and "GraphicEQ". Btw is it right that these both are formats from the Equalizer APO application?

korpe1 avatar May 05 '24 17:05 korpe1

Meanwhile a community package is published on Flatpak so you can install it and use inside EE.

What is a community package?

A new feature of the next release:

https://github.com/wwmm/easyeffects/blob/master/COMMUNITY_PRESETS_GUIDELINES.md

Digitalone1 avatar May 05 '24 17:05 Digitalone1

Have EasyEffects own format?

AFAIK EasyEffects support only preset formats "APO" and "GraphicEQ". Btw is it right that these both are formats from the Equalizer APO application?

Yes, EE has it's own format. The Equalizer has two functions for converting APO and GraphicEQ, but the community presets should have EE format to be loaded.

Digitalone1 avatar May 05 '24 17:05 Digitalone1

Yes, EE has it's own format. The Equalizer has two functions for converting APO and GraphicEQ, but the community presets should have EE format to be loaded.

What is the need to use a new format for presets?

Does anyone know this: "AFAIK EasyEffects support only preset formats "APO" and "GraphicEQ". Btw is it right that these both are formats from the Equalizer APO application?"

korpe1 avatar May 05 '24 19:05 korpe1

What is the need to use a new format for presets?

@korpe1 EasyEffects does not manage only the equalizer plugin. There are several others there. When we talk about preset format we mean the json file where the settings of all plugins can be saved. The APO preset importing support in the EQ window is just a convenience to help people load equalization settings from APO files. Nothing more than that.

When I started this project support for APO presets did not even exist because the equalizer I used at the time did not offer an "APO like mode". There was never a reason to make the APO standard a first class citizen in EasyEffects. And probably there will never be.

wwmm avatar May 05 '24 20:05 wwmm

@korpe1 EasyEffects does not manage only the equalizer plugin. There are several others there. When we talk about preset format we mean the json file where the settings of all plugins can be saved. The APO preset importing support in the EQ window is just a convenience to help people load equalization settings from APO files. Nothing more than that.

Oh, I see now. It was a tupid question :D

When I started this project support for APO presets did not even exist because the equalizer I used at the time did not offer an "APO like mode". There was never a reason to make the APO standard a first class citizen in EasyEffects. And probably there will never be.

Are APO and GraphicEQ files from the Equalizer APO application? That application for Windows if I remember right?

korpe1 avatar May 05 '24 21:05 korpe1

Are APO and GraphicEQ files from the Equalizer APO application? That application for Windows if I remember right?

Yes. AutoEQ uses the format from the Windows APO EQ.

wwmm avatar May 05 '24 21:05 wwmm