El problema está en que strpos($song_type,"mp3") y strpos($song_type,"MP3") nunca deberían evaluarse a true en este caso.
Los tipos mime conocidos para archivos mp3 son:
- audio/mpeg3
- audio/x-mpeg-3 .mp3
- video/mpeg .mp3
- video/x-mpeg
No sé que type envía Chrome, pero seguramente no es ninguno de los tipos mime válidos.
Firefox debe estar enviando uno de la lista o un string vacío, pero de ninguna manera debería enviar algo que incluya el substring 'mp3' o 'MP3'.
De todas formas no es recomendable confiar en ese dato, ya que proviene del usuario. Un usuario podría subir un archivo de cualquier tipo, con cualquier nombre y extensión, indicando como type 'audio/mp3'.
Es recomendable que verifiques el tipo en servidor sobre el archivo referenciado por $_FILES['song']['tmp_name'].