Giter Site home page Giter Site logo

scribbletune / johann Goto Github PK

View Code? Open in Web Editor NEW
55.0 6.0 7.0 5.72 MB

Use scribbletune to generate guitar, piano and computer keyboard scales/chords/notes practice charts.

Home Page: http://johann.scribbletune.com

License: MIT License

JavaScript 3.16% TypeScript 72.23% HTML 2.24% Less 22.37%

johann's Introduction

Johann

Generate chords & scales to practice on your guitar, piano or computer keyboard! johann.scribbletune.com


This project is aimed at helping personal guitar, musical keyboard or computer keyboard music practice. It originates from a personal requirement for being able to put together a chart of notes to practice. This could be for a scale/mode or a chord across the instrument. Basically it helps you focus on the notes you wanna play and practice. For instance on a musical keyboard, you may want to just highlight the C Minor scale so that you can play over it. This little app will let you select the required root note and the scale to generate this:

johann-piano-scale.png

The same can be done for a triad. You can generate a sheet with just the notes of the C Minor chord to practice it's notes across the fretboard (or in this case the musical keyboard):

johann-piano-chord.png

The green dot is the root note and the blue dot is a note from the selected scale or chord.

The same can be done for guitars...

johann-guitar.png

and computer keyboards too! johann-keyboard.png

Demo: https://scribbletune.github.io/johann/#/

Develop

Run npm i Begin dev with npm run dev Load http://localhost:8081 in your browser

Build with npm run build

johann's People

Contributors

dependabot[bot] avatar dezzles avatar walmik avatar zuurw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

johann's Issues

show octave on note (guitar & piano)

Description
better to show octave on note useful when play in choir
e.g. in standard choir usually use SATB (Sopran Alto Tenor Bass) which every vocal characteristic (male/female) has it's own range (base on octave)

Implementation
perhaps use button to show octave info for show or hidden the info (recommended because not every musicians care about octave can hide it, but for the detail musicians that must play within choir can show the octave)
or
simply put octave info without option to show or hide octave info

Examples
which fretboard must be press to play melody with tenor vocal on major third tuning

octave

ref on piano
https://en.wikipedia.org/wiki/Tenor

thanks

Logo Design Proposal

Good day @walmik I am a graphics designer and open source contributor. I want to contribute to your good project by proposing a logo design for the project which i will be doing for free as a gift. If you will give me permission i will start as soon as possible. Thanks and best regards!

ZW

Add support for Reaktor's virtual keyboard

Reaktor's virtual keyboard has 2 octaves spanning all 3 rows of the computer keyboard (with no way to go down in octave - you can only go up by pressing 1). Add a support for the full range of the keyboard.

dev server port on README.md

dev server port on README.md should be 8080 not 8081
if want to provide detail steps for newbie (dev) :

git clone https://github.com/scribbletune/johann
cd johann
npm install
npm run dev
open http://localhost:8080

lost string when add tuning with # (sharp)

api.ts

export const getTuningsForGuitar = () => ([
	{label: 'Regular', 'display': 'EBGDAE', strings: ['E4', 'B3', 'G3', 'D3', 'A2', 'E2'], tuningIdx: 0, name: 0},
	{label: 'Dropped D', 'display': 'EBGDAD', strings: ['E4', 'B3', 'G3', 'D3', 'A2', 'D2'], tuningIdx: 1, name: 1},
	{label: 'Double dropped D', display: 'DADGBD', strings: ['D4', 'A3', 'D3', 'G3', 'B2', 'D2'], tuningIdx: 2, name: 2},
	{label: 'Drop C', 'display': 'DAFCGC', strings: ['D4', 'A3', 'F3', 'C3', 'G2', 'C2'], tuningIdx: 3, name: 3},
	{label: 'Open G', 'display': 'DGDGBD', strings: ['D4', 'G3', 'D3', 'G3', 'B2', 'D2'], tuningIdx: 4, name: 4},
	{label: 'Major Third', 'display': 'ECG#ECG#', strings: ['E4', 'C4', 'G#3', 'E3', 'C3', 'G#2'], tuningIdx: 5, name: 5}
]);

lost strings

left handed fretboard

nice to have 'Left handed fretboard' feature
the idea same like flip fretboard vertically, but this one flip fretboard horizontally

thanks

combined instruments

nice to have feature to combine instruments (guitar, bass, piano, etc)
useful when using with others musicians using smart tv (big screen)

screen_shot

thanks

add tuning fretboard add more fret on nut guitar

api.ts

export const getTuningsForGuitar = () => ([
	{label: 'Regular', 'display': 'EBGDAE', strings: ['E4', 'B3', 'G3', 'D3', 'A2', 'E2'], tuningIdx: 0, name: 0},
	{label: 'Dropped D', 'display': 'EBGDAD', strings: ['E4', 'B3', 'G3', 'D3', 'A2', 'D2'], tuningIdx: 1, name: 1},
	{label: 'Double dropped D', display: 'DADGBD', strings: ['D4', 'A3', 'D3', 'G3', 'B2', 'D2'], tuningIdx: 2, name: 2},
	{label: 'Drop C', 'display': 'DAFCGC', strings: ['D4', 'A3', 'F3', 'C3', 'G2', 'C2'], tuningIdx: 3, name: 3},
	{label: 'Open G', 'display': 'DGDGBD', strings: ['D4', 'G3', 'D3', 'G3', 'B2', 'D2'], tuningIdx: 4, name: 4},
	{label: 'All Fourths', 'display': 'FCGDAE', strings: ['F4', 'C4', 'G3', 'D3', 'A2', 'E2'], tuningIdx: 5, name: 5},
	{label: 'Major Third', 'display': 'ECAbECAb', strings: ['E4', 'C4', 'Ab3', 'E3', 'C3', 'Ab2'], tuningIdx: 6, name: 6}
]);

more fret on nut 0
more fret on nut 1

no lowest note when add 7th strings guitar and fretboard marker is not on place

api.ts

export const getTuningsFor7thStringsGuitar = () => ([
	{label: 'Standard', 'display': 'EBGDAEB', strings: ['E4', 'B3', 'G3', 'D3', 'A2', 'E2', 'B1'], tuningIdx: 0, name: 0}
]);

export const getStringInstruments = () => ([
	{ label: 'Guitar', strings: 6, frets: 24, getTunings: getTuningsForGuitar, instrumentIdx: 0, name: 0 },
	{ label: 'Ukulele', strings: 4, frets: 15, getTunings: getTuningsForUkulele, instrumentIdx: 1, name: 1 },
	{ label: 'Guitar 7th Strings', strings: 7, frets: 24, getTunings: getTuningsFor7thStringsGuitar, instrumentIdx: 2, name: 2 }
])

add 7th strings

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.