• 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!

EQ in LMS/pCP?

hoverdonkey

Active Member
Joined
Oct 6, 2019
Messages
131
Likes
86
I am looking into upgrading my headphones and note that EQ is encouraged in various reviews here on ASR. It would certainly open up a lot more cans for me to consider, i.e. those that have been "Recommended (w/EQ)" as well as "Recommended (No EQ)".

I currently run a Logitech Media Server-piCorePlayer setup. pCP has a 10 band ALSA EQ built in which (as far as I know) has fixed freq bands (at 31, 61, 125, 250, 500, 1,000, 2,000, 4,000, 8,000 anf 16,000Hz). But I see that the Roon screenshots in the reviews seem to show that it allows a bespoke choice of frequencies for adjustment. So, to my questions:

1 - Is the ALSA 10 band system adequate for pulling headphones into shape?
2 - If ALSA is no good, is there a suitable EQ system that can be added into the LMS-pCP environment?

I would prefer to avoid migrating Roon if possible (mainly because I would not be at ease being tied to subscription service to use my own content).

Many thanks.
 

vco1

Active Member
Joined
Jun 9, 2021
Messages
155
Likes
153
You could try Camilla DSP. There has been people who successfully integrated this with pCP. See this github repo: https://github.com/Lykkedk/SuperPlayer-v8.0.0---SamplerateChanger-v1.0.0

Looking for this solutions myself, I must admit that, although I have a fair amount of Linux and CS knowledge, I think the instructions are far from clear. Besides that, the Camilla DSP extension is only available as 32bit. I would prefer 64bit.

The role of this "gamchanger" component is still a bit unclear to me. Even after reading most information that's available on the web.

Camilla DSP seems a great solution. Still I might go for HifiberryOS with a dsp board, as that seems slightly more turn-key to me.

YMMV of course. And if anyone has tips on how to get it all working, I am very interested.
 

Martin

Major Contributor
Forum Donor
Joined
Mar 23, 2018
Messages
1,895
Likes
5,536
Location
Cape Coral, FL
I run piCorePlayer with LMS embedded and use SoX for parametric EQ in a custom-convert.conf file. I've implemented oratory1990's EQ for my Audeze LCD-3.

Martin
 
OP
H

hoverdonkey

Active Member
Joined
Oct 6, 2019
Messages
131
Likes
86
You could try Camilla DSP. There has been people who successfully integrated this with pCP. See this github repo: https://github.com/Lykkedk/SuperPlayer-v8.0.0---SamplerateChanger-v1.0.0

Looking for this solutions myself, I must admit that, although I have a fair amount of Linux and CS knowledge, I think the instructions are far from clear. Besides that, the Camilla DSP extension is only available as 32bit. I would prefer 64bit.

The role of this "gamchanger" component is still a bit unclear to me. Even after reading most information that's available on the web.

Camilla DSP seems a great solution. Still I might go for HifiberryOS with a dsp board, as that seems slightly more turn-key to me.

YMMV of course. And if anyone has tips on how to get it all working, I am very interested.

Thanks for the suggestion, much appreciated. I had a look, it does look very nice but, as you say, setup is rather a challenge. Too much for me too, I think.
 
OP
H

hoverdonkey

Active Member
Joined
Oct 6, 2019
Messages
131
Likes
86
I run piCorePlayer with LMS embedded and use SoX for parametric EQ in a custom-convert.conf file. I've implemented oratory1990's EQ for my Audeze LCD-3.

Martin

Thank you. That looks more achievable for this old horse.

Sounds like it runs from LMS, or is it pCP? Is it demanding on Pi performance? (if so, which model are you running it with?)

Are EQ configs for it out there for the common headphones? I am currently tempted most by Aeon RT but that may change.
 
Last edited:

Martin

Major Contributor
Forum Donor
Joined
Mar 23, 2018
Messages
1,895
Likes
5,536
Location
Cape Coral, FL
Thank you. That looks more achievable for this old horse.

