# Série 01, activité 1.5 "Le piano mono-ton" # variables for notes var notes[6] var durations[6] var note_index = 6 var note_count = 6 var wave[142] var i var wave_phase var wave_intensity var nTon = 440 # Fréquence de la note à jouer var nDuree = 14 # compute a sinus wave for sound for i in 0:141 do wave_phase = (i-70)*468 call math.cos(wave_intensity, wave_phase) wave[i] = wave_intensity/256 end call sound.wave(wave) # reset outputs call sound.system(-1) call leds.top(0,0,0) call leds.bottom.left(0,0,0) call leds.bottom.right(0,0,0) call leds.circle(0,0,0,0,0,0,0,0) # when a note is finished, play the next note onevent sound.finished if note_index != note_count then call sound.freq(notes[note_index], durations[note_index]) note_index += 1 end onevent buttons when button.center == 1 do call math.copy(notes[0:5], [440, 524, 440, 370, 311, 370]) call math.copy(durations[0:5], [7, 7, 14, 7, 7, 14]) note_index = 1 note_count = 6 call sound.freq(notes[0], durations[0]) emit pair_run 0 end onevent prox nTon = (prox.horizontal[0] - 1000) / 5 nDuree = 2 + (prox.horizontal[2] - 1000) / 50 if nDuree < 2 then nDuree = 2 end if nTon > 40 then call math.copy(notes[0:0], [nTon]) call math.copy(durations[0:0], [nDuree]) note_index = 1 note_count = 1 call sound.freq(notes[0], durations[0]) end