Module:MOS in EDO: Difference between revisions
mNo edit summary |
Added generation limit (basically a maximum number of rows) |
||
| Line 323: | Line 323: | ||
-- Instead of a "rectangular horogram", use the same type of visualization shown | -- Instead of a "rectangular horogram", use the same type of visualization shown | ||
-- on the diasem page | -- on the diasem page | ||
function p.mos_in_edo_simplified(edo, gen_in_edosteps, number_of_periods, temperament) | function p.mos_in_edo_simplified(edo, gen_in_edosteps, number_of_periods, generation_limit, temperament) | ||
local edo = edo or 24 | local edo = edo or 24 | ||
local gen_in_edosteps = gen_in_edosteps or 14 | local gen_in_edosteps = gen_in_edosteps or 14 | ||
local number_of_periods = number_of_periods or 1 | local number_of_periods = number_of_periods or 1 | ||
local generation_limit = generation_limit or edo - 1 | |||
local temperament = temperament --or "meantone" | local temperament = temperament --or "meantone" | ||
| Line 336: | Line 337: | ||
period_in_edosteps = edo / number_of_periods | period_in_edosteps = edo / number_of_periods | ||
verified_number_of_periods = number_of_periods | verified_number_of_periods = number_of_periods | ||
end | |||
-- Check whether the generation limit is valid | |||
-- If it's -1, then show all generations (period_in_edosteps-1) | |||
if generation_limit == -1 then | |||
generation_limit = period_in_edosteps - 1 | |||
end | end | ||
| Line 368: | Line 375: | ||
-- Add the step pattern for successive mosses until the pattern becomes that for an edo | -- Add the step pattern for successive mosses until the pattern becomes that for an edo | ||
while current_scale ~= nil and starting_mos_valid do | local generation_count = 1 | ||
while current_scale ~= nil and starting_mos_valid and generation_count <= generation_limit do | |||
-- Calculate current step ratio | -- Calculate current step ratio | ||
-- Use this to determine which cell colors to use | -- Use this to determine which cell colors to use | ||
| Line 426: | Line 434: | ||
local temperament = frame.args["Temperament"] | local temperament = frame.args["Temperament"] | ||
local number_of_periods = tonumber(frame.args["Number of Periods"]) | local number_of_periods = tonumber(frame.args["Number of Periods"]) | ||
local generation_limit = tonumber(frame.args["Maximum Number of Generations"]) | |||
local result = "" | local result = "" | ||
result = p.mos_in_edo_simplified(edo, gen_in_edosteps, number_of_periods, generation_limit, temperament) | |||
return result | return result | ||