SoundScapes is a web-based interactive music sequencer that allows users to create and experiment with musical sequences in real-time. Built with modern web technologies, it provides an intuitive interface for music creation with multiple instruments, effects, and customization options.
- πΉ Dual Sequencer System - Main and background sequences playing simultaneously
- π΅ Multiple Instruments - Piano, Basic Synth, and AM Synth options
- ποΈ Audio Effects - Tremolo and Reverb with adjustable intensity
- π Volume Control - Independent volume adjustment for each sequence
- πΌ Pre-built Sequences - Two example sequences to get started quickly
Experience SoundScapes live: https://isacaputo.github.io/soundscapes
- React 18.2.0 - Modern UI library with hooks and context
- Vite 4.3.2 - Fast build tool and development server
- Material-UI 5.13.4 - React component library for modern UI
- Tone.js 14.8.49 - Web Audio framework for interactive music
- ESLint - Code linting and formatting
- Prettier - Code formatting
- GitHub Pages - Deployment platform
- Main Sequence: 4 notes per compass Γ 8 compasses (32 total notes)
- Background Sequence: 1 note per compass Γ 8 compasses (8 total notes)
- Real-time Playback: Synchronized playback of both sequences
- Visual Feedback: Interactive grid with active note highlighting
| Instrument | Description | Use Case |
|---|---|---|
| Piano | Classic piano sound | Melodic sequences and harmony |
| Basic Synth | Clean synthesizer tone | Electronic music and bass lines |
| AM Synth | Amplitude modulated synth | Textural and atmospheric sounds |
- Tremolo: Amplitude modulation effect with adjustable frequency
- Reverb: Spatial effect with adjustable decay time
- Volume Control: Independent mixing for main and background sequences
- Node.js (v14 or higher)
- npm or yarn package manager
-
Clone the repository
git clone https://github.com/isacaputo/soundscapes.git cd soundscapes -
Install dependencies
npm install
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:5173to see the application running.
# Build the project
npm run build
# Preview the build locally
npm run preview# Deploy to GitHub Pages
npm run deploy- Select an Instrument: Choose from Piano, Basic Synth, or AM Synth
- Build Your Sequence: Click on the grid to activate notes
- Add Background: Create a complementary background sequence
- Apply Effects: Adjust Tremolo and Reverb to taste
- Control Volume: Balance your main and background sequences
- Press Play: Enjoy your creation!
- Start with a simple 4-note pattern in the main sequence
- Use the background sequence for bass lines or atmospheric pads
- Experiment with different instruments for varied textures
- Apply subtle effects to enhance the overall sound
soundscapes/
βββ public/
β βββ images/ # Logo and visual assets
β βββ vite.svg
βββ src/
β βββ components/ # React components
β β βββ AppContent.jsx
β β βββ Header.jsx
β β βββ InstrumentSelector.jsx
β β βββ ControlsSection.jsx
β β βββ ...
β βββ contexts/ # React context providers
β β βββ audio/ # Audio state management
β β βββ playback/ # Playback control
β βββ helpers/ # Utility functions and constants
β βββ main.jsx # Application entry point
βββ package.json
βββ vite.config.js
βββ README.md
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project leverages the powerful Tone.js Web Audio framework. For detailed API documentation, visit: Tone.js Documentation
- Synthesizers: Piano, AM Synth, Basic Synth
- Effects: Tremolo, Reverb
- Transport: Global timing and synchronization
- Sequencing: Pattern-based note scheduling
- Tone.js for the amazing Web Audio framework
- Material-UI for the beautiful React components
- Vite for the fast development experience
- React for the powerful UI library
Made with β€οΈ and π΅ by Isadora Caputo
