Module:Interval table: Difference between revisions
CompactStar (talk | contribs) No edit summary |
CompactStar (talk | contribs) No edit summary |
||
| Line 54: | Line 54: | ||
local function ud_note(et, fifth, step) | local function ud_note(et, fifth, step) | ||
return table.concat(ud.get_note_names_table(et, fifth)[step], ", "):sub(0, -1) | return table.concat(ud.get_note_names_table(et, fifth)[step], ", "):sub(0, -1) | ||
end | |||
local function mysplit (inputstr, sep) | |||
if sep == nil then | |||
sep = "%s" | |||
end | |||
local t={} | |||
for str in string.gmatch(inputstr, "([^"..sep.."]+)") do | |||
table.insert(t, str) | |||
end | |||
return t | |||
end | end | ||
function p.interval_table(frame) | function p.interval_table(frame) | ||
local additional = frame.args['additional'] or '' | |||
local additional_split = mysplit(additional, ';') | |||
for i=1,#additional_split do | |||
additional_split[i] = mysplit(additional_split[i], ',') | |||
end | |||
local tuning = frame.args['tuning'] | local tuning = frame.args['tuning'] | ||
local et = ET.parse(tuning) or ET.parse('12edo') | local et = ET.parse(tuning) or ET.parse('12edo') | ||
| Line 100: | Line 116: | ||
wikitext = wikitext .. '!Approximate ratios\n' | wikitext = wikitext .. '!Approximate ratios\n' | ||
if #additional_split > 0 then | |||
for i=1,#additional_split[1] do | |||
wikitext = wikitext .. '!' .. additional_split[1][i] .. '\n' | |||
end | |||
end | |||
for i=0,et.size do | for i=0,et.size do | ||
| Line 125: | Line 148: | ||
else | else | ||
wikitext = wikitext:sub(0, -3) .. '\n' | wikitext = wikitext:sub(0, -3) .. '\n' | ||
end | |||
if (i + 2) <= #additional_split then | |||
for j=1,#additional_split[i+2] do | |||
wikitext = wikitext .. '|' .. additional_split[i+2][j] .. '\n' | |||
end | |||
end | end | ||
end | end | ||