Skip to content

Repository files navigation

Contributing to PianoSync

Welcome Contributors! 🎹🎶

First off, thank you for considering contributing to PianoSync. It's people like you that make PianoSync such a great tool for music learners and piano enthusiasts.

Get the App 📲

PianoSync is available on Google Play! Download it now to see what you'll be contributing to:

Get it on Google Play

Screenshots 📱

Get a feel for the app and what you'll be contributing to:

Main Menu Settings Progress Tracking
Main Menu Practice Mode Song Selection
Piano Interface Without Ui Piano Interface With Ui
Piano Interface Settings

Code of Conduct

Please note that this project is released with a Contributor Code of Conduct. By participating in this project, you agree to abide by its terms.

How Can I Contribute?

Reporting Bugs 🐞

  • Ensure the bug has not already been reported by searching existing Issues.
  • If you can't find an open issue addressing the problem, open a new one.
  • Be sure to include a clear title and description, as much relevant information as possible, and a code sample or steps to reproduce the issue.

Suggesting Enhancements 💡

  • Open an issue with a clear title and description of your suggested enhancement.
  • Provide context about why this feature would be useful.
  • If possible, include mockups or design sketches.

Development Process 🛠️

Getting Started

  1. Fork the repository
  2. Create a new branch for your feature or bugfix
    • Use a clear and descriptive branch name
    • Example: feature/add-difficulty-levels or bugfix/midi-playback-sync
  3. Make your changes
  4. Test your changes
  5. Submit a Pull Request

Pull Request Guidelines

  • Fill out the PR template completely
  • Include screenshots or GIFs if your changes affect the UI
  • Ensure your code follows the project's coding standards
  • Update documentation accordingly

Development Setup 💻

Prerequisites

  • Android Studio
  • JDK 11 or later
  • Kotlin plugin

Local Development

  1. Clone your forked repository
  2. Open the project in Android Studio
  3. Sync Gradle files
  4. Run the app
    • Use Android Studio's run configuration

Contribution Areas We Need Help With 🤝

  1. Design

    • Logo design
    • UI/UX improvements
    • App icon designs
  2. Features

    • Difficulty level implementation
    • Visual cues for note hitting accuracy
    • Physical piano connection improvements
  3. Testing

    • Comprehensive app testing
    • MIDI file compatibility testing
    • Performance optimization

Coding Standards 📏

  • Follow Kotlin best practices
  • Use meaningful variable and function names
  • Write clear, concise comments
  • Maintain consistent code formatting
  • Use Android Studio's built-in code formatter
  • Follow Kotlin Coding Conventions

Example Kotlin Style Guide Highlights:

  • Use camelCase for names
  • Use meaningful and intention-revealing names
  • Prefer immutability (val over var)
  • Use type inference where possible

Feature Request Process 🚀

  1. Open an issue describing the feature
  2. Discuss the feature with maintainers
  3. Once approved, assign yourself or wait for assignment
  4. Implement the feature
  5. Write unit and instrumentation tests
  6. Update documentation
  7. Submit a pull request

Dependency Management

  • Use Gradle for dependency management
  • Keep dependencies up to date
  • Prefer the latest stable versions of libraries

Communication Channels 💬

Special Call-out for Designers 🎨

We are actively seeking designers to help improve our app's visual experience! If you're interested in:

  • Creating a logo
  • Designing UI mockups
  • Improving app aesthetics

Please reach out directly via email or Discord.

Build Process

Debug Build

  • Use Android Studio's "Run" configuration
  • Select debug variant

Thank You! 🙏

Your contributions make open-source communities amazing. We appreciate every contribution, no matter how small!


Note: This project is in active development. Guidelines may change, so always check the latest version.

About

PianoSync is an innovative Android application designed to revolutionize piano learning through interactive MIDI file playback and visualization

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages