Pure Data Manual

Updated for Pd version 0.55-2

Table of contents:

  1. Introduction
    1. Guide to the documentation
    2. The Help menu
    3. Other resources
    4. Other flavors
  2. Theory of operation
    1. Overview
      1. The main window, canvases, and printout
      2. Object boxes
      3. Message and GUI boxes
      4. Patches and files
    2. Editing Pd patches
      1. Edit and run mode
      2. Creating boxes
      3. Selecting items and moving them or "tidying them up"
      4. Delete, cut, copy and paste boxes
      5. Changing the text of objects, messages and comments
      6. Connecting and disconnecting boxes
      7. Context menu for 'Properties', 'Open' and 'Help'
    3. Advanced patch editing
      1. Tab navigation
      2. Autopatching
      3. Duplicate connections
      4. Managing connections with the shift key
      5. (Dis)Connect selection
      6. Triggerize
      7. Paste replace
    4. Messages
      1. Message types (selectors) and numeric precision
      2. Depth first message passing
      3. Hot and cold inlets and right to left outlet order
      4. Message boxes
      5. Escaping characters
    5. Audio signals
      1. Sample rate and format
      2. Tilde objects and audio connections
      3. Converting audio to and from messages
      4. Switching and blocking
      5. Nonlocal signal connections
      6. Multichannel signals
    6. Scheduling
      1. Audio and messages
      2. Computation load
      3. Determinism
    7. Semantics
      1. Creation of objects
      2. Persistence of data
      3. Message passing
      4. Inlets and lists
      5. Dollar signs
    8. Subpatches
      1. Abstractions
      2. Graph-on-parent subpatches
    9. Arrays
    10. Data structures
      1. Traversal
      2. Accessing and changing data
      3. Editing
      4. Limitations
    11. Pd vs. MAX
      1. Differences between Pd and MAX
      2. Running Pd inside MAX with the [pd~] external
      3. The Cyclone library
  3. Installing and configuring Pd
    1. Installing Pd
      1. macOS
      2. Microsoft Windows
      3. Linux
    2. Running Pd via the command line
    3. Testing and configuring Audio and MIDI
      1. Audio settings
      2. MIDI settings
    4. Path and startup
      1. Startup flags
        1. Font flags
        2. Path flag
        3. Flags for Audio and MIDI multiple devices and sleepgrain
        4. Sample rate flag
        5. Audio buffer size and block size flags
  4. Externals
    1. External objects & libraries
      1. Vanilla objects, internals & externals
      2. Types of external objects
        1. Compiled objects
        2. Abstractions
      3. External libraries
      4. Types of external libraries
      5. Wrapping up section 4.1
    2. GUI (.tcl) plugins
    3. Installing externals and GUI plugins
      1. Where to include externals and GUI plugins
      2. How to download externals and GUI plugins from Pd
    4. Loading externals
      1. Using the [declare] object
        1. [declare -path]
        2. [declare -lib]
      2. Load via path and startup
        1. User added path
        2. Startup
      3. Load using slash declarations
    5. How external binaries are loaded
      1. Overriding objects (externals and native)
    6. Search order in Pd for objects and files
  5. Current status
    1. Release notes
  6. Building Pd from source
    1. Requirements
    2. General autotools build steps
    3. Building Pd for Linux
    4. Building Pd for BSD
      1. FreeBSD
      2. OpenBSD
      3. NetBSD
    5. Building Pd for macOS
      1. macOS app bundle
        1. macOS App bundle helpers
      2. Supplementary macOS build scripts
      3. Preferences
      4. Code signing
      5. Privacy permissions
      6. Font issues with macOS 10.15+
      7. Dark mode
      8. Debugging releases
    6. Building Pd for Microsoft Windows
      1. Building a Pd application
      2. Pd application directory
        1. Windows app bundle helpers
      3. pdfontloader
      4. ASIO support
    7. Cross-compilation for Windows on Linux
    8. Makefile build
    9. Troubleshooting