Audio Synthesis Project
A collection of audio synthesis tools, compositions, and Claude Code integrations for Linux audio development.
Loading actions...
Skill content
Main instructions and any bundled files for this skill.
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-playfor 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:
| Command | Description |
|---|---|
/hook-mute | Mute hook sounds |
/hook-unmute | Unmute hook sounds |
/hook-test | Test all hook sounds |
/audio-status | Check audio system status |
/play <song> | Play a composition |
/compose <desc> | Create new music |
/tutorial | Access 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
| Level | Hooks | Rationale |
|---|---|---|
| Loud | SessionStart, SessionEnd, Error | Ceremonial/alert |
| Medium | PostToolUse, UserPromptSubmit, Stop, Notification | Acknowledgment |
| Soft | PreToolUse, SubagentStop, PreCompact | Background 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."
Related Skills
Frontend Typescript Linting.mdc
TypeScript and ESLint rules that MUST be followed when creating, modifying, or reviewing any file under apps/frontend/, including .ts, .tsx, .js, and .jsx files. Also apply when discussing frontend li...
2. Apply Deepthink Protocol (reason about dependencies
risks