| ︙ | | | ︙ | |
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
|
// get the current key or create a new one
if (is_voice_sig()) { // if no symbol yet
curvoice.key = s // new root key of the voice
} else if (curvoice.time != ti) { // if no K: at this time
s = clone(s.orig || s) // new key
if (!curvoice.new)
s.k_old_sf = curvoice.ckey.k_sf
curvoice.ckey = s
sym_link(s)
}
if (cfmt.transp && curvoice.shift) // if %%transpose and shift=
syntax(0, "Mix of old and new transposition syntaxes");
// define the new key
curvoice.tr_sco = n // b40 interval
|
<
>
|
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
|
// get the current key or create a new one
if (is_voice_sig()) { // if no symbol yet
curvoice.key = s // new root key of the voice
} else if (curvoice.time != ti) { // if no K: at this time
s = clone(s.orig || s) // new key
if (!curvoice.new)
s.k_old_sf = curvoice.ckey.k_sf
sym_link(s)
}
curvoice.ckey = s // current key
if (cfmt.transp && curvoice.shift) // if %%transpose and shift=
syntax(0, "Mix of old and new transposition syntaxes");
// define the new key
curvoice.tr_sco = n // b40 interval
|
| ︙ | | | ︙ | |
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
|
if (w_tb[s.type])
return false
return true
}
// treat a clef found in the tune body
function get_clef(s) {
if (!curvoice.time // (force a clef when new voice)
&& is_voice_sig()) {
curvoice.clef = s
s.fmt = cfmt
return
}
// move the clef before a key and/or a (not right repeat) bar
var s2, s3
for (s2 = curvoice.last_sym;
s2 && s2.time == curvoice.time;
s2 = s2.prev) {
if (w_tb[s2.type])
break
}
if (s2
|
>
>
>
>
>
>
>
>
>
>
>
>
>
<
<
|
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
|
if (w_tb[s.type])
return false
return true
}
// treat a clef found in the tune body
function get_clef(s) {
var s2, s3
// special case for percussion
if (s.clef_type == 'p') { // if percussion clef
s2 = curvoice.ckey
s2.k_drum = 1 //true
s2.k_sf = 0
s2.k_b40 = 2
s2.k_map = abc2svg.keys[7]
if (!curvoice.key)
curvoice.key = s2 // new root key
}
if (!curvoice.time // (force a clef when new voice)
&& is_voice_sig()) {
curvoice.clef = s
s.fmt = cfmt
return
}
// move the clef before a key and/or a (not right repeat) bar
for (s2 = curvoice.last_sym;
s2 && s2.time == curvoice.time;
s2 = s2.prev) {
if (w_tb[s2.type])
break
}
if (s2
|
| ︙ | | | ︙ | |
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
|
curvoice.clone = null // don't stop the multi-voice sequence
get_voice(curvoice.id + ' ' + a.join(' '))
if (p_voice)
curvoice.clone = p_voice
if (def)
curvoice.default = 1 //true
if (s == parse.ckey // if first K:
&& curvoice.clef.clef_type == 'p') { // and percussion
s.k_drum = 1 //true // no transpose
s.k_sf = 0 // no accidental
s.k_b40 = 2
s.k_map = abc2svg.keys[7]
}
}
// get / create a new voice
function new_voice(id) {
var v, p_v_sav,
p_voice = voice_tb[0],
n = voice_tb.length
|
<
<
<
<
<
<
<
<
|
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
|
curvoice.clone = null // don't stop the multi-voice sequence
get_voice(curvoice.id + ' ' + a.join(' '))
if (p_voice)
curvoice.clone = p_voice
if (def)
curvoice.default = 1 //true
}
// get / create a new voice
function new_voice(id) {
var v, p_v_sav,
p_voice = voice_tb[0],
n = voice_tb.length
|
| ︙ | | | ︙ | |
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
|
sls: [], // slurs - used in parsing and in generation
hy_st: 0
}
voice_tb.push(p_voice);
if (parse.state == 3) {
p_voice.key = parse.ckey
p_voice.ckey = clone(parse.ckey)
}
// par_sy.voices[v] = {
// range: -1
// }
|
|
|
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
|
sls: [], // slurs - used in parsing and in generation
hy_st: 0
}
voice_tb.push(p_voice);
if (parse.state == 3) {
// p_voice.key = parse.ckey // (done later in music.js)
p_voice.ckey = clone(parse.ckey)
}
// par_sy.voices[v] = {
// range: -1
// }
|
| ︙ | | | ︙ | |
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
|
a: a,
bol: parse.iend
}
if (parse.file[curvoice.clone.bol - 1] != ']')
curvoice.clone.bol++ // start of new line
}
if (!curvoice.key) // if new voice
curvoice.key = parse.ckey
set_kv_parm(a)
if (curvoice.clef.clef_type == 'p') { // if percussion clef
var s = curvoice.ckey
s.k_drum = 1 //true
s.k_sf = 0
s.k_b40 = 2
s.k_map = abc2svg.keys[7]
if (curvoice.key = parse.ckey)
curvoice.key = s
}
key_trans()
v = curvoice.v
if (curvoice.new) { // if new voice
delete curvoice.new
if (staves_found < 0) { // if no %%score/%%staves
curvoice.st = curvoice.cst = ++nstaff;
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
|
a: a,
bol: parse.iend
}
if (parse.file[curvoice.clone.bol - 1] != ']')
curvoice.clone.bol++ // start of new line
}
set_kv_parm(a)
key_trans()
v = curvoice.v
if (curvoice.new) { // if new voice
delete curvoice.new
if (staves_found < 0) { // if no %%score/%%staves
curvoice.st = curvoice.cst = ++nstaff;
|
| ︙ | | | ︙ | |