-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
💡 RFC: Chord Diagrams #820
Comments
@isaiahdahl I implemented |
Yes we have a database table called guitar_chords that looks like this: http://data.praisecharts.com:3000/public/question/00ac27e7-093f-42bb-8eaf-45846643b9bb You can export into a csv from here. and we may need to run a script to turn it into proper definitions. It's got chord fingerings for multiple tunings |
These are the Tunings we have private static $_tuning_names = array(
"E A G D B E" => "Standard",
"E A D G B E" => "Cut Capo",
"D A D G B E" => "Drop D",
"D A D G A D" => "Modal D",
"D A D F# A D" => "Open D",
"D A D F A D" => "Open Dm",
"C G C G C E" => "Open C",
"E A C# E A E" => "Open A",
"D G D G B D" => "Open G",
"D G D G C D" => "Modal G",
"D G D G Bb D" => "Open Gm",
"G C E A" => "Ukulele",
"G D A E" => "Mandolin",
"E A D G" => "4 String Bass",
"B E A D G" => "5 String Bass"
//"C E G Bb C D" => "Overtone"
);
/**
* The key needed for each tuning
* @var array
*/
private static $_tuning_keys = array(
"Cut Capo" => "D",
"Drop D" => "D",
"Modal D" => "D",
"Open D" => "D",
"Open Dm" => "Dm",
"Open C" => "C",
"Open A" => "A",
"Open G" => "G",
"Modal G" => "G",
"Open Gm" => "Gm"
);
private static $_tuningGrids = array(
"Mandolin" => array(4,6),
"Ukulele" => array(4,4),
"5 String Bass" => array(5,4),
"4 String Bass" => array(4,4)
);
/**
*
* @var array
*/
private static $_tuningsByType = array(
"mayor" => array( "Standard", "Cut Capo","Drop D","Modal D", "Open D", "Open C", "Open A", "Open G", "Modal G","Ukulele","Mandolin","4 String Bass","5 String Bass"),
"minor" => array( "Standard", "Open Dm", "Open Gm","Ukulele","Mandolin","4 String Bass","5 String Bass")
); |
Wow, that is quite extensive! Would that mean we would ideally have a config setting on the song for tuning? So far I could not find a official directive for that. We could use Or should conditional directives be used for this,? In that case the tuning/instrument could either be configured in the config or set with a directive, like The question then is, can any chord be expressed in a definition in any tuning? |
Yea honestly I never really thought about that so deeply. Looks like the chordpro define syntax doesn't really care about the tuning because it's kinda inherently making an assumption that all the chord definitions for that chordpro will be in that chart. So I'd say yea, we probably want to store the chord diagrams key'd by tuning and then have a default, and then some directive that can say this is the tuning for this song and then it'll grab those chord diagrams instead. |
Same with instrument I guess too. |
You know maybe after a closer look at that Conditional Directives Like maybe something like this doesn't break standard?
Then we could also have the defaults just life as default guitar standard? |
Yes! actually that's confirmed here: https://www.chordpro.org/chordpro/chordpro-configuration-generic/#instrument-description An instrument in the config can have a tuning. |
The text was updated successfully, but these errors were encountered: