A terminal-based ambient music generator that creates warm, evolving soundscapes with real-time procedural arpeggio generation and beautiful gradient visualizations.
- 🎵 Real-time Arpeggio Generation: Creates beautiful ambient arpeggios across 4 channels
- 🌈 Gradient Visualization: Flowing pastel colors that respond to the music
- 🎛️ Live Control: Adjust tempo, key, mode, and patterns in real-time
- 🎨 Multiple Color Palettes: Ambient, Dawn, Dusk, Ocean, Forest themes
- 💾 Preset System: Save and load your favorite configurations
- 🔄 Pattern Evolution: Organic, evolving patterns that change over time
- 🎹 Musical Scales: Major, Minor, Dorian, Phrygian, Lydian, and more
# Clone the repository
git clone https://github.com/yourusername/claggio.git
cd claggio
# Install dependencies
npm install
# Run the application
npm start
SPACE
- Play/PauseENTER
- Regenerate patterns
↑/↓
- Adjust tempo by ±5 BPMShift+↑/↓
- Adjust tempo by ±10 BPM
←/→
- Transpose keyM
- Cycle through modes (Major, Minor, Dorian, etc.)R
- Cycle arpeggio range (4-12 notes)L
- Cycle loop length (4, 8, 16, 32 beats)
1-4
- Mute/unmute channelsShift+1-4
- Solo channels
E
- Toggle pattern evolutionC
- Cycle color palettes+/-
- Adjust master volumeS
- Save presetO
- Load presetQ
- Quit
The application features 4 distinct channels:
- Lead Melody - High, ascending patterns with medium density
- Harmony Layer - Mid-range pendulum patterns for harmonic support
- Bass Foundation - Low, sparse patterns emphasizing root notes
- Sparkle Layer - High, dense random walk patterns for texture
- Node.js >= 16.0.0
- Audio output device (speakers/headphones)
- Terminal with Unicode support
- Audio Engine: Real-time synthesis using the Speaker library
- Arpeggio System: Procedural pattern generation with multiple styles
- TUI Interface: Built with blessed for rich terminal interactions
- Preset Manager: JSON-based preset storage system
ISC
Contributions are welcome! Please feel free to submit issues and pull requests.
Built with love for ambient music and creative coding.