Let's start by creating the most simplistic synthesizer voice group as a example.
Table 7.1. How it works
1) The MIDI Note Extractor does the job of separating the note information encoded into the MIDI stream in a sample accurate manner. More precisely, it decodes the MIDI Note On and MIDI Note Off messages. This is what it outputs:
2)Following down, it's up to the ADSR to generate a normalised (between [0;1]) envelope signal (e) which is independent of the note amplitude (b) given by the extractor. It also generates the VERY important "activity gate" (f) signal that the Polyphonic Adapter will use to detect that the note has completely finished playing (release included) so that it can manage this instance of the voice to another note. In more detail, the activity gate output of the ADSR will be "1" or "on" from the start of the note, until its completion (the release), after which it will output "0" or OFF.
3)Next the "*" (Binary operator), multiplies the original "Note On" amplitude (b) with the current envelope value generated by the ADSR (e). If you recall, the ADSR generated a normalised gate, so in order to get the final amplitude we need to multiply both together.
4)Finally the Oscillator (sine wave by default), will output a nice waveform (h) that will have its frequency given by the Note On Extractor, (a) and a smooth amplitude envelope generated by the results of the original amplitude multiplied by the envelope value at a certain point in time (g). If you look closely, you'll notice that the third input of the oscillator - phase reset - is also filled in by the Note Extractor's trigger output (d) so that each time a new Note is sent to the group, the oscillator's phase is set back to 0.