Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/igorski/tuning-spork

Browser based guitar scale and chord visualizer with multiple string and custom tuning support
https://github.com/igorski/tuning-spork

guitar-chords guitar-scale-chart guitar-scales guitar-tuner javascript vue vuejs

Last synced: about 2 months ago
JSON representation

Browser based guitar scale and chord visualizer with multiple string and custom tuning support

Awesome Lists containing this project

README

        

# Tuning Spork!

A web based application that allows you to visualize the notes and chords of a large selection of scales
onto your fretboard with support for custom tunings / strings. Also provides reverse scale lookup functionality
by allowing you to draw a chord for any given tuning.

## Architecture

The project was created using [Vue](https://vuejs.org) with the following tools/plugins:

* Vite
* Vuex
* ESLint
* Vitest unit testing

## Development

### Commands

Launches a local web server (available at _localhost:8080_) serving the application with live compilation and hot reload for development:

```
npm run dev
```

Compile and minify application for production deployment (output wil be written to _./dist/_-folder):

```
npm run build
```

Lint and fix source code:

```
npm run lint
```

Run unit tests:

```
npm run test
```

## Adding new scales / chords

Scales and chords are described in JSON fixtures which are located in _./src/definitions/_.
Scales and chords are defined by their name and by the notes present:

Scale example:

```
{
"major": [0, 2, 4, 5, 7, 9, 11],
"minor": [0, 2, 3, 5, 7, 8, 10]
}
```

Where the object key is the scale name and the Array value describes all notes within said scale. These
notes are defined as _semitones_ (where integer values are used for _equal temperament_ tunings). Note: always
start with a 0 to define the root note.

Chord example:

```
{
"major": [0, 4, 7],
"major 7th": [0, 4, 7, 11],
"minor": [0, 3, 7],
"minor 7th": [0, 3, 7, 10]
}
```

The visualiser interface will use these notes to generate scales from a given root note for each individual
guitar string.

## Contributors

Kind words of gratitude to the following contributors for adding new features to the application:

* Ivan Zabrodin (zivan2)