I didn't know I could control the 4094 using SPI. I always thought I would have to come up with my own selfmade control for it. But now that you mention it, I might use the 74HC595, they simply seem to be the better chips here.
Almost any clocked serial thing can be used with the SPI peripheral. It doesn't have to say "SPI" on it to work; it's just a byte-oriented clocked serial line, implemented in hardware so the CPU can do something else in the meantime.
About the Ports I have to spare, I do think I can free up one of them, but I just don't want to "waste" so many portpins just for the user interface. Maybe I don't see the forest because of all the trees, as we use to say here.
If all of your I/O is slow and bit-banged, then you can use SPI-controlled shift registers for everything. My update rate was 30Hz, for example, which is plenty fast if it's not multiplexed (look at video frame rates for comparison), and I had 16 bytes each direction. You can figure out the required clock rate from there.

Then the MCU itself only needs the SPI peripheral (3 pins + the appropriate select lines), a power supply, a clock (which could be internal), and a way to program it. Also, when reading that slow (30Hz), I didn't need to debounce my buttons, so that's another plus.
Maybe it also helps if I describe the whole project I'm after.
It is going to be a guitar preamp that is able to store patches and select them over a midi bus.
Nice!

So the control circuitry consists of 7 digital potentiometers (which I built myself using an opamp and a binary controlled resistor ladder with 4016 switches to bypass the resistors, giving me 6 bit resolution per "pot". It's more like a digitally controlled damping amplifier).
Or a "poor man's VCA"? (sorta) I assume that you're just playing with the feedback resistors of an otherwise textbook-designed audio opamp?
Besides that it only has to drive a few channel switchers (also opamps controlled by 4016 switches), and the display and button unit which is used to set the parameters. Oh and a part to receive Midi control signals (only 31.250 kHz).
That's all it has to do.
MIDI has that weird baud rate precisely because it divides nicely into a 1MHz clock. If your clock is a "nice" multiple of 1MHz, then you too can hit it dead-on using the UART peripheral. But you might have known that already.
And don't forget the optoisolator for the MIDI input! That's so you never have to worry about a ground loop. (at least not from any standards-compliant MIDI gear - the mess of cheap Chinese junk is another matter...) But you might have known that too.
I keep thinking about creating and detecting <break> characters, using the UART's frame-error flag to detect, and disabling the transmitter to send (which unmasks a pre-set port configuration to output the "active" state until the Tx is re-enabled)...but that's for DMX, not MIDI. MIDI synchronizes using the byte values themselves; no <break> characters anywhere. Specifically, the MSb of each byte is reserved as a sync flag, leaving only 7 bits for the actual data or to say what command is just starting.
Also, don't forget about MIDI's "realtime commands", which are all 1 byte each, and can interrupt anything else in progress. The remainder of what was interrupted continues afterwards as if nothing happened. If you don't account for that, it might mess you up someday.
Maybe I switch to actual digital pots. When I'm using many of the SPI controllable chips I could even use a smaller controller, like an Atmega88 for example. But I'm really unsure about those decisions. The Pots would have to be high voltage, because the analog circuitry is +/-15V. Microchip has some with 128 and 256 steps available. Then there is analog devices, which are rather expensive! But if they are worh their money quality wise I might look into them aswell
Yeah, digipots are usually limited to their own supply, which is itself usually limited to 5V single-ended. That makes sense from a chip-design standpoint, but why there aren't (slightly) more expensive ones that can control a 15-0-15V signal is beyond me. It seems like there'd be a big market for them, but I just don't see them. A quick search on Mouser turned up exactly one that can handle a traditional serious analog signal range, and they want $9.00 for it (USD):
https://www.mouser.com/Search/Refine?Keyword=700-MAX5439EUDI've heard some good things about THAT Corporation's Blackmer-cell-based VCA's (
http://www.thatcorp.com/Blackmer_Voltage-Controlled_Amplifier_ICs.shtml), that use current inputs and current outputs and take a quite small analog control voltage, but my only known experience hearing them is in an Alesis 3630 dual-channel compressor as a live mixing engineer. I thought they were good there, but the primary demand in that setting is to not be worse than the venue's acoustic mess, which is usually not a challenge at all!
You drive a Blackmer cell's input through a resistor and capacitor in series - the cap to block DC, and the resistor to convert the input voltage to the current that it wants; size the resistor first to set the input gain, and then the cap for the low-freq cutoff with your chosen resistor - and you run the output through what looks like an inverting opamp but without the input resistor because that resistor's job is already done by the VCA itself. The output opamp is inverting, but the VCA itself is also inverting, so it comes out right. The opamp's feedback resistor, of course, sets the output gain, and the overall equation for zero control voltage is simply an inverting opamp with the feedback and input resistors, neglecting the VCA entirely (except that the sign of the equation is reversed by the VCA being there).
The control signal can be any raw magnitude that you want, because you'll probably have to attenuate it anyway to drive the cell. And you might as well lowpass it too, by adding a capacitor to the attenuating voltage divider, both to reduce the amount of analog noise that gets into the control input, and to reduce the "zipper" sound when changing a DAC quickly without being synchronized to the audio signal (which you probably won't be).
True VCA's like this can be nice, but they *are* expensive! Mouser wants $5.50 for a THAT2180C and $9.50 for a THAT2180A. The only difference is in the accuracy of the factory trimming, which affects distortion. The externally trimmable version, 2181, has a surprisingly similar price range. And there's also the 43xx series, which includes the same VCA cell and some other toys in the same package...but the one that uses 15-0-15V
and has all the toys is discontinued.

Depending on when and how much you adjust it, your 6-bit ladder in the feedback of an opamp (if I understand you correctly) might be just fine as well.
I think it would be indeed really cool if I wouldn't have to multiplex the display. What kind of shift registers were you using? The old 74 series ones like 74ls595? Or are the spi controllable ones more specific? Because my initial plan was to use off the shelf and easy to get parts, so making a shift register work that the rest of the world is using might not be a bad idea...
My shift registers were SN74HC166 and SN74AHCT595. Mouser still has both of those, several years later, for $0.50 each (USD), compared to $10.00 for the MAX7219. That's not quite a direct comparison though, because the shift registers don't set the LED current like the dedicated driver does. And because each LED has its own dedicated output now, you'll also need a dedicated resistor for each one.
With the number of resistors that you're going to need for that, I'd recommend a DIP, SOIC, or other dual-inline package with 8 isolated resistors in it, at least for prototyping, just to reduce the total number of parts to get loose on the bench and then hold down individually while you solder them!
If you want to adjust the brightness easily like the MAX does, then you can replace those resistors with current followers. There are transistor arrays just like there are resistor arrays...
At some point, if you want all the features of the dedicated chip, it becomes cheaper to use the dedicated chip; if not, then it's easy to beat a specialized Porcshe with a collection of Volkswagens.