Module:Chord consistency: Difference between revisions
Dummy index (talk | contribs) +distance parameter |
ArrowHead294 (talk | contribs) mNo edit summary |
||
(5 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
local ET = require('Module:ET') | |||
local rat = require('Module:Rational') | local rat = require('Module:Rational') | ||
local utils = require("Module:Utils") | local utils = require("Module:Utils") | ||
local p = {} | local p = {} | ||
Line 98: | Line 98: | ||
end | end | ||
function p.consistent_edos(harmonics, distance) | function p.consistent_edos(harmonics, distance, ed, maxlen) | ||
distance = distance or 1.0 | |||
ed = ed or 'edo' | |||
local max_n = 72 | |||
maxlen = maxlen or max_n | |||
if max_n < maxlen then max_n = maxlen end | |||
local all_interval = {} | local all_interval = {} | ||
Line 112: | Line 117: | ||
local vals = {} | local vals = {} | ||
for i = 1, | for i = 1, max_n do | ||
local et = ET.parse('' .. i .. | local et = ET.parse('' .. i .. ed) | ||
local consistent = p.additively_consistent_int(et, all_interval, false, | local consistent = p.additively_consistent_int(et, all_interval, false, nil) | ||
if consistent then | if consistent then | ||
local maxe = p.max_error(et, all_interval) | local maxe = p.max_error(et, all_interval) | ||
if maxe <= 5.0e-11 then | |||
table.insert(vals, "[[" .. i .. ed .. "]]" .. "(just)") | |||
break | |||
end | |||
local dist = 0.5/maxe | local dist = 0.5/maxe | ||
local up = (dist >= distance) | local up = (dist >= distance) | ||
Line 125: | Line 134: | ||
end | end | ||
if up then | if up then | ||
table.insert(vals, "[[" .. i .. " | if #vals >= maxlen then | ||
table.insert(vals, "…") | |||
break | |||
end | |||
table.insert(vals, "[[" .. i .. ed .. "]]" .. string.rep("*", llevel)) | |||
end | end | ||
end | end | ||
Line 190: | Line 203: | ||
end | end | ||
cat = "(d >= " .. distance .. ") " .. p.consistent_edos(harmonics, distance) | cat = "(d >= " .. distance .. ") " .. p.consistent_edos(harmonics, distance, 'edo', 4) | ||
--end | --end | ||