Sounds like it runs from LMS, or is it pCP? Is it demanding on Pi performance? (if so, which model are you running it with?)

Are EQ configs for it out there for the common headphones? I am currently tempted most by Aeon RT but that may change.

It runs from LMS installed on piCorePlayer. I run it on a 2GB Pi4 without issue.

The easiest way I found was using oratory1990 or crinacle’s EQ settings. Create the custom-convert.conf text file from their settings on your PC. Here is mine:
# Audeze LCD-3 Equalization (oratory1990)
flc flc * *
# FT:{START=--skip=%t}U:{END=--until=%v}
[flac] -dcs $START$ $END$ -- $FILE$ | [sox] -q -t wav - -b 24 -t flac - gain -7.1 bass +5.5 105 0.71q equalizer 600 1.8q 0.7 treble +8.5 2200 0.71q equalizer 2650 5.0q -1.0 equalizer 3520 5.0q -1.5 equalizer 5750 4.5q -3.7 equalizer 7900 7.0q -3.2 equalizer 10390 7.0q -4.0 treble -12.0 11000 0.71q


This is from oratory1990's measurements of the LCD-3.

Then find the upload button on the LMS tab in piCorePlayer. Browse to find the custom-convert.conf file you created and click upload.

It’s that easy.

Martin
 
Last edited:
OP
H

hoverdonkey

Active Member
Joined
Oct 6, 2019
Messages
131
Likes
86
It runs from LMS installed on piCorePlayer. I run it on a 2GB Pi4 without issue.

The easiest way I found was using oratory1990 or crinacle’s EQ settings. Create the custom-convert.conf text file from their settings on your PC. Here is mine:
# Audeze LCD-3 Equalization (oratory1990)
flc flc * *
# FT:{START=--skip=%t}U:{END=--until=%v}
[flac] -dcs $START$ $END$ -- $FILE$ | [sox] -q -t wav - -b 24 -t flac - gain -7.1 bass +5.5 105 0.71q equalizer 600 1.8q 0.7 treble +8.5 2200 0.71q equalizer 2650 5.0q -1.0 equalizer 3520 5.0q -1.5 equalizer 5750 4.5q -3.7 equalizer 7900 7.0q -3.2 equalizer 10390 7.0q -4.0 treble -12.0 11000 0.71q


This is from oratory1990's measurements of the LCD-3.

Then find the upload button on the LMS tab in piCorePlayer. Browse to find the custom-convert.conf file you created and click upload.

It’s that easy.

Martin

Thank you, that makes it all very clear, very much appreciated.

Unfortunately, however, it looks like things might not be quite so straight forward for me after all, as I run LMS in DietPi (I only use pCP for squeezelite players). I'm not sure if/how I can upload the config file into DietPi LMS, or even if it has SOX. I'll look into it. If all else fails I could switch to pCP LMS.

Many thanks.
 

somebodyelse

Major Contributor
Joined
Dec 5, 2018
Messages
3,680
Likes
2,958
AutoEQ is another source of EQ settings for a lot of headphones. It includes crinacle and oratory1990 as sources of measurements but its own calculated filters. In basic usage you just use the pre-calculated EQ for the headphone and target response you want, but it will also let you generate EQ for your own preferred target, or to make one headphone sound (mostly) like another.
 
OP
H

hoverdonkey

Active Member
Joined
Oct 6, 2019
Messages
131
Likes
86
AutoEQ is another source of EQ settings for a lot of headphones. It includes crinacle and oratory1990 as sources of measurements but its own calculated filters. In basic usage you just use the pre-calculated EQ for the headphone and target response you want, but it will also let you generate EQ for your own preferred target, or to make one headphone sound (mostly) like another.
Thanks. That will be useful when I get it going.
 
OP
H

hoverdonkey

Active Member
Joined
Oct 6, 2019
Messages
131
Likes
86
It runs from LMS installed on piCorePlayer. I run it on a 2GB Pi4 without issue.

