¿Qué se ha realizado ya sobre este tema? Esa es una pregunta clave que ahorra mucho tiempo.
Una vez localizado el código (SimpleFIFO) que tenía la mayor probabilidad de introducir ruido en el sistema de reproducción de audio en el que estoy trabajando, tenía la opción de entrar en mayor detalle para mejorar la librería o ver que se había hecho sobre el tema en la red.
Encontré la Lightweight Ring Buffer Library de Dean Camera, lo que el autor comenta de la misma se acomodaba a mis necesidades:
“Ultra lightweight ring buffer, for fast insertion/deletion. This uses inlined functions for maximum speed. All buffers created with this library must be of the same size, however multiple independant buffers can be created. Note that for each buffer, insertion and removal operations may occur at the same time (via a multithreaded ISR based system) however the same kind of operation (two or more insertions or deletions) must not overlap. If there is possibility of two or more of the same kind of operating occuring at the same point in time, atomic (mutex) locking should be used.”
Sustituí con éxito y sin demasiado trabajo mi librería SimpleFIFO por la de Dean Camera, y con ello se resolvieron los problemas de ruido.
La siguiente acción fue retirar SimpleFIFO del blog, ya que no pretendo mejorarala, mejor utilizar la de Dean Camera.
La lección es que si alguien ha realizado un buen trabajo y está disponible, puede ser una buena opción incorporarlo al proyecto. Es probable que eso nos ahorre tiempo, un tiempo que podremos emplear en otros temas.
De todas formas, puede ser también útil el desarrollar en propio algo que ya está realizado si nuestro objetivo es adquirir conocimientos. Otro caso a considerar es si la integración de lo ya realizado puede ser más costosa que hacerlo de nuevo. En cualquier caso, es muy útil saber lo que se ha hecho sobre el tema previamente.
Una vez localizado el código (SimpleFIFO) que tenía la mayor probabilidad de introducir ruido en el sistema de reproducción de audio en el que estoy trabajando, tenía la opción de entrar en mayor detalle para mejorar la librería o ver que se había hecho sobre el tema en la red.
Encontré la Lightweight Ring Buffer Library de Dean Camera, lo que el autor comenta de la misma se acomodaba a mis necesidades:
“Ultra lightweight ring buffer, for fast insertion/deletion. This uses inlined functions for maximum speed. All buffers created with this library must be of the same size, however multiple independant buffers can be created. Note that for each buffer, insertion and removal operations may occur at the same time (via a multithreaded ISR based system) however the same kind of operation (two or more insertions or deletions) must not overlap. If there is possibility of two or more of the same kind of operating occuring at the same point in time, atomic (mutex) locking should be used.”
Sustituí con éxito y sin demasiado trabajo mi librería SimpleFIFO por la de Dean Camera, y con ello se resolvieron los problemas de ruido.
La siguiente acción fue retirar SimpleFIFO del blog, ya que no pretendo mejorarala, mejor utilizar la de Dean Camera.
La lección es que si alguien ha realizado un buen trabajo y está disponible, puede ser una buena opción incorporarlo al proyecto. Es probable que eso nos ahorre tiempo, un tiempo que podremos emplear en otros temas.
De todas formas, puede ser también útil el desarrollar en propio algo que ya está realizado si nuestro objetivo es adquirir conocimientos. Otro caso a considerar es si la integración de lo ya realizado puede ser más costosa que hacerlo de nuevo. En cualquier caso, es muy útil saber lo que se ha hecho sobre el tema previamente.
Comentarios
Publicar un comentario