Add rudimentary compressor and LPF/HPF #1294
Replies: 4 comments 11 replies
-
Hi thank you for opening this issue.
Not sure if a compressor is the right thing here (especially if it adds complexity in the Jamulus source code and modifies audio signal)? It doesn't fix the core issue with high input gain: I think it should be possible to tell them how to turn down their gain in Windows/macOS, since it's probably only a one time action. Also, they could move away from their mic? The next version will have basic feedback/clipping detection: #1179
Not sure, but don't we have this already (at least in fancy mode)? So you'd suggest adding
|
Beta Was this translation helpful? Give feedback.
-
There is a clipping indication in all 3 skins. For my ears there is often already distortion before clipping sets in. |
Beta Was this translation helpful? Give feedback.
-
Along with the other asks, could we get a Limiter? It would add a small amount of latency (~5ms) but would prevent clients from blasting out everyone else, and likely help vocalists that don't have an in-line Limiter prior to Jamulus. |
Beta Was this translation helpful? Give feedback.
-
I agree that jamulus in itself should be kept simple see that it is not easy to ‘draw the line’ somewhere. The problem with an interface to any kind of plugin system that I foresee is that it is hard to use for most of the unexperienced users. Exactly those users need the basic ‘limit my bandwidth/HPF” and “limit my dynamic range/compressor” kind of functions. For the others a contraption that routes the audio in and oud of a DAW already does the trick and a plugin interface will add little function compared to the amount of work to be invested.
About KISS: if this principle is kept high, then please re-evaluate the reverb-function in the client. Also consider the pan slider on the input (ref #723, #1290) That single slider is far but adhering to ‘kiss’.
From a users perspective a simple implementation would be a high pass filter on 100Hz, enabled automatically when voice, mic, violin, flute, etc. instruments are selected. Manual activation/deactivation should be possible.
For the compressor: a rudimentary, not even selectable ‘cut 12dB on consistent clip” would work, together with a persistent warning notification on the client. It would work for expert, novice and agnostic users alike. It would save users ears from loud signals caused by wacko’s, agnostic gain settings, misconfiguration and feedback. Note that the feedback argument is very likely to become a problem when Android and iOS versions are starting to be used: inherently a device will cause feedback when no external audio interface is found and the speaker and microphone are used.
… Op 1 apr. 2021, om 11:09 heeft Christian Hoffmann ***@***.***> het volgende geschreven:
Nobody stops you from adding it yourself and opening a Pull Request ;-). However there's no guarantee that it gets merged.
I agree, but maybe it makes sense to check here if there is willingness to accept such a feature from @jamulussoftware/maindevelopers <https://github.com/orgs/jamulussoftware/teams/maindevelopers> to avoid work in a PR without a chance of being accepted.
My personal stance: I think we should aim to make it possible and easy to do add such filters, but I'm not convinced that we should extend the built-in integrated pre-processors in either clients or servers.
Therefore, I'd be open to PRs which add interfaces to VST (there was some work already, I think?), LV2, LADSPA or similar (ideally there'd be one generic way...?), but not open for "Add an EQ", "Add a limiter" and so forth as I fear it would be hard where to draw the line.
In other words, keep Jamulus simple, but still make it possible to work with other, more targeted components such as filters.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub <#1294 (reply in thread)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AC4LARZWURA5ATB72ANLFXLTGQZ3HANCNFSM42CJZ2JQ>.
|
Beta Was this translation helpful? Give feedback.
-
I would like to see a rudimentary compressor function, to eliminate issues by inexperienced users with their gains turned up too high. Opus doesn’t seem to handle clipping signals all that well. A very basic ‘AGC’ algorithm could help.
As an alternative a long stretch RMS calculator could drive on screen hints ‘you are loud, turn down the gain on channel 1/L’.
the most rudimentary solution would be a clipping indicator.
To give the opus encoder a good time while creating a better sound experience at the same time, a selectable -6dB/oct low pass and high pass filter (or maybe a bit steeper) at a fixed frequency (150Hz and 10kHz) would be nice. It would kill microphone rumble and eliminate hard to encode high pitched noise. Filtering could take place on the clients side as there is probably the most available computing power, plus this would not harm any other musician on the server.
By nature the filtering would add a bit of latency. The choice of FIR or IIR filters determines sound quality, processor load and added latency.
Above the input VU, switches with a control light would activate the compressor, LPF and HPF.
When a mic or similar instrument is selected in the profile, a suggestion is made to engage both LPF and HPF. Other instruments may suggest this too, either one of the two. Decision is hard coded and should be based on experience and instrument’s harmonic content.
Compressor is engaged by default and can be turned off by the user. VU is augmented with a Gain Reduction meter running top-down.
All settings are retained in the local client configuration.
Beta Was this translation helpful? Give feedback.
All reactions