The easiest way I found was using oratory1990 or crinacle’s EQ settings. Create the custom-convert.conf text file from their settings on your PC. Here is mine:
# Audeze LCD-3 Equalization (oratory1990)
flc flc * *
# FT:{START=--skip=%t}U:{END=--until=%v}
[flac] -dcs $START$ $END$ -- $FILE$ | [sox] -q -t wav - -b 24 -t flac - gain -7.1 bass +5.5 105 0.71q equalizer 600 1.8q 0.7 treble +8.5 2200 0.71q equalizer 2650 5.0q -1.0 equalizer 3520 5.0q -1.5 equalizer 5750 4.5q -3.7 equalizer 7900 7.0q -3.2 equalizer 10390 7.0q -4.0 treble -12.0 11000 0.71q


This is from oratory1990's measurements of the LCD-3.

Then find the upload button on the LMS tab in piCorePlayer. Browse to find the custom-convert.conf file you created and click upload.

It’s that easy.

Martin
It seems that I can use sox in my setup, I'll just need to add the .conf file through WinSCP. It even looks like per-player settings are possible too (based on MAC address).

All in all this looks like a great solution, thanks all.


PS I found useful info on the .conf file here: https://github.com/NAStools/logitechmediaserver/blob/master/convert.conf
 

seu

Member
Joined
Apr 17, 2022
Messages
8
Likes
1
It runs from LMS installed on piCorePlayer. I run it on a 2GB Pi4 without issue.

The easiest way I found was using oratory1990 or crinacle’s EQ settings. Create the custom-convert.conf text file from their settings on your PC. Here is mine:
# Audeze LCD-3 Equalization (oratory1990)
flc flc * *
# FT:{START=--skip=%t}U:{END=--until=%v}
[flac] -dcs $START$ $END$ -- $FILE$ | [sox] -q -t wav - -b 24 -t flac - gain -7.1 bass +5.5 105 0.71q equalizer 600 1.8q 0.7 treble +8.5 2200 0.71q equalizer 2650 5.0q -1.0 equalizer 3520 5.0q -1.5 equalizer 5750 4.5q -3.7 equalizer 7900 7.0q -3.2 equalizer 10390 7.0q -4.0 treble -12.0 11000 0.71q


This is from oratory1990's measurements of the LCD-3.

Then find the upload button on the LMS tab in piCorePlayer. Browse to find the custom-convert.conf file you created and click upload.

It’s that easy.

Martin

Hi Martin! Can i ask you to help me to Create the custom-convert.conf text file for Stax SR-L700

Stax SR-L700 : https://www.dropbox.com/s/f92g9chd8if1qjz/Stax%20SR-L700.pdf?dl=0


Regards
Stig Erik
 
OP
H

hoverdonkey

Active Member
Joined
Oct 6, 2019
Messages
131
Likes
86

Hi Martin! Can i ask you to help me to Create the custom-convert.conf text file for Stax SR-L700

Stax SR-L700 : https://www.dropbox.com/s/f92g9chd8if1qjz/Stax%20SR-L700.pdf?dl=0


Regards
Stig Erik

It's pretty easy, you just need to type in the values from the table. Here's mine for my Dan Clark Audio Aeon Closed X, to give you another example to compare with:

Code:
# EQ setting for Dan Clark Audio Aeon X Closed (oratory1990, PiZ2W MAC only)
    flc flc * E4:5F:01:74:XX:XX
    # FT:{START=--skip=%t}U:{END=--until=%v}
[flac] -dcs $START$ $END$ -- $FILE$ | [sox] -q -t wav - -b 24 -t flac - gain -4.8 equalizer 100 1.4q -2.0 bass +5.5 105 0.71q bass -3.5 110 0.71q equalizer 190 2.0q 1.0 equalizer 1500 2.0q -1.8 equalizer 2150 0.9q 5.6 equalizer 3250 3.0q -2.3 equalizer 5600 5.0q -2.7 equalizer 8000 1.4q 2.0 treble -1.0 10000 0.71q


