buzztrax icon indicating copy to clipboard operation
buzztrax copied to clipboard

GstElement "notify::*" calls not working?

Open dlbeswick opened this issue 3 years ago • 2 comments

While working on the tests I was having some trouble with "test_bt_sequence_ticks". That test creates a song with a simsyn, and a simple pattern that modifies its "wave" parameter. The test then attaches a signal to the element's "notify::wave" and plays the song to test whether the element's properties are updated properly by the playing song. The test fails currently because no updates happen.

I have not been able to get callbacks by manually attaching to "notify::wave", i.e. just in gstbt_sim_syn_init, and I noticed that the Machine Properties Dialog isn't updating when machine parameters change from song patterns. Has something changed/broken in GStreamer to do with notify::* callbacks recently that stops them firing?

I'll create a small GStreamer test program to find out more, but just putting this bug here in the meantime in case someone knows more.

Here's the song I've been using to test: test_bt_sequence_ticks.txt

dlbeswick avatar Aug 07 '21 06:08 dlbeswick

This test is indeed not working for me either. I've should have disabled it with a comment. I worked at some point, but so far I was not able to figure out whats wrong.

I have a hunch though. A while ago I extracted common 'components' from plugins. The actual simsyn is just a container that 'proxies' certain properties from the components: https://github.com/Buzztrax/buzztrax/blob/master/src/gst/audio/simsyn.c#L252

For that I created this helper: https://github.com/Buzztrax/buzztrax/blob/69288014de74ba0831761bfa0f49745778b561b8/src/gst/audio/plugin.c#L50 I probably missed some details.

To check:

  • add some debug prints to https://github.com/Buzztrax/buzztrax/blob/master/src/gst/audio/simsyn.c#L145 and https://github.com/Buzztrax/buzztrax/blob/master/src/gst/audio/simsyn.c#L176
  • verify that the automation is changing the simsyn:wave property and not the proxied osc:wave property (this would explain why it works, but we don't see the UI changing)

ensonic avatar Aug 12 '21 14:08 ensonic

Thanks heaps for the pointers -- I'll look into this

dlbeswick avatar Aug 15 '21 06:08 dlbeswick