Veamos. No tengo idea sobre las clases de Java o qué tipo de soporte tiene para el procesamiento de señales, pero le daré algunas pautas. Los detalles particulares de la implementación en el lenguaje, tienes que averiguarlo.
Para realizar cualquier tipo de procesamiento en un archivo de audio, necesita los datos "en bruto", es decir, un archivo de audio que tenga muestras de audio sin comprimir. Por ejemplo, el formato WAV, que normalmente tiene muestras en un complemento de 2 con signo de 16 bits.
Si va a usar una computadora y hacer un procesamiento fuera de línea, podría ser una buena idea convertir ese valor al doble (lo que en la mayoría de los procesadores de hoy significa número de coma flotante de 64 bits).
Por lo tanto, tendrá un flujo continuo de números dobles provenientes del archivo. Luego debe definir una forma de manejar los datos continuos. Una forma estándar muy utilizada es usar un búfer circular (incluso si está fuera de línea, supongo que desea que su código sea eficiente, y cargar todo el archivo en la memoria como una matriz no es la mejor solución). O eso o simplemente un búfer normal, es su elección. La longitud del búfer debe ser una potencia de 2 (Do a la eficiencia del algoritmo Radley-2 de Cooley-Tukey).
Ahora necesitas hacer la FFT real. Esto es simplemente una multiplicación del búfer (que matemáticamente es un vector) por la matriz FFT. Cómo se realiza esta operación en Java, ni idea. En C sería solo pasar el puntero a la matriz y la longitud a una rutina FFT que, o bien devuelve un puntero a la memoria asignada dinámicamente, o deja el resultado en una matriz que le pasa.
finalmente, llega a una matriz de números complejos M (suponiendo que la longitud de la matriz / buffer / vector con la señal es M). Y luego haces lo que quieras con él.
Por ejemplo, podría tomar la magnitud de cada uno de los números complejos y encontrar el máximo para detectar dónde podría estar la frecuencia fundamental (aunque muy aproximada).
Extras: Las técnicas más avanzadas para procesar incluirían una ventana previa para evitar fugas, hacer relleno cero para obtener más resolución en el espectro de ventanas, etc.
Espero eso ayude.