Ir al contenido

Sintetizador modular

Un rack modular: un cable arrastrado del delay al osciloscopio y después la perilla de corte del filtro girando

VCV Rack en unas 90 líneas: examples/audio/modular.py.

Ventana de terminal
python examples/audio/modular.py # un patch de inicio
python examples/audio/modular.py patch.json # uno guardado

Se 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.

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.