Afinador de guitarra

Published by Matt in

Crea una función que reciba las cuerdas de la guitarra como un arreglo de frecuencias, comenzando por la primera cuerda (E aguda) y terminando en la sexta cuerda (E grave).

La función debe devolver la indicación de un afinador para cada cuerda, en el mismo orden, como un arreglo.

Puedes encontrar las frecuencias de las cuerdas en la página de Wikipedia (consulta la pestaña Recursos).

  • Las cuerdas de la guitarra se tocan de la 1.ª a la 6.ª, de E aguda a E grave.
  • Si la diferencia redondeada es 0%, devuelve "OK" para esa cuerda de guitarra.
  • Si es demasiado baja, devuelve ">+" para una diferencia redondeada de 1% o 2%, y ">>+" para 3% o más.
  • Si es demasiado alta, devuelve "+<" para una diferencia redondeada de 1% o 2%, y "+<<" para 3% o más.
  • Comprueba los porcentajes redondeados.
  • Si se proporciona 0, la cuerda de guitarra no se ha tocado; devuelve " - ".

Ejemplos

tune([0, 246.94, 0, 0, 0, 80]) ➞ [" - ", "OK", " - ", " - ", " - ", ">>+"]

tune([329, 246, 195, 146, 111, 82]) ➞ ["OK", "OK", ">+", ">+", "+<", "OK"]

tune([329.63, 246.94, 196, 146.83, 110, 82.41]) ➞ ["OK", "OK", "OK", "OK", "OK", "OK"]

Notas

Los elementos del arreglo siempre serán números.