Clock
Basis
Um alle Player-objekte zu stoppen, drücke Ctrl+. (Hold Ctrl und drücke Punkt). Das ist eine Tastenkombination für den Befehl:
Clock.clear()Ändere das Tempo, oder BeatsperMinute. Default ist 120.
Clock.bpm = 144Um zu sehen, war gespielt werden soll.
print(Clock)Zeige was die Latenz (Verzoegerung) ist
print(Clock.latency)Manchmal willst Du wissen, wenn der nächsten X Beat-Zyklus beginnt. Dazu verwenden wir die “mod” Methode benutzen. Zum Beispiel, wenn wir sehen wollen, wann der Beginn des nächsten 32 Beat-Zyklus ist, können wir tun:
print(Clock.mod(32))Fortgeschritten
Die Uhr kann alles mit einer _call-Methode planen. Es braucht eine absolute Zeit Hinweis, um eine Funktion zu planen - Clock.schedule muss den Beat kennen, um etwas anzusprechen.
Clock.schedule() # raises TypeErrorPlane ein Ereignis nach einer bestimmten Dauer - Clock.future muss wissen, wie viele Beats im voraus, um etwas zu nennen
Clock.future() # raises TypeErrorDies entspricht
Clock.schedule(lambda: print("hello"), Clock.now() + 4)Clock.future(4, lambda: print("hello"))Um etwas anderes zu planen
Clock.schedule(lambda: print("hello "))Wir können etwas in n-Beats auslösen
Clock.every(4, lambda: print("hello"))Rufe die aktuelle Zeit in Beats und füge 2 Beats hinzu. - Nützlich für zeitliche Planung.
print(Clock.now() + 2)Ausgabebefehl auf der nächsten Bar
nextBar(Clock.clear)With a decorator
@nextBardef change(): Root.default=4 Scale.default="minor" # etc etcDu kannst Deine eigene Funktion erstellen und dekorieren, indem du .every auf einem Player-Objekt verwendest
@PlayerMethoddef test(self): print(self.degree)
p1 >> pluck([0,4]).every(3, "test")Und stoppe es mit
p1.never("test")