Bueno vamos a ver:
1) si es un tono de audio sera de frecencia menor a 20000 Hz
2)deteccion del tono
¿es un tono puro(sinusoidal pura)?¿o es una señal de audio normal?
Si es un tono puro el metodo de contar los cruces por cero pede funcionar
correctamente
Si la señal es mas compleja puedes tener muchos problemas, dependiendo
de la forma de a señal,(puede cruzar varias veces por cero debido a componentes
de frecuencia superiores)
Si esto es asi la solucion estaria en hacer una estimacion espectral, mediante
una FFT y buscar el pico en la frecuencia de 400 Hz
si no especificas para que lo quieres no puedo profundizar mas
mira como saltan!!!!!!!!!!!!!!!!