Module:ET: Difference between revisions
ArrowHead294 (talk | contribs) mNo edit summary |
These all looked too dumb tbh |
||
(16 intermediate revisions by 2 users not shown) | |||
Line 42: | Line 42: | ||
-- parse a ET structure | -- parse a ET structure | ||
function p.parse(unparsed) | function p.parse(unparsed) | ||
local size, suffix, equave = unparsed:match("^( | local size, suffix, equave = unparsed:match("^(%d+%.*%d*)([Ee][Dd](.+))$") | ||
-- local size, suffix, equave = unparsed:match("^(%d+%.*%d*)([Cc]?[Ee][Dd]?[Tt]?(.*))$") | |||
if equave == nil then | if equave == nil then | ||
return nil | return nil | ||
end | end | ||
suffix = suffix:lower() | suffix = suffix:lower() | ||
size = tonumber(size) | |||
equave = common_ratio[equave] or rat.parse(equave) | equave = common_ratio[equave] or rat.parse(equave) | ||
if size == nil or equave == nil then | if size == nil or equave == nil then | ||
Line 97: | Line 90: | ||
steps = steps or 1 | steps = steps or 1 | ||
return 1200 * steps / et.size * math.log(rat.as_float(et.equave)) / math.log(2) | return 1200 * steps / et.size * math.log(rat.as_float(et.equave)) / math.log(2) | ||
end | |||
-- convert steps to hekts | |||
function p.hekts(et, steps) | |||
if et.size == 0 then | |||
return 0 | |||
end | |||
steps = steps or 1 | |||
return 1300 * steps / et.size * math.log(rat.as_float(et.equave)) / math.log(3) | |||
end | end | ||
Line 148: | Line 150: | ||
local zeta_integral = seq.contains(seq.zeta_integral, et.size) | local zeta_integral = seq.contains(seq.zeta_integral, et.size) | ||
local zeta_gap = seq.contains(seq.zeta_gap, et.size) | local zeta_gap = seq.contains(seq.zeta_gap, et.size) | ||
local z = "The Riemann zeta function and tuning#Zeta EDO lists" | |||
local markers = {} | local markers = {} | ||
if zeta_peak then | if zeta_peak then | ||
table.insert(markers, "[[ | table.insert(markers, string.format("[[%s|Zeta peak]]", z)) | ||
elseif zeta_peak == nil then | elseif zeta_peak == nil then | ||
table.insert(markers, "[[ | table.insert(markers, string.format("[[%s|Zeta peak?]]", z)) | ||
end | end | ||
if zeta_peak_integer then | if zeta_peak_integer then | ||
table.insert(markers, "[[ | table.insert(markers, string.format("[[%s|Zeta peak integer]]", z)) | ||
elseif zeta_peak_integer == nil then | elseif zeta_peak_integer == nil then | ||
table.insert(markers, "[[ | table.insert(markers, string.format("[[%s|Zeta peak integer?]]", z)) | ||
end | end | ||
if zeta_integral then | if zeta_integral then | ||
table.insert(markers, "[[ | table.insert(markers, string.format("[[%s|Zeta integral]]", z)) | ||
elseif zeta_integral == nil then | elseif zeta_integral == nil then | ||
table.insert(markers, "[[ | table.insert(markers, string.format("[[%s|Zeta integral?]]", z)) | ||
end | end | ||
if zeta_gap then | if zeta_gap then | ||
table.insert(markers, "[[ | table.insert(markers, string.format("[[%s|Zeta gap]]", z)) | ||
elseif zeta_gap == nil then | elseif zeta_gap == nil then | ||
table.insert(markers, "[[ | table.insert(markers, string.format("[[%s|Zeta gap?]]", z)) | ||
end | end | ||
return table.concat(markers, "<br>") | return table.concat(markers, "<br />") | ||
end | end | ||
return p | return p |