A powerful, low-latency browser-based digital audio workstation (DAW) and modular synthesizer. No installation required—create music directly in your browser.
Try Live Demo • Read the Manual • Join Community • Support Development
- 32-voice polyphony for complex arrangements
- Multiple waveforms: Sine, Square, Sawtooth, Triangle
- Complete ADSR envelope with millisecond precision
- Multi-mode filter: Lowpass, Highpass, Bandpass with resonance
- Filter envelope for dynamic timbre evolution
- LFO modulation with multiple waveforms and targets
- Voice module with unison/detune and noise generator
- Distortion - Waveshaper-based saturation
- Compressor - Dynamic range control
- Chorus - Stereo width and shimmer
- Delay - Tempo-synced echoes with feedback
- Reverb - Convolution-based room ambience
- All effects feature true bypass for zero CPU when disabled
- 10 drum sounds per kit (Kick, Snare, Clap, Hi-Hats, Toms, Cymbals)
- Multiple drum kits: TR-909, BVKER
- Grid-based step sequencer with adjustable steps and resolution
- Pattern presets with save/load functionality
- Pattern freezing for CPU optimization
- Keyboard triggering and real-time performance
- Piano Roll editor with drag-and-drop MIDI editing
- Multi-track system with unlimited tracks
- Arrangement view with timeline and clips
- MIDI recording with metronome and count-in
- Transport controls: Play, Stop, Record, Loop
- Adjustable BPM (20-300) and loop length
- Per-track controls: Volume, Pan, Mute, Solo
- QWERTY keyboard becomes a piano (A-K keys)
- Chord mode with 13 chord types on number keys
- Percussion mode with drum triggering
- Octave switching (0-8 range)
- Keyboard shortcuts for transport and navigation
- Real-time oscilloscope with phase alignment
- Separate drum oscilloscope for percussion visualization
- Waveform smoothing and frequency detection
- Instrument Library with save/load
- Full patch export (all modules + effects)
- Drum pattern presets (4 built-in + custom)
- LocalStorage persistence - your work is saved automatically
Simply visit https://isaacamar.github.io/fractinst/ and start making music!
- Node.js 18+ and npm
# Clone the repository
git clone https://github.com/isaacamar/fractinst.git
cd fractinst
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run buildThe app will be available at http://localhost:5173
- Play notes - Use A-K keys for piano, W/E/T/Y/U for sharps/flats
- Design sounds - Click
INSTto access the modular synth - Create beats - Click
SEQfor the drum sequencer - Record melodies - Click
ROLLand hit Record to capture MIDI - Manage tracks - Use the track selector to build arrangements
Space- Play/StopR- Record-/=- Octave down/up1-9- Trigger chords (customizable)- Click
BINDINGSbutton for full list
For detailed tutorials and complete documentation, see the manual.
- React 18 - UI framework
- TypeScript - Type safety
- Vite - Build tool and dev server
- Zustand - State management
- Web Audio API - Real-time audio processing
- React Router - Navigation
- Driver.js - Interactive onboarding
- IndexedDB - Local storage
No external audio libraries—everything is built on native Web Audio API for maximum performance.
fractinst/
├── src/
│ ├── components/ # React components
│ │ ├── Manual/ # In-app documentation
│ │ ├── ModuleSystem/ # Synth modules
│ │ ├── Oscilloscope/ # Visualizations
│ │ ├── PianoRoll/ # MIDI editor
│ │ ├── StepSequencer/ # Drum sequencer
│ │ └── ...
│ ├── engines/ # Audio engines
│ │ ├── AudioEngine.ts # Main synth engine
│ │ ├── DAWCore.ts # Transport & recording
│ │ ├── DrumMachine.ts # Sample playback
│ │ └── ...
│ ├── stores/ # Zustand state stores
│ ├── hooks/ # Custom React hooks
│ ├── types/ # TypeScript definitions
│ └── utils/ # Helper functions
├── public/
│ └── samples/ # Drum samples (TR-909, BVKER)
└── docs/ # Additional documentation
Contributions are welcome! Whether it's bug reports, feature requests, or code contributions, all are appreciated.
Please see CONTRIBUTING.md for guidelines.
- Report bugs via GitHub Issues
- Suggest features or improvements
- Improve documentation
- Design presets or demo songs
- Submit pull requests
FractInst is free and open source. If you find it useful, consider supporting continued development:
- Buy me a coffee
- Sponsor on GitHub
- Star this repository to help others discover it
Every bit of support helps maintain and improve FractInst!
This project is licensed under the MIT License - see the LICENSE file for details.
- TR-909 samples: Public domain
- BVKER 909 Kit: Attribution required - see CREDITS.md
See CREDITS.md for full attributions.
- Export to WAV/MP3
- MIDI file import/export
- VST-style plugin system
- Cloud project sync
- Mobile/touch optimization
- Additional drum kits
- More effects (phaser, flanger, EQ)
- Automation lanes
- Sample editor
See GitHub Issues for full list and vote on features!
- GitHub Discussions: Ask questions & share creations
- Discord: Join the community (Coming soon)
- Twitter: @YOUR_TWITTER
- Email: your.email@example.com
- Built by Isaac Amar
- Developed with assistance from various generative models - see CREDITS.md for details
- Inspired by classic synthesizers (Moog, Roland TB-303, TR-909)
- Thanks to the Web Audio API community and all contributors
Made with Love and Web Audio API
