ssb22 / jianpu-ly

Jianpu in Lilypond
http://ssb22.user.srcf.net/mwrhome/jianpu-ly.html
Apache License 2.0
70 stars 18 forks source link

Can jianpu-ly display chordnames as numeral relative to the key? #55

Open SilverRainZ opened 1 month ago

SilverRainZ commented 1 month ago

As Jianpu displays pitches relative to the major key, can the chord names be displayed as numerals relative to the major key too?

Like 台湾谱/功能谱:

图片

https://github.com/davidnalesnik/lilypond-roman-numeral-tool may be helpful.

ssb22 commented 1 month ago

Thanks. This is a bit different from Roman numeral harmonic analysis: in harmonic analysis, we don't point out when chords are minor. We just know that, if we're in a major key, chords II, III, VI and VII are minor chords, and if we're in a minor key (which in harmonic analysis starts on 1, unlike jianpu starting on 6, so we have to separately point out that we're in the minor key), chord I is minor, II is diminished and so on. (We also have to know when seventh chords diminish the 7th.) It's not too difficult to figure this out when reading harmonic analysis notation: you just think of (for example) chord III as 3 + 5 + 7 of the key of the piece, then "read off" the fact that this makes it a minor chord. But that's not what guitarists want: guitarists have learned finger patterns for specific major and minor chords, so it's more helpful for them to just tell them that, if for example we're in the key of C, then chord III is E minor.

What this seems to be is, write "E minor" (in a key of C) as "3m" - no Roman numeral there.

The Roman numeral tool just provides a way to write Roman numerals, and it's up to you where to put them: he suggests putting them in a lyric context (which might be more difficult if you also have lyrics as well). Ideally we should find a way to make Lilypond put them at a constant height above the stave, as it does with guitar chords. Lilypond 2.24 added a new \textMark command that might be useful for this (not tried yet). We'd probably still need a conventional chord line in the MIDI output. Would be nice if we could use the existing guitar chord functionality and change the appearance, but I'm not sure if that can be overridden from a .ly file (we don't want to get into patching Lilypond itself if we can help it :)

There are fonts with circled digits: ① ② ③ ④ ⑤ ⑥ ⑦ or the circle could be drawn separately with markup commands. Searching Google Images for 台湾谱 also shows some examples of the whole chord being written as (e.g.) 5⁷ inside a box with rounded corners (this can be added with markup commands): I'm not sure which version is "correct" or if they both are equally acceptable variants of the notation.

ssb22 commented 1 month ago

Incidentally I wish I knew about the Roman numeral tool when I did the slides for this talk. It was a straight conversion from the old Manuscript Writer format generated by my old Clara Empricost program, with a regex to turn the chord comments into text above the stave which ended up at a non-constant height. Well I guess I was doing it at short notice☺

SilverRainZ commented 1 month ago

Thanks for your detailed explanation of Roman numeral harmonic analysis. As it seems to be a well-defined notation, I think using 1234 to display chord names would be better.

so it's more helpful for them to just tell them that, if for example, we're in the key of C, then chord III is E minor.

(IMO) Users of 台湾谱 are temporary bands in the bar or business activities, and to match the different singer's range, guitarists may have to play in many different keys with a single score. For example, the key of the sheet is D but the player has to play it with bA:

  1. he saw an F minor on the sheet
  2. And he needs to know that this is a degree three minor triad of D
  3. what is the degree three minor triad of bA? okay it is C, find C on the fretboard and use the "minor chord pattern" to play a C minor

When the key changes, the player needs to think again, if the player is not familiar with the key, he may not be able to play fluently without practice.

If there is an iii or 3m mark on the score, the player already knows he is playing in bA key, and knows the position of bA on the fretboard, he can just move his finger from bA to its nearest third (and no need to know what actually the third is), and play a minor chord (using this third as root). So players can play any key once they know of position of the Tonic and the degree of chords.

SilverRainZ commented 1 month ago

There are fonts with circled digits: ① ② ③ ④ ⑤ ⑥ ⑦ or the circle could be drawn separately with markup commands. Searching Google Images for 台湾谱 also shows some examples of the whole chord being written as (e.g.) 5⁷ inside a box with rounded corners (this can be added with markup commands): I'm not sure which version is "correct" or if they both are equally acceptable variants of the notation.

I don't think there's a common notation yet, whatever is intuitive is good.

Incidentally I wish I knew about the Roman numeral tool when I did the slides for this talk. It was a straight conversion from the old Manuscript Writer format generated by my old Clara Empricost program, with a regex to turn the chord comments into text above the stave which ended up at a non-constant height. Well I guess I was doing it at short notice☺

I finished watching your speech, it is so cool! 你怎么什么都会 :D

B.T.W. I see you work for Oracle (and with the fancy title of Chief!), so cool too