abc2svg
Diff
Not logged in

Differences From Artifact [9bed07bd53]:

To Artifact [4b464ea05b]:


271
272
273
274
275
276
277
278

279
280
281
282
283
284
285
271
272
273
274
275
276
277

278
279
280
281
282
283
284
285







-
+







			if (v == undefined)
				break
			s = vtb[v]
			if (!s || s.time != time
			 || w_tb[s.type] != wmin)
				continue
			if (s.type == STAVES) {
				sy = sy.next;
				sy = s.sy;
				new_sy = true;
				sy_w = -1;
				sy_time = s.time
			}
			if (fl) {
				fl = 0;
				s.seqst = true
623
624
625
626
627
628
629
630

631
632
633
634
635
636
637
623
624
625
626
627
628
629

630
631
632
633
634
635
636
637







-
+







			case KEY:
				s2.p_v.key = clone(s2.as.u.key)
				break
			case METER:
				s2.p_v.meter = clone(s2.as.u.meter)
				break
			case STAVES:
				sy = sy.next
				sy = s.sy
				break
			}
		}
		cur_sy = sy
		for (v = 0; v < voice_tb.length; v++) {
			p_voice = voice_tb[v]
			for (s2 = s; s2; s2 = s2.ts_next) {
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1715
1716
1717
1718
1719
1720
1721

1722

1723
1724
1725
1726
1727
1728
1729







-

-







		if (p_voice.sym)
			no_sym = false
	}
	if (no_sym				/* if first %%staves */
	 || (maxtime == 0 && staves_found < 0)) {
		for (v = 0; v < par_sy.voices.length; v++)
			par_sy.voices[v].range = -1
//	} else if (staves_found != maxtime) {	// if no 2 %%staves
	} else {
// fixme: problem if no common voice with previous %%staves

		/*
		 * create a new staff system and
		 * link the 'staves' symbol in a voice which is seen from
		 * the previous system - see sort_all
		 */
		for (v = 0; v < par_sy.voices.length; v++) {
1754
1755
1756
1757
1758
1759
1760
1761


1762
1763
1764
1765
1766
1767
1768
1752
1753
1754
1755
1756
1757
1758

1759
1760
1761
1762
1763
1764
1765
1766
1767







-
+
+







				s.eoln = true;
				delete s2.eoln
			}
		} else {
			sym_link(s)	// link the staves in this voice
		}
		par_sy.nstaff = nstaff;
		new_syst()
		new_syst();
		s.sy = par_sy
	}

//	staves_found = maxtime < 0 ? 0 : maxtime
	staves_found = maxtime

	/* initialize the (old) voices */
	for (v = 0; v < voice_tb.length; v++) {
2354
2355
2356
2357
2358
2359
2360










2361
2362
2363
2364
2365
2366
2367
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376







+
+
+
+
+
+
+
+
+
+







		curvoice.clef.iend = curvoice.key.iend;
//		nstaff = 0;
//		curvoice.time = 0;
		curvoice.default = true
	} else if (!curvoice) {
		curvoice = voice_tb[staves_found < 0 ? 0 : par_sy.top_voice]
	}

	// link the first %%score
	if (staves_found >= 0) {
		s = {
			type: STAVES,
			dur: 0,
			sy: par_sy
		}
		sym_link(s)
	}

	if (!curvoice.init && !is_K) {
		set_kv_parm([]);
		set_transp()
	}

	// update some voice parameters