Module:Ups and downs sharpness: Difference between revisions
Jump to navigation
Jump to search
Tristanbay (talk | contribs) Should work now; the code is a bit messy and the table formatting could be nicer though |
Tristanbay (talk | contribs) trying to get nowrap to work properly |
||
| Line 18: | Line 18: | ||
tab = tab .. "|-\n!Sharp symbol\n|rowspan=\"2\"|[[File:Heji18.svg|15px]]\n" | tab = tab .. "|-\n!Sharp symbol\n|rowspan=\"2\"|[[File:Heji18.svg|15px]]\n" | ||
for i = 1, sharp * 2 + 1 do | for i = 1, sharp * 2 + 1 do | ||
tab = tab .. "|" | tab = tab .. "|{{nowrap|<span>" | ||
if ((i - (sharp * math.floor(i / sharp))) / sharp) > math.ceil(((i - (sharp * math.floor(i / sharp))) / sharp) - 0.5) then | if ((i - (sharp * math.floor(i / sharp))) / sharp) > math.ceil(((i - (sharp * math.floor(i / sharp))) / sharp) - 0.5) then | ||
if (i - (sharp * math.floor(i / sharp))) % 5 == 4 then | if (i - (sharp * math.floor(i / sharp))) % 5 == 4 then | ||
| Line 47: | Line 47: | ||
tab = tab .. " [[File:Heji32.svg|21px]]" | tab = tab .. " [[File:Heji32.svg|21px]]" | ||
end | end | ||
tab = tab .. "\n" | tab = tab .. "</span>\n" | ||
end | end | ||
tab = tab .. "|-\n!Flat symbol\n" | tab = tab .. "|-\n!Flat symbol\n" | ||
for i = 1, sharp * 2 + 1 do | for i = 1, sharp * 2 + 1 do | ||
tab = tab .. "|" | tab = tab .. "|{{nowrap|<span>" | ||
if ((i - (sharp * math.floor(i / sharp))) / sharp) > math.ceil(((i - (sharp * math.floor(i / sharp))) / sharp) - 0.5) then | if ((i - (sharp * math.floor(i / sharp))) / sharp) > math.ceil(((i - (sharp * math.floor(i / sharp))) / sharp) - 0.5) then | ||
if (i - (sharp * math.floor(i / sharp))) % 5 == 4 then | if (i - (sharp * math.floor(i / sharp))) % 5 == 4 then | ||
| Line 80: | Line 80: | ||
tab = tab .. " [[File:Heji4.svg|27px]]" | tab = tab .. " [[File:Heji4.svg|27px]]" | ||
end | end | ||
tab = tab .. "\n" | tab = tab .. "</span>}}\n" | ||
end | end | ||
tab = tab .. "|}" | tab = tab .. "|}" | ||
Revision as of 22:12, 23 September 2025
- This module should not be invoked directly; use its corresponding template instead: Template:Ups and downs sharpness.
This module automatically creates a table with the combinations of symbols to notate a given edo using Kite's ups and downs notation.
| Introspection summary for Module:Ups and downs sharpness | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
| ||||||||||||
No function descriptions were provided. The Lua code may have further information.
local p = {}
local utils = require("Module:Utils")
local function sharp_n(edo) -- calculate amount of steps for sharp/flat
return (7 * math.floor((edo * math.log(3) / math.log(2)) + 0.5)) - (11 * edo) -- mapping of augmented unison
end
function p.ud_sharpness(frame) -- generate table
local sharp = sharp_n(frame.args["edo"])
local tab = "{|class=\"wikitable\"\n|+\n!Step offset\n|'''0'''\n"
for i = 1, sharp * 2 + 1 do
if (i % sharp == 0) then
tab = tab .. "|'''" .. i .. "'''\n"
else
tab = tab .. "|" .. i .. "\n"
end
end
tab = tab .. "|-\n!Sharp symbol\n|rowspan=\"2\"|[[File:Heji18.svg|15px]]\n"
for i = 1, sharp * 2 + 1 do
tab = tab .. "|{{nowrap|<span>"
if ((i - (sharp * math.floor(i / sharp))) / sharp) > math.ceil(((i - (sharp * math.floor(i / sharp))) / sharp) - 0.5) then
if (i - (sharp * math.floor(i / sharp))) % 5 == 4 then
tab = tab .. " [[File:Down narrow.svg|9px]] [[File:Quip narrow.svg|9px]]"
else
for j = 1, (i - (sharp * math.floor(i / sharp))) % 5 do
tab = tab .. " [[File:Up narrow.svg|9px]]"
end
end
for j = 1, math.floor((i - (sharp * math.floor(i / sharp))) / 5) do
tab = tab .. " [[File:Quip narrow.svg|9px]]"
end
else
if ((sharp * math.ceil(i / sharp)) - i) % 5 == 4 then
tab = tab .. " [[File:Up narrow.svg|9px]] [[File:Quid narrow.svg|9px]]"
else
for j = 1, ((sharp * math.ceil(i / sharp)) - i) % 5 do
tab = tab .. " [[File:Down narrow.svg|9px]]"
end
end
for j = 1, math.floor(((sharp * math.ceil(i / sharp)) - i) / 5) do
tab = tab .. " [[File:Quid narrow.svg|9px]]"
end
end
if math.ceil((i / sharp) - 0.5) == 1 then
tab = tab .. " [[File:Heji25.svg|16px]]"
elseif math.ceil((i / sharp) - 0.5) == 2 then
tab = tab .. " [[File:Heji32.svg|21px]]"
end
tab = tab .. "</span>\n"
end
tab = tab .. "|-\n!Flat symbol\n"
for i = 1, sharp * 2 + 1 do
tab = tab .. "|{{nowrap|<span>"
if ((i - (sharp * math.floor(i / sharp))) / sharp) > math.ceil(((i - (sharp * math.floor(i / sharp))) / sharp) - 0.5) then
if (i - (sharp * math.floor(i / sharp))) % 5 == 4 then
tab = tab .. " [[File:Up narrow.svg|9px]] [[File:Quid narrow.svg|9px]]"
else
for j = 1, (i - (sharp * math.floor(i / sharp))) % 5 do
tab = tab .. " [[File:Down narrow.svg|9px]]"
end
end
for j = 1, math.floor((i - (sharp * math.floor(i / sharp))) / 5) do
tab = tab .. " [[File:Quid narrow.svg|9px]]"
end
else
if ((sharp * math.ceil(i / sharp)) - i) % 5 == 4 then
tab = tab .. " [[File:Down narrow.svg|9px]] [[File:Quip narrow.svg|9px]]"
else
for j = 1, ((sharp * math.ceil(i / sharp)) - i) % 5 do
tab = tab .. " [[File:Up narrow.svg|9px]]"
end
end
for j = 1, math.floor(((sharp * math.ceil(i / sharp)) - i) / 5) do
tab = tab .. " [[File:Quip narrow.svg|9px]]"
end
end
if math.ceil((i / sharp) - 0.5) == 1 then
tab = tab .. " [[File:Heji11.svg|16px]]"
elseif math.ceil((i / sharp) - 0.5) == 2 then
tab = tab .. " [[File:Heji4.svg|27px]]"
end
tab = tab .. "</span>}}\n"
end
tab = tab .. "|}"
return tab
end
return p