The STM32 found itself driving headphones by ganged PWM outputs. Ganged because it allowed more current. This worked much better than the DAC while consuming a lot more power. It was acceptable. Because the PWM updated at 40khz, there was a lot of aliasing. It required a 3rd order FIR filter which knocked out all the high frequencies. It sounded horrible but better than aliasing & could be done for each sample. Also, be sure to tie your unused opamp inputs to the power rails.