I have a project where I'll need to generate some sound waves. In case it matters, the microcontroller I'll be using is an STM32L476RG which have an internal DAC. The question I have is related with the output power/sound I'll get. I'm not sure if driving the speaker directly through the DAC will give me proper volume.
1) What is the main limiting factor of output power / high volume? Is it the speaker?
2) How do I know if the DAC is enough to drive the speaker or if I need an external amplifier? How does the math works on this?
3) I'll be using sampled PCM data contained in a WAV file. Is there any advantage/disadvantage of using a codec (I2S) instead of DAC(+power amplifier)?