Audio Synthesis Project

A collection of audio synthesis tools, compositions, and Claude Code integrations for Linux audio development.

Views0
PublishedJan 14, 2026

Loading actions...

5 minBeginnerpromptSingle file

Skill content

Main instructions and any bundled files for this skill.

markdown

Audio Synthesis Project

A collection of audio synthesis tools, compositions, and Claude Code integrations for Linux audio development.

Overview

This project provides:

  • Hook sounds for Claude Code notifications (pre-rendered FLAC)
  • Musical compositions in Csound and SuperCollider
  • Audio control scripts for muting, playback, and system status
  • Slash commands for Claude Code integration

Directory Structure

audio/
├── csound/                  # Csound compositions and scripts
│   ├── wide_horizons.csd    # 2-min multi-genre composition
│   ├── fm_bell.csd          # FM synthesis demonstration
│   ├── explorations.csd     # Experimental sound textures
│   ├── test_tone.csd        # Basic test tones
│   └── play.sh              # Csound playback helper

├── supercollider/           # SuperCollider compositions and tools
│   ├── wide_horizons.scd    # 2-min multi-genre composition
│   ├── generate_sounds.scd  # Hook sound generator
│   ├── play_hook_sound.sh   # Hook sound player (uses FLAC)
│   ├── hook_sounds.scd      # SynthDef definitions
│   ├── start_superdirt.scd  # SuperDirt startup script
│   └── sounds/              # Pre-rendered hook sounds (FLAC)
│       ├── PreToolUse.flac
│       ├── PostToolUse.flac
│       ├── SessionStart.flac
│       ├── SessionEnd.flac
│       ├── UserPromptSubmit.flac
│       ├── Stop.flac
│       ├── SubagentStop.flac
│       ├── PreCompact.flac
│       ├── Error.flac
│       └── Notification.flac

├── tidal/                   # TidalCycles patterns
├── strudel/                 # Strudel live coding setup
├── fluidsynth/              # FluidSynth scripts

├── audio-ctl.sh             # Master audio control script
└── README.md                # This file

Requirements

Audio Stack

  • PipeWire with JACK compatibility (pw-jack)
  • PipeWire tools (pw-play for FLAC playback)

Synthesis Engines

  • Csound 6.18+ (pacman -S csound)
  • SuperCollider 3.14+ (pacman -S supercollider)
  • TidalCycles (optional, requires Haskell + SuperDirt)

Quick Start

Play a Composition

# Using Csound
csound ~/Development/scripts/audio/csound/wide_horizons.csd

# Using SuperCollider
pw-jack sclang ~/Development/scripts/audio/supercollider/wide_horizons.scd

Control Hook Audio

# Using the control script
./audio-ctl.sh mute      # Mute hook sounds
./audio-ctl.sh unmute    # Unmute hook sounds
./audio-ctl.sh status    # Check status
./audio-ctl.sh list      # List available compositions
./audio-ctl.sh play wide_horizons

Generate Hook Sounds

cd supercollider/
pw-jack sclang generate_sounds.scd

# Convert WAV to FLAC (SuperCollider outputs 32-bit float WAV)
cd sounds/
for f in *.wav; do
  ffmpeg -y -i "$f" -c:a flac -sample_fmt s32 "${f%.wav}.flac"
done
rm *.wav

Claude Code Integration

Slash Commands

Install to ~/.claude/commands/ for global availability:

CommandDescription
/hook-muteMute hook sounds
/hook-unmuteUnmute hook sounds
/hook-testTest all hook sounds
/audio-statusCheck audio system status
/play <song>Play a composition
/compose <desc>Create new music
/tutorialAccess documentation

Hook Configuration

Add to ~/.claude/settings.local.json:

{
  "hooks": {
    "PreToolUse": [{
      "matcher": "*",
      "hooks": [{
        "type": "command",
        "command": "~/Development/scripts/hooks/PreTool.hook"
      }]
    }]
  }
}

Compositions

"Wide Horizons"

A 2-minute multi-genre composition blending:

  • Jazz: Extended chords (maj9, m7, dom7)
  • Blues: Dominant 7ths, blue notes, shuffle rhythm
  • Country: I-IV-V progressions, folk guitar
  • Rock: Power chords, driving drums, distorted bass
  • Ambient: Slow pads, reverb, modal harmonies

Available in both Csound and SuperCollider versions.

Sound Design Philosophy

Hook sounds are designed to be:

  • Musical but not melodic (won't get stuck in your head)
  • Distinct but not jarring (won't startle you)
  • Consistent in character (feel like a family)

Volume Hierarchy

LevelHooksRationale
LoudSessionStart, SessionEnd, ErrorCeremonial/alert
MediumPostToolUse, UserPromptSubmit, Stop, NotificationAcknowledgment
SoftPreToolUse, SubagentStop, PreCompactBackground events

Documentation

License

Personal project - feel free to use for inspiration.

Credits

Compositions and tools created collaboratively with Claude (Anthropic).


"The machine computed frequencies. The human heard horizons."

Share: