TS3AudioBot icon indicating copy to clipboard operation
TS3AudioBot copied to clipboard

Equalizer for TS3Audiobot

Open marv-th opened this issue 6 years ago • 6 comments

It would be a very nice feature, when the played audio can be setup with an equalizer. The main point is to range bass and trebble. Hope u like this idea and bring it very soon in it.

marv-th avatar Apr 26 '19 19:04 marv-th

Uh, this seems like a bigger project, and I'd have to find a suitable audio library first. I'll put in to the enhancement list ans see what I can do.

Splamy avatar Apr 27 '19 11:04 Splamy

FFmpeg can act as an equalizer. You would only need to pass few arguments to it based on maybe !bass and !treble kind of commands. I would not bother with another audio library.

sisa1917 avatar Jul 01 '19 14:07 sisa1917

Very interesting, thank you for the hint. Doing this in ffmpeg means that a change would require a stream restart(/recontinue) but it's a good start

Splamy avatar Jul 01 '19 15:07 Splamy

I would like to try this for my self in a plugin in to add or edit ffmpeg arguments. Can you tell me how to catch the ffmpeg, set argument and send in realtime?

marv-th avatar Apr 15 '20 22:04 marv-th

Well I can point you to the parts where the launch arguments are built:

  • https://github.com/Splamy/TS3AudioBot/blob/master/TS3AudioBot/Audio/FfmpegProducer.cs#L31-L33
  • https://github.com/Splamy/TS3AudioBot/blob/master/TS3AudioBot/Audio/FfmpegProducer.cs#L187-L299 If you wan't to change anything specific you'll have to do it yourself.

in realtime

changing equalizer values in realtime won't be possible with the ffmpeg.exe piping, you'd have to change the entire setup to use a library instead of an external binary. But good luck trying to find something useable and cross platform, I've kept my eye on something like that fo years. The only option imo are the ffmpeg libraries and it will probably be a lot of work correctly binding them into a c# project

Splamy avatar Apr 16 '20 23:04 Splamy

Thank you for your answer. But it is possible to set equalizer arguments, when the ffmpeg process will start? And can you tell me how to catch this in a plugin?

marv-th avatar Apr 19 '20 19:04 marv-th