Module:MOS intervals: Difference between revisions

Ganaram inukshuk (talk | contribs)
Added capitalization code
Ganaram inukshuk (talk | contribs)
Changed capitalization code; made code readable
Line 10: Line 10:
-- - Fix rounding, capitalization
-- - Fix rounding, capitalization
-- - Require both a mos prefix and abbrev
-- - Require both a mos prefix and abbrev
function p.capitalize_first(str)
    return (str:gsub("^%l", string.upper))
end


-- Main function; to be called by wrapper
-- Main function; to be called by wrapper
function p._mos_intervals(input_mos, mos_prefix)
function p._mos_intervals(input_mos, mos_prefix, mos_abbrev)
-- Default param for input mos is 5L 2s
-- Default param for input mos is 5L 2s
local input_mos = input_mos or mos.new(5, 2, 2)
local input_mos = input_mos or mos.new(5, 2, 2)
local mos_prefix = mos_prefix or "mos"
local mos_prefix = mos_prefix or "mos"
local mos_abbrev = mos_abbrev or "m"
-- Get the scale sig
-- Get the scale sig
Line 58: Line 55:
-- If it's a period interval, then there is only one row to write.
-- If it's a period interval, then there is only one row to write.
-- Otherwise, there are two rows to write.
-- Otherwise, there are two rows to write, one for each size.
if is_period then
if is_period then
local cents = mos.interval_to_cents(current_bright_interval, input_mos, {1,1})
result = result .. "|-\n"
result = result .. "|-\n"
result = result .. string.format("| '''%s-%sstep'''\n", i-1, mos_prefix)
result = result .. string.format("| '''%s-%sstep'''\n", i-1, mos_prefix)
result = result .. string.format("| %s\n" , p.capitalize_first(tamnams.interval_quality(current_bright_interval, input_mos)))
result = result .. string.format("| %s\n" , tamnams.interval_quality(current_bright_interval, input_mos, "sentence-case"))
result = result .. string.format("| %s\n" , mos.interval_as_string(current_bright_interval))
result = result .. string.format("| %s\n" , mos.interval_as_string(current_bright_interval))
result = result .. string.format("| %\n", mos.interval_to_cents(current_bright_interval, input_mos, {1,1}))
result = result .. string.format("| %.1¢\n", cents)
result = result .. string.format("| %s\n" , tamnams.interval_quality(current_bright_interval, input_mos, "abbrev", "m"))
result = result .. string.format("| %s\n" , tamnams.interval_quality(current_bright_interval, input_mos, "abbrev", "m"))
else
else
local sm_min_cents = mos.interval_to_cents(current_dark_interval, input_mos, {1,1})
local sm_max_cents = mos.interval_to_cents(current_dark_interval, input_mos, {1,0})
local lg_min_cents = mos.interval_to_cents(current_bright_interval, input_mos, {1,1})
local lg_max_cents = mos.interval_to_cents(current_bright_interval, input_mos, {1,0})
result = result .. "|-\n"
result = result .. "|-\n"
result = result .. string.format("| rowspan=\"2\" | %s-%sstep\n", i-1, mos_prefix)
result = result .. string.format("| rowspan=\"2\" | %s-%sstep\n", i-1, mos_prefix)
result = result .. string.format("| %s\n" , p.capitalize_first(tamnams.interval_quality(current_dark_interval, input_mos)))
result = result .. string.format("| %s\n" , tamnams.interval_quality(current_dark_interval, input_mos, "sentence-case"))
result = result .. string.format("| %s\n" , mos.interval_as_string(current_dark_interval))
result = result .. string.format("| %s\n" , mos.interval_as_string(current_dark_interval))
result = result .. string.format("| %.3f¢ to %.3f¢\n", mos.interval_to_cents(current_dark_interval, input_mos, {1,1}), mos.interval_to_cents(current_dark_interval, input_mos, {1,0}))
result = result .. string.format("| %.1f¢ to %.1f¢\n", sm_min_cents, sm_max_cents)
result = result .. string.format("| %s\n" , tamnams.interval_quality(current_dark_interval, input_mos, "abbrev", "m"))
result = result .. string.format("| %s\n" , tamnams.interval_quality(current_dark_interval, input_mos, "abbrev", "m"))
result = result .. "|-\n"
result = result .. "|-\n"
result = result .. string.format("| %s\n" , p.capitalize_first(tamnams.interval_quality(current_bright_interval, input_mos)))
result = result .. string.format("| %s\n" , tamnams.interval_quality(current_bright_interval, input_mos, "sentence-case"))
result = result .. string.format("| %s\n" , mos.interval_as_string(current_bright_interval))
result = result .. string.format("| %s\n" , mos.interval_as_string(current_bright_interval))
result = result .. string.format("| %.3f¢ to %.3f¢\n", mos.interval_to_cents(current_bright_interval, input_mos, {1,1}), mos.interval_to_cents(current_dark_interval, input_mos, {1,0}))
result = result .. string.format("| %.1f¢ to %.1f¢\n", lg_min_cents, lg_max_cents)
result = result .. string.format("| %s\n" , tamnams.interval_quality(current_bright_interval, input_mos, "abbrev", "m"))
result = result .. string.format("| %s\n" , tamnams.interval_quality(current_bright_interval, input_mos, "abbrev", "m"))
end
end