Sintetizador modular

VCV Rack en unas 90 líneas: examples/audio/modular.py.
python examples/audio/modular.py # un patch de iniciopython examples/audio/modular.py patch.json # uno guardadoSe abre con una línea de bajo ácida: un secuenciador toca un oscilador a través de un filtro, una envolvente, un amplificador y un delay, con un osciloscopio y la salida. Después:
- Añade módulos desde el explorador de la izquierda (busca o elige una categoría).
- Arrastra de un conector a otro para conectar un cable; las salidas están en las placas oscuras.
- Clic derecho en un conector para desconectarlo; arrastra una entrada conectada para mover su cable.
- Arrastra un módulo por su título para moverlo; la × lo quita.
- Ctrl+S guarda el patch y Ctrl+O lo vuelve a abrir.
Cómo está hecho
Sección titulada «Cómo está hecho»Toda la ventana es un componente Rack sobre el motor:
engine = audio.Engine()starter_patch(engine) # engine.add(...) y engine.connect(...)
class Modular(pz.App): layout = {}
def view(self): return ui.rack.Rack(engine=self.engine, layout=self.layout, rows=2)El rack lee los módulos y los cables del motor, dibuja un panel para cada módulo a partir de su
descripción en el catálogo y escribe de vuelta cada cambio que haces. ui.rack.save() guarda el
patch y la posición de cada módulo en un único archivo JSON. Mira Cables animados
para ver cómo se dibujan y animan los cables.