Rémi Bernon (@rbernon) commented about dlls/dmusic/instrument.c:
+ continue; + conn->usDestination = gen_to_conn_dst[mod->dest_gen]; + + if (gen_to_conn_src[mod->dest_gen] == CONN_SRC_NONE) + { + conn->usSource = mod_src_to_conn_src(mod->src_mod); + conn->usControl = mod_src_to_conn_src(mod->amount_src_mod); + src_transform = mod_src_to_conn_transform(mod->src_mod); + ctrl_transform = mod_src_to_conn_transform(mod->amount_src_mod); + } + else + { + conn->usSource = gen_to_conn_src[mod->dest_gen]; + conn->usControl = mod_src_to_conn_src(mod->src_mod); + src_transform = CONN_TRN_NONE; + ctrl_transform = mod_src_to_conn_transform(mod->src_mod); Should we really have usSource == usDestination and usControl set to the SF2 source? I'm pretty outdated on SF2 but it would feel more natural for connections to follow `<src> -> <dst>` or `<src> mod <ctrl> -> <dst>` patterns, rather than a seemingly recursive `<dst> mod <ctrl> -> <dst>`?
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/9607#note_123917