Este complemento cambia la forma de gestionar los tonos en NVDA.

Descripción de la función original «beep» de NVDA.

Para estar en contexto. Cuando NVDA emite un tono, hace lo siguiente:

  1. abre un reproductor nvwave.
  2. genera la forma de onda para el tono.
  3. envía el tono generado al reproductor.
  4. cierra el reproductor.

Esto puede ser problemático en algunas tarjetas de sonido, como altos retrasos al reproducir los tonos, o no reproducir los primeros tonos en absoluto. Yo tuve este problema en el pasado con uno de mis ordenadores. Así que esa fue la razón para crear este complemento.

Descripción de la función «beep» del complemento.

  1. En primer lugar, se crea un hilo de fondo, este hilo se encargará de los pitidos y la comunicación con la salida del reproductor.
  2. El hilo se mantiene a la espera de datos para emitir un beep, utilizando un bloqueo de eventos.
  3. Cuando se llama a la función beep, la información se envía al hilo y se libera el bloqueo del hilo.
  4. El hilo llama a la función que inicia la generación de la onda para el tono, y bloquea la señal de evento de nuevo.
  5. Pide al generador la forma de onda en fragmentos y envía cada trozo al reproductor de salida. El generador puede generar la forma de onda en paralelo mientras se envía, o generar toda la forma de onda al principio.
  6. Si mientras se envía la onda al reproductor se libera el bloqueo, significa que se recibió una petición de un nuevo beep, entonces este deja de enviar los datos y salta al paso número 3 para emitir el nuevo beep requerido.
  7. Si toda la forma de onda fue enviada al reproductor sin interrupción, salta al paso número 2 para esperar otra señal de beep. Recuerde que el bloqueo se bloqueó en el paso 4 así que el paso 2 quedará en espera nuevamente.

De esta manera, el reproductor de salida es siempre el mismo y el proceso es más eficiente.

Notas sobre este complemento.

Si pruebas este complemento, incluso si no tienes problemas con la forma original de generación de tonos, puedes ver que los tonos son más fluidos, especialmente en los tonos que se repiten rápidamente.
Además, este complemento implementa un generador de tonos personalizado, que está activado por defecto. Pero puedes cambiarlo por el generador de tonos de NVDA. Mi generador de tonos personalizado está escrito puramente en Python. Por lo tanto, es menos eficiente que el generador de tonos del NVDA, pero la diferencia no es notable.
Decidí mantener mi generador de tonos porque a algunas personas les gustaba, incluido yo mismo. Un usuario con pérdida de audición informó que se sentía más cómodo con mi generador de tonos.
Nota: La generación de tonos no es lo mismo que la función de salida de los tonos a tu tarjeta de sonido. Así que incluso si usas el generador de tonos nativo de NVDA, seguirás viendo mejoras.

Uso

La funcionalidad del complemento se habilitará una vez que lo instales.
Para habilitarla o deshabilitarla, ve a la configuración de NVDA y selecciona «Tonos mejorados». En esa categoría puedes establecer los siguientes parámetros:

  • Habilitar el complemento. Si se deshabilita, la función original será usada en su lugar.
  • Biblioteca para la generación de tonos.

Para desarrolladores.

Si desean implementar nuevas ondas de generación de tonos, solo tienen que realizar una clase similar a las generadoras de tonos, y añadirla como disponible en el diccionario availableToneGenerators.

contribuciones, reportes y donaciones

Si te gusta mi proyecto o este software te es útil en tu vida diaria y quieres contribuir de alguna manera, puedes donar a través de los siguientes métodos:

Si quieres corregir errores, informar de problemas o nuevas características, puedes contactar conmigo en: [email protected].
O en el repositorio de github de este proyecto: enhanced tones en GitHub
Puedes obtener la última versión de este complemento en ese repositorio.

Autor: José Manuel Delicado Alcolea

Ingeniero de software y máster en Ingeniería Informática por la Universidad Rey Juan Carlos. Me encanta todo lo relacionado con la informática, la accesibilidad y las nuevas tecnologías. Trabajo como consultor de accesibilidad.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.