Mouth radical on the left — the indexing semantic. Singing is a mouth action, joining 喊 (shout), 叫 (yell), 吃 (eat). Where 歌 (with 欠 'open mouth') marks the song-as-object, 唱 marks the singing-as-action, which is why the two pair so naturally in 唱歌.
Right component supplies the sound: chāng → chàng, just a tone shift. 昌 is two stacked 日 (sun) and originally meant a clear, bright song before being borrowed for 'prosperous'. The same phonetic spawns 倡 (advocate) and 娼, all keeping the chang-rime.