The indents on 2 lines are important - it doesn't work without them. To check it was all working I tried a version with crazy treble and bass values.

The E4:5F:01:74:XX:XX is the MAC for my Pi, i.e. so this EQ is only applied to my dedicated headphone player. Replace it with a * if you have no other players.
 
  • Like
Reactions: seu

somebodyelse

Major Contributor
Joined
Dec 5, 2018
Messages
3,680
Likes
2,958
The sox documentation is worth looking at so you know what the various bits in that long string are doing. Sox is a program that, among other things, can apply filters and other effects to audio files and streams. Breaking it down a bit:
Code:
[flac] -dcs $START$ $END$ -- $FILE$ | [sox] -q -t wav - -b 24 -t flac -
This part is about decoding the file and sending the data to sox with the necessary input and output format. After this come the string of effects that sox will apply to the data in turn between input and output. See the effects section of the documentation for full details of each, but they're generally an effect name followed by some numbers for the effect's settings. Each one will be equivalent to one of the parametric eq lines you want to apply for your headphones or speakers.
Code:
gain -4.8
Reduce the signal level by 4.8dB first so we don't get clipping when the later effects boost some frequencies
Code:
equalizer 100 1.4q -2.0
Apply a two-pole peaking equalisation (EQ) filter. Frequency is 100Hz. Width is defined using the Q factor 1.4 in this instance, which is what you'll see in most filter definitions. Gain is -2.0dB.
Code:
bass +5.5 105 0.71q
Apply a two-pole shelving filter. You'll see that the parameters are in a different order to the 'equalizer' filter above - gain, frequency and width this time. Bass is the low shelf while treble, used at the end of the line, is the high shelf equivalent.
You should get the picture by now. See the docs for other filters you may need like highpass, lowpass and biquad, or allpass if you're trying to apply something from rephase.
 

seu

Member
Joined
Apr 17, 2022
Messages
8
Likes
1
Thank you very much for the quick answer Martin, so if I have understood it correctly something like this then:


# EQ setting for Stax SR-L700 (oratory1990)
flc flc * *
# FT:{START=--skip=%t}U:{END=--until=%v}
[flac] -dcs $START$ $END$ -- $FILE$ | [sox] -q -t wav - -b 24 -t flac - gain -5.5 equalizer 80 1.0q -2.5 bass +5.5 105 0.71q equalizer -5.5 1180 1.4q equalizer 2100 1.5q 2.5 equalizer 2800 3.0q -1.5 equalizer 3600 1.5q 3.0 equalizer 5750 3.3q -5.6 equalizer 9000 2.0q 2.0


And should it be saved as a "txt" file? (custom-convert.conf.txt)

Regards
Stig Erik
 
OP
H

hoverdonkey

Active Member
Joined
Oct 6, 2019
Messages
131
Likes
86
Looks right to me, apart from missing indents:

Code:
# EQ setting for Stax SR-L700 (oratory1990)
    flc flc * *
    # FT:{START=--skip=%t}U:{END=--until=%v}
[flac] -dcs $START$ $END$ -- $FILE$ | [sox] -q -t wav - -b 24 -t flac - gain -5.5 equalizer 80 1.0q -2.5 bass +5.5 105 0.71q equalizer -5.5 1180 1.4q equalizer 2100 1.5q 2.5 equalizer 2800 3.0q -1.5 equalizer 3600 1.5q 3.0 equalizer 5750 3.3q -5.6 equalizer 9000 2.0q 2.0

Save as .conf, not .txt
 
  • Like
Reactions: seu

seu

Member
Joined
Apr 17, 2022
Messages
8
Likes
1
Thanks for the help to everyone! So is the last one that uploads, is the one that works or?
What if, I`m no longer wants eq?
Regards
Stig Erik
 
Last edited:
OP
H

hoverdonkey

Active Member
Joined
Oct 6, 2019
Messages
131
Likes
86
Thanks for the help to everyone! So it the last one that uploads, is the one that works or?
What if, I`m no longer wants eq?
Regards
Stig Erik

