1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
import tkinter as tk
import winsound
root = tk.Tk()
root.title('petit piano')
root.geometry('650x250')
gen_b = [3,5,7,8,10,12,14,15,17,19,20,22,24,26,27,29,31,32,34,36,38]
gen_n = [4,6,0,9,11,13,0,16,18,0,21,23,25,0,28,30,0,33,35,37]
tab_freqs = []
def ancien():
del(tab_freqs[:])
root.title('petit piano ancien')
f0 = 220 ; freq = f12 = 0
for ai in range(39): # Construction tableau TM
if 0 <= ai < 12: la = f0
elif 24 > ai > 11: la = f0
elif 36 > ai > 23: la = f0
elif ai > 35: la = f0
f1 = la/2 ; f2 = f1/12
freq=f12*f2+f1 # Calcul fréquence
tab_freqs.append(freq) # Tableau en écriture TM
f12+=1
if f12 > 11:
f12 = 0
f0 *= 2
def nouveau():
del(tab_freqs[:])
root.title('petit piano nouveau')
f01 = 110
for ai in range(39): # Construction tableau TM
freq=f01*2**(ai/12)
tab_freqs.append(freq) # Tableau en écriture TM
def piano_b(m):
duration=200
freqhtz = int(tab_freqs[gen_b[m]])
print(m,freqhtz,tab_freqs[gen_b[m]])
winsound.Beep(freqhtz, duration)
def piano_n(m):
duration=200
freqhtz = int(tab_freqs[gen_n[m]])
print(m,freqhtz,tab_freqs[gen_n[m]])
winsound.Beep(freqhtz, duration)
btbs = []
for x in range(21):
btb = tk.Button(text='', height=10, width=3, bg='ivory', command=lambda m=x: piano_b(m), relief="groove")
btb.place(x = 30*x, y = 30, anchor='nw')
btbs.append(btb)
o = 0
btns = []
for x in range(21):
if o == 2 or o == 6:
pass
else:
btn = tk.Button(text='', height=5, width=2, bg='black',command=lambda m=x: piano_n(m), relief="groove")
btn.place(x = 30*x+15, y = 30, anchor='nw')
btns.append(btn)
o += 1
if o > 6:
o = 0
btchoix1 = tk.Button(text='ancien',height=1,width=10,bg='ivory',command=ancien)
btchoix1.place(x = 200, y = 200, anchor='nw')
btchoix2 = tk.Button(text='nouveau',height=1,width=10,bg='ivory',command=nouveau)
btchoix2.place(x = 300, y = 200, anchor='nw')
btchoix1.invoke()
tk.mainloop() |
Partager