Thank you for your interest in contributing to Soundbind! We welcome contributions of all kinds.
We encourage users to contribute new sound files to the package!
- Format: MP3 only (for cross-platform Windows compatibility)
- Size: Keep files under 500KB when possible
- Quality: Clear audio, no distortion, 128-192 kbps recommended
- Licensing: By contributing, you agree your submission is compatible with the MIT license (see DISCLAIMER.md)
- Naming: Use descriptive, lowercase names with hyphens (e.g.,
epic-victory.mp3)
- Fork the repository
- Add your sound file to
assets/sounds/ - Update or create a config in
src/configs/that uses your sound - Submit a Pull Request with:
- Sound file(s)
- Config file using the sound
- Description of the sound
Example:
# src/configs/gaming.yaml
keybinds:
- key: 'F1'
sound: '../../assets/sounds/epic-victory.mp3'
description: 'Epic victory sound'Share your keybind configurations with the community!
- Theme: Create themed configs (gaming, streaming, memes, etc.)
- Documentation: Add clear descriptions for each keybind
- Naming: Use descriptive names (e.g.,
gaming.yaml,streaming.yaml) - Paths: Use relative paths to
assets/sounds/
profile:
name: 'Your Config Name'
description: 'Brief description'
audio:
player: 'play'
maxConcurrent: 5
keybinds:
- key: 'F1'
sound: '../../assets/sounds/your-sound.mp3'
description: 'Clear description'
settings:
hotReload: true
preloadSounds: true
logging:
level: 'info'
fileEnabled: true
filePath: 'logs'Found a bug? Please open an issue with:
- Clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Your environment (OS, Node.js version)
- Config file (if relevant)
Have an idea? Open an issue with:
- Clear description of the feature
- Use case / why it's needed
- Proposed implementation (optional)
git clone https://github.com/UselessCo/soundbind.git
cd soundbind
npm install# Run with default config
npm start
# Run with custom config
npm run dev ./src/configs/your-config.yaml- ES Modules: Use
import/exportwith.jsextensions - Constants: Use constants from
src/common/constants/ - Logging: Use
loggerinstead ofconsole.log - Error Handling: Always handle errors gracefully
- Comments: Add comments for complex logic
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Test thoroughly
- Commit with clear messages (
git commit -m 'Add amazing feature') - Push to your fork (
git push origin feature/amazing-feature) - Open a Pull Request
- Code follows project style
- No console.log in production code
- All imports have .js extensions
- Changes are documented
- Tested on your platform
soundbind/
├── assets/
│ └── sounds/ # Sound files (contribute here!)
├── bin/
│ └── soundbind.js # CLI executable
├── src/
│ ├── common/
│ │ ├── constants/ # Constants
│ │ └── utils/ # Utilities
│ ├── configs/ # Config files (contribute here!)
│ │ ├── default.yaml
│ │ └── template.yaml
│ ├── core/ # Core functionality
│ └── Soundbind.js # Main class
└── index.js # Entry point
- More sound files
- Themed configurations
- Platform-specific testing
- Documentation improvements
- Loop support
- Volume control
- Audio fading
- Priority system
- Output device selection
- System tray support
By contributing, you agree that your contributions will be licensed under the MIT License.
Every contribution helps make Soundbind better for everyone!