Giter VIP home page Giter VIP logo

fretboard-trainer's Introduction

Fretboard Trainer

The purpose of this web app is to attempt to close the mental gap between a piano keyboard and a guitar fretboard. This app will randomly select a guitar note and the goal is to play the note back on the keyboard (in the correct octave). When the right note is played, another random fret will be generated.

frettrainer.mov

Why I made this

As both a piano and guitar player, I've realized that I have completely different mental models of the two instruments. A piano keyboard is laid out linearly and there is a direct mapping of a single note to a single key. But on the guitar a single note may exist in several locations on the fretboard. This can make it pretty difficult to master the fretboard and transition between different positions on the guitar while mentally keeping track of what notes are being played. Many guitar players rely on shapes (e.g. the CAGED system) to navigate the fretboard and tend not to think about note names directly, but rather functional harmony (scale degrees, etc.).

There are several fretboard training tools on the web, but none that I've found that map the fretboard to the piano keyboard. Instead many require you to select the note names from a list/grid via a mouse click. As a player of both instruments I hope that this app will start to merge two mental models of the instruments, eventually removing the need for an intermediate note translation and moving more to a direct visual mapping.

How to Use

Visit the deployed version here

  • If you have a MIDI keyboard plugged in, select it from the dropdown (you can also use the keyboard display if you don't have a MIDI keyboard)
  • Set the fret range (defaults 0-12) and hit "start/reset"
  • A random fret note will be generated, try to match it on the keyboard

If that doesn't work for some reason, built it yourself using the instructions below :)

This app was built with Create React App and is pretty easy to get up and running. If you use yarn, then yarn && yarn start should be enough to get going. For npm, likely npm install && npm start should work (though I haven't tested).

MIDI inputs will be listed in a select menu on start, changing the select value should reset the MIDI connection to your desired controller. Clicking "Start" will get you started!

fretboard-trainer's People

Contributors

friedpies avatar

Stargazers

 avatar

Watchers

 avatar

fretboard-trainer's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.