Module:Ups and downs sharpness: Difference between revisions

From Xenharmonic Wiki
Jump to navigation Jump to search
Tristanbay (talk | contribs)
No edit summary
Tristanbay (talk | contribs)
No edit summary
Line 1: Line 1:
-- unfinished module!
-- unfinished module!
local p = {}
local p = ""
local utils = require("Module:Utils")
local utils = require("Module:Utils")


Line 11: Line 11:
function p.ud_sharpness(frame)
function p.ud_sharpness(frame)
local sharp = sharp_n(frame.args["edo"])
local sharp = sharp_n(frame.args["edo"])
local thead = {"{| class=\"wikitable center-all\"\n"}
local tab = "{| class="wikitable"\n|+\n!Step offset\n"
local tlabel = {"|-\n! Step offset\n{{!}}'''0'''"}
for i = 1, sharp * 2 + 2 do
local tsharp = {"|-\n! Sharp symbol\n| rowspan=\"2\" |  [[File:Heji18.svg|15px]]"}
if (i % sharp == 1) then
local tflat = {"|-\n! Flat symbol"}
tab = tab .. "|'''" .. i-1 .. "'''\n"
for i=1, (sharp*2+1) do
if i % sharp == 0 then
table.insert(tlabel, "'''" .. i .. "'''")
else
else
table.insert(tlabel, "" .. i)
tab = tab .. "|" .. i-1 .. "\n"
end
end
end
end
thead = thead .. table.concat(tlabel, "\n|") .. "\n|}"
return tab
return frame:preprocess(thead)
end
end


return p
return p

Revision as of 23:44, 22 September 2025

Module documentation[view] [edit] [history] [purge]
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 
Functions provided (1)
Line Function Params
11 ud_sharpness (invokable) (frame)
Lua modules required (1)
Variable Module Functions used
utils Module:Utils dependency not used

No function descriptions were provided. The Lua code may have further information.


-- unfinished module!
local p = ""
local utils = require("Module:Utils")

-- calculate amount of steps for sharp/flat
local function sharp_n(edo)
	return (7 * math.floor((edo * math.log(3) / math.log(2)) + 0.5)) - (11 * edo) -- mapping of augmented unison
end

-- generate table
function p.ud_sharpness(frame)
	local sharp = sharp_n(frame.args["edo"])
	local tab = "{| class="wikitable"\n|+\n!Step offset\n"
	for i = 1, sharp * 2 + 2 do
		if (i % sharp == 1) then
			tab = tab .. "|'''" .. i-1 .. "'''\n"
		else
			tab = tab .. "|" .. i-1 .. "\n"
		end
	end
	return tab
end

return p