Ir al contenido principal

No es necesario redescubrir la rueda

¿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.



Comentarios

Entradas populares de este blog

Utilizando el optoacoplador Liteon LTV-817

El optoacoplador que se muestra en la figura es de un solo canal y de salida a transistor. En esta misma familia hay hasta de 4 canales.  Se comporta parecido a un transistor, con la diferencia de que su base se excita con fotones en lugar de electrones. La característica más relevante es el aislamiento eléctrico que proporciona . Para este en concreto, el fabricante asegura un aislamiento de hasta 5KVrms. Las situaciones en las que podría ser necesario utilizar este aislamiento serían por ejemplo: Equipamientos relacionados con la salud.  Las partes electricas en contacto con las personas deben estar muy controladas y protegidas ante fallos de cualquier componente del sistema. Coexistencia de diferentes circuitos en misma placa o equipo. Las diferencias entre los circuitos podrían ser por ejemplo de tensiones de trabajo. Por ejemplo, si nuestra aplicación necesita combinar integrad...

Quiero un cambio radical en mi vida...

- Pero tú eres un reloj despertador, funcionas perfectamente. ¿Porqué quieres un cambio tan radical?  + Realmente estoy cansado de estar en un cajón olvidado - ¿Y qué te gustaría ser? + Me gustaría ser un drone autónomo, y ver mundo - uuhmmm, veamos. No tienes hélices, ni giróscopo... mejor veamos cuales son tus puntos fuertes : Buen sonido mono Sistema de alimentación con backup Display digital  Radio/Reloj FM + ¿Qué sugieres? - Sugiero ir paso a paso. Entiendo que no quieres perder personalidad por lo que mantenemos tu aspecto externo, con esas competencias podríamos tratar de que además de la radio, puedas reproducir música y otros sonidos. Esa será tu forma de realizar acciones en el mundo físico. + ¿Podré decidir como actuar y elegir mis propios sonidos? - ¿Tendrías algún criterio para eso? + No sé.  - Las actuaciones sonoras deberían estar motivadas por algo, por ejemplo que tú sepas que a mí me gusta escuchar beethoven a las 7:00h, o ...