Skip to content

RiffRoll is an interactive guitar practice app that combines an animated fretboard with a customizable metronome to create a dynamic, engaging practice experience.

License

Notifications You must be signed in to change notification settings

CambridgeMonorail/RiffRoll

Repository files navigation

RiffRoll

Project StatusVersionBuild Status License Last Commit

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.


Table of Contents

  1. Overview
  2. Features
  3. Installation
  4. Usage
  5. Documentation
  6. Contributing
  7. License
  8. Credits

Overview

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.

Features

  • 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.

Technologies Used

React TypeScript Node.js Nx Markdown pnpm Vite GitHub GitHub Actions License: MIT

Installation

Prerequisites

  • Node.js (version 14.x or higher)

  • Nx CLI: For development ease, install globally:

    npm install -g nx

Setup

  1. Clone the Repository:
git clone <https://github.com/your-username/RiffRoll.git>
cd RiffRoll
  1. Install Dependencies:
npm install
  1. Start Development Server:
nx serve

Documentation

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.

Usage

After setting up, you can use RiffRoll by:

  1. Launching the development server.
  2. Selecting a chord progression and desired BPM.
  3. Using the Start, Stop, and Pause controls to practice with the animated fretboard and metronome sound.
  4. 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.

Contributing

We welcome contributions to RiffRoll! To get started:

  1. Set up your local environment by following the installation steps.
  2. Make your changes in a new branch.
  3. Submit a pull request targeting the development branch.

See CONTRIBUTING.md

License

This project is licensed under the MIT License - see the LICENSE file for details.

Credits

Special thanks to the contributors who have helped make RiffRoll possible.

About

RiffRoll is an interactive guitar practice app that combines an animated fretboard with a customizable metronome to create a dynamic, engaging practice experience.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published