Sounds like you are uploading through pCP web config? I don't use LMS from pCP so I don't have this option. I would guess it just overwrites what's there if you upload a new one. No idea how to remove it that way though.

I use LMS on DietPi (which is rather good, by the way). I need to access the .conf file via SSH, which I do using WinSCP - and you could do as well. It's much like using File Explorer in Windows. The .conf file can be deleted or simply renamed, then it will be ignored. Or it can be edited in place (edit, save, restart LMS). Once set up this is all quick and easy.
 

HLH

New Member
Joined
May 6, 2022
Messages
3
Likes
0
Hi, this is very nice, exactly what I was looking for to do some EQing.
I created a custom-covert.conf based on Martins example above and it works very well for my .flac. Thank you.
I am using pCP on a RPi4 to run LMS.

But how does a rule for .mp3 must look like? I listen a lot to Deezer which streams .mp3. I try to adapt the first 2 lines based on something I found in the convert.config but no success. See below.

This is what tried to run .mp3 (did NOT work!!). It includes some extreme treble EQ for testing to make it easily noticeable. I have no clue what I am doing here just copied lines from other files:
mp3 flc * *
# FT:{START=--skip=%t}U:{END=--until=%v} ***********this is probably not correct but I could not find any documentation
[lame] --mp3input --decode -t --silent $FILE$ - | [sox] -q -t wav - -b 24 -t flac - gain -1.0 treble -20 1k 0.7q equalizer 43 8.0q -8.5

Any tips?
thx
joe


This is my custom-convert.conf which works for flacs streamed from my network:
# EQ settings for HLH
flc flc * *
# FT:{START=--skip=%t}U:{END=--until=%v} ****what does this line do? Commented out (#)? Always different in the convert.conf
[flac] -dcs $START$ $END$ -- $FILE$ | [sox] -q -t wav - -b 24 -t flac - gain -1.0 equalizer 43 8.0q -8.5 highpass -2 25 0.707q
 

HLH

New Member
Joined
May 6, 2022
Messages
3
Likes
0
Another try, also no success:

mp3 flc * xx:xx:xx:xx:xx *****MAC adress
# FB:{BITRATE=--abr %B}D:{RESAMPLE=--resample %D}
[lame] --mp3input --decode --silent $FILE$ - | [sox] -q -t wav - -b 24 -t flac - gain -1.0 equalizer 43 8.0q -8.5 treble -20 1k 0.7q

I cannot select this rule (greyed out) in the "file-type" menue in the LMS settings. And what does the (F) or (I, F)mean?

1651826051570.png
 

somebodyelse

Major Contributor
Joined
Dec 5, 2018
Messages
3,680
Likes
2,958
See the 'capabilities' and 'substitution strings' section in the convert.conf example linked earlier for the documentation you couldn't find.
# FT:{START=--skip=%t}U:{END=--until=%v}
Breaking it down we have:
F - can transcode from a named file, no substitution specified
T - can seek to a start time offset, which I don't think you can do in lame
:{START=--skip=%t} - defines a substitution to use when setting the start offset. In the following line $START$ will be replaced with --skip=%t where %t is start time formatted as minutes:seconds (m:ss). --skip is the command line option used by the 'flac' command for specifying the start time, but doesn't apply to the 'lame' command.
U:{END=--until=%v} - stopping at an end time offset, with a similar substitution to the start time, and again not applicable to lame.

The 'I' that isn't in this definition is for transcoding from input on stdin.

You could try just "# F" without the incompatible start and end time parts in case defining but not using them is upsetting things. I'm going by the docs rather than practical experience writing these definitions though. I'm curious why the mp3 flc example in the convert.conf is commented, unlike the others - perhaps it didn't work? I hope someone with more experience can spot the error.
 
Top Bottom