Project status: In design
2020-05-15: Dug up the old schematics, decided to give it another shot.
Some years ago, I was curious about stepped attenuators, but the traditional enthusiast way of constructing them didn't appeal to me, as suitable rotary switches are quite large and somewhat difficult to find. So I decided to go with electronic control, using switch ICs and surface mount construction. Below is a picture of my old design. I'm not adding a schematic here since it's quite messy (I've cleaned up my schematic style considerably since), but the operation is quite simple.
Because the switch IC worked with a single supply voltage, I needed to add a bias voltage to the incoming audio. After attenuation, the bias also needed to be removed. Both operations were to be carried out by the two ICs on the left side in the picture, simple opamp buffers. The topmost IC is a 74HC595 serial register, reducing the number of digital lines needed for input. The rest of the ICs are analog switch circuits, and they are ultimately the reason why I put this project on hold. Not only do they need the bias voltage for the signal, their resistance varies considerably with input voltage. This would cause distortion in the signal, and I wasn't comfortable with going forward with this design.
The attenuator is based on a simple logarithmic ladder circuit, where switches either bypass or engage each stage depending on the required attenuation. Each stage has an attenuation double of the previous stage, creating a series of logarithmic steps. Consider it as a series of fixed resistor dividers, combination of which mimics a potentiometer, just more accurately.