Module:TAMNAMS: Difference between revisions
Added udp function (wip) |
Added/fleshed out UDP function |
||
| Line 432: | Line 432: | ||
if abbrev_format == "abbrev" or abbrev_format == "ABBREV" then | if abbrev_format == "abbrev" or abbrev_format == "ABBREV" then | ||
return string.format("%s%d% | return string.format("%s%d%sd", quality, step_count, mos_prefix) | ||
elseif abbrev_format == "shortened" or abbrev_format == "SHORTENED" then | elseif abbrev_format == "shortened" or abbrev_format == "SHORTENED" then | ||
return string.format("%s %d-%sd.", quality, step_count, mos_prefix) | return string.format("%s %d-%sd.", quality, step_count, mos_prefix) | ||
| Line 635: | Line 635: | ||
-- TODO: add altered scale degrees | -- TODO: add altered scale degrees | ||
function p.mode_udp(input_mode, input_mos) | function p.mode_udp(input_mode, input_mos) | ||
true_modes = mos. | true_modes = mos.modes_to_step_matrices(input_mos) | ||
input_mode_as_step_matrix = mos.mode_to_step_matrix(input_mode) | |||
-- For each mode, count the number of differences between each true mode | -- For each mode, count the number of differences between each true mode | ||
| Line 641: | Line 642: | ||
-- If the number of diffs is ever zero, then the entered mode was a true-mos | -- If the number of diffs is ever zero, then the entered mode was a true-mos | ||
-- mode and has zero alterations. | -- mode and has zero alterations. | ||
lowest_differences = | lowest_differences = mos.equave_step_count(input_mos) | ||
bright_gens_down_per_period = 0 | bright_gens_down_per_period = 0 | ||
closest_mode_as_step_matrix = {} | |||
for i = 1, #true_modes do | for i = 1, #true_modes do | ||
differences = 0 | differences = 0 | ||
for j = 1, # | current_true_mode = true_modes[i] | ||
for j = 1, #input_mode_as_step_matrix do | |||
mode_interval = input_mode_as_step_matrix[j] | |||
true_interval = current_true_mode[j] | |||
if | if not mos.interval_eq(mode_interval, true_interval) then | ||
differences = differences + 1 | differences = differences + 1 | ||
end | end | ||
| Line 657: | Line 661: | ||
bright_gens_down_per_period = i - 1 | bright_gens_down_per_period = i - 1 | ||
lowest_differences = differences | lowest_differences = differences | ||
closest_mode_as_step_matrix = current_true_mode | |||
end | end | ||
end | end | ||
| Line 674: | Line 679: | ||
alterations = "" | alterations = "" | ||
closest_true_mos_mode = true_modes[bright_gens_down_per_period + 1] | closest_true_mos_mode = true_modes[bright_gens_down_per_period + 1] | ||
if differences | if differences > 0 then | ||
for i = 1, # | for i = 1, #input_mode_as_step_matrix do | ||
mode_interval = | mode_interval = input_mode_as_step_matrix[i] | ||
true_interval = | true_interval = closest_mode_as_step_matrix[i] | ||
if not mos.interval_eq(mode_interval, true_interval) then | if not mos.interval_eq(mode_interval, true_interval) then | ||
altered_degree = p.degree_quality(mode_interval, input_mos, "ABBREV") | |||
alterations = alterations .. " " .. altered_degree | |||
end | end | ||
end | end | ||
| Line 693: | Line 699: | ||
function p.tester() | function p.tester() | ||
mos_modes = mos.modes_by_brightness(mos.new(5,2)) | |||
output_ = "" | |||
for i = 1, #mos_modes do | |||
output_ = output_ .. mos_modes[i] .. " " .. p.mode_udp(mos_modes[i], mos.new(5,2)) .. "\n" | |||
end | end | ||
output_ = output_ .. "LLsLsAs" .. " " .. p.mode_udp("LLsLsAs", mos.new(5,2)) | |||
return output_ | |||
end | end | ||
return p | return p | ||