L'idea di base è questa: prima di tutto, copia dall'esercizio
precedente (e incolla qui) la definizione di
anfore.fj.
A questo punto rifletti: hai un metodo che, se invocato, suona fre-re-jac-ques una volta. Tu la vorresti suonare due volte di seguito. Cioè, corregimi se sbaglio, vorresti suonarla una volta ora e un'altra volta appena finita la prima. Sei d'accordo?
Se ci pensi, hai tutto quello che ti serve! Vuoi eseguire
anfore.fj ora, e poi anche tra x
secondi (dove x è la durata della prima
ripetizione).
Ancora una volta, sembra che possa aiutarci il nostro amico
esegui_tra...
Quanto dura la sequenza la-si-do#-la (fre-re-jac-ques) che vuoi ripetere? 1,5 secondi, giusto? Quindi la seconda ripetizione la cominciare a suonare dopo due secondi, giusto?
Per la seconda ripetizione, io farei così:
esegui_tra(2000, anfore.fj)
Ricordati come suonare una nota di frequenza f, tra
x millisecondi, usando esegui_tra:esegui_tra(x, anfore[0].suona, f)
Q: Se la frequenza del La è 440 (Hz), quella del Si (un tono sopra) è 440*(9/8), quella del Do# (un tono sopra il Sì)quale sarà?
A: Ma 440*(9/8)*(9/8), mon frere!
Ricordati di invocare il metodo, dopo averlo definito!
anfore.fj()
Ok, ti arrendi? Prova con questo:
anfore.fj = function() {
esegui_tra(0, anfore[0].suona, 440)
esegui_tra(500, anfore[0].suona, 440*9/8)
esegui_tra(1000, anfore[0].suona, 440*(9/8)*(9/8))
esegui_tra(1500, anfore[0].suona, 440)
}
anfore.fj()
Se provi a salire oltre la prima riga, vengono caricati i comandi