Open dlbeswick opened 3 years ago
This code https://github.com/Buzztrax/buzztrax/blob/69288014de74ba0831761bfa0f49745778b561b8/src/gst/bml/common.c#L1092 is checking results from buzzmachine effects https://github.com/Buzztrax/buzztrax/blob/master/src/gst/bml/gstbmltransform.c#L346 and sets the gap flag is the buffer is all silence.
Luckily we do have the source for panzerdelay and it see to return the has_data flag: https://github.com/Buzztrax/buzzmachines/blob/master/FSM/PanzerDelay/PanzerDelay.cpp#L724
Also the freeverb plugin seems to explicitly hand the gap flag: https://github.com/GStreamer/gst-plugins-bad/blob/master/gst/freeverb/gstfreeverb.c#L919
Sounds like some printf debugging is due :/
As seen above, the symsin is set up to make a very quick pulse; a click. The PanzerDelay echoes every four ticks and the freeverb has a very long reverb.
What I see is that the freeverb only outputs when the PanzerDelay is actually outputting something; the reverb doesn't tail off as expected.
Always calling
GST_BUFFER_FLAG_UNSET (outbuf, GST_BUFFER_FLAG_GAP)
ingst_bml_transform_transform_ip_*
fixes this issue, and the reverberation happens as it should.Is this a BML issue or freeverb issue, or something else?
Example song here: bug-bml-gaps.txt