Optimuff Prime escribió:
Cuando hablas de "ciclos de digitalización" no estás incluyendo al total de los datos procesados cuando tratamos audio.
Te estás circunscribiendo a la grabación, que no es el único procesamiento que ha de realizar el ordenador al trabajar con audio.
Me refiero a que no solo se trata de digitalizar (ahí estás acertado al hablar de kilo hz vs Mega Hz).
Cuando tratamos audio (añadiendo plugins en el DAW, por ejemplo) ya no estamos hablando de digitalización AD, si no de procesamiento en bruto de datos, con lo cual ya no tiene sentido hablar de kilo hertzios.
No te me confundas amigo Optimuff, no es de digitalizacion de lo que estoy hablando, es de sincronismo, el audio en toda su ruta, desde que se digitaliza, pasando por los procesos por software, hasta que es reproducido mantiene una estructura sincrónica, es decir se debe mantener constante el periodo entre muestra y muestra. Piensa por ejemplo en cuando importas un audio de 44 khz en un proyecto de 96 khz, si no conviertes la frecuencia de muestreo de dicho audio se modificará el tiempo y el tono del audio, sonará mas rápido y agudo. Esto ocurre debido a que a 44 khz las muestras son tomadas cada 22 useg, pero a 96 khz cada muestra es tomada cada 10 useg y si reproduces a esa tasa las muestras de una señal que fue registrada con un periodo de 22 useg pues estarás compactando temporalmente la señal, eso afectara tono y tiempo.
Por eso cuando se procesa se debe mantener el periodo, y el resultado de cada proceso debe ser entregado en dicho periodo, es eso lo que he dicho, tu aplicación va siguiendo un reloj de sincronismo, y necesita las muestras procesadas dentro de cada ciclo.
Que exista mas información y no solo la de las muestras es un hecho, pero en realidad no hay problema con eso, te voy a poner un ejemplo que no está relacionado directamente pero sirve para entender como es el flujo de datos tanto en las redes como en los buses de comunicación:
En telefonía se utiliza una frecuencia de muestreo de 8 khz, y se utilizan 8 bits de digitalizacion, esto quiere decir que en 1 segundo se toman 8000 muestras de 8 bits, lo que por multiplicación directa nos da una tasa de bits de 64 kbps. Para conocer el espacio de tiempo entre muestra y muestra basta con dividir la unidad por la cantidad de muestras, es decir 125 useg entre muestra y muestras. Esa unidad de tiempo nos parece ínfima y prácticamente instantánea a nosotros los seres humanos, pero para una maquina es toda una eternidad, a tal punto que entre esos 125 useg podemos intercalar hasta 30 usuarios mas 2 canales de control y señalizacion, es decir, entre que llega la primera muestra de un usuario y la segunda, han pasado 30 muestras de otros usuarios mas los canales respectivos de control, es la base de lo que se conoce en jerga de telecomunicaciones como Jerarquía digital plesiócrona cuya unidad fundamental es la trama de 2 Mbps, la cual contiene la información de 30 usuarios distintos acomodados temporalmente para utilizar el mismo canal. Esta jerarquía puede ir creciendo de manera de permitir la trasmisión de volúmenes de datos aun mayores, todo depende de cuanto podamos dividir el tiempo entre muestra y muestra. No es diferente la lógica cuando de buses de datos al interior de un computador o a la administración de recursos se refiere.
Me tomo la libertad de referirme a esto, que en realidad se aleja de la pregunta, por la simple razón de que esta técnica de acomodar datos de diferentes orígenes utilizando el desfase temporal que existe entre muestra y muestra de la información sincrónica no es mas que el tan conocido TDM, sigla que a mas de alguno le parecerá conocida.
En definitiva, y para enlazar con lo que comentas, tu necesitas recursos cada 22 useg cuando se trata de señales digitalizadas a 48 khz y en ese periodo de tiempo tanto el procesador como las memorias están ociosos y pueden dedicarse a atender otros requerimientos, cientos de miles de requerimientos, pero es importante que al transcurrir nuevamente los 22 useg los recursos estén disponibles, y es ese el problema, para eso existe el buffer, para evitar perder el sincronismo por indisponibilidad de los recursos cuando se necesitan, aunque el procesamiento de audio si tiene prioridad, es un tipo de dato preferente.