shouldn’t it be:
filt.change.emit()
rather than
src.change.emit()
To this day I’m a little bit shaky on the internals as to why src.change.emit() actually works… but see here for when I first asked this exact question → Understanding change.emit() with filters/sources/glyphs