0

Context: I have an audio device running Mopidy, which outputs to a gstreamer pipeline. My device has an interface for an equalizer - for this I've set up my ALSA config to go through ALSA equalizer - the GStreamer pipeline targets this. The code that handles the interface uses python alsamixer to realise the values.

This works, but ALSA equalizer is a bit janky and has a very narrow range before it distorts the audio. GStreamer has an equalizer plugin which I think is better; I can implement this as per the example launch line at:

gst-launch-1.0 filesrc location=song.ogg ! oggdemux ! vorbisdec ! audioconvert ! equalizer-10bands band2=3.0 ! alsasink

However, I want to be able to dynamically change band0-band9 parameters while the stream is playing - either via python or from the command line. I'm not sure what direction to look - is this possible?

Matthew
  • 31
  • 1
  • 3
  • I use the ladspa `mbeq` so can't say for sure but the object should have `get` and `set` functions. `.get_property("band3")` and `.set_property("band3", 4.33)` for example. – Rolf of Saxony Jul 17 '21 at 08:07

1 Answers1

0

Properties from a plugin can be set via g_object_set() function. Whether they can be changed on the fly or only when the pipeline is stopped depends on the plugin's implementation.

Florian Zwoch
  • 6,764
  • 2
  • 12
  • 21