Arduino UNO SPI Operation

Your sketch does not work as expected, the RMP, GMP and BMP values are ALWAYS transmitted to the DAC with EVERY loop run, regardless of whether one of the buttons is pressed or not.
Reason: behind all queries of the buttons - if (xxxButton == HIGH); is the semicolon ';' which makes the query ineffective on the following code block.