Afinador de violão

Published by Matt in

Crie uma função que receba as cordas do violão como um array de frequências, começando pela primeira corda (E agudo) e terminando na sexta corda (E grave).

A função deve retornar a exibição de um afinador para cada corda, na mesma ordem, como um array.

Você pode encontrar as frequências das cordas na página da Wikipedia (consulte a aba Recursos).

  • As cordas do violão são tocadas da 1ª à 6ª, de E agudo a E grave.
  • Se a diferença arredondada for 0%, retorne "OK" para essa corda do violão.
  • Se estiver baixa demais, retorne ">+" para uma diferença arredondada de 1% ou 2%, e ">>+" para 3% ou mais.
  • Se estiver alta demais, retorne "+<" para uma diferença arredondada de 1% ou 2%, e "+<<" para 3% ou mais.
  • Verifique as porcentagens arredondadas.
  • Se for fornecido 0, a corda do violão não foi tocada; retorne " - ".

Exemplos

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"]

Observações

Os itens do array sempre serão números.