void ox_update(machine* m, int which_param, int track, param value)
Use this callback to respond to events and parameter changes, altering the state of your machine as needed.
When a parameter's value changes, you'll be called with the track number, parameter number, and new parameter value. Your tracks are numbered from 0 to my_num_tracks - 1; the parameter indices will match up with the ix_* constants you set up earlier.
The value noteoff is a special case for the note parameter type; it means that the note should stop playing on that track.
Traditionally, tracker columns have been ``persistent.'' A blank tracker cell changes nothing about the state of the machine, while parameter changes that do happen stay changed until the user or sequencer interferes. If you follow this convention, your machines will feel more solid and more consistent to longtime users of tracking software.