Adding the local changes of my Mario Theme to my Branch.
parent
627ab26fc3
commit
2450db075b
|
@ -0,0 +1,189 @@
|
|||
"""
|
||||
App Plays the Mario Theme.
|
||||
TODO : Implement a break to exit the app if a user pushes any button whilst playing.
|
||||
Gracefully reboot into main menu on Menu Press.
|
||||
Replay Track when user pushes a button.
|
||||
"""
|
||||
|
||||
# I used https://www.princetronics.com/supermariothemesong/ to get the Hz and Timings.
|
||||
___name___ = "Mario Theme"
|
||||
___license___ = ""
|
||||
___categories___ = ["Sound"]
|
||||
___dependencies___ = ["speaker", "buttons", "ugfx_helper", "app", "time","wifi", "http", "sleep" ]
|
||||
|
||||
import ugfx_helper, os, wifi, ugfx, http, time, sleep, app,speaker
|
||||
from tilda import Buttons
|
||||
from buttons import *
|
||||
from app import restart_to_default
|
||||
from homescreen import *
|
||||
import time
|
||||
|
||||
speaker.enabled(True)
|
||||
|
||||
|
||||
ugfx_helper.init()
|
||||
ugfx.clear()
|
||||
|
||||
ugfx.text(5, 5, "Loading Mario Image...", ugfx.BLACK)
|
||||
try:
|
||||
image = http.get("https://wiki.emfcamp.org/w/images/5/56/Screen.png").raise_for_status().content
|
||||
ugfx.display_image(0,0,bytearray(image))
|
||||
except:
|
||||
ugfx.clear()
|
||||
ugfx.text(5, 5, "Couldn't download Mario Image", ugfx.BLACK)
|
||||
|
||||
|
||||
NOTE_B0 = 31
|
||||
NOTE_C1 = 33
|
||||
NOTE_CS1 = 35
|
||||
NOTE_D1 = 37
|
||||
NOTE_DS1 = 39
|
||||
NOTE_E1 = 41
|
||||
NOTE_F1 = 44
|
||||
NOTE_FS1 = 46
|
||||
NOTE_G1 = 49
|
||||
NOTE_GS1 = 52
|
||||
NOTE_A1 = 55
|
||||
NOTE_AS1 = 58
|
||||
NOTE_B1 = 62
|
||||
NOTE_C2 = 65
|
||||
NOTE_CS2 = 69
|
||||
NOTE_D2 = 73
|
||||
NOTE_DS2 = 78
|
||||
NOTE_E2 = 82
|
||||
NOTE_F2 = 87
|
||||
NOTE_FS2 = 93
|
||||
NOTE_G2 = 98
|
||||
NOTE_GS2 = 104
|
||||
NOTE_A2 = 110
|
||||
NOTE_AS2 = 117
|
||||
NOTE_B2 = 123
|
||||
NOTE_C3 = 131
|
||||
NOTE_CS3 = 139
|
||||
NOTE_D3 = 147
|
||||
NOTE_DS3 = 156
|
||||
NOTE_E3 = 165
|
||||
NOTE_F3 = 175
|
||||
NOTE_FS3 = 185
|
||||
NOTE_G3 = 196
|
||||
NOTE_GS3 = 208
|
||||
NOTE_A3 = 220
|
||||
NOTE_AS3 = 233
|
||||
NOTE_B3 = 247
|
||||
NOTE_C4 = 262
|
||||
NOTE_CS4 = 277
|
||||
NOTE_D4 = 294
|
||||
NOTE_DS4 = 311
|
||||
NOTE_E4 = 330
|
||||
NOTE_F4 = 349
|
||||
NOTE_FS4 = 370
|
||||
NOTE_G4 = 392
|
||||
NOTE_GS4 = 415
|
||||
NOTE_A4 = 440
|
||||
NOTE_AS4 = 466
|
||||
NOTE_B4 = 494
|
||||
NOTE_C5 = 523
|
||||
NOTE_CS5 = 554
|
||||
NOTE_D5 = 587
|
||||
NOTE_DS5 = 622
|
||||
NOTE_E5 = 659
|
||||
NOTE_F5 = 698
|
||||
NOTE_FS5 = 740
|
||||
NOTE_G5 = 784
|
||||
NOTE_GS5 = 831
|
||||
NOTE_A5 = 880
|
||||
NOTE_AS5 = 932
|
||||
NOTE_B5 = 988
|
||||
NOTE_C6 = 1047
|
||||
NOTE_CS6 = 1109
|
||||
NOTE_D6 = 1175
|
||||
NOTE_DS6 = 1245
|
||||
NOTE_E6 = 1319
|
||||
NOTE_F6 = 1397
|
||||
NOTE_FS6 = 1480
|
||||
NOTE_G6 = 1568
|
||||
NOTE_GS6 = 1661
|
||||
NOTE_A6 = 1760
|
||||
NOTE_AS6 = 1865
|
||||
NOTE_B6 = 1976
|
||||
NOTE_C7 = 2093
|
||||
NOTE_CS7 = 2217
|
||||
NOTE_D7 = 2349
|
||||
NOTE_DS7 = 2489
|
||||
NOTE_E7 = 2637
|
||||
NOTE_F7 = 2794
|
||||
NOTE_FS7 = 2960
|
||||
NOTE_G7 = 3136
|
||||
NOTE_GS7 = 3322
|
||||
NOTE_A7 = 3520
|
||||
NOTE_AS7 = 3729
|
||||
NOTE_B7 = 3951
|
||||
NOTE_C8 = 4186
|
||||
NOTE_CS8 = 4435
|
||||
NOTE_D8 = 4699
|
||||
NOTE_DS8 = 4978
|
||||
|
||||
def buzz(freq,timetorun):
|
||||
speaker.frequency(freq)
|
||||
sleep.sleep(0.001*timetorun)
|
||||
speaker.stop()
|
||||
|
||||
melody = [
|
||||
NOTE_E7, NOTE_E7, 0, NOTE_E7,
|
||||
0, NOTE_C7, NOTE_E7, 0,
|
||||
NOTE_G7, 0, 0, 0,
|
||||
NOTE_G6, 0, 0, 0,
|
||||
|
||||
NOTE_C7, 0, 0, NOTE_G6,
|
||||
0, 0, NOTE_E6, 0,
|
||||
0, NOTE_A6, 0, NOTE_B6,
|
||||
0, NOTE_AS6, NOTE_A6, 0,
|
||||
|
||||
NOTE_G6, NOTE_E7, NOTE_G7,
|
||||
NOTE_A7, 0, NOTE_F7, NOTE_G7,
|
||||
0, NOTE_E7, 0, NOTE_C7,
|
||||
NOTE_D7, NOTE_B6, 0, 0,
|
||||
|
||||
NOTE_C7, 0, 0, NOTE_G6,
|
||||
0, 0, NOTE_E6, 0,
|
||||
0, NOTE_A6, 0, NOTE_B6,
|
||||
0, NOTE_AS6, NOTE_A6, 0,
|
||||
|
||||
NOTE_G6, NOTE_E7, NOTE_G7,
|
||||
NOTE_A7, 0, NOTE_F7, NOTE_G7,
|
||||
0, NOTE_E7, 0, NOTE_C7,
|
||||
NOTE_D7, NOTE_B6, 0, 0
|
||||
]
|
||||
|
||||
tempo = [
|
||||
12, 12, 12, 12,
|
||||
12, 12, 12, 12,
|
||||
12, 12, 12, 12,
|
||||
12, 12, 12, 12,
|
||||
|
||||
12, 12, 12, 12,
|
||||
12, 12, 12, 12,
|
||||
12, 12, 12, 12,
|
||||
12, 12, 12, 12,
|
||||
|
||||
9, 9, 9,
|
||||
12, 12, 12, 12,
|
||||
12, 12, 12, 12,
|
||||
12, 12, 12, 12,
|
||||
|
||||
12, 12, 12, 12,
|
||||
12, 12, 12, 12,
|
||||
12, 12, 12, 12,
|
||||
12, 12, 12, 12,
|
||||
|
||||
9, 9, 9,
|
||||
12, 12, 12, 12,
|
||||
12, 12, 12, 12,
|
||||
12, 12, 12, 12,
|
||||
]
|
||||
|
||||
size = len(melody)
|
||||
for thisNote in range(0, size):
|
||||
noteDuration = 1800 / tempo[thisNote];
|
||||
buzz(melody[thisNote], noteDuration)
|
||||
pauseBetweenNotes = noteDuration * 1.30;
|
Loading…
Reference in New Issue