I was just looking through the start-up terminal output from Bristol sidney:
created 32 voices: allocated 1 to synth
How can that be? I know the synth is monophonic but uses internal logic to assign them, but it uses 3 voices (one per oscillator).. So aren't 3 voices being used?
Or is that the output from the 2nd SID chip used for ADSR/Modulation?
The SID is a special case.
Bristol has a minimum voice count of 32. This is a reasonable value even though some emulations cannot support that many but they generally request less for their emulation anyway (OBX/Prophets/Jupiter-8). This is the maximum number of notes you can play - a voice is a stream of DSP code that generates a single 'voice'. Many emulators can support a lot more than this too, especially the organs.
Now the SID is special since it uses a soft chip and that chip generates three voices. The code is actually monophonic, SID is passed a map of the active midi keys and it assigned voices to keys on that map depending on your choice of note logic, it was the only way to get multiple access to the three voices on a single chip - it does its own note logic within the engine note logic.
This is a nice model, possibly better than the current one. The default voice code has the engine handle a majority of the midi data and then assign voices to notes and assign emulations to the voices (a voice can run any emulator). Once this code worked it could then be used for any bristol emulator and makes development go faster. The downside of the code is it lacks control - the voices are manipulated from a common list of them, in itself hard to manage, and means some features are difficult to do such has having voices affect each other. The SID model works well but requires more coding in the emulator.