from pitches import tones
from machine import Pin, PWM
from utime import sleep_ms
note_2 = 800 # half note
note_4 = 400 # equarter note
note_8 = 200 # eighth note
note_2_4 = note_2 + note_4 # half note and dot
pause = 70
speaker_pin = PWM(16)
led_pins = [Pin(i, Pin.OUT) for i in range(10,16)]
#---------------------------------------------------
def tone(freq):
speaker_pin.duty_u16(32767)
speaker_pin.freq(freq)
def no_tone(note):
speaker_pin.duty_u16(0)
if note == 'C4': led_pins[5].off()
if note == 'G4': led_pins[4].off()
if note == 'A4': led_pins[3].off()
if note == 'E4': led_pins[2].off()
if note == 'D4': led_pins[1].off()
if note == 'B4': led_pins[0].off()
sleep_ms(pause)
#---------------------------------------------------
def led_on(note):
if note == 'C4': led_pins[5].on()
if note == 'G4': led_pins[4].on()
if note == 'A4': led_pins[3].on()
if note == 'E4': led_pins[2].on()
if note == 'D4': led_pins[1].on()
if note == 'B4': led_pins[0].on()
#--------------------------------------------------------------------------
song = ('NOTE_C4',note_4,'NOTE_C4',note_4,'NOTE_C4',note_4,'NOTE_G4',note_4, # 1 bar
'NOTE_A4',note_4,'NOTE_A4',note_4,'NOTE_G4',note_2, # 2 bar
'NOTE_E4',note_4,'NOTE_E4',note_4,'NOTE_D4',note_4,'NOTE_D4',note_4, # 3 bar
'NOTE_B4',note_2_4,'NOTE_G4',note_4, # etc.
'NOTE_C4',note_4,'NOTE_C4',note_4,'NOTE_C4',note_4,'NOTE_G4',note_4,
'NOTE_A4',note_4,'NOTE_A4',note_4,'NOTE_G4',note_2,
'NOTE_E4',note_4,'NOTE_E4',note_4,'NOTE_D4',note_4,'NOTE_D4',note_4,
'NOTE_B4',note_2_4,'NOTE_G4',note_8,'NOTE_G4',note_8,
'NOTE_C4',note_4,'NOTE_C4',note_4,'NOTE_C4',note_4,'NOTE_G4',note_8,'NOTE_G4',note_8,
'NOTE_C4',note_4,'NOTE_C4',note_4,'NOTE_C4',note_2,
'NOTE_C4',note_8,'NOTE_C4',note_8,'NOTE_C4',note_4,'NOTE_C4',note_8,'NOTE_C4',note_8,'NOTE_C4',note_4,
'NOTE_C4',note_8,'NOTE_C4',note_8,'NOTE_C4',note_8,'NOTE_C4',note_8,'NOTE_C4',note_4,'NOTE_C4',note_4,
'NOTE_C4',note_4,'NOTE_C4',note_4,'NOTE_C4',note_4,'NOTE_G4',note_4,
'NOTE_A4',note_4,'NOTE_A4',note_4,'NOTE_G4',note_2,
'NOTE_E4',note_4,'NOTE_E4',note_4,'NOTE_D4',note_4,'NOTE_D4',note_4,
'NOTE_B4',note_2_4)
def play_song():
for i in range(0, len(song)-1, 2):
tone(tones[song[i]])
led_on(song[i][5:])
sleep_ms(song[i+1])
no_tone(song[i][5:])
#============================================
while True:
play_song()
sleep_ms(4000)