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:Configure Parameter
Set the parameter properties:
- Name - Descriptive name (e.g., “Filter Cutoff”)
- Range - Minimum and maximum values
- Mode - Float, Integer, Logarithmic, or Exponential
Creating [param] Objects Directly
You can also create parameters directly in your patch:- Symbol - Parameter name (required)
- Float - Enable auto-handling (0 or 1, default: 0)
Parameter Configuration
Setting Parameter Range
Configure the minimum and maximum values:- Via Automation Panel
- Via Messages
- Click the expand arrow (▸) on the parameter
- Adjust Range with the min/max fields
- Values update immediately in the DAW
- 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:Float (Mode 1)
Float (Mode 1)
Linear floating-point values
- Default mode
- Continuous values with decimals
- Even spacing across range
- Volume controls
- Pan positions
- Mix amounts
Integer (Mode 2)
Integer (Mode 2)
Whole number values only
- Steps in integer increments
- No decimal values
- Selection indices
- Step sequencer steps
- Waveform selection
Logarithmic (Mode 3)
Logarithmic (Mode 3)
Logarithmic scaling
- More resolution at low values
- Less resolution at high values
- Matches human perception
- Frequency controls
- Filter cutoffs
- Decay times
Exponential (Mode 4)
Exponential (Mode 4)
Exponential scaling
- More resolution at high values
- Less resolution at low values
- Envelope times (when you need precision at longer times)
- Some specialized controls
Auto-Handling Mode
The second argument enables automatic DAW communication:- Automatically reports changes to DAW
- Handles gesture begin/end for automation recording
- Best for most use cases
- 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:DAW Integration
Accessing Parameters in Your DAW
Once parameters are created:Find Parameters
Parameters appear in:
- DAW’s automation lane list
- Plugin parameter list
- Generic plugin UI (if supported)
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_cutoffosc_1_pitchreverb_mixenvelope_attack
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:- Group related parameters by function
- Use consistent prefixes (osc_, filt_, env_)
- Order parameters logically in the automation panel
- Document parameter purposes in comments
Troubleshooting
Parameter Not Appearing in DAW
Parameter Not Appearing in DAW
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
Automation Not Working
Automation Not Working
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
Jumpy or Stepped Values
Jumpy or Stepped Values
Solutions:
- Add smoothing with [line~] for audio-rate control
- Check parameter mode (use float for smooth values)
- Increase update rate if using [snapshot~]
Range Issues
Range Issues
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
- Presets and Settings - Save parameter states
- Audio Routing - Set up complex audio flows and MIDI routing
