Moduuli:Kitarakirja/Sointuselain
Ulkoasu
Tämän moduulin ohjeistuksen voi tehdä sivulle Moduuli:Kitarakirja/Sointuselain/ohje
local p = {}
local tekstipohja = require "Moduuli:Tekstipohja"
local div_template = [=[
<div style="margin: auto; text-align: center; border: solid black 1px;">
<div>{{{RINNAKKAISET}}}</div>
{{{HAKEMISTOLINKKI
}}}{{{TAULUKKO}}}
</div>
]=]
local lahisointudata = {
[""] = {
[3] = { { { "s3", "→s2/9", "sus2" }, { "s3", "→p3", "m" } }, { { "s3", "→4/11", "sus4" } } },
[5] = { { nil }, { { "5", "→y5", "+" } } },
[6] = { { nil }, { { "s6/13", "+", "6" } } },
[7] = { { nil }, { { "p7", "+", "7" }, { "s7", "+", "maj7" } } },
[9] = { { nil }, { { "p2/9", "+", "(♭9)" }, { "s2/9", "+", "add9" } } },
},
["+"] = {
[5] = { { { "y5", "→5", "" } }, { nil } },
[7] = { { nil }, { { "p7", "+", "7♯5" }, { "s7", "+", "maj7♯5" } } },
},
["7♯5"] = {
[5] = { { { "y5", "→v5", "7♭5" }, { "y5", "→5", "7" } }, { nil } },
[7] = { { { "p7", "-", "+" } }, { { "p7", "→s7", "maj7♯5" } } },
[9] = { { nil }, { { "p2/9", "+", "7♯5♭9" }, { "s2/9", "+", "9♯5" }, { "y2/9", "+", "7♯5♯9" } } },
},
["9♯5"] = {
[5] = { { { "y5", "→v5", "9♭5" }, { "y5", "→5", "9" } }, { nil } },
[7] = { { nil }, { { "p7", "→s7", "maj9♯5" } } },
[9] = { { { "s2/9", "-", "7♯5" }, { "s2/9", "→p2/9", "7♯5♭9" } }, { { "s2/9", "→y2/9", "7♯5♯9" } } },
},
["maj7♯5"] = {
[5] = { { { "y5", "→5", "maj7" } }, { nil } },
[7] = { { { "s7", "-", "+" }, { "s7", "→p7", "7♯5" } }, { nil } },
[9] = { { nil }, { { "s2/9", "+", "maj9♯5" } } },
},
["maj9♯5"] = {
[5] = { { { "y5", "→5", "maj9" } }, { nil } },
[7] = { { { "s7", "→p7", "9♯5" } }, { nil } },
[9] = { { { "s2/9", "-", "maj7♯5" } }, { { "s2/9", "→y9", "maj7♯9♯5" } } },
},
["maj7♯9♯5"] = {
[7] = { { { "s7", "→p7", "7♯9♯5" } }, { nil } },
[9] = { { { "y2/9", "-", "maj7♯5" } }, { { "y2/9", "→s9", "maj9♯5" } } },
},
["11"] = {
[3] = { { { "s3", "→p3", "m11" } }, { nil } },
[7] = { { nil }, { { "p7", "→s7", "maj11" } } },
[11] = { { { "4/11", "-", "9" } }, { nil } },
[13] = { { nil }, { { "s6/13", "+", "13" } } },
},
["13"] = {
[3] = { { { "s3", "→p3", "m13" } }, { nil } },
[7] = { { nil }, { { "p7", "→s7", "maj13" } } },
[9] = { { { "s2/9", "→p2/9", "13♭9" } }, { { "s2/9", "→y2/9", "13♯9" } } },
[11] = { { nil }, { { "4/11", "→y4/11", "13♯11" } } },
[13] = { { { "s6/13", "-", "11" } }, { nil } },
},
["13sus4"] = {
[4] = { { nil }, { { "4/11", "→s3", "13" } } },
[7] = { { nil }, { { "p7", "→s7", "maj13sus4" } } },
[9] = { { { "s2/9", "→p2/9", "13sus4♭9" } }, { nil } },
[13] = { { { "s6/13", "→p6/13", "9♭13sus4" } }, { nil } },
},
["13♭9"] = {
[9] = { { nil }, { { "p2/9", "→s2/9", "13" }, { "p2/9", "→y2/9", "13♯9" } } },
[13] = { { { "s6/13", "→p6/13", "7♭13♭9" } }, { nil } },
},
["13♯9"] = {
[9] = { { { "y2/9", "→p2/9", "13♭9" }, { "y2/9", "→s2/9", "13" } }, { nil } },
},
["6"] = {
[3] = { { { "s3", "→s2/9", "6sus2" }, { "s3", "→p3", "m6" } }, { nil } },
[5] = { { { "5", "→v5", "6♭5" } }, { nil } },
[6] = { { { "s6/13", "-", "" } }, { { "s6/13", "→p7", "7" }, { "s6/13", "→s7", "maj7" } } },
[9] = { { nil }, { { "s2/9", "+", "6/9" } } },
},
["6♭5"] = {
[5] = { { { "v5", "→5", "6" } }, { nil } },
[6] = { { { "s6/13", "-", "(♭5)" } }, { { "s6/13", "→p7", "7♭5" }, { "s6/13", "→s7", "maj7♭5" } } },
[9] = { { nil }, { { "s2/9", "+", "6/9♭5" } } },
},
["6sus2"] = {
[3] = { { { "s2/9", "→p3", "m6" }, { "s2/9", "→s3", "6" } }, { nil } },
},
["6/9"] = {
[3] = { { { "s3", "-", "6sus2" }, { "s3", "→p3", "m6/9" } }, { nil } },
[6] = { { { "s6/13", "-", "add9" } }, { { "s6/13", "→p7", "9" }, { "s6/13", "→s7", "maj9" } } },
[7] = { { nil }, { { "s7", "+", "6/9maj7" } } },
[9] = { { { "s2/9", "-", "6" } }, { nil } },
[11] = { { nil }, { { "y4/11", "+", "6/9♯11" } } },
},
["6/9maj7"] = {
[3] = { { { "s3", "→p3", "m6/9maj7" } }, { { "s3", "→4/11", "maj13sus4" } } },
[6] = { { { "s6/13", "-", "maj9" } }, { nil } },
[7] = { { { "s7", "-", "6/9" } }, { nil } },
[11] = { { nil }, { { "4/11", "+", "maj13" } } },
},
["6/9♯11"] = {
[4] = { { { "y4/11", "-", "6/9" } }, { nil } },
},
["7"] = {
[3] = { { { "s3", "→s2/9", "7sus2" }, { "s3", "→p3", "m7" } }, { { "s3", "→4/11", "7sus4" } } },
[5] = { { { "5", "→v5", "7♭5" } }, { { "5", "→y5", "7♯5" } } },
[7] = { { { "p7", "-", "" }, { "p7", "→s6/13", "6" } }, { { "p7", "→s7", "maj7" } } },
[9] = { { nil }, { { "p2/9", "+", "7(♭9)" }, { "s2/9", "+", "9" }, { "y2/9", "+", "7(♯9)" } } },
},
["7(♭9)"] = {
[3] = { { nil }, { { "s3", "→4/11", "7sus4♭9" } } },
[5] = { { { "5", "→v5", "7♭5♭9" } }, { { "5", "→y5", "7♯5♭9" } } },
[9] = { { { "p2/9", "-", "7" } }, { { "p2/9", "→s2/9", "9" }, { "p2/9", "→y2/9", "7(♯9)" } } },
},
["7(♯9)"] = {
[5] = { { { "5", "→y5", "7♭5♯9" } }, { { "5", "→y5", "7♯5♯9" } } },
[9] = { { { "y2/9", "-", "7" }, { "y2/9", "→p2/9", "7(♭9)" }, { "y2/9", "→s2/9", "9" } }, { nil } },
},
["7sus2"] = {
[2] = { { nil }, { { "s2/9", "→p3", "m7" }, { "s2/9", "→s3", "7" }, { "s2/9", "→4/11", "7sus4" } } },
[3] = { { nil }, { { "p3", "+", "m9" }, { "s3", "+", "9" } } },
[4] = { { { "4/11", "+", "9sus4" } }, { nil } },
[7] = { { { "p7", "-", "sus2" }, { "p7", "→s6/13", "6sus2" } }, { nil } },
},
["7sus4"] = {
[4] = { { { "4/11", "→s2/9", "7sus2" }, { "4/11", "→p3", "m7" }, { "4/11", "→s3", "7" } }, { nil } },
[5] = { { { "5", "→v5", "7sus4♭5" } }, { nil } },
[7] = { { { "p7", "-", "sus4" } }, { { "p7", "→s7", "maj7sus4" } } },
[9] = { { { "p2/9", "+", "7sus4♭9" }, { "s2/9", "+", "9sus4" } }, { nil } },
},
["7♭5"] = {
[3] = { { { "s3", "→p3", "m7♭5" } }, { { "s3", "→4/11", "7sus4♭5" } } },
[5] = { { nil }, { { "v5", "→5", "7" }, { "v5", "→y5", "7♯5" } } },
[9] = { { nil }, { { "s2/9", "+", "9♭5" } } },
},
["7sus4♭5"] = {
[4] = { { { "4/11", "→p3", "m7♭5" }, { "4/11", "→s3", "7♭5" } }, { nil } },
[5] = { { nil }, { { "v5", "→5", "7sus4" } } },
},
["7♯5♭9"] = {
[5] = { { { "y5", "→5", "7(♭9)" } }, { nil } },
[9] = { { { "p2/9", "-", "7♯5" } }, { { "p2/9", "→s2/9", "9♯5" }, { "p2/9", "→y2/9", "7♯5♯9" } } },
},
["7♯5♯9"] = {
[5] = { { { "y5", "→5", "7(♯9)" } }, { nil } },
[9] = { { { "y2/9", "-", "7♯5" }, { "y2/9", "→p2/9", "7♯5♭9" }, { "y2/9", "→s2/9", "9♯5" } }, { nil } },
},
["9"] = {
[3] = { { { "s3", "-", "7sus2" }, { "s3", "→p3", "m9" } }, { { "s3", "→4/11", "9sus4" } } },
[5] = { { { "5", "→v5", "9♭5" } }, { { "5", "→y5", "9♯5" } } },
[7] = { { { "p7", "-", "add9" }, { "p7", "→s6/13", "6/9" } }, { { "p7", "→s7", "maj9" } } },
[9] = { { { "s2/9", "-", "7" }, { "s2/9", "→p2/9", "7(♭9)" } }, { { "s2/9", "→y2/9", "7(♯9)" } } },
[11] = { { nil }, { { "4/11", "+", "11" } } },
},
["9sus4"] = {
[4] = { { { "4/11", "-", "7sus2" }, { "4/11", "→p3", "m9" } }, { { "4/11", "s3", "9" } } },
[7] = { { { "p7", "-", "add9sus4" } }, { { "p7", "→s7", "maj9sus4" } } },
[9] = { { { "s2/9", "-", "7sus4" }, { "s2/9", "→p2/9", "7sus4♭9" } }, { nil } },
[13] = { { nil }, { { "s6/13", "+", "13sus4" } } },
},
["7sus4♭9"] = {
[4] = { { nil }, { { "4/11", "s3", "7(♭9)" } } },
[7] = { { { "p7", "-", "sus4♭9" } }, { nil } },
[9] = { { { "p2/9", "-", "7sus4" }, { "p2/9", "→s2/9", "9sus4" } }, { nil } },
[13] = { { nil }, { { "s6/13", "+", "13sus4♭9" } } },
},
["9♭5"] = {
[5] = { { nil }, { { "v5", "→5", "9" }, { "v5", "→y5", "9♯5" } } },
[9] = { { { "s2/9", "-", "7♭5" } }, { nil } },
},
["add9"] = {
[3] = { { { "s3", "-", "sus2" }, { "s3", "→p3", "madd9" } }, { { "s3", "→4/11", "add9sus4" } } },
[6] = { { { "s6/13", "+", "6/9" } }, { nil } },
[7] = { { nil }, { { "p7", "+", "9" }, { "s7", "+", "maj9" } } },
[9] = { { { "s2/9", "-", "" }, { "s2/9", "→p2/9", "(♭9)"} }, { nil } },
},
["add9sus4"] = {
[4] = { { { "4/11", "-", "sus2" }, { "4/11", "→p3", "madd9" }, { "4/11", "→s3", "add9" } }, { nil } },
[7] = { { nil }, { { "p7", "+", "9sus4" }, { "s7", "+", "maj9sus4" } } },
[9] = { { { "s2/9", "-", "sus4" }, { "s2/9", "→p2/9", "sus4♭9"} }, { nil } },
},
["(♭9)"] = {
[3] = { { nil }, { { "s3", "→4/11", "sus4♭9" } } },
[7] = { { nil }, { { "p7", "+", "7(♭9)" } } },
[9] = { { { "p2/9", "-", "" }, { "p2/9", "→s2/9", "add9"} }, { nil } },
},
["m"] = {
[9] = { { nil }, { { "s2/9", "+", "madd9" } } },
[3] = { { { "p3", "→s2/9", "sus2" } }, { { "p3", "→s3", "" }, { "p3", "→4/11", "sus4" } } },
[5] = { { { "5", "→v5", "°" } }, { nil } },
[6] = { { nil }, { { "p6/13", "+", "m♭6" }, { "s6/13", "+", "m6" } } },
[7] = { { nil }, { { "p7", "+", "m7" }, { "s7", "+", "mmaj7" } } },
},
["m11"] = {
[3] = { { nil }, { { "p3", "→s3", "11" } } },
[7] = { { nil }, { { "p7", "→s7", "mmaj11" } } },
[11] = { { { "4/11", "-", "m9" } }, { nil } },
[13] = { { nil }, { { "s6/13", "+", "m13" } } },
},
["m13"] = {
[3] = { { nil }, { { "p3", "→s3", "13" } } },
[7] = { { nil }, { { "p7", "→s7", "mmaj13" } } },
[13] = { { { "s6/13", "-", "m11" } }, { nil } },
},
["m6"] = {
[3] = { { { "p3", "→s2/9", "6sus2" } }, { { "p3", "→s3", "6" } } },
[6] = { { { "s6/13", "-", "m" }, { "s6/13", "→p6/13", "m♭6" } }, { { "s6/13", "→p7", "m7" }, { "s6/13", "→s7", "mmaj7" } } },
[9] = { { nil }, { { "s2/9", "+", "m6/9" } } },
},
["m6/9"] = {
[3] = { { { "p3", "-", "6sus2" } }, { { "p3", "→s3", "6/9" } } },
[6] = { { { "s6/13", "-", "madd9" } }, { { "s6/13", "→p7", "m9" }, { "s6/13", "→s7", "mmaj9" } } },
[9] = { { { "s2/9", "-", "m6" } }, { nil } },
},
["m7"] = {
[3] = { { { "p3", "→s2/9", "7sus2" } }, { { "p3", "→s3", "7" }, { "p3", "→4/11", "7sus4" } } },
[5] = { { { "5", "→v5", "m7♭5" } }, { nil } },
[7] = { { { "p7", "-", "m" }, { "p7", "→p6/13", "m♭6" }, { "p7", "→s6/13", "m6" } }, { { "p7", "→s7", "mmaj7" } } },
[9] = { { nil }, { { "s2/9", "+", "m9" } } },
},
["m7♭5"] = {
[3] = { { nil }, { { "p3", "→s3", "7♭5" }, { "p3", "→4/11", "7sus4♭5" } } },
[5] = { { nil }, { { "v5", "→5", "m7" } } },
[7] = { { { "p7", "-", "°" }, { "p7", "→v7", "°7" } }, { { "p7", "→s7", "°maj7" } } },
},
["m9"] = {
[3] = { { { "p3", "-", "7sus2" } }, { { "p3", "→s3", "9" } } },
[7] = { { { "p7", "-", "madd9" }, { "p7", "→s6/13", "m6/9" } }, { { "p7", "→s7", "mmaj9" } } },
[9] = { { { "s2/9", "-", "m7" } }, { nil } },
[11] = { { nil }, { { "4/11", "+", "m11" } } },
},
["madd9"] = {
[3] = { { { "p3", "-", "sus2" } }, { { "p3", "→s3", "add9" } } },
[6] = { { nil }, { { "s6/13", "+", "m6/9" } } },
[7] = { { nil }, { { "p7", "+", "m9" }, { "s7", "+", "mmaj9" } } },
[9] = { { { "s2/9", "-", "m" } }, { nil } },
},
["maj11"] = {
[3] = { { { "s3", "→p3", "mmaj11" } }, { nil } },
[7] = { { { "s7", "→p7", "11" } }, { nil } },
[11] = { { { "4/11", "-", "maj9" } }, { nil } },
[13] = { { nil }, { { "s6/13", "+", "maj13" } } },
},
["maj13"] = {
[3] = { { { "s3", "→p3", "mmaj13" } }, { nil } },
[7] = { { { "s7", "→p7", "13" } }, { nil } },
[11] = { { { "4/11", "-", "6/9maj7" } }, { { "4/11", "→y4/11", "maj13♯11" } } },
[13] = { { { "s6/13", "-", "maj11" } }, { nil } },
},
["maj13sus4"] = {
[4] = { { { "4/11", "→p3", "mmaj13" }, { "4/11", "→s3", "maj13" } }, { nil } },
[7] = { { { "s7", "→p7", "13sus4" } }, { nil } },
[13] = { { { "s6/13", "-", "maj9sus4" } }, { nil } },
},
["maj7"] = {
[3] = { { { "s3", "→p3", "mmaj7" } }, { { "s3", "→4/11", "maj7sus4" } } },
[5] = { { { "5", "→v5", "maj7♭5" } }, { { "5", "→y5", "maj7♯5" } } },
[7] = { { { "s7", "-", "" }, { "s7", "→s6/13", "6" }, { "s7", "→p7", "7" } }, { nil } },
[9] = { { nil }, { { "s2/9", "+", "maj9" } } },
[11] = { { nil }, { { "y4/11", "+", "maj7♯11" } } },
},
["maj7sus4"] = {
[4] = { { { "4/11", "→p3", "mmaj7" } }, { { "4/11", "→s3", "maj7" } } },
[7] = { { { "s7", "-", "sus4" }, { "s7", "→p7", "7sus4" } }, { nil } },
[9] = { { nil }, { { "s2/9", "+", "maj9sus4" } } },
[13] = { { nil }, { { "s6/13", "+", "maj13sus4" } } },
},
["maj7♭5"] = {
[3] = { { { "s3", "→p3", "°maj7" } }, { nil } },
[5] = { { { "5", "→5", "maj7" } }, { { "5", "→y5", "maj7♯5" } } },
[7] = { { { "s7", "-", "(♭5)" }, { "s7", "→s6/13", "6♭5" }, { "s7", "→p7", "7♭5" } }, { nil } },
},
["maj7♯11"] = {
[11] = { { { "y4/11", "-", "maj7" } }, { nil } },
},
["maj9"] = {
[3] = { { { "s3", "→p3", "mmaj9" } }, { nil } },
[5] = { { nil }, { { "5", "→y5", "maj9♯5" } } },
[6] = { { nil }, { { "s6/13", "+", "6/9maj7" } } },
[7] = { { { "s7", "-", "add9" }, { "s7", "→s6/13", "6/9" }, { "s7", "→p7", "9" } }, { nil } },
[9] = { { { "s2/9", "-", "maj7" } }, { nil } },
[11] = { { nil }, { { "4/11", "+", "maj11" } } },
},
["mmaj11"] = {
[3] = { { nil }, { { "p3", "→s3", "maj11" } } },
[7] = { { { "s7", "→p7", "m11" } }, { nil } },
[11] = { { { "4/11", "-", "mmaj9" } }, { nil } },
[13] = { { nil }, { { "s6/13", "+", "mmaj13" } } },
},
["mmaj13"] = {
[3] = { { nil }, { { "p3", "→s3", "maj13" } } },
[13] = { { { "s6/13", "-", "mmaj11" } }, { nil } },
[7] = { { { "s7", "→p7", "m13" } }, { nil } },
},
["mmaj7"] = {
[3] = { { nil }, { { "p3", "→s3", "maj7" } } },
[7] = { { { "s7", "-", "m" }, { "s7", "→p6/13", "m♭6" }, { "s7", "→s6/13", "m6" }, { "s7", "→p7", "m7" } }, { nil } },
[9] = { { nil }, { { "s2/9", "+", "mmaj9" } } },
},
["mmaj9"] = {
[3] = { { nil }, { { "p3", "→s3", "maj9" } } },
[7] = { { { "s7", "-", "madd9" }, { "s7", "→s6/13", "m6/9" }, { "s7", "→p7", "m9" } }, { nil } },
[9] = { { { "s2/9", "-", "mmaj7" } }, { nil } },
[11] = { { nil }, { { "4/11", "+", "mmaj11" } } },
},
["m♭6"] = {
[6] = { { { "p6/13", "-", "m" } }, { { "p6/13", "→s6/13", "m6" }, { "p6/13", "→p7", "m7" }, { "p6/13", "→s7", "mmaj7" } } },
},
["sus2"] = {
[2] = { { nil }, { { "s2/9", "→p3", "m" }, { "s2/9", "→s3", "" }, { "s2/9", "→4/11", "sus4" } } },
[3] = { { nil }, { { "p3", "+", "madd9" }, { "s3", "+", "add9" } } },
[6] = { { nil }, { { "s6/13", "+", "6sus2" } } },
[7] = { { nil }, { { "p7", "+", "7sus2" } } },
},
["sus4"] = {
[4] = { { { "4/11", "→s2/9", "sus2" }, { "4/11", "→p3", "m" }, { "4/11", "→s3", "" } }, { nil } },
[7] = { { nil }, { { "p7", "+", "7sus4" } } },
[9] = { { nil }, { { "p2/9", "+", "sus4♭9" }, { "s2/9", "+", "add9sus4" } } },
},
["sus4♭9"] = {
[4] = { { { "4/11", "→s3", "(♭9)" } }, { nil } },
[7] = { { nil }, { { "p7", "+", "7sus4♭9" } } },
[9] = { { nil }, { { "p2/9", "-", "sus4" }, { "p2/9", "→s2/9", "add9sus4" } } },
},
["°"] = {
[3] = { { nil }, { { "p3", "→s3", "(♭5)" } } },
[5] = { { nil }, { { "v5", "→5", "m" } } },
[7] = { { nil }, { { "v7", "+", "°7" }, { "p7", "+", "m7♭5" }, { "s7", "+", "°maj7" } } },
},
["°7"] = {
[7] = { { { "v7", "-", "°" }, { "s7", "+", "°7maj7" } }, { { "v7", "→p7", "m7♭5" }, { "v7", "→s7", "°maj7" } } },
},
["°maj7"] = {
[3] = { { nil }, { { "p3", "→s3", "maj7♭5" } } },
[5] = { { nil }, { { "v5", "→5", "mmaj7" } } },
[7] = { { { "s7", "→v7", "°7" }, { "s7", "→p7", "m7♭5" } }, { { "v7", "+", "°7maj7" }, { "s7", "-", "°" } } },
},
["°7maj7"] = {
[7] = { { { "s7", "-", "°7" } }, { { "v7", "-", "°maj7" } } },
},
}
local function get_link_text(note, chord_type)
if type(note) == "string" then -- Yksittäinen nimi, esim. D.
local title = note .. chord_type
return "[[Kitarakirja/Sointuluettelo:" .. title .. "|" .. title .. "]]"
else -- Nimipari (esim. F#, Gb)
local title
if note[1] == "C♯" or note[1] == "F♯" then
title = note[1] .. chord_type
else
title = note[2] .. chord_type
end
local text = note[1] .. chord_type .. " / " .. note[2] .. chord_type
return "[[Kitarakirja/Sointuluettelo:" .. title .. "|" .. text .. "]]"
end
end
local function get_table(rootnote, chordform)
local data = lahisointudata[chordform]
local rows = { "", "", "", "", "", "", "", "", "", "", "", "" }
if not data then
return ""
end
local table_elem = mw.html.create("table"):css("margin", "auto"):css("font-size", "0.8em"):css("width", "100%")
for interval, line in pairs(data) do
local left = line[1]
local right = line[2]
local output = { }
local tr_elem = mw.html.create("tr") --table_elem:tag("tr")
local td_left_elem = tr_elem:tag("td"):css("width", "49%"):css("text-align", "right")
local td_mid_elem = tr_elem:tag("td"):node("◯"):css("text-align", "center")
local td_right_elem = tr_elem:tag("td"):css("width", "49%"):css("text-align", "left")
local sep = ""
for i, item in ipairs(left) do
if i > 1 then
sep = " • "
end
td_left_elem
:node(sep .. "" .. get_link_text(rootnote, item[3]) .. " ")
end
sep = ""
for i, item in ipairs(right) do
if i > 1 then
sep = " • "
end
td_right_elem
:node(" " .. get_link_text(rootnote, item[3]) .. " ")
end
rows[interval] = tr_elem
end
for i = #rows, 1, -1 do
row = rows[i]
table_elem:node(row)
end
return table_elem
end
local function join1(note, list)
local output = {}
if not list then
return { "" }
end
for i, chord_type in ipairs(list) do
output[i] = get_link_text(note, chord_type)
end
return output
end
function p.Sointuselain(frame)
local root1 = frame.args["juurisävel1"]
local root2 = frame.args["juurisävel2"]
local chord_type = frame.args["tyyppi"]
local root
if root1 and root2 and roo1 ~= "{{{juurisävel1}}}" and root2 ~= "{{{juurisävel2}}}"
and root2 ~="B♯" and root2 ~="C♭" and root2 ~="F♭" and root2 ~="E♯" then -- Sivunnimissä esiintymättömät synonyymit
root = { root1, root2 }
else
root = root1
end
local notenames = { "C", { "C♯", "D♭" }, "D", { "D♯", "E♭" }, "E", "F",
{ "F♯", "G♭" }, "G", { "G♯", "A♭" }, "A", { "A♯", "B♭" }, "B" }
local output = {}
-- Erijuuriset
for i, note in ipairs(notenames) do
output[i] = join1(note, { chord_type })[1]
end
local tbl = get_table(root, chord_type)
local hakemistolinkki = ''
if type(root) == "string" then
hakemistolinkki = '<div>[[Kitarakirja/Sointuluettelo:' .. root .. ' (hakemisto)|hakemisto: ' .. root .. ']]</div>'
end
return tekstipohja.korvaaMuuttujat(div_template, {
["RINNAKKAISET"] = table.concat(output, " • "),
["TAULUKKO"] = tostring(tbl),
["HAKEMISTOLINKKI"] = hakemistolinkki
})
end
return p