import tkinter as tk from gensound import Sine # Konstanten c5= 523 b = 494 a = 440 g = 392 f = 349 e = 330 d = 294 c = 262 # ------------------------------------ # Melodie / Model class Melody(): def __init__(self, melody = "c,e,g,c5,g,e,c"): self.melody = melody def play(self, duration = 0.5, amplitude = 0.5): dur = duration * 1000 ampl = amplitude s = Sine(frequency=440, duration=1) tone_list = self.melody.split(',') for tone in tone_list: if tone == "c5": s = s | Sine(frequency=c5, duration=dur)*0.5 elif tone == "b": s = s | Sine(frequency=b, duration=dur)*0.5 elif tone == "a": s = s | Sine(frequency=a, duration=dur)*0.5 elif tone == "g": s = s | Sine(frequency=g, duration=dur)*0.5 elif tone == "f": s = s | Sine(frequency=f, duration=dur)*0.5 elif tone == "e": s = s | Sine(frequency=e, duration=dur)*0.5 elif tone == "d": s = s | Sine(frequency=d, duration=dur)*0.5 elif tone == "c": s = s | Sine(frequency=c, duration=dur)*0.5 else: pass s.play() return True # Controller class Controller(): def __init__(self): self.m = Melody() def ton(self): m = self.m m.play() # View class Application(tk.Frame): def __init__(self, master=None): super().__init__(master) self.pack() self.create_widgets() def create_widgets(self): self.b1 = tk.Button(self) self.b1["text"] = "Ton" self.b1["command"] = con.ton self.b1.pack(side="top") self.quit = tk.Button(self, text="QUIT", fg="red", command=root.destroy) self.quit.pack(side="bottom") # --- Ausführung --- root = tk.Tk() con = Controller() app = Application(master=root) app.mainloop()