Documentation Index
Fetch the complete documentation index at: https://mintlify.com/plugdata-team/plugdata/llms.txt
Use this file to discover all available pages before exploring further.
Your First Patch
This tutorial will guide you through creating your first working patch in plugdata. You’ll build a simple sine wave oscillator with volume control, introducing core concepts of visual patching along the way.Launching plugdata
Open plugdata
- Launch plugdata from your Applications folder, Start Menu, or desktop shortcut
- You’ll see the main interface with a blank canvas and sidebar
- Open your DAW
- Create a new instrument or audio track
- Load “plugdata” (instrument) or “plugdata-fx” (effect) from your plugin list
- The plugdata editor window will open
Understanding the interface
- Object browser/palette
- Inspector (object properties)
- Console (messages and errors)
- Documentation browser
- Search panel
Creating Objects
Enter Edit Mode
- Look for the Lock/Edit toggle in the toolbar (padlock icon)
- Click it so the padlock is unlocked (Edit Mode)
- The canvas background may change slightly to indicate edit mode
Run Mode (locked): Interact with GUI objects like sliders and buttons
Create an oscillator object
- Double-click on the blank canvas, or press
Nkey - A text entry box appears
- Type:
osc~ 440 - Press Enter or click outside the box
osc~: Object name (the~indicates it processes audio signals)440: Creation argument (the frequency in Hz)
Create the audio output
- Double-click below the
osc~object - Type:
dac~ - Press Enter
dac~ object is the “Digital to Analog Converter” - it outputs audio to your audio interface.Connect the objects
- Hover over the small rectangle at the bottom of the
osc~object (the outlet) - Click and drag to the rectangle at the top of the
dac~object (the inlet) - Release to create a connection (patch cord)
- Outlets (bottom of objects) send data
- Inlets (top of objects) receive data
- Connections flow downward from outlet to inlet
- Thick connections carry audio signals (ending in
~) - Thin connections carry control messages (numbers, symbols, etc.)
Starting Audio
Turn on DSP
- Find the DSP toggle in the toolbar (speaker icon or “DSP” button)
- Click it to turn On (the button should be highlighted)
- Alternatively, use the keyboard shortcut (typically
Cmd/Ctrl + .)
Hear your first sound
- Check your system audio output is not muted
- Verify DSP is enabled (button highlighted in toolbar)
- Ensure connections are correct (thick line from
osc~todac~) - In standalone mode, check Audio Settings (menu bar) to verify correct output device
Adding Volume Control
A continuous loud tone isn’t very useful. Let’s add volume control:Create a multiplier
- Create a new object between
osc~anddac~ - Type:
*~ 0.5 - Press Enter
*~ object multiplies the audio signal. The argument 0.5 reduces the volume to 50%.Reconnect the patch
- Delete the direct connection from
osc~todac~(click it and press Delete) - Connect
osc~outlet →*~inlet - Connect
*~outlet →dac~inlet
osc~ → *~ → dac~Add a slider for interactive control
- Create a new object above the
*~object - Type:
hsl(horizontal slider) - Press Enter
Configure the slider range
- Right-click the slider
- Select Properties from the menu
- Set the following values:
- Minimum: 0
- Maximum: 1
- Width: 128 (or your preference)
- Height: 15 (or your preference)
- Click OK or close the properties panel
Connect the slider
- Connect the slider’s outlet to the right inlet of
*~
*~ controls the multiplication factor (volume).Test the volume control
- Switch to Run Mode (click the padlock to lock it)
- Turn on DSP
- Move the slider left and right
- In Run Mode (locked), GUI objects are interactive
- In Edit Mode (unlocked), you can move and edit objects
- Toggle between them frequently as you build and test patches
Adding a Frequency Control
Let’s add another slider to change the pitch:Create a frequency slider
- Create another horizontal slider above the
osc~object - Right-click it and open Properties
- Configure:
- Minimum: 100 (Hz)
- Maximum: 1000 (Hz)
- Initial value: 440
- Click OK
Connect frequency control
osc~ object.The left inlet of osc~ controls the frequency.Adding Labels and Comments
Add text labels
- Switch to Edit Mode
- Create a new object
- Type:
comment Frequency Control - Press Enter
Saving Your Patch
Save the patch file
- Go to File → Save (or
Cmd/Ctrl + S) - Choose a location and filename (e.g., “my-first-synth.pd”)
- Click Save
.pd files (Pure Data patch format).Understanding Message Flow
Here’s what happens when you move a slider:- Hot inlets (leftmost): Trigger computation and output
- Cold inlets (others): Store values but don’t trigger output
- Audio signals (
~objects): Process at audio rate (e.g., 44,100 samples/second) - Control messages: Process on-demand when triggered
Expanding Your Patch
Try these enhancements to learn more:Add a different waveform
Add a different waveform
osc~ with:phasor~- sawtooth wave (brighter sound)square~- square wave (hollow sound)noise~- white noise
Make it stereo
Make it stereo
dac~:- Connect your signal to both the left and right inlets of
dac~ - Or use
dac~ 1 2and connect to separate inlets
Add a number box for precise control
Add a number box for precise control
- Create object:
numberorfloatatom - Connect it parallel to a slider
- It displays the exact value and allows precise typing
Add an envelope (fade in/out)
Add an envelope (fade in/out)
- Create:
vsl(vertical slider) for envelope - Create:
line~to smooth value changes - Connect: vsl → line~ → right inlet of another
*~ - This creates smooth fades instead of sudden volume changes
Exploring Objects
Open the object browser
- Open the sidebar (if hidden)
- Click the Palette or Browser tab
- Browse categories:
- Audio (oscillators, filters, effects)
- Control (math, logic, sequencing)
- GUI (sliders, buttons, toggles)
- ELSE (extensive collection from the ELSE library)
- Cyclone (Max/MSP compatible objects)
View object documentation
- Right-click an object
- Select Help from the menu
- A help patch opens showing:
- What the object does
- Inlet/outlet descriptions
- Usage examples
- Related objects
Essential Objects to Learn
Here are fundamental objects to explore next:Oscillators and Generators
osc~- sine wave oscillatorphasor~- sawtooth/ramp oscillatornoise~- white noise generatorsaw~- sawtooth oscillator (ELSE)square~- square wave oscillator (ELSE)
Math and Control
+,-,*,/- basic math operations+~,-~,*~,/~- audio-rate mathrandom- random integer generatormetro- metronome (triggers at regular intervals)line~- smooth value changes
Filters and Effects
lop~- lowpass filterhip~- highpass filtervcf~- voltage-controlled filterdelwrite~/delread~- delay effectsrev~- reverb (ELSE)
GUI Objects
hsl/vsl- horizontal/vertical slidertgl- toggle buttonbng- bang button (triggers)number- number boxvradio/hradio- radio buttons
Audio I/O
dac~- audio outputadc~- audio inputsoundfiler- load/save audio filesreadsf~- play audio files
Next Steps
Now that you’ve created your first patch, continue learning:- Explore example patches: Look for example patches in plugdata’s installation folder or community resources
- Read the object reference: Browse the documentation browser to learn new objects
- Watch tutorials: The plugdata Discord has shared patches and tutorials
- Build something: Try creating:
- A simple drum machine using
metroandbng - A low-frequency oscillator (LFO) to modulate pitch or volume
- A filter sweep using
vcf~and a slider - A delay effect with feedback
- A simple drum machine using
Common Shortcuts
Speed up your workflow with these keyboard shortcuts:| Shortcut | Action |
|---|---|
N or 1 | Create new object |
Cmd/Ctrl + E | Toggle Edit/Run mode |
Cmd/Ctrl + . | Toggle DSP on/off |
Cmd/Ctrl + D | Duplicate selection |
Cmd/Ctrl + A | Select all |
Delete / Backspace | Delete selection |
Cmd/Ctrl + Z | Undo |
Cmd/Ctrl + Shift + Z | Redo |
Cmd/Ctrl + +/- | Zoom in/out |
Right-click | Object menu (properties, help, etc.) |
Getting Help
If you get stuck:- Discord: Join the plugdata community at https://discord.gg/eT2RxdF9Nq
- Help patches: Right-click any object → Help
- Pure Data documentation: Much Pure Data documentation applies to plugdata
- GitHub Issues: Report bugs or request features
