Module:MOS mode degrees: Difference between revisions
m Final tweaks to color palette |
Added support for default names (formatted in tamnams as xL ys u|p) |
||
| Line 559: | Line 559: | ||
-- Create a table of a mos's degrees | -- Create a table of a mos's degrees | ||
function p.mos_mode_degrees(input_mos, mos_prefix, mode_names) | function p.mos_mode_degrees(input_mos, mos_prefix, mode_names, use_default_mode_names) | ||
local input_mos = input_mos or mos.new(5, 2) | local input_mos = input_mos or mos.new(5, 2) | ||
local mos_prefix = mos_prefix or "mos" | local mos_prefix = mos_prefix or "mos" | ||
local mode_names = mode_names or nil | local mode_names = mode_names or nil | ||
local use_default_mode_names = use_default_mode_names == true | |||
-- Get the modes | -- Get the modes | ||
| Line 596: | Line 597: | ||
-- Add mode names if present | -- Add mode names if present | ||
local mode_names_given = mode_names ~= nil and #mode_names == #modes | local mode_names_given = (mode_names ~= nil and #mode_names == #modes) or use_default_mode_names | ||
if mode_names_given then | if mode_names_given then | ||
result = result .. '! rowspan="2" class="unsortable" | Mode names\n' | result = result .. '! rowspan="2" class="unsortable" | Mode names\n' | ||
| Line 619: | Line 620: | ||
-- Add mode name if given | -- Add mode name if given | ||
if mode_names_given then | if mode_names_given then | ||
result = result .. string.format('| %s\n', mode_names[i]) | if use_default_mode_names then | ||
result = result .. string.format('| %s %s\n', scale_sig, brightness_order[i]) | |||
else | |||
result = result .. string.format('| %s\n', mode_names[i]) | |||
end | |||
end | end | ||
| Line 642: | Line 647: | ||
-- Create a table of a modmos's degrees | -- Create a table of a modmos's degrees | ||
function p.modmos_mode_degrees(input_mos, mos_prefix, step_pattern, mode_names) | function p.modmos_mode_degrees(input_mos, mos_prefix, step_pattern, mode_names, use_default_mode_names) | ||
local input_mos = input_mos or mos.new(5, 2) | local input_mos = input_mos or mos.new(5, 2) | ||
local mos_prefix = mos_prefix or "mos" | local mos_prefix = mos_prefix or "mos" | ||
local step_pattern = step_pattern or "LsLLsAs" | local step_pattern = step_pattern or "LsLLsAs" | ||
local mode_names = mode_names or nil | local mode_names = mode_names or nil | ||
local use_default_mode_names = use_default_mode_names == true | |||
-- Get the modes | -- Get the modes | ||
| Line 681: | Line 687: | ||
-- Add mode names if present | -- Add mode names if present | ||
local mode_names_given = mode_names ~= nil and #mode_names == #modes | local mode_names_given = (mode_names ~= nil and #mode_names == #modes) | ||
if mode_names_given then | if mode_names_given then | ||
result = result .. '! rowspan="2" class="unsortable" | Mode names\n' | result = result .. '! rowspan="2" class="unsortable" | Mode names\n' | ||
| Line 704: | Line 710: | ||
-- Add mode name if given | -- Add mode name if given | ||
if mode_names_given then | if mode_names_given then | ||
result = result .. string.format('| %s\n', mode_names[i]) | if use_default_mode_names then | ||
result = result .. string.format('| %s %s\n', scale_sig, alterations[i]) | |||
else | |||
result = result .. string.format('| %s\n', mode_names[i]) | |||
end | |||
end | end | ||
| Line 756: | Line 766: | ||
-- Get the mode names | -- Get the mode names | ||
local mode_names = nil | local mode_names = nil | ||
local use_default_names = false | |||
-- Default names for 5L 2s modes | -- Default names for 5L 2s modes | ||
if scale_sig == "5L 2s" and step_pattern == "LsLLsAs" then | if scale_sig == "5L 2s" and step_pattern == "LsLLsAs" then | ||
| Line 761: | Line 772: | ||
elseif scale_sig == "5L 2s" and #step_pattern == 0 then | elseif scale_sig == "5L 2s" and #step_pattern == 0 then | ||
mode_names = { "Lydian", "Ionian (major)", "Mixolydian", "Dorian", "Aeolian (minor)", "Phrygian", "Locrian" } | mode_names = { "Lydian", "Ionian (major)", "Mixolydian", "Dorian", "Aeolian (minor)", "Phrygian", "Locrian" } | ||
elseif step_pattern == "Default" then | |||
use_default_names = true | |||
end | end | ||
| Line 772: | Line 785: | ||
local result = "" | local result = "" | ||
if step_pattern == "" then | if step_pattern == "" then | ||
result = p.mos_mode_degrees(input_mos, mos_prefix, mode_names) | result = p.mos_mode_degrees(input_mos, mos_prefix, mode_names, use_default_names) | ||
elseif #step_pattern == input_mos.nL + input_mos.ns then | elseif #step_pattern == input_mos.nL + input_mos.ns then | ||
result = p.modmos_mode_degrees(input_mos, mos_prefix, step_pattern, mode_names) | result = p.modmos_mode_degrees(input_mos, mos_prefix, step_pattern, mode_names, use_default_names) | ||
end | end | ||