'); var a = window.open('', '', 'width=700,height=960'); a.document.open("text/html"); a.document.write(html.join("")); a.document.close(); } }var tempo = 99.0,changedpage=0,lb,rb,sco,sco2,pb,pi,bg1,bg2,ic1,ic0,ic2,ic3,ic4,aic0,aic1,aic2,aic3,aic4,l1,l2,pdfadd,ss,styp,sic,pauseon=0,meton=0,speedval=1.0,currpage=1,currpagearryno=1,introbars=1; //no intro 5=4var introdelay=2000,iipage=1,no_pages=1;ss='/school/svg/';var images = new Array();var blankImage = new Image();blankImage.src ="/school/svg/blank3.svg"; var imageCache = {"": blankImage};window.onload = function(){ document.onkeyup = function(event){ var e = (!event) ? window.event : event; var kcode=e.keyCode evenwhen(kcode); };};window.onkeydown = function(event) { var e = (!event) ? window.event : event;var kcode=e.keyCode if (kcode==32){ var elem if (e.srcElement) elem = e.srcElement; else if (e.target) elem = e.target; if (elem.tagName.toLowerCase()=='input' || elem.tagName.toLowerCase()=='textarea') {} else{ if(lb==null){ initiatestuff();playmain(kcode); } else{ callpause2(); } return false; } }};var meton=0,everyplayed2=0,everyplayed=0,carryon=true,play_status=0,totdone,toty,score='piano/carol_of_the_bells';function callpause2(){ var num_listened=readCookie('num_listened') if (num_listened=='undefined'||num_listened=='NaN'){num_listened=0;} if (num_listened>3){ overlay();return ; } else{ callpause();} }styp="main";var page_printed=0;var cp4p; const newPButton = document.querySelector(".icon_printer"); newPButton.addEventListener("click", async () => { if (!showTwoPages){var src=document.getElementById('score').src; printdiv(src,0);return;} if (page_printed==0){ cp4p=currpage; if (currpage<10){ cp4p='00'+cp4p; } else if(currpage<100){cp4p='0'+cp4p;} //var printstring=ss+score+cp4p+'.png'; alert('This will print the left hand page. Press print again to print the right hand page. \n\nTo print entire pieces in one go, and for higher quality printing from our PDF files, please subscribe.'); var src=document.getElementById('score').src; src = src.replace(/(\d{2})\.svg$/, '0$1.svg'); src = src.replace(/svg/g, 'png'); page_printed=1; printdiv(src,0); } else {page_printed=0; //var printstring=ss+score+cp4p+'.png'; alert('This will now print the right hand page. Press print again to print the left hand page, or for longer pieces, navigate to next pages and press print again.'); var src=document.getElementById('score2').src; src = src.replace(/(\d{2})\.svg$/, '0$1.svg'); src = src.replace(/svg/g, 'png'); printdiv(src,0) }});function convertToPdfUrl(url) { if (url.includes('/png/')) { url = url.replace('/png/', '/pdf/'); let lastPngIndex = url.lastIndexOf('.png'); if (lastPngIndex !== -1) { url = url.substring(0, lastPngIndex - 3) + url.substring(lastPngIndex); } url = url.replace('.png', '.pdf'); } else if (url.includes('/svg/')) { url = url.replace('/svg/', '/pdf/'); let lastSvgIndex = url.lastIndexOf('.svg'); if (lastSvgIndex !== -1) { url = url.substring(0, lastSvgIndex - 2) + url.substring(lastSvgIndex); } url = url.replace('.svg', '.pdf'); } return url;}function openPDF(){}function doprint() { var isSafari = window.safari !== undefined; if(lb==null){initiatestuff()} alert('N.B. This will print only the current page.\n\nIf this piece has more than one page, you will need to print each page individually. Navigate to other pages using the << and >> buttons.\n\nTo print entire pieces in one go, and for higher quality printing from our PDF files, please subscribe.') var ssrc=sco.src; var src=document.getElementById('score').src; printdiv(src,0)} class ConfirmDialog { constructor({ questionText, trueButtonText, falseButtonText, parent }) { this.questionText = questionText || "Are you sure?"; this.trueButtonText = trueButtonText || "Yes"; this.falseButtonText = falseButtonText || "No"; this.parent = parent || document.body; this.dialog = undefined; this.trueButton = undefined; this.falseButton = undefined; this._createDialog(); this._appendDialog(); } confirm() { return new Promise((resolve, reject) => { const somethingWentWrongUponCreation = !this.dialog || !this.trueButton || !this.falseButton; if (somethingWentWrongUponCreation) { reject('Someting went wrong when creating the modal'); return; } this.dialog.showModal(); this.trueButton.focus(); this.trueButton.addEventListener("click", () => { resolve(true); this._destroy(); }); this.falseButton.addEventListener("click", () => { resolve(false); this._destroy(); }); }); } _createDialog() { this.dialog = document.createElement("dialog"); this.dialog.classList.add("confirm-dialog"); const question = document.createElement("div"); question.textContent = this.questionText; question.classList.add("confirm-dialog-question"); this.dialog.appendChild(question); const buttonGroup = document.createElement("div"); buttonGroup.classList.add("confirm-dialog-button-group"); this.dialog.appendChild(buttonGroup); this.falseButton = document.createElement("button"); this.falseButton.classList.add( "confirm-dialog-button", "confirm-dialog-button--false" ); this.falseButton.type = "button"; this.falseButton.textContent = this.falseButtonText; buttonGroup.appendChild(this.falseButton); this.trueButton = document.createElement("button"); this.trueButton.classList.add( "confirm-dialog-button", "confirm-dialog-button--true" ); this.trueButton.type = "button"; this.trueButton.textContent = this.trueButtonText; buttonGroup.appendChild(this.trueButton); } _appendDialog() { this.parent.appendChild(this.dialog); } _destroy() { this.parent.removeChild(this.dialog); delete this; }} function getCachedImageFromMap (path, map) { let image = map[path]; if (image) return image; image = new Image(); image.src = path; map[path] = image; return image;} var scfile=ss+score+'01.svg'; var scfile2=''; function playalongacc(pltype) { if(ison0) { hideLoopGuide(); } if(lb==null){initiatestuff()} switch (pltype){ case 1: if (ison1==0&&document.getElementById('pausebefore').checked==true){ pauseamount=5;updatecountin(); pppa=pauseamount+1; } else{ pauseamount=0;pppa=0;stopplayalongreturntostandardview() } break; case 2: if (ison2==0&&document.getElementById('pausebefore').checked==true){ pauseamount=5;updatecountin(); pppa=pauseamount+1; } else{ pauseamount=0;pppa=0;stopplayalongreturntostandardview() } break; case 3: if (ison3==0&&document.getElementById('pausebefore').checked==true){ pauseamount=5;updatecountin(); pppa=pauseamount+1; } else{ pauseamount=0;pppa=0;stopplayalongreturntostandardview() } break; case 4: if (ison4==0&&document.getElementById('pausebefore').checked==true){ pauseamount=5;updatecountin(); pppa=pauseamount+1; } else{ pauseamount=0;pppa=0;stopplayalongreturntostandardview() } break; } stimer = window.setTimeout( "playalongacc2("+pltype+")", (pppa*1000)); checkIfShouldShowTwoPages(); }var baseUrl = '';function playalongacc2(pltype, keepPlayState, wasOn){ let wasStoped = pauseon || !wasOn; if(typeof bpp !== 'undefined' && typeof ppt !== 'undefined') { temp_IS_HIGHLIGHT_ON=IS_HIGHLIGHT_ON; } else{ temp_IS_HIGHLIGHT_ON=false;l1.style.visibility='hidden'; } var bon=0; stopplayalongreturntostandardview() if (ison1||ison2||ison3||ison4) { playalongstop() btn_transpose.style.visibility='visible'; } else { if (!keepPlayState || !wasStoped) { startTimeframe(DESIRED_FPS); } l1.style.visibility='visible'; btn_transpose.style.visibility='hidden'; } var num_listened=readCookie('num_listened') if(num_listened=='undefined'||num_listened=='NaN'){num_listened=0;} if(everyplayed==0){num_listened=p(num_listened)+1;eraseCookie('num_listened');createCookie('num_listened',num_listened,1);everyplayed=1;} if(num_listened>3){overlay();return } var aisp=document.getElementById('aispacer'); switch (pltype){ case 1: if (ison1==0){ bon=1;ison1=1;ison2=0;ison3=0;ison4=0;ison0=0;ic1.src=sic;aud=document.getElementById('demo1'); pico.style.display='inline-block!important';ic2.style.display='none';aic0.style.display='none';aic2.style.display='none'; aisp.style.display='inline-flex';aisp.style.visibiliy='visible'; if(ic3){aic3.style.display='none';ic3.style.display='none';} if(ic4){aic4.style.display='none';ic4.style.display='none';} } break; case 2: if(ison2==0){bon=1;ison1=0;ison2=1;ison4=0;ison3=0;ison0=0;ic2.src=sic;aud=document.getElementById('demo2'); pico.style.display='inline-block!important';ic1.style.display='none';aic0.style.display='none';aic1.style.display='none';aisp.style.display='inline-flex';aisp.style.visibiliy='visible'; if(ic3){aic3.style.display='none';ic3.style.display='none';} if(ic4){aic4.style.display='none';ic4.style.display='none';} } break; case 3: if(ison3==0){bon=1;ison1=0;ison2=0;ison4=0;ison3=1;ison0=0;ic3.src=sic;aud=document.getElementById('demo3'); pico.style.display='inline-block!important';ic1.style.display='none';aic0.style.display='none';aic1.style.display='none';aisp.style.display='inline-flex';aisp.style.visibiliy='visible' aic2.style.display='none';ic2.style.display='none'; if(ic4){aic4.style.display='none';ic4.style.display='none';} } break; case 4: if(ison4==0){bon=1;ison1=0;ison2=0;ison3=0;ison4=1;ison0=0;ic4.src=sic;aud=document.getElementById('demo4'); pico.style.display='inline-block!important';ic1.style.display='none';aic0.style.display='none';aic1.style.display='none';aisp.style.display='inline-flex';aisp.style.visibiliy='visible' aic2.style.display='none';ic2.style.display='none'; if(ic3){aic3.style.display='none';ic3.style.display='none';} } break;} aud.addEventListener('timeframe',checkbartimeupdate); if (bon==1) { pb.style.display='flex';pico.style.display='inline-block';document.getElementById('metandtemp').style.visibility='visible'; aud.addEventListener('timeframe', updateProgress, false); aud.addEventListener('ended', audioend); updateplaybackrate(document.getElementById('speed').value) speedval=document.getElementById('speed').value aud.play();aud.currentTime = 0; if(baseUrl==''){baseUrl=ss+score;} checkIfShouldShowTwoPages(); } else { pb.style.display='none';document.getElementById('metandtemp').style.visibiliy='hidden';pico.style.display='none'; ison1=0;ison2=0;ison3=0;ison4=0; } if(keepPlayState) { if (wasStoped) { pauseon=0; callpause(); setTimeout(() => { checkbartimeupdate(); updateProgress(); }, 100) } } } var no_part_pages=1;function stopplayalongreturntostandardview() {if(lb==null){initiatestuff()}l1.style.visibility = 'hidden';ic1.style.display='block';ic2.style.display='block';if(ic3){ic3.style.display='block';}if(ic4){ic4.style.display='block';}ic0.style.display='block';aic1.style.display='inline-block';aic2.style.display='inline-block';if(aic3){aic3.style.display='inline-block';}if(aic4){aic4.style.display='inline-block';}aic0.style.display='inline-block';aisp=document.getElementById('aispacer');aisp.style.display='none';aisp.style.visibility='hidden';pico.src='/imc/pause.png';document.getElementById('icon0').src = '/imc/play.png';document.getElementById('progress').style.width = "0%";ic2.src = '/imc/band.png';currpage=1;document.getElementById('demo0').pause();document.getElementById('demo2').pause(); if(curtransp!=0){ switchScore('score', thissc+'_'+curtranspdir+curtransp+'001.gif'); switchScore('score2', thissc+'_'+curtranspdir+curtransp+'002.gif'); } else{ sco.style = {}; sco2.style ={}; }if (!ext_traditional){ lb.classList.add("pagenav_disabled"); if (no_pages>2||!showTwoPages&&no_pages>1){rb.classList.remove("pagenav_disabled");}}} function playalongstop() { resizeStage(); stop=true; l1.style.visibility = 'hidden'; sco.style.top='0'; document.getElementById('mainscore').style.height='100%'; document.getElementById('icon0').src = '/imc/play.png';ic2.src = '/imc/band.png'; document.getElementById('demo0').pause(); document.getElementById('demo2').pause();} function createCookie(name,value,days) {if (days) { var expires="",date=new Date(),midnight=new Date(date.getFullYear(),date.getMonth(),date.getDate(),23,59,59); expires = "; expires=" + midnight.toGMTString(); date.setTime(date.getTime()+(days*24*60*60*1000)); var expires = "; expires="+date.toGMTString(); }else var expires = "";document.cookie = name+"="+value+expires+"; path=/";var gtxt=''if(3-value>1){gtxt=(3-value)+' free plays';}else if (3-value==1){gtxt=(3-value)+' free play';}else if (3-value<1){gtxt='0 free plays';}else{gtxt='3 free plays';} var pleft=document.getElementById('playleft'); pleft.innerHTML=gtxt+' left today. Subscribe for unlimited plays.'; pleft.style.dispaly='block';pleft.style.visibility='visible';}var pt = []; pt[1] = { e:33, p:1 }; var bt = []; bt[1]={e:10,b:1};bt[2]={e:20,b:2};bt[3]={e:30,b:3};bt[4]={e:40,b:4};bt[5]={e:50,b:5};bt[6]={e:60,b:6};bt[7]={e:70,b:7};bt[8]={e:80,b:8};bt[9]={e:90,b:9};bt[10]={e:100,b:10};bt[11]={e:110,b:11};bt[12]={e:120,b:12};bt[13]={e:130,b:13};bt[14]={e:140,b:14};bt[15]={e:150,b:15};bt[16]={e:160,b:16};bt[17]={e:170,b:17};bt[18]={e:180,b:18};bt[19]={e:190,b:19};bt[20]={e:200,b:20};bt[21]={e:210,b:21};bt[22]={e:220,b:22};bt[23]={e:230,b:23};bt[24]={e:240,b:24};bt[25]={e:250,b:25};bt[26]={e:260,b:26};bt[27]={e:270,b:27};bt[28]={e:280,b:28};bt[29]={e:290,b:29};bt[30]={e:300,b:30};bt[31]={e:310,b:31};bt[32]={e:320,b:32};bt[33]={e:330,b:33}; var bp = []; bp[1]={t:89,l:58,w:129,h:76 };bp[2]={t:89,l:187,w:83,h:76 };bp[3]={t:89,l:270,w:83,h:76 };bp[4]={t:89,l:353,w:83,h:76 };bp[5]={t:89,l:436,w:83,h:76 };bp[6]={t:89,l:519,w:84,h:76 };bp[7]={t:227,l:58,w:136,h:76 };bp[8]={t:227,l:194,w:102,h:76 };bp[9]={t:227,l:296,w:102,h:76 };bp[10]={t:227,l:398,w:102,h:76 };bp[11]={t:227,l:500,w:103,h:76 };bp[12]={t:364,l:58,w:136,h:76 };bp[13]={t:364,l:194,w:102,h:76 };bp[14]={t:364,l:296,w:103,h:76 };bp[15]={t:364,l:399,w:102,h:76 };bp[16]={t:364,l:501,w:102,h:76 };bp[17]={t:501,l:58,w:138,h:76 };bp[18]={t:501,l:195,w:101,h:76 };bp[19]={t:501,l:297,w:101,h:76 };bp[20]={t:501,l:398,w:92,h:76 };bp[21]={t:501,l:490,w:113,h:76 };bp[22]={t:639,l:58,w:115,h:76 };bp[23]={t:639,l:173,w:99,h:76 };bp[24]={t:639,l:273,w:81,h:76 };bp[25]={t:639,l:353,w:88,h:76 };bp[26]={t:639,l:441,w:81,h:76 };bp[27]={t:639,l:522,w:81,h:76 };bp[28]={t:776,l:58,w:130,h:76 };bp[29]={t:776,l:188,w:90,h:76 };bp[30]={t:776,l:278,w:90,h:76 };bp[31]={t:776,l:368,w:90,h:76 };bp[32]={t:776,l:458,w:90,h:76 };bp[33]={t:776,l:549,w:50,h:76 }; var delaytime=0;var pageBeforeChanging;function changepage1(e) { console.log(currpage) let base; let playTimes; let maxPages; let playingpart; let readytogo; document.getElementById('layer1').style.visibility = 'hidden'; if (lb == null) { initiatestuff(); } if (ison1 ||ison2 ||ison3||ison4) { if(typeof bpp !== 'undefined' && typeof ppt !== 'undefined') { playTimes = ppt; } else { playTimes = pt; } base = baseUrl; maxPages = max_playalong_page; playingpart=true; } else { playingpart=false; playTimes = pt; base = ss+score; maxPages = no_pages; } let mult = showTwoPages ? 2 : 1; if (changedpage==0) { pageBeforeChanging = currpage; changedpage = 1; manual_scroll=1; } if (carryon == 1 && e == 'r' && currpage + mult <= maxPages ) { currpage += mult; var cp; cp = formatPageNumber(currpage,playingpart); if (!playingpart&&curtransp!=0) { switchScore("score", thissc+'_'+curtranspdir+curtransp+cp+'.gif'); } else { switchScore("score", base+cp+'.svg');} if (showTwoPages) { if (currpage + 1 <= maxPages ) { var currpageplus1 = currpage+1; cp2 = formatPageNumber(currpageplus1,playingpart); if (!playingpart&&curtransp!=0){ switchScore("score2", thissc+'_'+curtranspdir+curtransp+cp2+'.gif'); } else { switchScore("score2", base+cp2+'.svg'); } } else { switchScore("score2", ''); score2.style.width='11542px'; } } lb.classList.remove("pagenav_disabled") if (currpage >= maxPages ||(showTwoPages&&currpage+1 >= maxPages)) { rb.classList.add("pagenav_disabled") } } else if ('l' == e && currpage > 1 * mult) { currpage -= mult; var cp; cp = formatPageNumber(currpage,playingpart); if (!playingpart&&curtransp!=0) { switchScore("score", thissc+'_'+curtranspdir+curtransp+cp+'.gif'); } else { switchScore("score", base+cp+'.svg'); } if (showTwoPages) { if (currpage + 1 <= maxPages) { var currpageplus1 = currpage+1; cp2 = formatPageNumber(currpageplus1,playingpart); if (!playingpart&&curtransp!=0) { switchScore("score2", thissc+'_'+curtranspdir+curtransp+cp2+'.gif'); } else { switchScore("score2", base+cp2+'.svg'); } } else { switchScore("score2", ''); score2.style.width='11542px'; } } rb.classList.remove("pagenav_disabled") if (1 == currpage) { lb.classList.add("pagenav_disabled") } }}function formatPageNumber(page, isPlayingPart=false) { if (isPlayingPart || curtransp == 0) { return page < 10 ? '0' + page : page; } else { return page < 10 ? '00' + page : (page < 100 ? '0' + page : page); }}function changepage2(dir) { hideLoopGuide(); changepage1(dir);}function changepage_playalong(dir) { if(lb==null){ initiatestuff(); } document.getElementById('layer1').style.visibility='hidden'; if( ison3==1||ison2==1||ison4==1){ //changing part var ds=sco.src; if(dir=='r') { switchScore('score', bumpStringInt(ds,dir)); } else { switchScore('score', bumpStringInt(ds,dir)); } } else { if (changedpage==0) { pageBeforeChanging = currpage; changedpage = 1; } var cp2 if(carryon==true){ if(dir=='r'&&(currpage<0)) { currpage=currpage+1; if (currpage<10){cp2='00'+(currpage)} else if (currpage<100){cp2='0'+(currpage)} else {cp2=currpage} switchScore("score", baseUrl+cp2+'.svg'); lb.classList.remove("pagenav_disabled"); if (currpage==max_playalong_page||showTwoPages&&(currpage+1 == max_playalong_page)){rb.classList.add("pagenav_disabled");} } else if(dir=='l'&&(currpage>1)) { currpage=currpage-1; if (currpage<10){cp2='00'+(currpage)} else if (currpage<100){cp2='0'+(currpage)} else {cp2=currpage} switchScore("score", baseUrl+cp2+'.svg'); rb.classList.remove("pagenav_disabled"); if (currpage==1){lb.classList.add("pagenav_disabled");} } } }}var pauseamount=0;var pppa=0;var stimer; function playmain(stype){ baseUrl=''; temp_IS_HIGHLIGHT_ON=IS_HIGHLIGHT_ON; manual_scroll=0;if(g){ clearTimeout(g);} if(ison1) { hideLoopGuide(); } if (document.getElementById('pausebefore').checked==true&&ison0 == 0){ pauseamount=5;updatecountin(); pppa=pauseamount+1;} else {pauseamount=0;pppa=0} stimer = window.setTimeout( "playmain2("+stype+")", (pppa*1000)); stopplayalongreturntostandardview() resizeStage();} function playmain2(stype, keepPlayState, wasOn) { partopen=0; let wasStoped = pauseon || !wasOn; if(lb==null){initiatestuff()} if (stype==0){ stopplayalongreturntostandardview() } if (ison0) { playalongstop();changedpage=0; } else { if (!keepPlayState || !wasStoped) { startTimeframe(DESIRED_FPS); } l1.style.visibility='visible'; } var num_listened=readCookie('num_listened') if (num_listened=='undefined'||num_listened=='NaN'){num_listened=0;} if (everyplayed==0){ num_listened=p(num_listened)+1; eraseCookie('num_listened') createCookie('num_listened',num_listened,1) everyplayed=1; } if (num_listened>3){overlay();return ;} if (ison0 == 0) { ison0 = 1;ison1=0 ;ison2=0;ison3=0;ison4=0; document.getElementById('icon0').src = sic; aud=document.getElementById('demo0') pb.style.display='flex'; document.getElementById('metandtemp').style.visibility='visible'; pico.style.display='inline-block'; ic1.style.display='none'; ic2.style.display='none'; aic1.style.display='none'; aic2.style.display='none'; if (ic3){ ic3.style.display='none'; aic3.style.display='none'; } if (ic4){ ic4.style.display='none'; aic4.style.display='none'; } aisp=document.getElementById('aispacer'); aisp.style.display='inline-flex';aisp.style.visibiliy='visible'; checkIfShouldShowTwoPages(); aud.addEventListener('timeframe',function(){ if (aud.currentTime< 33) { if(currpage!=1&&changedpage==0){ currpage=1 switchScore('score', ss+score+'0'+(currpage)+'.svg'); lb.classList.remove("pagenav_disabled"); rb.classList.remove("pagenav_disabled"); if (currpage==no_pages||showTwoPages&&(currpage+1 == no_pages)){rb.classList.add("pagenav_disabled");} } } },false); aud.addEventListener('timeframe',checkbartimeupdate); aud.addEventListener('timeframe', updateProgress, false);aud.addEventListener('ended', audioend); updateplaybackrate(document.getElementById('speed').value) aud.play();aud.currentTime = 0; if (stype==0) { if(curtransp!=0){ switchScore('score', thissc+'_'+curtranspdir+curtransp+'001.gif'); switchScore('score2', thissc+'_'+curtranspdir+curtransp+'002.gif'); } else { switchScore('score', scfile); switchScore('score2', scfile2); } currpage=1; if(!ext_traditional){ lb.classList.add("pagenav_disabled"); if(no_pages>1&&!showTwoPages||no_pages>2){rb.classList.remove("pagenav_disabled"); } } } } else { ison0 = 0; pb.style.display='none'; pico.style.display='none'; if(curtransp!=0){ switchScore('score', thissc+'_'+curtranspdir+curtransp+'001.gif'); switchScore('score2', thissc+'_'+curtranspdir+curtransp+'002.gif'); } else { switchScore('score', scfile); switchScore('score2', scfile2); } document.getElementById('metandtemp').style.visibility='hidden'; if (stype==0){ stopplayalongreturntostandardview(); l1.style.visibility='hidden'; stopLoop(); } } if(keepPlayState) { if (wasStoped) { pauseon=0; callpause(); setTimeout(() => { checkbartimeupdate(); updateProgress(); }, 100) } } resizeStage(); }function uptr(nop,currpage){ if(lb==null){initiatestuff();} lb.classList.remove("pagenav_disabled");rb.classList.remove("pagenav_disabled"); if ((currpage==nop)||showTwoPages&&(currpage==nop-1)){rb.classList.add("pagenav_disabled"); } if (currpage==1){lb.classList.add("pagenav_disabled");}}function audioend(){ if(ison0==1){playmain(0)} else if (ison1==1){playalongacc(1)} else if (ison2==1){playalongacc(2)} else if (ison3==1){playalongacc(3)} else if (ison4==1){playalongacc(4)}}var changingpage = false;var oldpage;function checktimeupdate() { let showingPages = 1; if (showTwoPages) { showingPages = 2; if (pt.length % 2 === 0) { pt.push({ e: pt[pt.length - 1].e }); } } let pageI = pt.findIndex((page) => { return (page || {e:0}).e - PAGE_TURNING_TIME>= aud.currentTime; }); if (pageI <= -1) pageI = 1; let curPage = pt[pageI] || {e:0}; if (ison0 == 1 && changedpage == 0) { if (oldpage == null) { oldpage = 0; } else { oldpage = currpage; } // Math to make f(1) -> 1 f(2) -> 1 f(3) -> 3 f(4) -> 3 if showing 2 pages // and f(x) -> x, if showing only 1 page let page = Math.max(1, curPage.p || 1); currpage = Math.ceil(page / showingPages) * showingPages - Math.floor(0.5 * showingPages); if (showingPages === 2) { currpagearryno = pageI - (page % 2 ? 0 : 1); } else { currpagearryno = pageI; } var cp = currpage.toString().padStart(2, "0"); let newSrc; if (curtransp!=0) { cp = currpage.toString().padStart(3, "0"); newSrc = thissc+'_'+curtranspdir+curtransp+cp+'.gif' } else { newSrc = ss+score+cp+'.svg'; } switchScore("score", newSrc); if (showTwoPages && currpage + 1 <= no_pages) { var currpageplus1 = currpage + 1; let cp2 = currpageplus1.toString().padStart(2, "0"); if (curtransp != 0) { cp2 = currpageplus1.toString().padStart(3, "0"); newSrc = thissc + "_" + curtranspdir+curtransp + cp2 + ".gif"; } else { newSrc = ss + score + cp2 + ".svg"; } } else { newSrc = ""; } if ( sco2.src !== sco.src ) { switchScore("score2", newSrc); if(newSrc.length==0 &&curtransp == 0){ score2.style.width='11542px'; } } uptr(no_pages, currpage); }}function checktimeupdateparts() { var delaytime=0; if (showTwoPages) { if (ppt.length % 2 === 0) { ppt.push({ e: ppt[ppt.length - 1].e }); } } let pageI = ppt.findIndex((page) => { return (page || {e:0}).e + p(delaytime/1000) - PAGE_TURNING_TIME >= aud.currentTime; }); if (pageI <= -1) pageI = 1; let curPage = ppt[pageI] || {e:0}; if (ison1 == 1 && changedpage == 0) { if (oldpage == null) { oldpage = 0; } else { oldpage = currpage; } // f(1) -> 1 f(2) -> 1 f(3) -> 3 f(4) -> 3 if showing 2 pages // and f(x) -> x, if showing only 1 page let page = Math.max(1, curPage.p || 1); if (showTwoPages) { currpage = Math.ceil(page / 2) * 2 - 1; currpagearryno = pageI - (page % 2 ? 0 : 1); } else { currpage = page; currpagearryno = pageI; } var cp = currpage.toString().padStart(2, "0"); let newSrc; if (baseUrl !== '') { newSrc = baseUrl + cp + '.svg'; } else { newSrc = ss+score+cp+'.svg'; } switchScore("score", newSrc); if (showTwoPages && currpage + 1 <= no_part_pages) { var currpageplus1 = currpage + 1; var cp2 = currpageplus1.toString().padStart(2, "0"); if (baseUrl !== '') { newSrc = baseUrl + cp2 + '.svg'; } else { newSrc = ss+score+cp2+'.svg'; } } else { newSrc = ''; } if(sco2.src !== sco.src) { switchScore("score2", newSrc); } uptr(max_playalong_page, currpage) }}function isElementInViewport (el) { var rect = el.getBoundingClientRect(); return ( rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && /* or $(window).height() */ rect.right <= (window.innerWidth || document.documentElement.clientWidth) /* or $(window).width() */ );}function checkbartimeupdate() { var delaytime=0; var isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor); var chrome_delay if (isChrome){ chrome_delay=aud.currentTime/500 } else{ chrome_delay=0 } if (ison0==1){delaytime=0;} if (((aud.currentTime+chrome_delay)*1000) Download Score PDF (8notes Premium) Piano (Chords) Piano (LARGE) (all shown in Concert Pitch) Arrangements of this piece also available for: Artist: Trad. (biography) Born: -,- Died: -,- The Artist: Traditional Music of unknown author. Composed: Unknown Info: A traditional Ukrainian song, know as "Schedryk". The legend of the "lastivochka" (the swallow), recounted in a winsome folk song, was given a harmonious arrangement by Mykola Leontovych and traveled to the United States in 1922 with Alexander Koshetz and the touring Ukrainian National Chorus. American composer Peter J. Wilhousky added new lyrics Time Signature: 3/4 (View more 3/4 Music) Duration: 1:33 Tempo Marking: = 180 Score Key: G minor (Sounding Pitch) (View more G minor Music for Piano ) Number of Pages: 1 Difficulty: Easy Level: Recommended for Beginners with some playing experience Instrument: (View more Easy Piano Music) Style: Traditional(View more Traditional Piano Music) Tags: easy_piano_christmas_compilation easy piano ukraine Piano pieces in G minor pieces in 3-4 time signature Copyright: © Copyright 2000-2024 Red Balloon Technology Ltd (8notes.com) This piece is included in the following : Info O Holy Night by Trad. Close X You have reached your limit for today. Individual Subscriptions: Click here for more info on 8notes PREMIUM
Standard Parts
Parts with Chords
Large Parts
Request Additional Parts Request Large Note Part Request Part with Chords D minor Eb minor E minor F minor F# minor G minor Ab minor A minor Bb minor B minor C minor C# minor Other bespoke requested transpositions: C majorF minorD minorE minor Request New Transposition
Request New Version Download MP3 Band Playalong MP3 D minor Transposition Eb minor Transposition E minor Transposition F minor Transposition F# minor Transposition G minor Transposition Ab minor Transposition A minor Transposition Bb minor Transposition B minor Transposition C minor Transposition C# minor Transposition
You might also like:
Happy Birthday to You by Trad.
Waltz from Sleeping Beauty (beginners) by Pyotr Ilyich Tchaikovsky
Silent Night (easy) by Trad.
Gymnopedies No.1 by Erik Satie
Jingle Bells (easy) by Trad.
Join 8notes PREMIUM for unlimited playback & transpositions
The Ultimate Christmas Piano Playlist: Top 10 Revealed!