LMMS / LMMS/lmms

Consider disabling optimizations for SWH Multiband EQ

Open
#6,341 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
10.4k
Forks
1.3k
Avg merge
2d 13h
Merged PRs (30d)
7

Description

Currently, we use a CMake-adapted version of Steve Harris' Makefile and use optimizations `-03`, but several upstream bug reports/upstream comments suggest this could cause some audio artifacts under certain configurations, notably some 32-bit hosts.

The symptoms are crackling/frying noise. Oddly, not all LADSPA hosts exhibit the problem, quoting:

> Bit of a dredge... but I am also getting EXACTLY the same noise/hiss/crackle as you are playing your `ogg `file.
>
> it is strange - since `aplay` and `mpg123` play fine directly to alsa configured `alsaequal` or direct LADSPA plug ins. This works for `zm1`, `vynil` and `mbeq` on my ArchlinuxARM system.
>
> However - when i use mbeq under [MPD](https://www.musicpd.org/) (either via `alsaequal` or `ladspa`) - I am getting the noise you are.
>
> This was working fine on my old ArchlinuxARM version - so I'm guessing a downstream package upgrade has broken things... I've tried "forcing" downgrades - everything works (until you really go into the bowels) - e.g. `alsa-lib`, `fftw`, `gsm`, yet the hiss from `mbeq` is there.
>
> I can get all plugins working via `mpg123` and `aplay` clients. [MPD](https://www.musicpd.org/) works with `vinyl` via LADSPA direct, or `zm1`, but hisses / crackles via LADSPA or alsaequal under MPD (same asound.conf). The funny thing is MPD works fine with alsaequal's 10 band EQ (in `caps.so`) under MPD.

Upstream bug reports:
* https://github.com/swh/ladspa/issues/64#issuecomment-711483179
* https://github.com/swh/ladspa/issues/70#issuecomment-849536444

https://github.com/LMMS/lmms/blob/4dc04a612afbe12da218338f4886db2998b80f57/plugins/LadspaEffect/swh/CMakeLists.txt#L12

There's really no immediate action needed here on LMMS' end, I just found the issue to be popular enough that eventually someone will run into it downstream on our project and sometimes these optimization issues are [really hard to track down](https://github.com/LMMS/lmms/issues/1757#issuecomment-77509367). 😅

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with plugins/LadspaEffect/swh/CMakeLists.txt at the referenced optimization setting, then read upstream reports 64 and 70 and the linked LMMS issue for reproduction context. Determine whether the optimization setting can cause the reported crackling on supported configurations and document a reproducible verification of the chosen build behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
cmake
Domain
audio-video-rtc, build-system
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.