function calculate(n1 , n2 , n3, n4 , n5)
{
var notes = new Array(10)
var notes2 = new Array(13)
var intervals = new Array(10)
<!-- Definição dos intervalos de trios
var trios = new Array()
var trios_n = new Array ("sus2","sus2","Maj","m","Aug","Aug sus2","Aug sus4","dim","dim sus2","dim sus4")
var notes_n = new Array ("C","C#","D","D#","E","F","F#","G","G#","A","A#","B")
var found = 0
trios[0] = new Array ( 2 , 7 )
trios[1] = new Array ( 5 , 7 )
trios[2] = new Array ( 4 , 7 )
trios[3] = new Array (3 , 7)
trios[4] = new Array (4 , 8)
trios[5] = new Array (2 , 8 )
trios[6] = new Array ( 5 , 8)
trios[7] = new Array (3 , 6)
trios[8] = new Array (2 , 6)
trios[9] = new Array (5 , 6)
<!-- Definição dos intervalos de quadras
var i = 0
var j = 0
var k = 0
notes[0] = parseInt(n1.value)
notes[1] = parseInt(n2.value)
notes[2] = parseInt(n3.value)
notes[3] = parseInt(n4.value)
notes[4] = parseInt(n5.value)
for ( i = 0; i<13; i++)
{
notes2[i] = 0
}
for ( i = 0; i<5; i++)
{
if (notes[i] > 0 )
{
notes2[notes[i]] = 1
}
}
for ( i = 0;i<5;i++)
{
notes[i] = 0
}
j = 0
for ( i = 0; i<13; i++)
{
if (notes2[i] > 0)
{
notes[j] = i
j = j + 1
}
}
<!-- J tem o num de notas -->
<!-- vamos acrescentar uma oitava
for (i = j ; i < 2*j;i++)
{
notes[i] = notes[i-j] + 12
}
<!-- calcular os intervalos
for ( i = 0;i<2*j-1;i++)
{
intervals[i] = notes[i+1] - notes[i]
}
<!-- Agora identificar os intervalos
if (j == 3)
{
for (i=0;i<10;i++)
{
<!-- Percorrer as notas p/ identificar os intervalos
for (k=0 ; k<3 ; k++)
{
if ((notes[k+1]-notes[k]) == trios[i][0])
{
if ((notes[k+2]-notes[k]) == trios[i][1])
{
<!-- found a trio on note k, type i
if (( i >= 4 ) && ( i <= 9 ) )
{
alert("Acorde aumentado/diminuido com varios resultados: Acorde:" + notes_n[notes[k]-1].toString() + " " + trios_n[i].toString())
}
else
{
alert("Esse acorde é o " + notes_n[notes[k]-1].toString() + " " + trios_n[i].toString())
}
found = 1
}
}
}
}
}
<!-- Acordes de 4 notas
<!-- Mensagens finais
if (found == 0)
{
alert("Acorde não identificado!")
}
}
