
Estoy intentando crear un pitido para reproducirlo en mis parlantes desde el shell.
Puedo lograr esto fácilmente usando aplay,pero, toma aproximadamente un segundo antes de que realmente se reproduzca.
Necesito tenerlo prácticamente instantáneo, ya que lo estoy usando en un script de shell (sin cabeza) para reproducir un sonido al presionar una tecla. Al usar aplay, el pitido llega demasiado tarde.
Estoy pensando en escribir algo directamente en un dispositivo de sonido /dev o algo así, pero aún no he tenido éxito.
Estoy usando un Odroid-W (clon de Raspberry Pi) y escuché que, al menos en el Pi, el conector de audio en realidad está conectado a dos pines GPIO PWM (40, 45), pero escribir en estos pines directamente produce sólo silencio.
No es necesario que sea un sonido sofisticado, cualquier zumbido o pitido será suficiente.
(Si todo falla, probablemente conectaré un pin GPIO a un mezclador improvisado y lo conectaré al amplificador).
Respuesta1
Como la latencia es importante para la "sensación" de la aplicación (comentarios audibles del usuario), he decidido producirla conectando un zumbador activo (la parte activa aquí elimina la necesidad de una salida PWM) a uno de los pines gpio, esto produce suena al instante. Se puede acceder a los pines GPIO directamente mediante la utilidad de línea de comandos Drogons WiringPi. La desventaja es que no tienes control sobre el sonido en sí, pero el pitido que se produce es suficiente por ahora.
Para mejorar/controlar el sonido, se podría buscar un software PWM y un zumbador o altavoz pasivo.
Más información sobre WiringPi: http://wiringpi.com/
¿Qué es un timbre activo?: https://electronics.stackexchange.com/questions/224374/active-vs-passive-buzzer