devalang 0.2.0

Write music with code. Devalang is a domain-specific language (DSL) for sound designers and music hackers. Compose, automate, and control sound — in plain text.
Documentation
# =================
# Automations
# =================
# You can create automations using the automate directive.
# Global mode will apply the automation to the entire group
# Note mode will apply the automation per note played
# 
# Syntax:
# `automate <instrument_name> mode <global | note>:`

automate myFirstSynth mode global:
    param volume {
        0% = 0.0
        100% = 1.0
    }
    param pan {
        0% = -1.0
        100% = 1.0
    }
    param pitch {
        0% = -12.0
        100% = 12.0
    }
    param cutoff {
        0% = 200.0
        100% = 5000.0
    }

# You can also apply curves to automations for more advanced control
let myCustomCurve = $ease.bezier(0.2, 0.8, 0.4, 1.2) # Custom curve
let swingCurve = $curve.swing(0.5) # Optional value
let bounceCurve = $curve.bounce(0.5) # Optional value
let randomCurve = $curve.random

automate myFirstSynth mode global:
    param volume curve swingCurve {
        0% = 0.0
        100% = 1.0
    }
    param pan curve randomCurve {
        0% = -1.0
        100% = 1.0
    }
    param pitch curve bounceCurve {
        0% = -12.0
        100% = 12.0
    }
    param cutoff curve swingCurve {
        0% = 200.0
        100% = 5000.0
    }