# sata1000000/pd-path architecture

> Architecture diagram of the GitHub repository sata1000000/pd-path, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/sata1000000/pd-path
- Repository: https://github.com/sata1000000/pd-path

## Overview

PD-path is a collection of reusable Pure Data abstractions, recommended for use in Purr Data. A patch author adds the repository to the host’s search path, then uses abstractions for sound generation, audio effects, control and value conversion, recording, and visualization. The tree and README identify these capability areas, but no patch source was sampled, so internal patch-to-patch calls and signal routing are not represented.

Main entry points: [`synth/waveforms`](https://github.com/sata1000000/pd-path/tree/main/synth/waveforms) (Waveforms), [`synth/noise`](https://github.com/sata1000000/pd-path/tree/main/synth/noise) (Noise sources), [`synth/midi`](https://github.com/sata1000000/pd-path/tree/main/synth/midi) (MIDI instruments), [`synth/oneshot`](https://github.com/sata1000000/pd-path/tree/main/synth/oneshot) (One-shot sounds)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_synth["Sound generation"]
  node_waveforms["Waveforms"]
  node_noise["Noise sources"]
  node_midi_synth["MIDI instruments"]
  node_oneshot["One-shot sounds"]
  node_playground["Experimental sounds"]
  node_synth_patches["Synth patches"]
end

subgraph group_effects["Audio effects"]
  node_mono_fx["Mono effects"]
  node_stereo_fx["Stereo effects"]
end

subgraph group_control["Control utilities"]
  node_logic["Logic and timing"]
  node_conditions["Condition checks"]
  node_remapping["Value conversions"]
  node_volume["Volume matching<br/>[volumematch~.pd]"]
  node_mute["Signal muting<br/>[mute~.pd]"]
end

subgraph group_media["Recording and MIDI"]
  node_midi_clock["MIDI clock output<br/>[midiclockout.pd]"]
  node_recording["Audio recording<br/>[record~.pd]"]
end

subgraph group_visual["Audio visualization"]
  node_visualization["Visual tools"]
end

node_author(("Patch author"))
node_purrdata["Purr Data"]

node_author -->|"configures search path"| node_purrdata
node_purrdata -->|"loads abstractions"| node_waveforms
node_purrdata -->|"loads abstractions"| node_noise
node_purrdata -->|"loads abstractions"| node_midi_synth
node_purrdata -->|"loads abstractions"| node_oneshot
node_purrdata -->|"loads abstractions"| node_playground
node_purrdata -->|"loads abstractions"| node_synth_patches
node_purrdata -->|"loads abstractions"| node_mono_fx
node_purrdata -->|"loads abstractions"| node_stereo_fx
node_purrdata -->|"loads abstractions"| node_logic
node_purrdata -->|"loads abstractions"| node_conditions
node_purrdata -->|"loads abstractions"| node_remapping
node_purrdata -->|"loads abstraction"| node_volume
node_purrdata -->|"loads abstraction"| node_mute
node_purrdata -->|"loads abstraction"| node_midi_clock
node_purrdata -->|"loads abstraction"| node_recording
node_purrdata -->|"loads abstractions"| node_visualization

click node_waveforms "https://github.com/sata1000000/pd-path/tree/main/synth/waveforms"
click node_noise "https://github.com/sata1000000/pd-path/tree/main/synth/noise"
click node_midi_synth "https://github.com/sata1000000/pd-path/tree/main/synth/midi"
click node_oneshot "https://github.com/sata1000000/pd-path/tree/main/synth/oneshot"
click node_playground "https://github.com/sata1000000/pd-path/tree/main/synth/playground"
click node_synth_patches "https://github.com/sata1000000/pd-path/tree/main/synth"
click node_mono_fx "https://github.com/sata1000000/pd-path/tree/main/fx"
click node_stereo_fx "https://github.com/sata1000000/pd-path/tree/main/fx_s"
click node_logic "https://github.com/sata1000000/pd-path/tree/main/logic"
click node_conditions "https://github.com/sata1000000/pd-path/tree/main/if"
click node_remapping "https://github.com/sata1000000/pd-path/tree/main/rmp"
click node_volume "https://github.com/sata1000000/pd-path/blob/main/volumematch~.pd"
click node_mute "https://github.com/sata1000000/pd-path/blob/main/mute~.pd"
click node_midi_clock "https://github.com/sata1000000/pd-path/blob/main/midi/midiclockout.pd"
click node_recording "https://github.com/sata1000000/pd-path/blob/main/record~.pd"
click node_visualization "https://github.com/sata1000000/pd-path/tree/main/visual"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_waveforms,node_noise,node_midi_synth,node_oneshot,node_playground,node_synth_patches toneBlue
class node_mono_fx,node_stereo_fx toneAmber
class node_logic,node_conditions,node_remapping,node_volume,node_mute toneMint
class node_midi_clock,node_recording toneRose
class node_visualization,node_author,node_purrdata toneIndigo
```

## Components

### Sound generation

- [Waveforms](https://github.com/sata1000000/pd-path/tree/main/synth/waveforms): `synth/waveforms`
- [Noise sources](https://github.com/sata1000000/pd-path/tree/main/synth/noise): `synth/noise`
- [MIDI instruments](https://github.com/sata1000000/pd-path/tree/main/synth/midi): `synth/midi`
- [One-shot sounds](https://github.com/sata1000000/pd-path/tree/main/synth/oneshot): `synth/oneshot`
- [Experimental sounds](https://github.com/sata1000000/pd-path/tree/main/synth/playground): `synth/playground`
- [Synth patches](https://github.com/sata1000000/pd-path/tree/main/synth): `synth`

### Audio effects

- [Mono effects](https://github.com/sata1000000/pd-path/tree/main/fx): `fx`
- [Stereo effects](https://github.com/sata1000000/pd-path/tree/main/fx_s): `fx_s`

### Control utilities

- [Logic and timing](https://github.com/sata1000000/pd-path/tree/main/logic): `logic`
- [Condition checks](https://github.com/sata1000000/pd-path/tree/main/if): `if`
- [Value conversions](https://github.com/sata1000000/pd-path/tree/main/rmp): `rmp`
- [Volume matching](https://github.com/sata1000000/pd-path/blob/main/volumematch~.pd): `volumematch~.pd`
- [Signal muting](https://github.com/sata1000000/pd-path/blob/main/mute~.pd): `mute~.pd`

### Recording and MIDI

- [MIDI clock output](https://github.com/sata1000000/pd-path/blob/main/midi/midiclockout.pd): `midi/midiclockout.pd`
- [Audio recording](https://github.com/sata1000000/pd-path/blob/main/record~.pd): `record~.pd`

### Audio visualization

- [Visual tools](https://github.com/sata1000000/pd-path/tree/main/visual): `visual`

### Other components

- **Patch author**
- **Purr Data**

## Connections

- Patch author → Purr Data: configures search path
- Purr Data → Waveforms: loads abstractions
- Purr Data → Noise sources: loads abstractions
- Purr Data → MIDI instruments: loads abstractions
- Purr Data → One-shot sounds: loads abstractions
- Purr Data → Experimental sounds: loads abstractions
- Purr Data → Synth patches: loads abstractions
- Purr Data → Mono effects: loads abstractions
- Purr Data → Stereo effects: loads abstractions
- Purr Data → Logic and timing: loads abstractions
- Purr Data → Condition checks: loads abstractions
- Purr Data → Value conversions: loads abstractions
- Purr Data → Volume matching: loads abstraction
- Purr Data → Signal muting: loads abstraction
- Purr Data → MIDI clock output: loads abstraction
- Purr Data → Audio recording: loads abstraction
- Purr Data → Visual tools: loads abstractions
