Welcome Contributors!
We welcome contributions from the community! Whether you’re fixing bugs, adding features, improving documentation, or helping with translations, your contributions make LoFi Engine better for everyone.Before contributing, please read through these guidelines to ensure a smooth collaboration process.
Ways to Contribute
Bug Reports
Report issues you encounter while using the app
Feature Requests
Suggest new features or improvements
Code Contributions
Fix bugs or implement new features
Documentation
Improve or translate documentation
Design
Contribute artwork or UI improvements
Testing
Test new features and provide feedback
Getting Started
Before you start contributing:Check the issue tracker
Visit the issue tracker to:
- Find issues labeled
good first issuefor beginners - See what’s already being worked on
- Discuss new ideas before implementing
Set up your development environment
Follow the Development Setup guide to get LoFi Engine running locally.
Understand the architecture
Read the System Architecture documentation to understand how the project is structured.
Contribution Workflow
Follow this workflow to contribute code changes:Fork the repository
Create your own fork of the repository:
- Go to github.com/meel-hd/lofi-engine
- Click the “Fork” button in the top-right
- Clone your fork locally:
Create a new branch
Create a branch for your feature or bugfix:Branch naming conventions:
feature/- New featuresfix/- Bug fixesdocs/- Documentation changesrefactor/- Code refactoringtest/- Adding tests
Commit your changes
Make clear, descriptive commits:Commit message format:
feat:- New featurefix:- Bug fixdocs:- Documentationstyle:- Formatting changesrefactor:- Code restructuringtest:- Adding testschore:- Maintenance tasks
Code Style Guidelines
TypeScript / JavaScript
Svelte Components
Rust (Tauri Backend)
Pull Request Guidelines
Before Submitting
- Checklist
- Testing
- Documentation
Ensure your PR meets these criteria:
- Code follows project style guidelines
- All type checks pass (
pnpm check) - Changes have been tested locally
- Commit messages are clear and descriptive
- PR description explains what and why
- Related issues are referenced
- No console errors or warnings
- New features include comments/documentation
PR Template
When opening a PR, include:Music Generation Contributions
Contributing to the procedural music system:Chord Progressions
Chord Progressions
To modify chord progression logic:
- Edit
src/lib/engine/Chords/Chords.ts - Update
nextChordIdxsarrays with valid progressions - Test that progressions sound musical
- Document music theory reasoning
Audio Effects
Audio Effects
To add new audio effects:
- Use Tone.js effect nodes
- Chain effects properly
- Add user controls in UI
- Document effect parameters
New Instruments
New Instruments
To add new instruments:
- Create new directory in
src/lib/engine/ - Implement sampler class with effects
- Add samples to
public/assets/engine/ - Integrate with main audio engine
- Add UI controls
src/lib/engine/Piano/Piano.ts:1 for referenceReporting Bugs
Found a bug? Help us fix it:Search existing issues
Check if the bug has already been reported:LoFi Engine Issues
Create a new issue
If it’s a new bug, create a detailed report:Include:
- Clear description of the bug
- Steps to reproduce
- Expected vs actual behavior
- Platform (Linux/macOS/Windows)
- App version
- Screenshots or videos (if applicable)
- Console errors (if any)
Requesting Features
Have an idea for LoFi Engine?Create a feature request
Open a new issue with:
- Clear description of the feature
- Use case / problem it solves
- Proposed implementation (if you have ideas)
- Mockups or examples (if applicable)
Community Guidelines
Be Respectful
Treat all contributors with respect and kindness
Be Patient
Maintainers are volunteers—reviews take time
Be Open
Accept feedback gracefully and iterate
Be Helpful
Help other contributors when you can
Recognition
All contributors are recognized in:- GitHub contributors list
- Release notes for significant contributions
- The app’s “About” section
Getting Help
Need help contributing?Issue Tracker
Ask questions or report problems
Development Setup
Get your environment set up
Architecture Guide
Understand the codebase
Music Generation
Learn about the audio engine
License
By contributing to LoFi Engine, you agree that your contributions will be licensed under the MIT License.Thank you for contributing to LoFi Engine! Your efforts help create a better experience for everyone in the community.