ciao...secondo me il problema sta proprio nella funzione silenzia().
ragiona bene sul concetto di variabile locale...a che valore hanno o acquisiscono nella funzione.
di conseguenza ragiona a come si comporteranno tutti gli if() e l'else nella funzione....quindi a che valore avrà la variabile muto che verifichi nella funzione alarm()
EDIT: lo stessi fai per la funzione alarm()...quella variabile outputTone...come cambia nella funzione?