Cómo cambiar la velocidad del audio con FFmpeg para corregir BPM en Mixxx

¿Alguna vez has notado que tus pistas en Mixxx parecen correr a una velocidad diferente a la realidad? Es común encontrarse con discrepancias, como cuando el software interpreta un BPM de 106.1 mientras que tu referencia es de 104.4.

Ilustración técnica mostrando un waveform digital siendo procesado por una interfaz de FFmpeg con ajuste de velocidad.
Visualización del audio antes y después de aplicar el filtro atempo para corregir la velocidad.

La solución más directa para este tipo de problemas reside en el framework multimedia FFmpeg, específicamente gracias a su filtro atempo. A diferencia de otros filtros de audio que modifican el tono o el pitch, atempo altera únicamente la velocidad de reproducción del archivo.

Ahora, veamos cómo calcular ese ajuste matemático. Si quieres acelerar una pista para compensar esa diferencia, divides los BPM: 106.1 dividido por 104.4 es aproximadamente 1.01628. Esto significa que el audio está apenas más lento de lo que debería.

Aquí tienes la sintaxis exacta para aplicar ese factor:

ffmpeg -i input.mp3 -filter:a "atempo=1.01628" output.mp3

Son solo dos líneas de código, pero es crucial entender un par de limitaciones del filtro para evitar frustraciones mayores. Primero, el valor que le das a atempo debe estar estrictamente entre 0.5 y 2.0; cualquier cambio fuera de este rango no funcionará con este filtro específico.

Segundo, si después de aplicar este cálculo aún sientes que la pista «se escapa» o que el desfase persiste, probablemente el problema no es solo una cuestión de BPM. En ese caso, podrías estar lidiando con problemas más complejos como el grid o el warping dentro del propio software DJ.