RiffRoll is an interactive guitar practice app that combines an animated fretboard with a customizable metronome to create a dynamic, engaging practice experience. Guitarists can follow along with chord progressions, see finger positions for scales or triads, and control tempo to match their practice needs. Built with React and managed as a monorepo, RiffRoll is designed for scalability and easy collaboration.
RiffRoll is currently in its pre-beta stage and is under active development. This means that the project is still evolving, and new features, improvements, and bug fixes are being added regularly. While we strive to maintain stability, you may encounter some issues or incomplete features as we work towards the first official release.
We appreciate your interest and contributions to the project. Your feedback and participation are invaluable in helping us shape RiffRoll into a robust and user-friendly guitar practice app.
- Animated Fretboard: A real-time scrolling fretboard displays finger positioning for each note in sync with chord changes, helping users visualize finger placement.
- Customizable Metronome: A built-in metronome that users can set to different BPMs for tempo control, perfect for timed practice.
- Practice Controls: Users have full control with start, stop, and pause options, plus BPM adjustment to match practice goals.
- Responsive Design: The app is built with responsiveness in mind, functioning consistently across web and mobile devices.
-
Node.js (version 14.x or higher)
-
Nx CLI: For development ease, install globally:
npm install -g nx
- Clone the Repository:
git clone <https://github.com/your-username/RiffRoll.git>
cd RiffRoll
- Install Dependencies:
npm install
- Start Development Server:
nx serve
For more detailed information about the project, please refer to the following documents:
-
Requirements: This document outlines the functional and non-functional requirements of the RiffRoll project. It provides a comprehensive list of features, user stories, and technical constraints that guide the development process.
-
Technical Specification: This document provides an in-depth technical overview of the RiffRoll project. It includes details about the architecture, core components, state management, styling, event handling, and additional utilities. It serves as a guide for developers to understand the inner workings of the project and contribute effectively.
After setting up, you can use RiffRoll by:
- Launching the development server.
- Selecting a chord progression and desired BPM.
- Using the Start, Stop, and Pause controls to practice with the animated fretboard and metronome sound.
- Adjusting tempo as needed to increase or decrease practice intensity.
Example: For beginners, start with a slower BPM (e.g., 60) to focus on finger positioning, then gradually increase the tempo as you get comfortable.
We welcome contributions to RiffRoll! To get started:
- Set up your local environment by following the installation steps.
- Make your changes in a new branch.
- Submit a pull request targeting the development branch.
See CONTRIBUTING.md
This project is licensed under the MIT License - see the LICENSE file for details.
Special thanks to the contributors who have helped make RiffRoll possible.