A professional web-based audio application built with React and Tone.js for interactive music creation and sample manipulation
- ๐ผ Sample Playback System - Load and play MP3 files up to 90 seconds
- ๐๏ธ 3-Band EQ - Real-time frequency control (Low/Mid/High)
- ๐น Built-in Synthesizer - Multiple waveforms with ADSR envelope
- ๐ Master Volume Control - Global audio level management
- ๐ฑ Responsive Design - Works on desktop, tablet, and mobile
- โก Sample-Accurate Timing - Professional-grade audio precision
- React - Modern UI framework
- Tone.js - Web Audio framework for music applications
- Web Audio API - Low-level audio processing
- Modern CSS - Responsive design with dark theme
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ
โ Sample Player โโโโโถโ 3-Band โโโโโถโ Master โโโโโถโ Speakers โ
โ (Tone.Player) โ โEQ (Tone.EQ3)โ โVolume (Tone โ โ โ
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ .Volume) โ โโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโ โฒ
โ Synthesizer โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ (Tone.Synth) โ
โโโโโโโโโโโโโโโโโโโ
npm start # Start development server
npm run build # Build for production
npm test # Run test suite
npm run deploy # Deploy to production
src/
โโโ components/
โ โโโ AudioEngine.js # Core audio processing
โ โโโ SamplePlayer.js # Sample playback controls
โ โโโ EQProcessor.js # 3-band equalizer
โ โโโ Synthesizer.js # Synth engine
โ โโโ MasterControls.js # Global controls
โโโ hooks/
โ โโโ useAudioContext.js # Audio context management
โ โโโ useToneEngine.js # Tone.js integration
โโโ utils/
โ โโโ audioHelpers.js # Audio utility functions
โโโ App.js # Main application
- Click "Load Sample" to upload an MP3 file
- Use play/pause controls for playback
- Adjust master volume as needed
- Low: Adjust bass frequencies (20Hz - 250Hz)
- Mid: Control midrange (250Hz - 4kHz)
- High: Modify treble (4kHz - 20kHz)
- Choose waveform type (sine, square, triangle, sawtooth)
- Play notes using the virtual keyboard
- Adjust synth volume independently
Feature | Specification |
---|---|
Sample Length | Up to 90 seconds |
Audio Library Size | Under 100MB total |
Supported Formats | MP3, WAV, OGG |
Browser Support | Chrome, Firefox, Safari, Edge |
Audio Latency | <10ms (hardware dependent) |
Sample Rate | 44.1kHz standard |
Browser | Support | Notes |
---|---|---|
Chrome | โ Full | Recommended for development |
Firefox | โ Full | Good performance |
Safari | โ Full | iOS compatible |
Edge | โ Full | Windows compatible |
Note: Requires user interaction to start audio context (browser security requirement)
- Touch-friendly controls
- Responsive layout
- Optimized for mobile browsers
- Works on iOS and Android
// Customize audio settings in src/config/audio.js
export const AUDIO_CONFIG = {
sampleRate: 44100,
bufferSize: 512,
maxSampleLength: 90, // seconds
maxLibrarySize: 100 // MB
};
// Modify theme in src/styles/theme.js
export const theme = {
colors: {
primary: '#4CAF50',
background: '#1a1a1a',
surface: '#2a2a2a'
}
};
- Basic sample playback system
- 3-band EQ implementation
- Synthesizer with multiple waveforms
- Master volume control
- Responsive UI design
- Waveform visualization
- Performance optimization
- Unit test coverage
- Advanced synthesis (FM, AM, filters)
- Multi-sample sequencer
- Recording/export capabilities
- MIDI controller support
- Cloud sample library
- Collaboration features
We welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Commit changes:
git commit -m 'Add amazing feature'
- Push to branch:
git push origin feature/amazing-feature
- Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Tone.js - Web Audio framework
- Web Audio API - Browser audio capabilities
- React - UI framework
- Audio samples from Freesound.org
Built with โค๏ธ for the web audio community