That said, one VVID == one physical voice, or possibly
no voice at
all. (And if you care, the latter only happens when you're
overloading your polyphony.) That is, you can still do whatever you
Or when the hihat sound is done, but the user has programmed events for
later on that same VVID.
That's great, but with VVIDs + table, you can have
that as well -
without two-way communication or senders having to know anything
about it. (Senders deal only with indices, and the host manages the
table. Only synths will ever access the entries in the table)
Synth needs to know where the table is - We'd need to do double-indirection
so that the table can move if needed.
struct voice *v = myvoices[(*(host->vvid_table))[vvid]];