Pysician3

A Python editor in your DAW.

Write a compose function, press Ctrl+Enter, and the plugin publishes whatever MIDI it returns as a loop. The script lives in the project, so it travels with the session.

All plugins
# one bar of a minor arpeggio
def compose(ctx):
    scale = ctx.scale("A minor")
    for step in range(8):
        ctx.add(scale[step], start=step / 2)
    return ctx.loop(length_beats=4)
14 events · 8.0 beatsCtrl Enter
A laptop showing a code editor beside a MIDI keyboard on a studio desk.

One function, one contract

Every script defines compose(ctx). The plugin calls it when you run, and loops the schedule it hands back. There is nothing else to learn.

Theory built in

Scales, chord symbols, roman-numeral progressions, arpeggios and humanising ship as helpers — so a script says what you mean instead of what the note numbers are.

The console tells you why

Runs, restores and failures all log with a timestamp. A traceback appears where you are looking, not in a log file somewhere else.


specifications

What you are installing.

Hands playing chords on a synthesizer keyboard, shallow depth of field.
Format
CLAP · VST3
Platforms
Windows · macOS · Linux
Language
Python 3
Editions
Free · Pro
Editor
Monaco
AI assistant
Pro
Piano roll
Pro
Theory helper
Pro
Price
Free · Pro paid