Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | core: fix: bad output when %%score after K: and T: at start of tune |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
41f131ebeb68dc0672f0f7682c1d6609 |
| User & Date: | jef 2019-07-21 08:43:29.923 |
Context
|
2019-07-21
| ||
| 09:00 | core: fix: ambiguous dots when seconds on 2 voices - reported by Hudson Lacerda ... (check-in: 0a2c4f673c user: jef tags: trunk) | |
| 08:43 | core: fix: bad output when %%score after K: and T: at start of tune ... (check-in: 41f131ebeb user: jef tags: trunk) | |
|
2019-07-20
| ||
| 06:44 | core: extended dots for any note/rest length - code from Hudson Lacerda ... (check-in: 35d46e8f63 user: jef tags: trunk) | |
Changes
Changes to core/front.js.
| ︙ | ︙ | |||
627 628 629 630 631 632 633 634 635 636 637 638 639 640 |
tune_filter()
continue
case 'T':
switch (parse.state) {
case 0:
continue
case 1:
if (info.T == undefined) // (keep empty T:)
info.T = text
else
info.T += "\n" + text
continue
}
s = new_block("title");
| > | 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 |
tune_filter()
continue
case 'T':
switch (parse.state) {
case 0:
continue
case 1:
case 2:
if (info.T == undefined) // (keep empty T:)
info.T = text
else
info.T += "\n" + text
continue
}
s = new_block("title");
|
| ︙ | ︙ |
Changes to core/tune.js.
| ︙ | ︙ | |||
795 796 797 798 799 800 801 |
param = param.slice(0, -5).trim()
} else if (fmt_lock[cmd]) {
return
}
switch (cmd) {
case "center":
| | | 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 |
param = param.slice(0, -5).trim()
} else if (fmt_lock[cmd]) {
return
}
switch (cmd) {
case "center":
if (parse.state == 3) {
s = new_block("text");
s.text = param
s.opt = 'c'
return
}
write_text(param, 'c')
return
|
| ︙ | ︙ | |||
949 950 951 952 953 954 955 | } if (h1 < 1) h1 = 14 if (h2 < 1) h2 = h1 if (len < 1) len = 90 | | | 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 |
}
if (h1 < 1)
h1 = 14
if (h2 < 1)
h2 = h1
if (len < 1)
len = 90
if (parse.state == 3) {
s = new_block(cmd);
s.x = (lwidth - len) / 2 / cfmt.scale;
s.l = len / cfmt.scale;
s.sk1 = h1;
s.sk2 = h2
return
}
|
| ︙ | ︙ | |||
1045 1046 1047 1048 1049 1050 1051 |
//--fixme: may be global
if (parse.state == 3) {
par_sy.voices[curvoice.v].sep = get_unit(param)
return
}
break
case "text":
| | | 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 |
//--fixme: may be global
if (parse.state == 3) {
par_sy.voices[curvoice.v].sep = get_unit(param)
return
}
break
case "text":
if (parse.state == 3) {
s = new_block(cmd);
s.text = param
s.opt = cfmt.textoption
return
}
write_text(param, cfmt.textoption)
return
|
| ︙ | ︙ | |||
1104 1105 1106 1107 1108 1109 1110 |
return
case "vskip":
val = get_unit(param)
if (val < 0) {
syntax(1, "%%vskip cannot be negative")
return
}
| | | 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 |
return
case "vskip":
val = get_unit(param)
if (val < 0) {
syntax(1, "%%vskip cannot be negative")
return
}
if (parse.state == 3) {
s = new_block(cmd);
s.sk = val
return
}
vskip(val);
return
case "newpage":
|
| ︙ | ︙ | |||
1146 1147 1148 1149 1150 1151 1152 |
var i, j, action, s
switch (type) {
case "js":
js_inject(text)
break
case "ml":
| | | 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 |
var i, j, action, s
switch (type) {
case "js":
js_inject(text)
break
case "ml":
if (parse.state == 3) {
s = new_block(type);
s.text = text
} else {
svg_flush();
if (user.img_out)
user.img_out(text)
}
|
| ︙ | ︙ | |||
1185 1186 1187 1188 1189 1190 1191 | defs_add(text.slice(i + 6, j)) } break case "text": action = get_textopt(opt); if (!action) action = cfmt.textoption | | | 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 |
defs_add(text.slice(i + 6, j))
}
break
case "text":
action = get_textopt(opt);
if (!action)
action = cfmt.textoption
if (parse.state == 3) {
s = new_block(type);
s.text = text
s.opt = action
break
}
write_text(text, action)
break
|
| ︙ | ︙ |
Changes to modules/MIDI.js.
| ︙ | ︙ | |||
79 80 81 82 83 84 85 |
else
v = a[2];
v = parseInt(v)
if (isNaN(v) || v < 0 || v > 127) {
this.syntax(1, "Bad program in %%MIDI")
return
}
| | | | 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
else
v = a[2];
v = parseInt(v)
if (isNaN(v) || v < 0 || v > 127) {
this.syntax(1, "Bad program in %%MIDI")
return
}
if (this.parse.state == 3) {
if (this.cfmt().sound != "play")
break
s = this.new_block("midiprog");
s.instr = v
} else {
this.set_v_param("instr", v)
}
break
case "control":
n = parseInt(a[2])
if (isNaN(n) || n < 0 || n > 127) {
this.syntax(1, "Bad controller number in %%MIDI")
return
}
v = parseInt(a[3])
if (isNaN(v) || v < 0 || v > 127) {
this.syntax(1, "Bad controller value in %%MIDI")
return
}
if (this.parse.state == 3) {
if (this.cfmt().sound != "play")
break
s = this.new_block("midictl");
s.ctrl = n;
s.val = v
} else {
this.set_v_param("midictl", a[2] + ' ' + a[3])
|
| ︙ | ︙ |