You can have both. The encoder changes the volume globally and the software per channel / instrument. The MCP42010 can jump instantly to any set value. These will have to be bit-banged though because all the SPI/I2S interfaces are used.
I have started changing the schematic for 4 audio channels and I've ordered some more components. I will probably also put a TDA2822M as a headphones stereo amplifier. This is linear rather than class D because I don't want the extra switching noise and 500mW per channel is plenty for headphones.
Better DACs to allow 4 independants output is for me the most interesting part.
Is a headphones jack really usefull on the preenfm2 ?
I understand it is for sound modules with sequencer, but i wonder here if it's worth the effort here.
Where the jack will be ?
I've changed all MIDI headers to 3 pins. The new encoder has a separate push switch connected. I will probably have to chose between separating the switches of all the other encoders and the P3 analog input header because I've started to run low on pins. Which one is better? Also is it worth having 4 separate LEDs or more LEDs? If so maybe it's worth dropping a second MCP23S17 to handle the extra switches and LED outputs.
Must be on the midi out only. If plugged on the midi in, there will be a shared ground with the midi device that sends midi.
Would be great to be mistake proof and having it just on the midi output.
Separate Leds or more leds are not usefull. The current ones are not even visible on all preenfm2 with metal case (the majority).
The 20x4 LCD is big enough to contain all usefull info.
I would prefer P3 than separated encoder switches. There might be a Eurorack version using them in the future (not from me).
An even better option would be to replace the port expanders with a STM32F103 (only $1.20) running at 8MHz (internal RC clock) which can handle all the encoders, switches and LEDs independently and free a lot of extra pins in the STM32F4 and it can also keep track of the encoder values.
Ouch... another firmware to write/maintain/flash... That would make the development and upgrade process much more complicated.
I think we should avoid that.