is it possible to play a song with a command block?

Solution 1:

Yes, use:

/playsound records.<RECORDNAME> @p

For example, to play blocks:

/playsound records.blocks @a