# Does FFT magnitude of recorded sound depends on the sound card used?

Based on some reading, here's my understanding of how sound recording works:

Microphone outputs a voltage based on sound pressure. The microphone voltage is amplified and the amplified voltage goes into an ADC. The amplifier gain is such that the maximum microphone output is matched to the maximum input voltage of the ADC. The ADC converts the input voltage into a number, and this number's magnitude can depend on the number of bits. So let's say the max input voltage is 5V, this would be 255 for 8 bit, or 65535 for 16 bit.

When I record an audio stream using something like PyAudio on Python, the audio is composed of list of numbers that the ADC outputs, and that can vary based on if I used 8 bit or 16 bit encoding. Therefore, the FFT magnitude will vary too.

Please correct me if I'm wrong.

The output of an 8-bit ADC could be interpreted as the numbers $$-128,-127, ...+127$$ but it's almost always better to think of it as $$-1, -127/128, .. -1/128 , 0 ,+1/128 ... +127/128$$