Module:MOS tunings: Difference between revisions
todo |
Refined ratio-parsing function |
||
| Line 224: | Line 224: | ||
function p.parse_step_ratios(unparsed) | function p.parse_step_ratios(unparsed) | ||
local parsed = {} | local parsed = {} | ||
if unparsed == "Central Spectrum" then | if unparsed == "" or unparsed == "Simple Tunings" then | ||
parsed = {{2,1}, {3,1}, {3,2}} -- Default is the simple step ratios | |||
elseif unparsed == "NONE" then | |||
parsed = {} | |||
elseif unparsed == "Central Spectrum" then | |||
parsed = {{4,3}, {3,2}, {5,3}, {2,1}, {5,2}, {3,1}, {4,1}} | parsed = {{4,3}, {3,2}, {5,3}, {2,1}, {5,2}, {3,1}, {4,1}} | ||
elseif unparsed == "Soft-of-basic" then | elseif unparsed == "Soft-of-basic" then | ||
| Line 234: | Line 238: | ||
elseif unparsed == "Hard-of-basic" then | elseif unparsed == "Hard-of-basic" then | ||
parsed = {{2,1}, {3,1}, {4,1}} | parsed = {{2,1}, {3,1}, {4,1}} | ||
else | else | ||
parsed = tip.parse_numeric_pairs(unparsed) | parsed = tip.parse_numeric_pairs(unparsed) | ||
| Line 251: | Line 252: | ||
function p.parse_ji_ratios(unparsed, equave_in_cents) | function p.parse_ji_ratios(unparsed, equave_in_cents) | ||
local parsed = nil | local parsed = nil | ||
if unparsed == "" then | |||
parsed = jira.search_by_params({["Int Limit"] = 32, ["Tenney Height"] = 9, ["Prime Limit"] = 13}, equave_in_cents) | |||
elseif unparsed == "NONE" then | |||
parsed = {} | parsed = {} | ||
elseif | elseif string.match(unparsed, "Int Limit") then | ||
local search_params = jira.parse_search_params(unparsed) | |||
parsed = jira.search_by_params(search_params, equave_in_cents) | |||
parsed = | |||
else | else | ||
parsed = jira.parse_ratios(unparsed) | |||
end | end | ||
return parsed | return parsed | ||
end | end | ||
| Line 280: | Line 278: | ||
local collapsed = yesno(frame.args["Collapsed"], false) -- Currently does nothing | local collapsed = yesno(frame.args["Collapsed"], false) -- Currently does nothing | ||
local step_ratios = p.parse_step_ratios(frame.args["Step Ratios"]) | local step_ratios = p.parse_step_ratios(frame.args["Step Ratios"]) | ||
local ji_ratios = p.parse_ji_ratios(frame.args["JI Ratios"] | local ji_ratios = p.parse_ji_ratios(frame.args["JI Ratios"], equave_in_cents) | ||
-- Verify name/prefix/abbrev | -- Verify name/prefix/abbrev | ||