Teclado de piano

from pyzed import audio, ui
engine = audio.Engine()synth = engine.add("midi_in") # las notas de note_on/note_off llegan a los módulos midi_in...
ui.audio.Piano(start=48, octaves=3, pressed=sorted(self.held), on_note_on=lambda e: engine.note_on(e.value.note, e.value.velocity), on_note_off=lambda e: engine.note_off(e.value))Notas y velocidad
Sección titulada «Notas y velocidad»Las notas son números MIDI: 60 es el do central (C4) y 69 el la de 440 Hz. note_on entrega un
Note(note, velocity); cuanto más abajo de una tecla haces clic, más fuerte suena (velocidad de 30
a 127). note_off entrega el número de nota. Al arrastrar por las teclas se suelta una y se pulsa
la siguiente.
ui.audio.note_name(61) devuelve "C#4", útil para etiquetas.
Tocar con el teclado del ordenador
Sección titulada «Tocar con el teclado del ordenador»ui.audio.KEYBOARD asigna teclas a semitonos como la mayoría de apps de música: la fila
a s d f g h j k son las teclas blancas y w e t y u o p las negras.
def on_key(self, combo): if combo in ui.audio.KEYBOARD and combo not in self.keys: self.keys.add(combo) note = self.octave * 12 + ui.audio.KEYBOARD[combo] engine.note_on(note)
def on_key_up(self, key): if key in self.keys: self.keys.discard(key) engine.note_off(self.octave * 12 + ui.audio.KEYBOARD[key])| Propiedad | Por defecto | Qué hace |
|---|---|---|
start |
48 |
La primera nota (redondeada hacia abajo a un do). |
octaves |
2 |
Cuántas octavas (más el último do). |
pressed |
() |
Notas que se iluminan, tocadas desde fuera. |
color |
"accent" |
Color de las teclas pulsadas. |
key_width, height |
24, 110 |
Tamaño de una tecla blanca. |
labels |
True |
Escribe el nombre de cada do. |
Eventos: on_note_on (Note(note, velocity)), on_note_off (el número de nota).