I still have confusion about multiplexing and shift-registers..
A shift register is essentially a demultiplexer. You feed serial bits into the shift register, and the shift register isolates & outputs the bits depending on their position in the data stream.
Perhaps you mean to say matrixing... For example, with 12 outputs you can create a 6x6 matrix to control 36 LEDs or relays. 36 transistors or data lines from the matrix would be trickier because you loose your common ground line.
I don't know what specific transistor to use, I need two things:
- Minimal noise
- Minimal costs
Noise shouldn't be an issue in a switching application. But the signal-to-noise ratio depends on what kinds of "signals" you're working with.
...to build something similar to a digital potentiometer...
Before you get too deeply into this, I'd recommend experimenting with 2 or 3 transistors/resistors to test-out your concept. you can hard-wire the transistor inputs, or use pushbutton switches if you want to test it without programming the Arduino.
And since you are new to shift registers, I suggest the same thing.... Test one chip first.