Skip to content

socle-commun/generative-music-experiments

Repository files navigation

🎢 Generative Music Experiments

Generative Music Experiments is a collection of interactive, browser-based audio experiments exploring algorithmic composition and procedural sound generation. Built with modern frontend technologies, this project aims to provide a playground for creative exploration of music systems and emergent sound behaviors.

🌐 Live Demo

Coming soon β€” stay tuned!

πŸš€ Features

  • 🎼 Modular Experiments: Each experiment is built as a separate interactive route using React Router.
  • πŸŽ›οΈ Real-Time Audio Synthesis: Powered by the Web Audio API and optionally extended with Tone.js.
  • 🧩 Reactive UI: Clean and responsive interface built with React.
  • 🎨 Visual Feedback: Audio-reactive visuals using Canvas or SVG.
  • πŸ”„ Procedural Loops: Controlled randomness, generative rules, and evolving patterns.

πŸ› οΈ Tech Stack

  • ⚑ Vite β€” lightning-fast development environment
  • βš›οΈ React
  • πŸ”€ React Router
  • 🎧 Web Audio API / Tone.js
  • πŸ–ΌοΈ Canvas / SVG for visuals

πŸ“ Project Structure

/generative-music/
β”œβ”€β”€ index.html
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/         # Shared UI components
β”‚   β”œβ”€β”€ experiments/        # Individual generative music experiments
β”‚   β”œβ”€β”€ hooks/              # Custom React hooks for audio & interactivity
β”‚   β”œβ”€β”€ routes/             # React Router routes
β”‚   β”œβ”€β”€ index.css           # Global styles
β”‚   β”œβ”€β”€ App.tsx
β”‚   └── main.tsx
β”œβ”€β”€ vite.config.ts
└── README.md

πŸ§ͺ Experiments Included

  • 🎲 Random Melody Generator
  • πŸ•ΈοΈ Markov Chain Chord Progressions
  • πŸ” Cellular Automata Rhythms
  • 🌿 L-System Melody Growth
  • πŸŽ›οΈ Interactive Step Sequencer

Each experiment lives in its own route and may be extended with unique UI controls or visualizations.

πŸ“¦ Getting Started

Prerequisites

  • Node.js (v20+ recommended)
  • A modern browser (Chrome, Firefox, Edge)

Installation

# Clone the repository
git clone https://github.com/your-username/generative-music.git
cd generative-music

# Install dependencies
npm install

# Run the development server
npm run dev

Then visit http://localhost:5173 in your browser.

🧠 Inspiration

Inspired by the works of:

  • Brian Eno β€” ambient and generative music pioneer
  • Terry Riley β€” minimalism and loop-based composition
  • Tero Parviainen β€” Generative Music in the Browser

πŸ“ƒ License

MIT License β€” open for remixing, learning, and sharing.

πŸ™Œ Contributing

Pull requests, issues, and creative suggestions are always welcome! See CONTRIBUTING.md for guidelines (coming soon).