/** //all dssi functions are documented in... dssi.h // * run_synth() * * This member is a function pointer that runs a synth for a * block. This is identical in function to the LADSPA run() * function, except that it also supplies events to the synth. * * A plugin may provide this function, run_multiple_synths() (see * below), both, or neither (if it is not in fact a synth). A * plugin that does not provide this function must set this member * to NULL. Authors of synth plugins are encouraged to provide * this function if at all possible. * * The Events pointer points to a block of EventCount ALSA * sequencer events, which is used to communicate MIDI and related * events to the synth. Each event is timestamped relative to the * start of the block, (mis)using the ALSA "tick time" field as a * frame count. The host is responsible for ensuring that events * with differing timestamps are already ordered by time. * * See also the notes on activation, port connection etc in * ladpsa.h, in the context of the LADSPA run() function. * * Note Events * ~~~~~~~~~~~ * There are two minor requirements aimed at making the plugin * writer's life as simple as possible: * * 1. A host must never send events of type SND_SEQ_EVENT_NOTE. * Notes should always be sent as separate SND_SEQ_EVENT_NOTE_ON * and NOTE_OFF events. A plugin should discard any one-point * NOTE events it sees. * * 2. A host must not attempt to switch notes off by sending * zero-velocity NOTE_ON events. It should always send true ///interesting ..this is probably what was going on with all of those NOTE_ONs, some of them were probably zero velocity * NOTE_OFFs. It is the host's responsibility to remap events in * cases where an external MIDI source has sent it zero-velocity * NOTE_ONs. * * Bank and Program Events * ~~~~~~~~~~~~~~~~~~~~~~~ * Hosts must map MIDI Bank Select MSB and LSB (0 and 32) * controllers and MIDI Program Change events onto the banks and * programs specified by the plugin, using the DSSI select_program * call. No host should ever deliver a program change or bank * select controller to a plugin via run_synth. */ void (*run_synth)(LADSPA_Handle Instance, unsigned long SampleCount, snd_seq_event_t *Events, unsigned long EventCount); //is this any different from how we are using it? nope, same nothing about samplecount though you mean we haven't been sending sample count? I thought that's what nframes was? yes it is, i mean no docs about it ok I'll look the second indicates the block size (in samples) for which the plugin instance may run. /**