As far as I know, cron is not smart like that. I can think of one simple way to code your logic in cron, but it's not that nice.
59 11 21 3 * ln -s ~/play_a_birthday_mellody.sh ~/script_which_plays_stuff.sh
5 12 21 3 * ln -s ~/ring_a_bell.sh ~/script_which_plays_stuff.sh
0 12 * * * ~/script_which_plays_stuff.sh
and as a one-time setup, create ~/script_which_plays_stuff.sh
as a symlink to ~/ring_a_bell.sh
Anyway, the conventional way of using cron is for running another script inside which you code your logic.