Lines Matching defs:i

52 function errbld(sev,txt,fn,idx){var i,j,l,c,h
58 if(idx!=undefined&&idx>=0){i=l=0
59 while(1){j=parse.file.indexOf('\n',i)
62 l++;i=j+1}
63 c=idx-i}
72 function error(sev,s,msg,a1,a2,a3,a4){var i,j,regex,tmp
103 function y_get(st,up,x,w){var y,p_staff=staff_tb[st],i=(x/realwidth*YSTEP)|0,j=((x+w)/realwidth*YSTEP)|0
104 if(i<0)
105 i=0
107 if(i>j)
108 i=j}
109 if(up){y=p_staff.top[i++]
110 while(i<=j){if(y<p_staff.top[i])
111 y=p_staff.top[i];i++}}else{y=p_staff.bot[i++]
112 while(i<=j){if(y>p_staff.bot[i])
113 y=p_staff.bot[i];i++}}
115 function y_set(st,up,x,w,y){var p_staff=staff_tb[st],i=(x/realwidth*YSTEP)|0,j=((x+w)/realwidth*YSTEP)|0
116 if(i<0)
117 i=0
119 if(i>j)
120 i=j}
121 if(up){while(i<=j){if(p_staff.top[i]<y)
122 p_staff.top[i]=y;i++}}else{while(i<=j){if(p_staff.bot[i]>y)
123 p_staff.bot[i]=y;i++}}}
144 var s,dd,dd2,up,x,dx,x2,i,s2=de.s,de2=de.start,de2_prev,de_next;s=de2.s;x=s.x+3;i=de2.ix
145 if(i>0)
146 de2_prev=a_de[i-1];de.st=s2.st;de.lden=false;de.has_val=true;up=up_p(s2,s2.pos.dyn)
281 function deco_def(nm){var a,dd,dd2,name2,c,i,elts,str,hd,text=decos[nm]
318 function deco_cnv(a_dcn,s,prev){var i,j,dd,dcn,note,nd=a_dcn.length
319 for(i=0;i<nd;i++){dcn=a_dcn[i];dd=dd_tb[dcn]
401 function deco_update(s,dx){var i,de,nd=a_de.length
402 for(i=0;i<nd;i++){de=a_de[i]
405 function deco_width(s){var dd,i,wl=0,a_dd=s.a_dd,nd=a_dd.length
406 for(i=0;i<nd;i++){dd=a_dd[i]
422 var de,de2,dd,s,note,f,st,x,y,y2,ym,uf,i,str,a,new_de=[],ymid=[]
434 f=dd.glyph;i=f.indexOf('/')
435 if(i>0){if(s.stem>=0)
436 f=f.slice(0,i)
438 f=f.slice(i+1)}
474 function ldeco_update(s){var i,de,x=s.x-s.wl,nd=a_de.length
475 for(i=0;i<nd;i++){de=a_de[i];de.ix=i;de.s.x=de.x=x;de.defl.nost=true}}
519 function ll_deco(){var i,j,de,de2,dd,dd2,v,s,st,n_de=a_de.length
520 for(i=0;i<n_de;i++){de=a_de[i]
524 for(j=i+1;j<n_de;j++){de2=a_de[j]
527 if(j==n_de){st=s.st;for(j=i+1;j<n_de;j++){de2=a_de[j]
536 if(i>0&&a_de[i-1].s.time==de.s.time&&a_de[i-1].dd.name.slice(0,dd.name.length-1)==dd.name.slice(0,dd.name.length-1))
537 de2.prev=a_de[i-1]}
538 for(i=0;i<n_de;i++){de2=a_de[i]
556 function draw_deco_note(){var i,de,dd,f,nd=a_de.length
557 for(i=0;i<nd;i++){de=a_de[i];dd=de.dd;f=dd.func
560 function draw_deco_staff(){var s,p_voice,y,i,v,de,dd,minmax=new Array(nstaff+1),nd=a_de.length
561 function draw_repbra(p_voice){var s,s1,x,y,y2,i,p,w,wh,first_repeat;y=staff_tb[p_voice.st].topbar+25
620 for(i=0;i<=nstaff;i++)
621 minmax[i]={ymin:0,ymax:0}
622 for(i=0;i<nd;i++){de=a_de[i];dd=de.dd
633 for(i=0;i<nd;i++){de=a_de[i];dd=de.dd
928 function draw_beams(bm){var s,i,beam_dir,shift,bshift,bstub,bh,da,k,k1,k2,x1,s1=bm.s1,s2=bm.s2
953 for(i=2;i<=bm.nflags;i++){shift+=bshift
956 for(s=s1;;s=s.next){if(s.type!=C.NOTE||s.nflags<i){if(s==s2)
959 if(s.trem1&&i>s.nflags-s.ntrem){x1=(s.dur>=C.BLEN/2)?s.x:s.xs;draw_beam(x1-5,x1+5,(shift+2.5)*beam_dir,bh,bm,i)
967 if(k.type==C.NOTE||k.type==C.REST){if(k.trem1){if(k.nflags-k.ntrem<i)
968 break}else if(k.nflags<i){break}}
969 if(k.beam_br1||(k.beam_br2&&i>2))
975 if(k1==k2){if(k1==s1){x1+=bstub}else if(k1==s2){x1-=bstub}else if(k1.beam_br1||(k1.beam_br2&&i>2)){x1+=bstub}else{k=k1.next
978 if(k.beam_br1||(k.beam_br2&&i>2)){x1-=bstub}else{k1=k1.prev
985 draw_beam(x1,k2.xs,shift*beam_dir,bh,bm,i)
993 function draw_lstaff(x){var i,j,yb,h,fl,nst=cur_sy.nstaff,l=0
994 function draw_sysbra(x,st,flag){var i,st_end,yt,yb
998 i=st_end=st
999 while(1){if(cur_sy.st_print[i])
1000 st_end=i
1001 if(cur_sy.staves[i].flags&flag)
1003 i++}
1009 for(i=0;;i++){fl=cur_sy.staves[i].flags
1012 if(cur_sy.st_print[i])
1016 if(i==nst)
1018 for(j=nst;j>i;j--){if(cur_sy.st_print[j])
1020 if(i==j&&l==0)
1022 yb=staff_tb[j].y+staff_tb[j].botbar*staff_tb[j].staffscale;h=staff_tb[i].y+staff_tb[i].topbar*staff_tb[i].staffscale-yb;xypath(x,yb);output+="v"+(-h).toFixed(1)+'"/>\n'
1023 for(i=0;i<=nst;i++){fl=cur_sy.staves[i].flags
1025 draw_sysbra(x,i,CLOSE_BRACE)
1027 draw_sysbra(x,i,CLOSE_BRACKET)
1029 draw_sysbra(x-6,i,CLOSE_BRACE2)
1031 draw_sysbra(x-6,i,CLOSE_BRACKET2)}}
1034 var dx,i,j,meter,x,st=s.st,p_staff=staff_tb[st],y=p_staff.y;if(p_staff.stafflines!='|||||')
1036 for(i=0;i<s.a_meter.length;i++){meter=s.a_meter[i];x=s.x+s.x_meter[i]
1054 function set_hl(p_st,n,x,dx1,dx2){var i,hl
1060 for(i=0;i<hl.length;i++){if(x>=hl[i][0])
1062 if(i==hl.length){hl.push([x,dx1,dx2])}else if(x>hl[i][0]){hl.splice(++i,0,[x,dx1,dx2])}else{if(dx1<hl[i][1])
1063 hl[i][1]=dx1
1064 if(dx2>hl[i][2])
1065 hl[i][2]=dx2}}
1066 Abc.prototype.draw_hl=function(s){var i,j,n,note,hla=[],st=s.st,p_staff=staff_tb[st]
1069 for(i=0;i<=s.nhd;i++){note=s.notes[i]
1078 for(i=0;i<hla.length;i++){hlp=hla[i][0]
1079 dx1=(hla[i][1]<shhd?hla[i][1]:shhd)-dx
1080 dx2=(hla[i][1]>shhd?hla[i][1]:shhd)+dx
1094 i=yl;j=yu
1095 while(i>bot&&stafflines[i]=='-')
1096 i--
1099 for(;i<j;i++){if(stafflines[i]=='-')
1100 set_hl(p_staff,i,s.x,dx1,dx2)}}
1104 var old_sf=s.k_old_sf,st=s.st,staffb=staff_tb[st].y,i,shift,p_seq,clef_ix=s.k_y_clef
1110 for(i=0;i<old_sf;i++){xygl(x,staffb+shift,"acc3");shift+=p_seq[i];x+=5.5}
1112 for(i=0;i>old_sf;i--){xygl(x,staffb+shift,"acc3");shift+=p_seq[-i];x+=5.5}
1116 for(i=0;i<s.k_sf;i++){xygl(x,staffb+shift,"acc1");shift+=p_seq[i];x+=5.5}
1117 if(cfmt.cancelkey&&i<old_sf){x+=2
1118 for(;i<old_sf;i++){xygl(x,staffb+shift,"acc3");shift+=p_seq[i];x+=5.5}}}
1120 for(i=0;i>s.k_sf;i--){xygl(x,staffb+shift,"acc-1");shift+=p_seq[-i];x+=5.5}
1121 if(cfmt.cancelkey&&i>old_sf){x+=2
1122 for(;i>old_sf;i--){xygl(x,staffb+shift,"acc3");shift+=p_seq[-i];x+=5.5}}}}else if(s.k_a_acc.length){var acc,last_acc=s.k_a_acc[0].acc,last_shift=100,s2={st:st,nhd:0,notes:[{}]}
1123 for(i=0;i<s.k_a_acc.length;i++){acc=s.k_a_acc[i];shift=(s.k_y_clef
1125 if(i!=0&&(shift>last_shift+18||shift<last_shift-18))
1141 function draw_rest(s){var s2,i,j,x,y,yb,bx,p_staff=staff_tb[s.st]
1171 set_color(s.notes[0].color);y=s.y;i=5-s.nflags
1172 if(i==7&&y==12&&p_staff.stafflines.length<=2)
1175 xygl(x,y+yb,rest_tb[i])
1176 if(i>=6){j=y/6
1177 switch(i){default:switch(p_staff.stafflines[j+1]){case'|':case'[':break
1180 if(i==9){y-=6;j--}
1189 i=(s.dur_orig/12)>>((5-s.nflags)-j)
1190 while(j-->0){xygl(x,y,(i&(1<<j))?"dot":"dot+")
1251 function draw_basic_note(x,s,m,y_tb){var i,p,yy,dotx,doty,inv,old_color=false,note=s.notes[m],staffb=staff_tb[s.st].y,y=3*(note.pit-18),shhd=note.shhd*stv_g.scale,x_note=x+shhd,y_note=y+staffb
1253 if(note.invis){}else if(s.grace){p="ghd";x_note-=4.5*stv_g.scale}else if(note.map&&note.map[0]){i=s.head;p=note.map[0][i]
1256 i=p.indexOf('/')
1257 if(i>=0){if(s.stem>=0)
1258 p=p.slice(0,i)
1260 p=p.slice(i+1)}}else if(s.type==C.CUSTOS){p="custos"}else{switch(head){case C.OVAL:p="HD"
1286 i=(note.dur/12)>>((5-nflags)-dots)
1287 while(dots-->0){xygl(dotx,doty,(i&(1<<dots))?"dot":"dot+")
1294 function draw_note(s,fl){var s2,i,m,y,staffb,slen,c,nflags,x,y,note,y_tb=new Array(s.nhd+1)
1386 function draw_slur(path,not1,sl){var i,k,g,x1,y1,x2,y2,height,addy,a,y,z,h,dx,dy,ty=sl.ty,dir=(ty&0x07)==C.SL_ABOVE?1:-1,n=path.length,i1=0,i2=n-1,k1=path[0],k2=path[i2]
1389 for(i=1;i<n;i++){k=path[i]
1452 for(i=1;i<i2;i++){k=path[i]
1498 for(i=0;i<i2;i++){k=path[i]
1506 if(i==i2-1){dx=x2
1508 dx-=5;if(i)
1509 y-=height/3}else{dx=path[i+1].x}
1510 if(i!=0)
1515 function draw_slurs(s,last){var gr1,i,m,note,sls,nsls
1516 function draw_sls(s,sl,snote){var k,v,i,dir,path=[],enote=sl.note,s2=enote.s
1556 for(i=1;i<path.length-1;i++){s=path[i]
1571 for(i=0;i<sls.length;i++){if(!draw_sls(s,sls[i]))
1572 nsls.push(sls[i])}
1579 for(i=0;i<sls.length;i++){if(!draw_sls(s,sls[i],note))
1580 nsls.push(sls[i])}
1779 function draw_ties(k1,k2,job){var k3,i,j,not1,not3,time,pit,pit2,mhead3=[],nh1=k1.nhd
1780 if(job==2){for(i=0;i<=nh1;i++){not1=k1.notes[i]
1786 for(i=0;i<=nh1;i++){not1=k1.notes[i]
1805 for(i=mhead3.length;--i>=0;){not1=mhead3[i]
1813 mhead3.splice(i,1)
1870 function draw_sym_near(){var p_voice,p_st,s,v,st,y,g,w,i,st,dx,top,bot,ymn,output_sav=output;function set_yab(s1,s2){var y,k=realwidth/YSTEP,i=(s1.x/k)|0,j=(s2.x/k)|0,a=(s1.ys-s2.ys)/(s1.xs-s2.xs),b=s1.ys-s1.xs*a,p_st=staff_tb[s1.st]
1872 if(s1.stem>0){while(i<=j){y=k*i+b
1873 if(p_st.top[i]<y)
1874 p_st.top[i]=y
1875 i++}}else{while(i<=j){y=k*i+b
1876 if(p_st.bot[i]>y)
1877 p_st.bot[i]=y
1878 i++}}}
1883 for(i=0;i<YSTEP;i++){p_st.top[i]=0
1884 p_st.bot[i]=24}}
1932 for(i=0;i<YSTEP;i++){if(top>p_st.top[i])
1933 p_st.top[i]=top
1934 if(bot<p_st.bot[i])
1935 p_st.bot[i]=bot}}
1986 function set_staff(){var s,i,st,prev_staff,v,y,staffsep,dy,maxsep,mbot,val,p_voice,p_staff,sy=cur_sy
1994 for(i=0;i<YSTEP;i++){val=p_staff.top[i]
2010 if(p_staff.staffscale==staff_tb[prev_staff].staffscale){for(i=0;i<YSTEP;i++){val=p_staff.top[i]-
2011 staff_tb[prev_staff].bot[i]
2014 dy*=p_staff.staffscale}else{for(i=0;i<YSTEP;i++){val=p_staff.top[i]*p_staff.staffscale
2015 -staff_tb[prev_staff].bot[i]*staff_tb[prev_staff].staffscale
2027 for(i=0;i<YSTEP;i++){val=staff_tb[prev_staff].bot[i]
2051 function draw_staff(st,x1,x2){var w,ws,i,dy,ty,y=0,ln="",stafflines=staff_tb[st].stafflines,l=stafflines.length
2057 for(i=0;i<l;i++,y-=6){if(stafflines[i]=='.')
2060 for(;i<l;i++,y-=6,dy-=6){switch(stafflines[i]){case'.':case'-':continue
2064 ln+='"/>\n';ty=stafflines[i]
2070 i='stdef'+cfmt.fullsvg;if(ln.indexOf('<path',1)<0)
2071 glyphs[i]=ln.replace('path','path id="'+i+'"')
2073 glyphs[i]='<g id="'+i+'">\n'+ln+'\n</g>';xygl(x1,y,i)
2076 function draw_bar(s,bot,h){var i,s2,yb,w,bar_type=s.bar_type,st=s.st,p_staff=staff_tb[st],x=s.x
2088 for(i=bar_type.length;--i>=0;){switch(bar_type[i]){case"|":if(s.bar_dotted){set_sscale(-1);w=(5*p_staff.staffscale).toFixed(1);out_XYAB('<path class="bW" stroke-dasharray="A,A" d="MX Yv-G"/>\n',x,bot,w,h)}else if(s.color){out_XYAB('<path class="bW" d="MX Yv-F"/>\n',x,bot,h)}else{sb.push(new Float32Array([x,bot,h]))}
2099 function out_bars(){var i,b,bx,l=ba.length
2103 for(i=0;i<l;i++){b=ba[i];draw_bar(b[0],b[1],b[2])}
2109 for(i=0;i<l;i++){b=sb[i];out_XYAB('MX Yv-F',b[0],b[1],b[2])}
2113 for(i=0;i<l;i++){b=thb[i];out_XYAB('MX Yv-F',b[0],b[1],b[2])}
2147 for(var i=0;i<voice_tb.length;i++){if(cur_sy.voices[i]&&cur_sy.voices[i].range>0)
2231 function hlud(hla,d){var hl,hll,i,xp,dx2,x2,n=hla.length
2234 for(i=0;i<n;i++){hll=hla[i]
2240 sy(p_st.y+d*i).toFixed(1)
2265 function set_tie_dir(s){var i,ntie,dir,sec,pit,ty
2269 for(i=0;i<=s.nhd;i++){ty=s.notes[i].tie_ty
2272 s.notes[i].tie_ty=(ty&C.SL_DOTTED)|dir}
2275 for(i=0;i<=s.nhd;i++){if(s.notes[i].tie_ty){ntie++
2276 if(pit<128&&s.notes[i].pit<=pit+1)
2277 sec++;pit=s.notes[i].pit}}
2279 for(i=0;i<=s.nhd;i++){ty=s.notes[i].tie_ty
2281 s.notes[i].tie_ty=(ty&C.SL_DOTTED)|dir
2285 for(i=0;i<=s.nhd;i++){ty=s.notes[i].tie_ty
2288 if(ntie==0){if(s.notes[i].pit>=22)
2291 s.notes[i].tie_ty=(ty&C.SL_DOTTED)|dir
2296 for(i=0;i<=s.nhd;i++){ty=s.notes[i].tie_ty
2300 s.notes[i].tie_ty=(ty&C.SL_DOTTED)|dir
2305 for(i=0;i<=s.nhd;i++){if(s.notes[i].tie_ty){if(pit<128&&s.notes[i].pit<=pit+1){ntie=i
2307 pit=s.notes[i].pit}}
2309 for(i=0;i<=s.nhd;i++){ty=s.notes[i].tie_ty
2312 if(ntie==i)
2315 s.notes[i].tie_ty=(ty&C.SL_DOTTED)|dir}}}
2757 function get_bool(param){return!param||!/^(0|n|f)/i.test(param)}
2758 function get_font_scale(param){var i,font,a=info_split(param)
2834 for(var i=0;i<tmp.length;i++){var infoname=tmp[i]
2838 tmp.splice(i,1)
2840 tmp[i]=param
2851 function set_writefields(parm){var c,i,a=parm.split(/\s+/)
2852 if(get_bool(a[1])){for(i=0;i<a[0].length;i++){c=a[0][i]
2854 cfmt.writefields+=c}}else{for(i=0;i<a[0].length;i++){c=a[0][i]
2871 Abc.prototype.set_format=function(cmd,param){var f,f2,v,i
2927 for(i=0;i<3;i++)
2928 if(isNaN(Number(v[i]))){syntax(1,errs.bad_val,"%%gracespace")
2930 for(i=0;i<3;i++)
2931 cfmt[cmd][i]=Number(v[i])
2942 i=5;f2=space_tb[i]
2943 for(;--i>=0;){f2/=f;space_tb[i]=f2}
2944 i=5;f2=space_tb[i]
2945 for(;++i<space_tb.length;){f2*=f;space_tb[i]=f2}
3037 var abc_utf={"=D":"Đ","=H":"Ħ","=T":"Ŧ","=d":"đ","=h":"ħ","=t":"ŧ","/O":"Ø","/o":"ø","/L":"Ł","/l":"ł","vL":"Ľ","vl":"ľ","vd":"ď",".i":"ı","AA":"Å","aa":"å","AE":"Æ","ae":"æ","DH":"Ð","dh":"ð","OE":"Œ","oe":"œ","ss":"ß","TH":"Þ","th":"þ"}
3039 function cnv_escape(src,flag){var c,c2,dst="",i,j=0
3040 while(1){i=src.indexOf('\\',j)
3041 if(i<0)
3043 dst+=src.slice(j,i);c=src[++i]
3046 switch(c){case'0':case'2':if(src[i+1]!='0')
3048 c2=oct_acc[src[i+2]]
3049 if(c2){dst+=c2;j=i+3
3052 case'u':j=Number("0x"+src.slice(i+1,i+5));if(isNaN(j)||j<0x20){dst+=src[++i]+"\u0306"
3053 j=i+1
3056 if(c=='\\'){i+=4
3059 j=i+5
3061 case't':dst+=' ';j=i+1
3063 case'n':dst+='\n';j=i+1
3065 default:c2=abc_utf[src.slice(i,i+2)]
3066 if(c2){dst+=c2;j=i+2
3068 c2=src[i+1]
3072 j=i+2
3075 j=i+2
3078 j=i+2
3081 j=i+2
3084 j=i+2
3087 j=i+2
3090 j=i+2
3093 j=i+2
3096 j=i+2
3099 j=i+2
3102 j=i+2
3105 j=i+2
3108 j=i+2
3114 j=i+1}
3126 function tosvg(in_fname,file,bol,eof){var i,c,eol,end,select,line0,line1,last_info,opt,text,a,b,s,pscom,txt_add='\n'
3127 function tune_selected(){var re,res,i=file.indexOf('K:',bol)
3128 if(i<0){return false}
3129 i=file.indexOf('\n',i)
3130 if(parse.select.test(file.slice(parse.bol,i)))
3132 re=/\n\w*\n/;re.lastIndex=i;res=re.exec(file)
3140 var i=src.indexOf('%')
3141 if(i==0)
3143 if(i>0)
3178 function tune_filter(){var o,opts,j,pc,h,i=file.indexOf('K:',bol)
3179 i=file.indexOf('\n',i);h=file.slice(parse.bol,i)
3180 for(i in parse.tune_opts){if(!parse.tune_opts.hasOwnProperty(i))
3182 if(!(new RegExp(i)).test(h))
3184 opts=parse.tune_opts[i]
3234 if(a[1].slice(0,5)=='begin'){b=a[1].substr(5);end='\n'+line0+line1+"end"+b;i=file.indexOf(end,eol)
3235 if(i<0){syntax(1,"No $1 after %%$2",end.slice(1),a[1]);parse.eol=eof
3237 self.do_begin_end(b,uncomment(a[2]),file.slice(eol+1,i).replace(new RegExp('^'+line0+line1,'gm'),''));parse.eol=file.indexOf('\n',i+6)
3397 function set_head_shift(s){var i,i1,i2,d,ps,dx,dx_head=dx_tb[s.head],dir=s.stem,n=s.nhd
3405 for(i=i1;i!=i2;i+=dir){d=s.notes[i].pit-ps;ps=s.notes[i].pit
3406 if(!d){if(shift){var new_dx=s.notes[i].shhd=s.notes[i-dir].shhd+dx
3410 if(i+dir!=i2&&ps+dir==s.notes[i+dir].pit){s.notes[i].shhd=-dx
3417 if(shift){s.notes[i].shhd=dx
3421 function acc_shift(notes,dx_head){var i,i1,i2,dx,dx1,dx2,ps,p1,acc,n=notes.length
3422 for(i=n-1;--i>=0;){dx=notes[i].shhd
3425 dx=dx_head-dx;ps=notes[i].pit
3460 for(i=i1;--i>i2;){acc=notes[i].acc
3463 dx=notes[i].shac
3466 ps=notes[i].pit
3467 for(i1=n;--i1>i;){if(!notes[i1].acc)
3475 notes[i].shac=dx}}
3476 function set_acc_shft(){var s,s2,st,i,acc,st,t,dx_head,notes
3485 for(i=0;i<=s2.nhd;i++){if(s2.notes[i].acc){acc=true
3609 function set_w_chs(s){var i,ch,w0,s0,dw,x=0,n=0
3613 for(i=0;i<s.a_gch.length;i++){ch=s.a_gch[i]
3639 Abc.prototype.set_width=function(s){var s2,i,m,xx,w,wlnote,wlw,acc,bar_type,meter,last_acc,n1,n2,esp,tmp
3706 for(i=0;i<bar_type.length;i++){switch(bar_type[i]){case"[":case"]":w+=3
3750 for(i=1;i<n2;i++){acc=s.k_a_acc[i]
3751 if(acc.pit>s.k_a_acc[i-1].pit+6||acc.pit<s.k_a_acc[i-1].pit-6)
3758 for(i=0;i<s.a_meter.length;i++){meter=s.a_meter[i]
3759 switch(meter.top[0]){case'C':case'c':case'o':s.x_meter[i]=wlw+6;wlw+=12
3761 case'.':case'|':s.x_meter[i]=s.x_meter[i-1]
3772 s.x_meter[i]=wlw+w/2
3796 function time2space(s,len){var i,l,space
3802 i=5
3804 i=6
3806 i=7
3808 i=8
3810 i=9}else{if(len>=C.BLEN/8)
3811 i=4
3813 i=3
3815 i=2
3817 i=1
3819 i=0}
3820 l=len-((C.BLEN/16/8)<<i)
3821 space=space_tb[i]
3822 if(l){if(l<0){space=space_tb[0]*len/(C.BLEN/16/8)}else{if(i>=9)
3823 i=8
3824 space+=(space_tb[i+1]-space_tb[i])*l/((C.BLEN/16/8)<<i)}}
3928 function set_repeat(s){var s2,s3,i,j,dur,n=s.repeat_n,k=s.repeat_k,st=s.st,v=s.v
3930 if(n<0){n=-n;i=n
3934 if(--i<=0)
3938 dur=s.time-s3.time;i=k*n
3942 if(--i<=0)
3948 for(j=k;--j>=0;){i=n
3950 i--;s2=s.ts_next
3951 while(i>0){if(s2.st==st){s2.invis=s2.play=true
3955 i--}
3962 i=n
3963 for(s2=s.prev.prev;s2;s2=s2.prev){if(s2.type==C.BAR||s2.time==tsfirst.time){if(--i<=0)
3969 i=k
3971 i=n
3972 for(s2=s;s2;s2=s2.next){if(s2.type==C.BAR){if(--i<=0)
3976 i=k
3977 if(n==2&&i>1){s2=s2.next
3980 s2.repeat_n=n;s2.repeat_k=--i}
4019 function custos_add(s){var p_voice,new_s,i,s2=s
4028 for(i=0;i<s.notes.length;i++){new_s.notes[i]={pit:s2.notes[i].pit,shhd:0,dur:C.BLEN/4}}
4031 function bardiv(so){var s,s1,s2,t1,t2,i
4035 t2='[|'+t[3]}else{i=(t[2].length/2)|0
4036 t1=t[1]+'|'+t[2].slice(0,i)
4037 t2=t[2].slice(i)+'|'+t[3]}}
4244 function cut_tune(lwidth,indent){var s2,i,s=tsfirst
4245 if(indent){i=set_indent()
4246 lwidth-=i;indent-=i}
4247 i=get_ck_width();lwidth-=i[0];indent+=i[1]
4250 if(cfmt.barsperstaff){i=cfmt.barsperstaff;for(s2=s;s2;s2=s2.ts_next){if(s2.type!=C.BAR||!s2.bar_num||--i>0)
4256 i=cfmt.barsperstaff}}
4579 Abc.prototype.set_stem_dir=function(){var t,u,i,st,rvoice,v,v_st,st_v,vobj,v_st_tb,st_v_tb=[],s=tsfirst,sy=cur_sy,nst=sy.nstaff
4600 st_v=st_v_tb[st];rvoice=sy.voices[v].range;for(i=st_v.length;--i>=0;){vobj=st_v[i]
4603 if(i<0){vobj={v:rvoice,ymx:0,ymn:24}
4604 for(i=0;i<st_v.length;i++){if(rvoice<st_v[i].v){st_v.splice(i,0,vobj)
4606 if(i==st_v.length)
4637 for(i=st_v.length;--i>=0;){if(st_v[i].v==rvoice)
4639 if(i<0)
4641 if(i==st_v.length-1){s.multi=-1}else{s.multi=1
4642 if(i!=0&&i+2==st_v.length){if(st_v[i].ymn-cfmt.stemheight>=st_v[i+1].ymx)
4900 function set_indent(first){var st,v,w,p_voice,p,i,j,font,nv=voice_tb.length,maxw=0
4909 i=0
4910 while(1){j=p.indexOf("\n",i)
4912 w=strwh(p.slice(i))
4914 w=strwh(p.slice(i,j))
4920 i=j+1}}
5051 function set_left(s){var m,i,j,shift,w_base=w_note[s.head],w=w_base,left=[]
5052 for(i=0;i<MAXPIT;i++)
5054 if(s.nflags>-2){if(s.stem>0){w=-w;i=s.notes[0].pit*2;j=(Math.ceil((s.ymx-2)/3)+18)*2}else{i=(Math.ceil((s.ymn+2)/3)+18)*2;j=s.notes[s.nhd].pit*2}
5055 if(i<0)
5056 i=0
5059 while(i<=j)
5060 left[i++]=w}
5061 shift=s.notes[s.stem>0?0:s.nhd].shhd;for(m=0;m<=s.nhd;m++){w=-s.notes[m].shhd+w_base+shift;i=s.notes[m].pit*2
5062 if(i<0)
5063 i=0
5064 else if(i>=MAXPIT-1)
5065 i=MAXPIT-2
5066 if(w>left[i])
5067 left[i]=w
5070 if(w>left[i-1])
5071 left[i-1]=w
5072 if(w>left[i+1])
5073 left[i+1]=w}
5075 function set_right(s){var m,i,j,k,shift,w_base=w_note[s.head],w=w_base,flags=s.nflags>0&&s.beam_st&&s.beam_end,right=[]
5076 for(i=0;i<MAXPIT;i++)
5078 if(s.nflags>-2){if(s.stem<0){w=-w;i=(Math.ceil((s.ymn+2)/3)+18)*2;j=s.notes[s.nhd].pit*2;k=i+4}else{i=s.notes[0].pit*2;j=(Math.ceil((s.ymx-2)/3)+18)*2}
5079 if(i<0)
5080 i=0
5083 while(i<j)
5084 right[i++]=w}
5086 i=s.notes[s.nhd].pit*2
5088 i=s.notes[0].pit*2;i+=4
5089 if(i<0)
5090 i=0
5091 for(;i<MAXPIT&&i<=j-4;i++)
5092 right[i]=11}else{i=k
5093 if(i<0)
5094 i=0
5095 for(;i<MAXPIT&&i<=s.notes[0].pit*2-4;i++)
5096 right[i]=3.5}}
5098 for(m=0;m<=s.nhd;m++){w=s.notes[m].shhd+w_base-shift;i=s.notes[m].pit*2
5099 if(i<0)
5100 i=0
5101 else if(i>=MAXPIT-1)
5102 i=MAXPIT-2
5103 if(w>right[i])
5104 right[i]=w
5107 if(w>right[i-1])
5108 right[i-1]=w
5109 if(w>right[i+1])
5110 right[i+1]=w}
5112 function set_overlap(){var s,s1,s2,s3,i,i1,i2,m,sd,t,dp,d,d2,dr,dr2,dx,left1,right1,left2,right2,right3,pl,pr,sy=cur_sy
5147 for(i=0;i<MAXPIT;i++){if(right3[i]>right1[i])
5148 right1[i]=right3[i]}}else{s3=null}
5150 for(i=0;i<MAXPIT;i++){if(left2[i]+right1[i]>d)
5151 d=left2[i]+right1[i]}
5156 for(i=0;i<MAXPIT;i++){if(right3[i]>left1[i])
5157 left1[i]=right3[i]}}
5159 for(i=0;i<MAXPIT;i++){if(left1[i]+right2[i]>d2)
5160 d2=left1[i]+right2[i]
5161 if(right2[i]>dr2)
5162 dr2=right2[i]
5163 if(right1[i]>dr)
5164 dr=right1[i]}
5210 3;if(!sd){d2=-100;for(i1=0;i1<=s1.nhd;i1++){i=s1.notes[i1].pit
5211 if(!(i&1)){if(!s1.dot_low)
5212 i++
5214 i--}
5215 i*=2
5216 if(i<1)
5217 i=1
5218 else if(i>=MAXPIT-1)
5219 i=MAXPIT-2
5220 if(pl[i]>d2)
5221 d2=pl[i]
5222 if(pl[i-1]+1>d2)
5223 d2=pl[i-1]+1
5224 if(pl[i+1]+1>d2)
5225 d2=pl[i+1]+1}
5228 for(i1=0;i1<=s1.nhd;i1++){i=s1.notes[i1].pit
5229 if(!(i&1)){if(!s1.dot_low)
5230 i++
5232 i--}
5233 i*=2
5234 if(i<1)
5235 i=1
5236 else if(i>=MAXPIT-1)
5237 i=MAXPIT-2
5238 if(pr[i]>d2)
5239 d2=pr[i]
5240 if(pr[i-1]+1>d2)
5241 d2=pr[i-1]=1
5242 if(pr[i+1]+1>d2)
5243 d2=pr[i+1]+1}
5356 function set_brace(){var st,i,empty_fl,n=sy.staves.length
5359 empty_fl=0;i=st
5364 if(empty_fl==3){while(i<=st){non_empty[i]=true;non_empty_gl[i++]=true}}}}
5365 function set_top_bot(){var st,p_staff,i,j,l
5372 for(i=0;i<l-1;i++){switch(p_staff.stafflines[i]){case'.':case'-':continue}
5374 p_staff.botline=p_staff.botbar=i*6
5375 if(i>=l-2){if(p_staff.stafflines[i]!='.'){p_staff.botbar-=6;p_staff.topbar+=6}else{p_staff.botbar-=12;p_staff.topbar+=12
5377 p_staff.hll=17+i;p_staff.hlmap=new Int8Array(new Array((l-i+1)*2))
5378 for(j=1;i<l;i++,j+=2){switch(p_staff.stafflines[i]){case'|':case'[':p_staff.hlmap[j-1]=1;p_staff.hlmap[j]=1;p_staff.hlmap[j+1]=1
5541 function new_clef(clef_def){var s={type:C.CLEF,clef_line:2,clef_type:"t",v:curvoice.v,p_v:curvoice,time:curvoice.time,dur:0},i=1
5543 switch(clef_def[0]){case'"':i=clef_def.indexOf('"',1);s.clef_name=clef_def.slice(1,i);i++
5545 case'a':if(clef_def[1]=='u'){s.clef_type="a";s.clef_auto=true;i=4
5547 i=4
5550 case'b':i=4
5553 case'n':i=4
5558 i=6
5560 case'p':i=4
5568 if(clef_def[i]>='1'&&clef_def[i]<='9'){s.clef_line=Number(clef_def[i]);i++}
5569 if(clef_def[i+1]!='8')
5571 switch(clef_def[i]){case'^':s.clef_oct_transp=true
5582 function get_interval(param,score){var i,val,tmp,note,pit
5585 for(i=0;i<2;i++){note=tmp.buffer[tmp.index]?parse_acc_pit(tmp):null
5586 if(!note){if(i!=1||!score){syntax(1,errs.bad_transp)
5588 pit[i]=242}else{pit[i]=abc2svg.pab40(note.pit,note.acc)}}
5590 function set_linebreak(param){var i,item
5591 for(i=0;i<128;i++){if(char_tb[i]=="\n")
5592 char_tb[i]=nil}
5594 for(i=0;i<param.length;i++){item=param[i]
5613 switch(char_tb[k][0]){case'0':case'd':case'i':case' ':break
5620 case"!ignore!":v="i"
5780 function new_key(param){var i,clef,key_end,c,tmp,exp,sf="FCGDAEB".indexOf(param[0])-1,mode=0,s={type:C.KEY,dur:0}
5781 function set_k_acc(s,sf){var i,j,n,nacc,p_acc,accs=[],pits=[]
5784 for(i=0;i<n;i++){p_acc=s.k_a_acc[i]
5789 for(i=0;i<nacc;i++){p_acc=s.k_a_acc[i]
5791 p_acc=s.k_a_acc[i]={}
5792 p_acc.acc=accs[i];p_acc.pit=pits[i]}}
5793 set_ref(s);i=1
5797 s.k_bagpipe=param[1];sf=param[1]=='P'?0:2;i++
5803 case'n':if(param.indexOf("none")==0){sf=0;s.k_none=true;i=4
5808 if(!key_end){switch(param[i]){case'#':sf+=7;i++;break
5809 case'b':sf-=7;i++;break}
5810 param=param.slice(i).trim()
5843 i=s.k_a_acc.length
5844 while(--i>=0){note=s.k_a_acc[i]
5849 function new_meter(p){var s={type:C.METER,dur:0,a_meter:[]},meter={},val,v,m1=0,m2,i=0,j,wmeasure,in_parenth;set_ref(s)
5850 if(p.indexOf("none")==0){i=4;wmeasure=1}else{wmeasure=0
5851 while(i<p.length){if(p[i]=='=')
5853 switch(p[i]){case'C':meter.top=p[i++]
5856 case'c':case'o':meter.top=p[i++]
5857 if(!m1){if(p[i-1]=='c'){m1=2;m2=4}else{m1=3;m2=4}
5858 switch(p[i]){case'|':m2/=2
5863 case'.':case'|':m1=0;meter.top=p[i++]
5865 case'(':if(p[i+1]=='('){in_parenth=true;meter.top=p[i++];s.a_meter.push(meter);meter={}}
5866 j=i+1
5870 if(p[j]==')'&&p[j+1]=='/'){i++
5872 case')':in_parenth=p[i]=='(';meter.top=p[i++];s.a_meter.push(meter);meter={}
5874 default:if(p[i]<='0'||p[i]>'9'){syntax(1,"Bad char '$1' in M:",p[i])
5876 m2=2;meter.top=p[i++]
5877 for(;;){while(p[i]>='0'&&p[i]<='9')
5878 meter.top+=p[i++]
5879 if(p[i]==')'){if(p[i+1]!='/')
5881 i++}
5882 if(p[i]=='/'){i++;if(p[i]<='0'||p[i]>'9'){syntax(1,"Bad char '$1' in M:",p[i])
5884 meter.bot=p[i++]
5885 while(p[i]>='0'&&p[i]<='9')
5886 meter.bot+=p[i++]
5888 if(p[i]!=' '&&p[i]!='+')
5890 if(i>=p.length||p[i+1]=='(')
5892 meter.top+=p[i++]}
5898 while(p[i]==' ')
5899 i++
5900 if(p[i]=='+'){meter.top=p[i++];s.a_meter.push(meter);meter={}}}}
5901 if(p[i]=='='){val=p.substring(++i).match(/^(\d+)\/(\d+)$/)
5902 if(!val){syntax(1,"Bad duration '$1' in M:",p.substring(i))
5915 function new_tempo(text){var i,c,d,nd,txt=text,s={type:C.TEMPO,dur:0}
5930 if(text.slice(-1)=='"'){i=text.indexOf('"')
5931 s.tempo_str2=text.slice(i+1,-1)
5932 text=text.slice(0,i).replace(/\s+$/,'')}
5933 i=text.indexOf('=')
5934 if(i>0){d=text.slice(0,i).split(/\s+/)
5935 text=text.slice(i+1).replace(/^\s+/,'')
5947 i=text.indexOf('/')
5948 if(i>0){nd=get_nd(text)
6017 function adjust_dur(s){var s2,time,auto_time,i,fac;s2=curvoice.last_sym
6041 for(i=0;i<=s2.nhd;i++)
6042 s2.notes[i].dur*=fac}
6264 function slur_add(enote,e_is_note){var i,s,sl,snote,s_is_note
6265 for(i=curvoice.sls.length;--i>=0;){sl=curvoice.sls[i]
6275 curvoice.sls.splice(i,1)
6314 Abc.prototype.new_note=function(grace,sls){var note,s,in_chord,c,dcn,type,tie_s,acc_tie,i,n,s2,nd,res,num,dur,apit,sl1=[],line=parse.line,a_dcn_sav=a_dcn
6318 if(tie_s.type!=C.GRACE){for(i=0;i<=tie_s.nhd;i++){if(!tie_s.notes[i].tie_ty)
6320 if(tie_s.notes[i].midi==mid){tie_s.notes[i].tie_n=note
6366 i=c.charCodeAt(0);if(i>=128){syntax(1,errs.not_ascii)
6368 type=char_tb[i]
6390 i=note.acc
6391 if(i){curvoice.acc[apit]=i}else{i=curvoice.acc[apit]
6392 if(!i&&acc_tie)
6393 i=acc_tie[apit]
6394 if(!i)
6395 i=curvoice.ckey.k_map[apit%7]||0}
6396 note.midi=pit2mid(apit,i)
6401 set_map(note,i)
6402 if(sl1.length){while(1){i=sl1.shift()
6403 if(!i)
6405 curvoice.sls.push({is_note:true,note:note,ty:i})}
6430 for(i=0;i<=s.nhd;i++){note=s.notes[i];note.dur=note.dur*nd[0]/nd[1]}
6432 if(sls.length){while(1){i=sls.shift()
6433 if(!i)
6436 curvoice.sls.push({note:s.notes[0],ty:i})
6450 for(i=0;i<=s.nhd;i++)
6451 s.notes[i].dur=s.notes[i].dur*n/num;s2.dur/=num;s2.dur_orig/=num
6452 for(i=0;i<=s2.nhd;i++)
6453 s2.notes[i].dur/=num}else{num=-num;n=num*2-1;s.dur/=num;s.dur_orig/=num
6454 for(i=0;i<=s.nhd;i++)
6455 s.notes[i].dur/=num;s2.dur=s2.dur*n/num;s2.dur_orig=s2.dur_orig*n/num
6456 for(i=0;i<=s2.nhd;i++)
6457 s2.notes[i].dur=s2.notes[i].dur*n/num}
6460 for(i=0;i<=s.nhd;i++)
6461 s.notes[i].dur/=div;s.dur/=div;s.dur_orig/=div
6467 for(i=0;i<=s.nhd;i++){s.notes[i].tie_ty=ty
6468 s.notes[i].s=s}
6473 for(i=0;i<=s.nhd;i++){note=s.notes[i]
6521 var nil="0",char_tb=[nil,nil,nil,nil,nil,nil,nil,nil,nil," ","\n",nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil," ","!",'"',"i","\n",nil,"&",nil,"(",")","i",nil,nil,"-","!dot!",nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,nil,"|","i","<","n","<","i","i","n","n","n","n","n","n","n","!fermata!","d","d","d","!emphasis!","!lowermordent!","d","!coda!","!uppermordent!","d","d","!segno!","!trill!","d","d","d","n","d","n","[","\\","|","n","n","i","n","n","n","n","n","n","n","d","d","d","d","d","d","d","d","d","d","d","d","d","!upbow!","!downbow!","d","n","n","n","{","|","}","!gmark!",nil,],ottava={"8va(":1,"8va)":0,"15ma(":2,"15ma)":0,"8vb(":-1,"8vb)":0,"15mb(":-2,"15mb)":0}
6523 function check_mac(m){var i,j,b
6524 for(i=1,j=line.index+1;i<m.length;i++,j++){if(m[i]==line.buffer[j])
6526 if(m[i]!='n')
6539 function expand(m,b){var c,i,r="",n=m.length
6540 for(i=0;i<n;i++){c=m[i]
6571 function parse_seq(in_mac){var c,idx,type,k,s,dcn,i,n,text,note
6652 if(type.length>1){dcn=type.slice(1,-1)}else{dcn="";i=line.index
6659 if(!c){line.index=i;syntax(1,"No end of decoration")
6676 i=line.buffer.indexOf(']',line.index+1)
6677 if(i<0){syntax(1,"Lack of ']'")
6679 text=line.buffer.slice(line.index+3,i).trim()
6680 parse.istart=parse.bol+line.index;parse.iend=parse.bol+ ++i;line.index=0;do_info(c_next,text);line.index=i
6696 i=k.ro
6703 k.r-=i
6715 case'i':break
6735 if(!s.prev&&!curvoice.ckey.k_bagpipe){for(i=0;i<=s.nhd;i++)
6736 s.notes[i].dur*=2;s.dur*=2;s.dur_orig*=2}
6781 function cwid(c){var i=c.charCodeAt(0)
6782 if(i>=0x80){if(i>=0x300&&i<0x370)
6783 return 0;i=0x61}
6784 return cw_tb[i]}
6791 var c,font=gene.curfont,h=font.size,w=0,n=str.length,i0=0,i=0
6802 while(1){i=str.indexOf('$',i)
6803 if(i<0)
6805 c=str[i+1]
6806 if(c=='0'){font=gene.deffont}else if(c>='1'&&c<='9'){font=get_font("u"+c)}else{i++
6808 el.innerHTML=str.slice(i0,i);w+=el.clientWidth
6810 h=font.size;el.style.font=style_font(font).slice(5);i+=2;i0=i}
6812 return[w,h]}})():function(str){var font=gene.curfont,swfac=font.swfac,h=font.size,w=0,i,j,c,n=str.length
6813 for(i=0;i<n;i++){c=str[i]
6814 switch(c){case'$':c=str[i+1]
6817 i++;swfac=font.swfac
6821 case'&':j=str.indexOf(';',i)
6822 if(j>0&&j-i<10){i=j;c='a'}
6885 function trim_title(title,is_subtitle){var i
6886 if(cfmt.titletrim){i=title.lastIndexOf(", ")
6887 if(i<0||title[i+2]<'A'||title[i+2]>'Z'){i=0}else if(cfmt.titletrim==true){if(i<title.length-7||title.indexOf(' ',i+3)>=0)
6888 i=0}else{if(i<title.length-cfmt.titletrim-2)
6889 i=0}
6890 if(i)
6891 title=title.slice(i+2).trim()+' '+title.slice(0,i)}
6922 set_page();var wh,font,o,strlw=get_lwidth(),sz=gene.curfont.size,lineskip=sz*cfmt.lineskipfac,parskip=sz*cfmt.parskipfac,i,j,x,words,w,k,ww,str;switch(action){default:font=gene.curfont
6927 while(1){i=text.indexOf('\n',j)
6928 if(i<0){str=str2svg(text.slice(j))
6932 if(i==j){vskip(parskip);blk_flush()
6934 while(text[i+1]=='\n'){vskip(lineskip);i++}
6935 if(i==text.length)
6936 break}else{str=str2svg(text.slice(j,i))
6939 j=i+1}
6943 while(1){i=text.indexOf('\n\n',j)
6944 if(i<0)
6947 words=text.slice(j,i);words=words.split(/\s+/);w=k=0
6959 if(i<0)
6961 while(text[i+2]=='\n'){vskip(lineskip);i++}
6962 if(i==text.length)
6964 use_font(gene.curfont);j=i+2}
6966 function put_words(words){var p,i,j,nw,w,lw,x1,x2,i1,i2,do_flush,maxn=0,n=1
6967 function put_wline(p,x){var i=0,j,k
6968 if(p[i]=='$'&&p[i+1]>='0'&&p[i+1]<='9')
6969 i+=2;k=0;j=i
6970 if((p[i]>='0'&&p[i]<='9')||p[i+1]=='.'){while(i<p.length){i++
6971 if(p[i]==' '||p[i-1]==':'||p[i-1]=='.')
6973 k=i
6974 while(p[i]==' ')
6975 i++}
6978 if(i<p.length)
6979 xy_str(x+5,0,p.slice(i),'l')}
6985 for(i=0;i<nw;i++){p=words[i]
6986 if(!p){while(i+1<nw&&!words[i+1])
6987 i++
6989 i1=i}}
6994 for(i=0;i<nw;i++){p=words[i]
6996 i1=i
6997 while(i+1<nw&&!words[i+1])
6998 i++
6999 if(j<=0){i2=i+1
7005 for(i=0;i<i1||i2<nw;i++,i2++){vskip(cfmt.lineskipfac*gene.curfont.size)
7006 if(i<i1){p=words[i]
7012 if(p){put_wline(p,x2)}else{if(--n==0){if(i<i1){n++}else if(i2<nw-1){x2=w-lw/2+10
7014 if(!words[i+1]&&!words[i2+1]){if(do_flush){svg_flush()
7016 function put_history(){var i,j,c,str,font,h,w,wh,head,names=cfmt.infoname.split("\n"),n=names.length
7017 for(i=0;i<n;i++){c=names[i][0]
7024 head=names[i].slice(2)
7031 var fmt="",p=cfmt.titleformat,j=0,i=0
7032 while(1){while(p[i]==' ')
7033 i++
7034 c=p[i++]
7038 c=p[i++]
7043 c=p[i++]
7046 c=p[i++]
7047 break}}else{switch(p[i]){case'-':align='l'
7048 i++
7051 i++
7053 case'0':i++
7061 var ya={l:cfmt.titlespace,c:cfmt.titlespace,r:cfmt.titlespace},xa={l:0,c:lwidth*.5,r:lwidth},yb={},str;p=fmt;i=0
7062 while(1){yb.l=yb.c=yb.r=y=0;j=i
7080 while(1){align=p[i++]
7083 c=p[i++]
7087 if(p[i]=='+'){info_nb[c]--;i++
7088 c=p[i++];if(info_val[c].length){if(str)
7115 if(i>=p.length)
7119 function write_heading(){var i,j,area,composer,origin,rhythm,down1,down2,lwidth=get_lwidth()
7123 if(info.T&&cfmt.writefields.indexOf('T')>=0){i=0
7124 while(1){j=info.T.indexOf("\n",i)
7125 if(j<0){write_title(info.T.substring(i),i!=0)
7127 write_title(info.T.slice(i,j),i!=0);i=j+1}}
7141 vskip(down1-down2);i=0
7144 j=composer.indexOf("\n",i)
7147 if(j<0){put_inf2r(xcomp,0,composer?composer.substring(i):null,origin,align)
7149 xy_str(xcomp,0,composer.slice(i,j),align);down1+=gene.curfont.size;i=j+1}
7172 function def_use(gl){var i,j,g
7179 while(1){i=g.indexOf('xlink:href="#',j)
7180 if(i<0)
7182 i+=13;j=g.indexOf('"',i);def_use(g.slice(i,j))}
7184 function defs_add(text){var i,j,gl,tag,is,ie=0
7188 i=text.indexOf('id="',is)
7189 if(i<0)
7191 i+=4;j=text.indexOf('"',i);if(j<0)
7193 gl=text.slice(i,j);ie=text.indexOf('>',j);if(ie<0)
7195 if(text[ie-1]=='/'){ie++}else{i=text.indexOf(' ',is);if(i<0)
7197 tag=text.slice(is+1,i);ie=text.indexOf('</'+tag+'>',ie)
7483 function tempo_build(s){var i,j,bx,p,wh,dy,w=0,str=[]
7492 for(i=0;i<s.tempo_notes.length;i++){p=tempo_note(s,s.tempo_notes[i])
7541 var i,font,head='<svg xmlns="http://www.w3.org/2000/svg" version="1.1"\n\
7570 for(i=0;i<font_tb.length;i++)
7571 font_tb[i].used=false}else{style='';fulldefs=''}
7579 function vfilt(opts,opt){var i,sel=new RegExp(opt)
7580 if(sel.test(curvoice.id)||sel.test(curvoice.nm)){for(i=0;i<opts.length;i++)
7581 self.do_pscom(opts[i])}}
7663 function set_feathered_beam(s1){var s,s2,t,d,b,i,a,d=s1.dur,n=1
7670 if(s1.feathered_beam>0){for(s=s1,i=n-1;s!=s2;s=s.next,i--){d=((a*i)|0)+b;s.dur=d;s.time=t;t+=d}}else{for(s=s1,i=0;s!=s2;s=s.next,i++){d=((a*i)|0)+b;s.dur=d;s.time=t;t+=d}}
7784 function not2abc(pit,acc){var i,nn=''
7785 if(acc&&acc!=3){if(typeof acc=="number"){nn=['__','_','','^','^^'][acc+2]}else{i=acc[0]
7786 if(i>0){nn+='^'}else{nn+='_'
7787 i=-i}
7788 nn+=i+'/'+acc[1]}}
7790 for(i=pit;i>=21;i-=7)
7792 for(i=pit;i<14;i+=7)
7797 var i,note,notes,map,tmp,ns,ty='',a=text.split(/\s+/)
7823 i=0
7827 i++
7829 i++}}
7830 for(;i<a.length;i++){switch(a[i]){case"heads=":if(!a[++i]){syntax(1,not_enough_p)
7832 map[0]=a[i].split(',')
7834 case"print=":case"play=":if(!a[++i]){syntax(1,not_enough_p)
7836 tmp=new scanBuf;tmp.buffer=a[i];note=parse_acc_pit(tmp)
7837 if(a[i-1][1]=='r')
7842 case"color=":if(!a[++i]){syntax(1,not_enough_p)
7844 map[2]=a[i]
7891 function pit_adj(){var i,p_v,s,sk,g,nv=voice_tb.length
7900 for(;s;s=s.next){switch(s.type){case C.GRACE:for(g=s.extra;g;g=g.next){for(i=0;i<=g.nhd;i++)
7901 note_transp(g,sk,g.notes[i])}
7903 case C.NOTE:for(i=0;i<=s.nhd;i++)
7904 note_transp(s,sk,s.notes[i])
8110 Abc.prototype.do_begin_end=function(type,opt,text){var i,j,action,s
8118 while(1){i=text.indexOf('<style',j)
8119 if(i<0)
8121 i=text.indexOf('>',i)
8122 j=text.indexOf('</style>',i)
8125 style+=text.slice(i+1,j).replace(/\s+$/,'')}
8127 while(1){i=text.indexOf('<defs>\n',j)
8128 if(i<0)
8130 j=text.indexOf('</defs>',i)
8133 defs_add(text.slice(i+6,j))}
8184 function acc_same_pitch(s,pit){var i,time=s.time
8195 for(i=0;i<=s.nhd;i++){if(s.notes[i].pit==pit&&s.notes[i].tie_ty)
8196 return s.notes[i].acc}
8198 case C.NOTE:for(i=0;i<=s.nhd;i++){if(s.notes[i].pit==pit)
8199 return s.notes[i].acc}
8202 function get_staves(cmd,parm){var s,p_voice,p_voice2,i,flags,v,vid,st,range,a_vf=parse_staves(parm)
8223 for(i=0;i<a_vf.length;i++){vid=a_vf[i][0];p_voice=new_voice(vid);p_voice.time=maxtime;v=p_voice.v
8224 a_vf[i][0]=p_voice;while(1){par_sy.voices[v]={}
8231 if(cmd[1]=='t'){for(i=0;i<a_vf.length;i++){flags=a_vf[i][1]
8236 if(a_vf[i+1][1]!=0)
8238 if((flags&OPEN_PARENTH)||(a_vf[i+2][1]&OPEN_PARENTH))
8240 if(a_vf[i+2][1]&(CLOSE_BRACE|CLOSE_BRACE2)){a_vf[i+1][1]|=FL_VOICE}else if(a_vf[i+2][1]==0&&(a_vf[i+3][1]&(CLOSE_BRACE|CLOSE_BRACE2))){a_vf[i][1]|=OPEN_PARENTH;a_vf[i+1][1]|=CLOSE_PARENTH;a_vf[i+2][1]|=OPEN_PARENTH;a_vf[i+3][1]|=CLOSE_PARENTH}}}
8242 for(i=0;i<a_vf.length;i++){flags=a_vf[i][1]
8243 if((flags&(OPEN_PARENTH|CLOSE_PARENTH))==(OPEN_PARENTH|CLOSE_PARENTH)){flags&=~(OPEN_PARENTH|CLOSE_PARENTH);a_vf[i][1]=flags}
8244 p_voice=a_vf[i][0]
8249 while(i<a_vf.length-1){p_voice=a_vf[++i][0];v=p_voice.v
8250 if(a_vf[i][1]&MASTER_VOICE){p_voice2.second=true
8253 if(a_vf[i][1]&CLOSE_PARENTH)
8255 par_sy.staves[st].flags|=a_vf[i][1]}}
8265 while(p_voice2){i=p_voice2.v
8266 p_voice2.st=p_voice2.cst=par_sy.voices[i].st=st
8390 function do_cloning(){var i,clone=curvoice.clone,vs=clone.vs,a=clone.a,bol=clone.bol,eol=parse.istart,parse_sav=parse,file=parse.file
8394 include++;for(i=0;i<vs.length;i++){parse=Object.create(parse_sav)
8396 get_voice(vs[i],a)
8445 function get_sym(p,cont){var s,c,i,j,d
8455 i=0
8456 while(1){while(p[i]==' '||p[i]=='\t')
8457 i++;c=p[i]
8464 s=s.next;i++
8466 case'!':case'"':j=++i
8467 i=p.indexOf(c,j)
8468 if(i<0){syntax(1,c=='!'?"No end of decoration":"No end of guitar chord");i=p.length
8470 d=p.slice(j-1,i+1)
8490 s=s.next;i++}
8492 function get_lyrics(text,cont){var s,word,p,i,j,ly,dfnt
8506 p=text;i=0
8507 while(1){while(p[i]==' '||p[i]=='\t')
8508 i++
8509 if(!p[i])
8511 j=parse.istart+i+2
8512 switch(p[i]){case'|':while(s&&s.type!=C.BAR)
8516 s=s.next;i++
8524 default:if(p[i]=='\\'&&i==p.length-1){curvoice.lyric_cont=s
8526 word="";while(1){if(!p[i])
8528 switch(p[i]){case'_':case'*':case'|':i--
8530 case'~':word+=' ';i++
8534 case'\\':word+=p[++i];i++
8536 default:word+=p[i++]
8550 s=s.next;i++}
8552 function ly_width(s,wlw){var ly,sz,swfac,align,xx,w,i,j,k,shift,p,a_ly=s.a_ly;align=0
8553 for(i=0;i<a_ly.length;i++){ly=a_ly[i]
8574 for(k=s.next;k;k=k.next){switch(k.type){case C.NOTE:case C.REST:if(!k.a_ly||!k.a_ly[i])
8576 else if(k.a_ly[i].t=="-\n"||k.a_ly[i].t=="_\n")
8590 if(align>0){for(i=0;i<a_ly.length;i++){ly=a_ly[i]
8645 function draw_all_lyrics(){var p_voice,s,v,nly,i,x,y,w,a_ly,ly,lyst_tb=new Array(nstaff+1),nv=voice_tb.length,h_tb=new Array(nv),nly_tb=new Array(nv),above_tb=new Array(nv),rv_tb=new Array(nv),top=0,bot=0,st=-1
8657 for(i=0;i<a_ly.length;i++){ly=a_ly[i]
8667 for(i=0;i<a_ly.length;i++){ly=a_ly[i]
8670 if(!h_tb[v][i]||ly.font.size>h_tb[v][i])
8671 h_tb[v][i]=ly.font.size}}}else{y=y_get(p_voice.st,1,0,realwidth)
8691 i=0
8697 if(above_tb[v]){rv_tb[i++]=v
8702 while(--i>=0){v=rv_tb[i];p_voice=voice_tb[v];st=p_voice.st;set_dscale(st,true);lyst_tb[st].top=draw_lyrics(p_voice,nly_tb[v],h_tb[v],lyst_tb[st].top,-1)}
8710 function parse_gchord(type){var c,text,gch,x_abs,y_abs,type,i,j,istart,iend,ann_font=get_font("annotation"),h_ann=ann_font.size,line=parse.line
8712 while(1){c=text[i++]
8717 if(type.length>1){text=type.slice(1,-1);iend=istart+1}else{i=++line.index
8718 while(1){j=line.buffer.indexOf('"',i)
8723 i=j+1}
8729 i=0;type='g'
8730 while(1){c=text[i]
8734 switch(c){case'@':type=c;i++;x_abs=get_float()
8737 i--}
8740 case'^':case'_':case'<':case'>':i++;type=c
8748 while(1){c=text[i]
8751 switch(c){case'\\':c=text[++i]
8755 default:gch.text+=c;i++
8757 case'&':while(1){gch.text+=c;c=text[++i]
8761 if(c==';'){i++;gch.text+=c
8765 i++
8772 function gch_tr1(p,transp){var i,o,n,a,ip,b40,csa=p.split('/')
8773 for(i=0;i<csa.length;i++){p=csa[i];o=p.search(/[A-G]/)
8783 csa[i]=p.slice(0,o)+
8788 function gch_transp(s){var gch,i=s.a_gch.length
8789 while(--i>=0){gch=s.a_gch[i]
8828 Abc.prototype.draw_gchord=function(i,s,x,y){var y2,an=s.a_gch[i],h=an.font.size,pad=an.font.pad,w=an.text.wh[0]+pad*2
8868 function draw_all_chsy(){var s,san1,an,i,y,w,pos=curvoice.pos.gch==C.SL_BELOW?-1:1,n_an=0,minmax=new Array(nstaff+1)
8871 function set_an_yu(j){var an,i,s,x,y,w
8875 i=an.length-j-1
8876 an=an[i]
8887 self.draw_gchord(i,s,x,y)}}
8888 function set_an_yl(i){var an,x,y,w
8892 an=an[i]
8902 self.draw_gchord(i,s,x,y)}}
8903 for(i=0;i<=nstaff;i++)
8904 minmax[i]={ydn:staff_tb[i].botbar-3,yup:staff_tb[i].topbar+4}
8910 i=an.length
8911 if(i>n_an)
8912 n_an=i
8913 while(--i>=0){if(an[i].type=='g'){an=an[i]
8924 for(i=0;i<n_an;i++){set_an_yu(i)
8925 set_an_yl(i)}}
8959 var m,i,fn,nreq_i=this.nreq,ls=file.match(/(^|\n)(%%|I:).+?\b/g)
8964 for(i=0;i<ls.length;i++){fn=ls[i].replace(/\n?(%%|I:)/,'')