Skip to main content

Automation Parameters

Plugdata allows you to expose patch parameters to your DAW for automation using the [param] object. This guide covers everything you need to know about creating, managing, and using automation parameters.
Automation parameters are primarily used when running plugdata as a plugin in a DAW. In standalone mode, parameters can still be created and controlled via MIDI or OSC.

Understanding Parameters

What are Parameters?

Parameters are values in your patch that can be:
  • Automated in your DAW timeline
  • Controlled by MIDI CC or other controllers
  • Saved with your DAW project
  • Displayed in your DAW’s plugin interface
  • Modulated by DAW envelopes and LFOs

The [param] Object

The [param] object bridges your Pd patch and DAW automation:

Creating Parameters

Using the Automation Panel

The easiest way to create parameters:
1

Open Automation Panel

Click the Parameters tab in the sidebar (or press Cmd/Ctrl+B and select it)
2

Click + Button

Click the + button at the bottom of the panel to create a new parameter
3

Configure Parameter

Set the parameter properties:
  • Name - Descriptive name (e.g., “Filter Cutoff”)
  • Range - Minimum and maximum values
  • Mode - Float, Integer, Logarithmic, or Exponential
4

Add to Patch

Drag the parameter from the panel onto your canvas to create a [param] object

Creating [param] Objects Directly

You can also create parameters directly in your patch:
Arguments:
  1. Symbol - Parameter name (required)
  2. Float - Enable auto-handling (0 or 1, default: 0)
Use descriptive, unique names for parameters. Spaces are allowed: [param Filter Cutoff]

Parameter Configuration

Setting Parameter Range

Configure the minimum and maximum values:
  1. Click the expand arrow (▸) on the parameter
  2. Adjust Range with the min/max fields
  3. Values update immediately in the DAW
Common Ranges:
  • Volume: 0 to 1 (or 0 to 127 for MIDI-style)
  • Frequency: 20 to 20000 Hz
  • Percentage: 0 to 100
  • Pan: -1 to 1 or 0 to 127

Parameter Modes

Choose the scaling mode that fits your parameter:
Linear floating-point values
  • Default mode
  • Continuous values with decimals
  • Even spacing across range
Best for:
  • Volume controls
  • Pan positions
  • Mix amounts
Whole number values only
  • Steps in integer increments
  • No decimal values
Best for:
  • Selection indices
  • Step sequencer steps
  • Waveform selection
Logarithmic scaling
  • More resolution at low values
  • Less resolution at high values
  • Matches human perception
Best for:
  • Frequency controls
  • Filter cutoffs
  • Decay times
Exponential scaling
  • More resolution at high values
  • Less resolution at low values
Best for:
  • Envelope times (when you need precision at longer times)
  • Some specialized controls

Auto-Handling Mode

The second argument enables automatic DAW communication:
With auto-handling (1):
  • Automatically reports changes to DAW
  • Handles gesture begin/end for automation recording
  • Best for most use cases
Without auto-handling (0):
  • Manual control over change reporting
  • Use second inlet to control change state
  • For advanced automation scenarios

Using Parameters in Patches

Basic Parameter Control

Mapping to GUI Objects

Connect parameters to number boxes and sliders:

Multiple Parameters

Create complex control structures:

Advanced Parameter Techniques

Parameter Smoothing

Avoid zipper noise with smoothing:

Parameter Scaling

Transform parameter ranges:

Conditional Parameters

Use parameters to switch behavior:

Parameter Groups

Organize related parameters:
Use consistent naming conventions like section_parameter (e.g., filter_cutoff, filter_resonance) to keep parameters organized.

DAW Integration

Accessing Parameters in Your DAW

Once parameters are created:
1

Load Plugin

Open plugdata as a plugin in your DAW
2

Find Parameters

Parameters appear in:
  • DAW’s automation lane list
  • Plugin parameter list
  • Generic plugin UI (if supported)
3

Automate

Record or draw automation as with any plugin parameter
4

Control

Map to MIDI controllers, DAW faders, or modulation sources

Parameter Persistence

Parameters are saved with:
  • DAW Project - Current parameter values
  • Automation Data - All automation lanes
  • Plugin State - When recalling presets

MIDI Mapping

Connect MIDI CC to parameters:

Parameter Best Practices

Naming Conventions

✅ Good names:
  • filter_cutoff
  • osc_1_pitch
  • reverb_mix
  • envelope_attack
❌ Avoid:
  • param1, param2 (not descriptive)
  • x, y, z (too generic)
  • Very long names (truncated in some DAWs)

Range Selection

Consider:
  • Musical range (e.g., 20-20000 Hz for frequency)
  • User expectations (0-100 for percentage)
  • Control precision needed
  • Scaling mode (linear vs logarithmic)

Organization

For large patches:
  1. Group related parameters by function
  2. Use consistent prefixes (osc_, filt_, env_)
  3. Order parameters logically in the automation panel
  4. Document parameter purposes in comments

Troubleshooting

Solutions:
  • Ensure parameter is created before loading in DAW
  • Try reloading the plugin
  • Check parameter name doesn’t have special characters
  • Verify the parameter exists in the Automation Panel
Check:
  • Parameter is connected to something in the patch
  • Patch is in run mode (not edit mode)
  • DSP is enabled
  • Automation is actually written in the DAW
Solutions:
  • Add smoothing with [line~] for audio-rate control
  • Check parameter mode (use float for smooth values)
  • Increase update rate if using [snapshot~]
Fixes:
  • Verify range is set correctly in Automation Panel
  • Check for scaling math errors in patch
  • Use correct mode (logarithmic for frequency, etc.)

Example: Complete Synth Voice

Here’s a complete example using parameters:

Next Steps