{"id":262,"date":"2022-06-17T07:23:13","date_gmt":"2022-06-17T07:23:13","guid":{"rendered":"http:\/\/karthicklakshmanan.com\/index.php\/docs\/world-music\/sandbox\/"},"modified":"2022-06-17T16:34:41","modified_gmt":"2022-06-17T16:34:41","slug":"sandbox","status":"publish","type":"docs","link":"https:\/\/karthicklakshmanan.com\/index.php\/docs\/world-music\/sandbox\/","title":{"rendered":"sandbox"},"content":{"rendered":"\n<div><div id=\"abcjs-paper-69f26c08a80cd\" class=\"abcjs-paper abcjs-tune-number-0\"><\/div>\n<div id=\"abcjs-midi-69f26c08a80d1\" class=\"abcjs-audio abcjs-tune-number-0\"><\/div>\n<\/div><script type=\"text\/javascript\">\n(function () {\n    \t\tfunction CursorControl(selector) {\n\t\t\tvar self = this;\n\n\t\t\tself.onStart = function() {\n\t\t\t\tvar svg = document.querySelector(\"#\" + selector + \" svg\");\n\t\t\t\tvar cursor = document.createElementNS(\"http:\/\/www.w3.org\/2000\/svg\", \"line\");\n\t\t\t\tcursor.setAttribute(\"class\", \"abcjs-cursor\");\n\t\t\t\tcursor.setAttributeNS(null, 'x1', 0);\n\t\t\t\tcursor.setAttributeNS(null, 'y1', 0);\n\t\t\t\tcursor.setAttributeNS(null, 'x2', 0);\n\t\t\t\tcursor.setAttributeNS(null, 'y2', 0);\n\t\t\t\tsvg.appendChild(cursor);\n\n\t\t\t};\n\t\t\tself.beatSubdivisions = 2;\n\t\t\tself.onEvent = function(ev) {\n\t\t\t\tif (ev.measureStart && ev.left === null)\n\t\t\t\t\treturn; \/\/ this was the second part of a tie across a measure line. Just ignore it.\n\n\t\t\t\tvar lastSelection = document.querySelectorAll(\"#\" + selector + \" svg .highlight\");\n\t\t\t\tfor (var k = 0; k < lastSelection.length; k++)\n\t\t\t\t\tlastSelection[k].classList.remove(\"highlight\");\n\n\t\t\t\tfor (var i = 0; i < ev.elements.length; i++ ) {\n\t\t\t\t\tvar note = ev.elements[i];\n\t\t\t\t\tfor (var j = 0; j < note.length; j++) {\n\t\t\t\t\t\tnote[j].classList.add(\"highlight\");\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar cursor = document.querySelector(\"#\" + selector + \" svg .abcjs-cursor\");\n\t\t\t\tif (cursor) {\n\t\t\t\t\tcursor.setAttribute(\"x1\", ev.left - 2);\n\t\t\t\t\tcursor.setAttribute(\"x2\", ev.left - 2);\n\t\t\t\t\tcursor.setAttribute(\"y1\", ev.top);\n\t\t\t\t\tcursor.setAttribute(\"y2\", ev.top + ev.height);\n\t\t\t\t}\n\t\t\t};\n\t\t\tself.onFinished = function() {\n\t\t\t\tvar els = document.querySelectorAll(\"#\" + selector + \" svg .highlight\");\n\t\t\t\tfor (var i = 0; i < els.length; i++ ) {\n\t\t\t\t\tels[i].classList.remove(\"highlight\");\n\t\t\t\t}\n\t\t\t\tvar cursor = document.querySelector(\"#\" + selector + \" svg .abcjs-cursor\");\n\t\t\t\tif (cursor) {\n\t\t\t\t\tcursor.setAttribute(\"x1\", 0);\n\t\t\t\t\tcursor.setAttribute(\"x2\", 0);\n\t\t\t\t\tcursor.setAttribute(\"y1\", 0);\n\t\t\t\t\tcursor.setAttribute(\"y2\", 0);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\tvar cursorControl = new CursorControl('abcjs-paper-69f26c08a80cd', null);\nvar visualIds = ['abcjs-paper-69f26c08a80cd',];\nvar params = {};\nvar abc = \" \u0001X:1\u0001T:Bansuri Sargam (Natural notes)\u0001K:C treble\u0001M:4\/4\u0001L:1\/4\u0001Q:100\u0001%%MIDI program 1 73\u0001F, G, A,B, | C  D E F | G  A B c | d e f g|]\u0001w: .Ma .Pa .Da .Ni Sa Re Ga Ma Pa Da Ni Sa\\' Re\\' Ga\\' Ma\\' Pa\\'\u0001\".replace(\/\\x01\/g,\"\\n\");\nvar visualObjs = ABCJS.renderAbc(visualIds, abc, params);\nvar midiIds = ['abcjs-midi-69f26c08a80d1',];\n\t\tvar synthControl = new ABCJS.synth.SynthController();\n            var el = document.getElementById('abcjs-midi-69f26c08a80d1', null);\n \t\tsynthControl.load(el, cursorControl, {displayRestart: true, displayPlay: true, displayProgress: true});\n\t\tsynthControl.disable(true);\n\t\tvar midiBuffer = new ABCJS.synth.CreateSynth();\n\t\tmidiBuffer.init({\n\t\t\tvisualObj: visualObjs[0],\n \t\t\toptions: {}\n\t\t}).then(function (response) {\n\t\t\tif (synthControl) {\n\t\t\t\tsynthControl.setTune(visualObjs[0], false).then(function (response) {\n\t\t\t\t}).catch(function (error) {\n\t\t\t\t\tconsole.warn(\"Audio problem:\", error);\n\t\t\t\t});\n\t\t\t}\n\t\t}).catch(function (error) {\n\t\t\tconsole.warn(\"Audio problem:\", error);\n\t\t});\n}());\n<\/script>\n\n\n\n\n<div><div id=\"abcjs-paper-69f26c08a80eb\" class=\"abcjs-paper abcjs-tune-number-0\"><\/div>\n<div id=\"abcjs-midi-69f26c08a80ec\" class=\"abcjs-audio abcjs-tune-number-0\"><\/div>\n<\/div><script type=\"text\/javascript\">\n(function () {\n    \t\tfunction CursorControl(selector) {\n\t\t\tvar self = this;\n\n\t\t\tself.onStart = function() {\n\t\t\t\tvar svg = document.querySelector(\"#\" + selector + \" svg\");\n\t\t\t\tvar cursor = document.createElementNS(\"http:\/\/www.w3.org\/2000\/svg\", \"line\");\n\t\t\t\tcursor.setAttribute(\"class\", \"abcjs-cursor\");\n\t\t\t\tcursor.setAttributeNS(null, 'x1', 0);\n\t\t\t\tcursor.setAttributeNS(null, 'y1', 0);\n\t\t\t\tcursor.setAttributeNS(null, 'x2', 0);\n\t\t\t\tcursor.setAttributeNS(null, 'y2', 0);\n\t\t\t\tsvg.appendChild(cursor);\n\n\t\t\t};\n\t\t\tself.beatSubdivisions = 2;\n\t\t\tself.onEvent = function(ev) {\n\t\t\t\tif (ev.measureStart && ev.left === null)\n\t\t\t\t\treturn; \/\/ this was the second part of a tie across a measure line. Just ignore it.\n\n\t\t\t\tvar lastSelection = document.querySelectorAll(\"#\" + selector + \" svg .highlight\");\n\t\t\t\tfor (var k = 0; k < lastSelection.length; k++)\n\t\t\t\t\tlastSelection[k].classList.remove(\"highlight\");\n\n\t\t\t\tfor (var i = 0; i < ev.elements.length; i++ ) {\n\t\t\t\t\tvar note = ev.elements[i];\n\t\t\t\t\tfor (var j = 0; j < note.length; j++) {\n\t\t\t\t\t\tnote[j].classList.add(\"highlight\");\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar cursor = document.querySelector(\"#\" + selector + \" svg .abcjs-cursor\");\n\t\t\t\tif (cursor) {\n\t\t\t\t\tcursor.setAttribute(\"x1\", ev.left - 2);\n\t\t\t\t\tcursor.setAttribute(\"x2\", ev.left - 2);\n\t\t\t\t\tcursor.setAttribute(\"y1\", ev.top);\n\t\t\t\t\tcursor.setAttribute(\"y2\", ev.top + ev.height);\n\t\t\t\t}\n\t\t\t};\n\t\t\tself.onFinished = function() {\n\t\t\t\tvar els = document.querySelectorAll(\"#\" + selector + \" svg .highlight\");\n\t\t\t\tfor (var i = 0; i < els.length; i++ ) {\n\t\t\t\t\tels[i].classList.remove(\"highlight\");\n\t\t\t\t}\n\t\t\t\tvar cursor = document.querySelector(\"#\" + selector + \" svg .abcjs-cursor\");\n\t\t\t\tif (cursor) {\n\t\t\t\t\tcursor.setAttribute(\"x1\", 0);\n\t\t\t\t\tcursor.setAttribute(\"x2\", 0);\n\t\t\t\t\tcursor.setAttribute(\"y1\", 0);\n\t\t\t\t\tcursor.setAttribute(\"y2\", 0);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\tvar cursorControl = new CursorControl('abcjs-paper-69f26c08a80eb', null);\nvar visualIds = ['abcjs-paper-69f26c08a80eb',];\nvar params = {};\nvar abc = \" \u0001X:1\u0001T:Tuplets\u0001M:C\u0001K:C\u0001%%MIDI program 1 73\u0001(2AB (3ABA (4ABAB (5ABABA (6ABABAB (7ABABABA|]\u0001\".replace(\/\\x01\/g,\"\\n\");\nvar visualObjs = ABCJS.renderAbc(visualIds, abc, params);\nvar midiIds = ['abcjs-midi-69f26c08a80ec',];\n\t\tvar synthControl = new ABCJS.synth.SynthController();\n            var el = document.getElementById('abcjs-midi-69f26c08a80ec', null);\n \t\tsynthControl.load(el, cursorControl, {displayRestart: true, displayPlay: true, displayProgress: true});\n\t\tsynthControl.disable(true);\n\t\tvar midiBuffer = new ABCJS.synth.CreateSynth();\n\t\tmidiBuffer.init({\n\t\t\tvisualObj: visualObjs[0],\n \t\t\toptions: {}\n\t\t}).then(function (response) {\n\t\t\tif (synthControl) {\n\t\t\t\tsynthControl.setTune(visualObjs[0], false).then(function (response) {\n\t\t\t\t}).catch(function (error) {\n\t\t\t\t\tconsole.warn(\"Audio problem:\", error);\n\t\t\t\t});\n\t\t\t}\n\t\t}).catch(function (error) {\n\t\t\tconsole.warn(\"Audio problem:\", error);\n\t\t});\n}());\n<\/script>\n\n<div><div id=\"abcjs-paper-69f26c08a80fc\" class=\"abcjs-paper abcjs-tune-number-0\"><\/div>\n<div id=\"abcjs-midi-69f26c08a80fd\" class=\"abcjs-audio abcjs-tune-number-0\"><\/div>\n<\/div><script type=\"text\/javascript\">\n(function () {\n    \t\tfunction CursorControl(selector) {\n\t\t\tvar self = this;\n\n\t\t\tself.onStart = function() {\n\t\t\t\tvar svg = document.querySelector(\"#\" + selector + \" svg\");\n\t\t\t\tvar cursor = document.createElementNS(\"http:\/\/www.w3.org\/2000\/svg\", \"line\");\n\t\t\t\tcursor.setAttribute(\"class\", \"abcjs-cursor\");\n\t\t\t\tcursor.setAttributeNS(null, 'x1', 0);\n\t\t\t\tcursor.setAttributeNS(null, 'y1', 0);\n\t\t\t\tcursor.setAttributeNS(null, 'x2', 0);\n\t\t\t\tcursor.setAttributeNS(null, 'y2', 0);\n\t\t\t\tsvg.appendChild(cursor);\n\n\t\t\t};\n\t\t\tself.beatSubdivisions = 2;\n\t\t\tself.onEvent = function(ev) {\n\t\t\t\tif (ev.measureStart && ev.left === null)\n\t\t\t\t\treturn; \/\/ this was the second part of a tie across a measure line. Just ignore it.\n\n\t\t\t\tvar lastSelection = document.querySelectorAll(\"#\" + selector + \" svg .highlight\");\n\t\t\t\tfor (var k = 0; k < lastSelection.length; k++)\n\t\t\t\t\tlastSelection[k].classList.remove(\"highlight\");\n\n\t\t\t\tfor (var i = 0; i < ev.elements.length; i++ ) {\n\t\t\t\t\tvar note = ev.elements[i];\n\t\t\t\t\tfor (var j = 0; j < note.length; j++) {\n\t\t\t\t\t\tnote[j].classList.add(\"highlight\");\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar cursor = document.querySelector(\"#\" + selector + \" svg .abcjs-cursor\");\n\t\t\t\tif (cursor) {\n\t\t\t\t\tcursor.setAttribute(\"x1\", ev.left - 2);\n\t\t\t\t\tcursor.setAttribute(\"x2\", ev.left - 2);\n\t\t\t\t\tcursor.setAttribute(\"y1\", ev.top);\n\t\t\t\t\tcursor.setAttribute(\"y2\", ev.top + ev.height);\n\t\t\t\t}\n\t\t\t};\n\t\t\tself.onFinished = function() {\n\t\t\t\tvar els = document.querySelectorAll(\"#\" + selector + \" svg .highlight\");\n\t\t\t\tfor (var i = 0; i < els.length; i++ ) {\n\t\t\t\t\tels[i].classList.remove(\"highlight\");\n\t\t\t\t}\n\t\t\t\tvar cursor = document.querySelector(\"#\" + selector + \" svg .abcjs-cursor\");\n\t\t\t\tif (cursor) {\n\t\t\t\t\tcursor.setAttribute(\"x1\", 0);\n\t\t\t\t\tcursor.setAttribute(\"x2\", 0);\n\t\t\t\t\tcursor.setAttribute(\"y1\", 0);\n\t\t\t\t\tcursor.setAttribute(\"y2\", 0);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\tvar cursorControl = new CursorControl('abcjs-paper-69f26c08a80fc', null);\nvar visualIds = ['abcjs-paper-69f26c08a80fc',];\nvar params = {};\nvar abc = \" \u0001X:1\u0001T:Tuplets\u0001M:C\u0001K:C\u0001%%MIDI program 1 73\u0001(AA) (A(A)A) ((AA)A) (A|A) A-A A-A-A A2-|A4|]\u0001\".replace(\/\\x01\/g,\"\\n\");\nvar visualObjs = ABCJS.renderAbc(visualIds, abc, params);\nvar midiIds = ['abcjs-midi-69f26c08a80fd',];\n\t\tvar synthControl = new ABCJS.synth.SynthController();\n            var el = document.getElementById('abcjs-midi-69f26c08a80fd', null);\n \t\tsynthControl.load(el, cursorControl, {displayRestart: true, displayPlay: true, displayProgress: true});\n\t\tsynthControl.disable(true);\n\t\tvar midiBuffer = new ABCJS.synth.CreateSynth();\n\t\tmidiBuffer.init({\n\t\t\tvisualObj: visualObjs[0],\n \t\t\toptions: {}\n\t\t}).then(function (response) {\n\t\t\tif (synthControl) {\n\t\t\t\tsynthControl.setTune(visualObjs[0], false).then(function (response) {\n\t\t\t\t}).catch(function (error) {\n\t\t\t\t\tconsole.warn(\"Audio problem:\", error);\n\t\t\t\t});\n\t\t\t}\n\t\t}).catch(function (error) {\n\t\t\tconsole.warn(\"Audio problem:\", error);\n\t\t});\n}());\n<\/script>\n\n<div><div id=\"abcjs-paper-69f26c08a810a\" class=\"abcjs-paper abcjs-tune-number-0\"><\/div>\n<div id=\"abcjs-midi-69f26c08a810b\" class=\"abcjs-audio abcjs-tune-number-0\"><\/div>\n<\/div><script type=\"text\/javascript\">\n(function () {\n    \t\tfunction CursorControl(selector) {\n\t\t\tvar self = this;\n\n\t\t\tself.onStart = function() {\n\t\t\t\tvar svg = document.querySelector(\"#\" + selector + \" svg\");\n\t\t\t\tvar cursor = document.createElementNS(\"http:\/\/www.w3.org\/2000\/svg\", \"line\");\n\t\t\t\tcursor.setAttribute(\"class\", \"abcjs-cursor\");\n\t\t\t\tcursor.setAttributeNS(null, 'x1', 0);\n\t\t\t\tcursor.setAttributeNS(null, 'y1', 0);\n\t\t\t\tcursor.setAttributeNS(null, 'x2', 0);\n\t\t\t\tcursor.setAttributeNS(null, 'y2', 0);\n\t\t\t\tsvg.appendChild(cursor);\n\n\t\t\t};\n\t\t\tself.beatSubdivisions = 2;\n\t\t\tself.onEvent = function(ev) {\n\t\t\t\tif (ev.measureStart && ev.left === null)\n\t\t\t\t\treturn; \/\/ this was the second part of a tie across a measure line. Just ignore it.\n\n\t\t\t\tvar lastSelection = document.querySelectorAll(\"#\" + selector + \" svg .highlight\");\n\t\t\t\tfor (var k = 0; k < lastSelection.length; k++)\n\t\t\t\t\tlastSelection[k].classList.remove(\"highlight\");\n\n\t\t\t\tfor (var i = 0; i < ev.elements.length; i++ ) {\n\t\t\t\t\tvar note = ev.elements[i];\n\t\t\t\t\tfor (var j = 0; j < note.length; j++) {\n\t\t\t\t\t\tnote[j].classList.add(\"highlight\");\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar cursor = document.querySelector(\"#\" + selector + \" svg .abcjs-cursor\");\n\t\t\t\tif (cursor) {\n\t\t\t\t\tcursor.setAttribute(\"x1\", ev.left - 2);\n\t\t\t\t\tcursor.setAttribute(\"x2\", ev.left - 2);\n\t\t\t\t\tcursor.setAttribute(\"y1\", ev.top);\n\t\t\t\t\tcursor.setAttribute(\"y2\", ev.top + ev.height);\n\t\t\t\t}\n\t\t\t};\n\t\t\tself.onFinished = function() {\n\t\t\t\tvar els = document.querySelectorAll(\"#\" + selector + \" svg .highlight\");\n\t\t\t\tfor (var i = 0; i < els.length; i++ ) {\n\t\t\t\t\tels[i].classList.remove(\"highlight\");\n\t\t\t\t}\n\t\t\t\tvar cursor = document.querySelector(\"#\" + selector + \" svg .abcjs-cursor\");\n\t\t\t\tif (cursor) {\n\t\t\t\t\tcursor.setAttribute(\"x1\", 0);\n\t\t\t\t\tcursor.setAttribute(\"x2\", 0);\n\t\t\t\t\tcursor.setAttribute(\"y1\", 0);\n\t\t\t\t\tcursor.setAttribute(\"y2\", 0);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\tvar cursorControl = new CursorControl('abcjs-paper-69f26c08a810a', null);\nvar visualIds = ['abcjs-paper-69f26c08a810a',];\nvar params = {};\nvar abc = \" \u0001X:1\u0001T:Tuplets\u0001M:C\u0001K:C\u0001%%MIDI program 1 73\u0001~A ~c .A .c vA vc uA uc|]\u0001\".replace(\/\\x01\/g,\"\\n\");\nvar visualObjs = ABCJS.renderAbc(visualIds, abc, params);\nvar midiIds = ['abcjs-midi-69f26c08a810b',];\n\t\tvar synthControl = new ABCJS.synth.SynthController();\n            var el = document.getElementById('abcjs-midi-69f26c08a810b', null);\n \t\tsynthControl.load(el, cursorControl, {displayRestart: true, displayPlay: true, displayProgress: true});\n\t\tsynthControl.disable(true);\n\t\tvar midiBuffer = new ABCJS.synth.CreateSynth();\n\t\tmidiBuffer.init({\n\t\t\tvisualObj: visualObjs[0],\n \t\t\toptions: {}\n\t\t}).then(function (response) {\n\t\t\tif (synthControl) {\n\t\t\t\tsynthControl.setTune(visualObjs[0], false).then(function (response) {\n\t\t\t\t}).catch(function (error) {\n\t\t\t\t\tconsole.warn(\"Audio problem:\", error);\n\t\t\t\t});\n\t\t\t}\n\t\t}).catch(function (error) {\n\t\t\tconsole.warn(\"Audio problem:\", error);\n\t\t});\n}());\n<\/script>\n\n<div><div id=\"abcjs-paper-69f26c08a8116\" class=\"abcjs-paper abcjs-tune-number-0\"><\/div>\n<div id=\"abcjs-midi-69f26c08a8117\" class=\"abcjs-audio abcjs-tune-number-0\"><\/div>\n<\/div><script type=\"text\/javascript\">\n(function () {\n    \t\tfunction CursorControl(selector) {\n\t\t\tvar self = this;\n\n\t\t\tself.onStart = function() {\n\t\t\t\tvar svg = document.querySelector(\"#\" + selector + \" svg\");\n\t\t\t\tvar cursor = document.createElementNS(\"http:\/\/www.w3.org\/2000\/svg\", \"line\");\n\t\t\t\tcursor.setAttribute(\"class\", \"abcjs-cursor\");\n\t\t\t\tcursor.setAttributeNS(null, 'x1', 0);\n\t\t\t\tcursor.setAttributeNS(null, 'y1', 0);\n\t\t\t\tcursor.setAttributeNS(null, 'x2', 0);\n\t\t\t\tcursor.setAttributeNS(null, 'y2', 0);\n\t\t\t\tsvg.appendChild(cursor);\n\n\t\t\t};\n\t\t\tself.beatSubdivisions = 2;\n\t\t\tself.onEvent = function(ev) {\n\t\t\t\tif (ev.measureStart && ev.left === null)\n\t\t\t\t\treturn; \/\/ this was the second part of a tie across a measure line. Just ignore it.\n\n\t\t\t\tvar lastSelection = document.querySelectorAll(\"#\" + selector + \" svg .highlight\");\n\t\t\t\tfor (var k = 0; k < lastSelection.length; k++)\n\t\t\t\t\tlastSelection[k].classList.remove(\"highlight\");\n\n\t\t\t\tfor (var i = 0; i < ev.elements.length; i++ ) {\n\t\t\t\t\tvar note = ev.elements[i];\n\t\t\t\t\tfor (var j = 0; j < note.length; j++) {\n\t\t\t\t\t\tnote[j].classList.add(\"highlight\");\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar cursor = document.querySelector(\"#\" + selector + \" svg .abcjs-cursor\");\n\t\t\t\tif (cursor) {\n\t\t\t\t\tcursor.setAttribute(\"x1\", ev.left - 2);\n\t\t\t\t\tcursor.setAttribute(\"x2\", ev.left - 2);\n\t\t\t\t\tcursor.setAttribute(\"y1\", ev.top);\n\t\t\t\t\tcursor.setAttribute(\"y2\", ev.top + ev.height);\n\t\t\t\t}\n\t\t\t};\n\t\t\tself.onFinished = function() {\n\t\t\t\tvar els = document.querySelectorAll(\"#\" + selector + \" svg .highlight\");\n\t\t\t\tfor (var i = 0; i < els.length; i++ ) {\n\t\t\t\t\tels[i].classList.remove(\"highlight\");\n\t\t\t\t}\n\t\t\t\tvar cursor = document.querySelector(\"#\" + selector + \" svg .abcjs-cursor\");\n\t\t\t\tif (cursor) {\n\t\t\t\t\tcursor.setAttribute(\"x1\", 0);\n\t\t\t\t\tcursor.setAttribute(\"x2\", 0);\n\t\t\t\t\tcursor.setAttribute(\"y1\", 0);\n\t\t\t\t\tcursor.setAttribute(\"y2\", 0);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\tvar cursorControl = new CursorControl('abcjs-paper-69f26c08a8116', null);\nvar visualIds = ['abcjs-paper-69f26c08a8116',];\nvar params = {};\nvar abc = \" \u0001X:1\u0001T:Tuplets\u0001M:C\u0001K:C\u0001Q:40\u0001%%MIDI program 1 73\u0001{g}A3 A{g}AA|{gAGAG}A3 {g}A{d}A{e}A|]\u0001\".replace(\/\\x01\/g,\"\\n\");\nvar visualObjs = ABCJS.renderAbc(visualIds, abc, params);\nvar midiIds = ['abcjs-midi-69f26c08a8117',];\n\t\tvar synthControl = new ABCJS.synth.SynthController();\n            var el = document.getElementById('abcjs-midi-69f26c08a8117', null);\n \t\tsynthControl.load(el, cursorControl, {displayRestart: true, displayPlay: true, displayProgress: true});\n\t\tsynthControl.disable(true);\n\t\tvar midiBuffer = new ABCJS.synth.CreateSynth();\n\t\tmidiBuffer.init({\n\t\t\tvisualObj: visualObjs[0],\n \t\t\toptions: {}\n\t\t}).then(function (response) {\n\t\t\tif (synthControl) {\n\t\t\t\tsynthControl.setTune(visualObjs[0], false).then(function (response) {\n\t\t\t\t}).catch(function (error) {\n\t\t\t\t\tconsole.warn(\"Audio problem:\", error);\n\t\t\t\t});\n\t\t\t}\n\t\t}).catch(function (error) {\n\t\t\tconsole.warn(\"Audio problem:\", error);\n\t\t});\n}());\n<\/script>\n\n\n\n\n<div><div id=\"abcjs-paper-69f26c08a8122\" class=\"abcjs-paper abcjs-tune-number-0\"><\/div>\n<div id=\"abcjs-midi-69f26c08a8123\" class=\"abcjs-audio abcjs-tune-number-0\"><\/div>\n<\/div><script type=\"text\/javascript\">\n(function () {\n    \t\tfunction CursorControl(selector) {\n\t\t\tvar self = this;\n\n\t\t\tself.onStart = function() {\n\t\t\t\tvar svg = document.querySelector(\"#\" + selector + \" svg\");\n\t\t\t\tvar cursor = document.createElementNS(\"http:\/\/www.w3.org\/2000\/svg\", \"line\");\n\t\t\t\tcursor.setAttribute(\"class\", \"abcjs-cursor\");\n\t\t\t\tcursor.setAttributeNS(null, 'x1', 0);\n\t\t\t\tcursor.setAttributeNS(null, 'y1', 0);\n\t\t\t\tcursor.setAttributeNS(null, 'x2', 0);\n\t\t\t\tcursor.setAttributeNS(null, 'y2', 0);\n\t\t\t\tsvg.appendChild(cursor);\n\n\t\t\t};\n\t\t\tself.beatSubdivisions = 2;\n\t\t\tself.onEvent = function(ev) {\n\t\t\t\tif (ev.measureStart && ev.left === null)\n\t\t\t\t\treturn; \/\/ this was the second part of a tie across a measure line. Just ignore it.\n\n\t\t\t\tvar lastSelection = document.querySelectorAll(\"#\" + selector + \" svg .highlight\");\n\t\t\t\tfor (var k = 0; k < lastSelection.length; k++)\n\t\t\t\t\tlastSelection[k].classList.remove(\"highlight\");\n\n\t\t\t\tfor (var i = 0; i < ev.elements.length; i++ ) {\n\t\t\t\t\tvar note = ev.elements[i];\n\t\t\t\t\tfor (var j = 0; j < note.length; j++) {\n\t\t\t\t\t\tnote[j].classList.add(\"highlight\");\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar cursor = document.querySelector(\"#\" + selector + \" svg .abcjs-cursor\");\n\t\t\t\tif (cursor) {\n\t\t\t\t\tcursor.setAttribute(\"x1\", ev.left - 2);\n\t\t\t\t\tcursor.setAttribute(\"x2\", ev.left - 2);\n\t\t\t\t\tcursor.setAttribute(\"y1\", ev.top);\n\t\t\t\t\tcursor.setAttribute(\"y2\", ev.top + ev.height);\n\t\t\t\t}\n\t\t\t};\n\t\t\tself.onFinished = function() {\n\t\t\t\tvar els = document.querySelectorAll(\"#\" + selector + \" svg .highlight\");\n\t\t\t\tfor (var i = 0; i < els.length; i++ ) {\n\t\t\t\t\tels[i].classList.remove(\"highlight\");\n\t\t\t\t}\n\t\t\t\tvar cursor = document.querySelector(\"#\" + selector + \" svg .abcjs-cursor\");\n\t\t\t\tif (cursor) {\n\t\t\t\t\tcursor.setAttribute(\"x1\", 0);\n\t\t\t\t\tcursor.setAttribute(\"x2\", 0);\n\t\t\t\t\tcursor.setAttribute(\"y1\", 0);\n\t\t\t\t\tcursor.setAttribute(\"y2\", 0);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\tvar cursorControl = new CursorControl('abcjs-paper-69f26c08a8122', null);\nvar visualIds = ['abcjs-paper-69f26c08a8122',];\nvar params = {};\nvar abc = \" \u0001X:1\u0001T: Raag : Yaman\u0001K:C treble\u0001M:4\/4\u0001L:1\/4\u0001Q:100\u0001%%MIDI program 1 73\u0001B, D (E2-   | E)  ~^F2- (^FAB) | A (B c2) |\u0001w:Ni Re Ga Ga Ma Ma Da Ni Da Ni Sa\\'\u0001c B (G ^F)2 | (^F E) (^F D C)2 |]\u0001w: Sa\\' Ni Pa Ma Ma Ga Ma Re Sa\u0001\".replace(\/\\x01\/g,\"\\n\");\nvar visualObjs = ABCJS.renderAbc(visualIds, abc, params);\nvar midiIds = ['abcjs-midi-69f26c08a8123',];\n\t\tvar synthControl = new ABCJS.synth.SynthController();\n            var el = document.getElementById('abcjs-midi-69f26c08a8123', null);\n \t\tsynthControl.load(el, cursorControl, {displayRestart: true, displayPlay: true, displayProgress: true});\n\t\tsynthControl.disable(true);\n\t\tvar midiBuffer = new ABCJS.synth.CreateSynth();\n\t\tmidiBuffer.init({\n\t\t\tvisualObj: visualObjs[0],\n \t\t\toptions: {}\n\t\t}).then(function (response) {\n\t\t\tif (synthControl) {\n\t\t\t\tsynthControl.setTune(visualObjs[0], false).then(function (response) {\n\t\t\t\t}).catch(function (error) {\n\t\t\t\t\tconsole.warn(\"Audio problem:\", error);\n\t\t\t\t});\n\t\t\t}\n\t\t}).catch(function (error) {\n\t\t\tconsole.warn(\"Audio problem:\", error);\n\t\t});\n}());\n<\/script>\n\n\n\n\n<div><div id=\"abcjs-paper-69f26c08a8134\" class=\"abcjs-paper abcjs-tune-number-0\"><\/div>\n<div id=\"abcjs-midi-69f26c08a8135\" class=\"abcjs-audio abcjs-tune-number-0\"><\/div>\n<\/div><script type=\"text\/javascript\">\n(function () {\n    \t\tfunction CursorControl(selector) {\n\t\t\tvar self = this;\n\n\t\t\tself.onStart = function() {\n\t\t\t\tvar svg = document.querySelector(\"#\" + selector + \" svg\");\n\t\t\t\tvar cursor = document.createElementNS(\"http:\/\/www.w3.org\/2000\/svg\", \"line\");\n\t\t\t\tcursor.setAttribute(\"class\", \"abcjs-cursor\");\n\t\t\t\tcursor.setAttributeNS(null, 'x1', 0);\n\t\t\t\tcursor.setAttributeNS(null, 'y1', 0);\n\t\t\t\tcursor.setAttributeNS(null, 'x2', 0);\n\t\t\t\tcursor.setAttributeNS(null, 'y2', 0);\n\t\t\t\tsvg.appendChild(cursor);\n\n\t\t\t};\n\t\t\tself.beatSubdivisions = 2;\n\t\t\tself.onEvent = function(ev) {\n\t\t\t\tif (ev.measureStart && ev.left === null)\n\t\t\t\t\treturn; \/\/ this was the second part of a tie across a measure line. Just ignore it.\n\n\t\t\t\tvar lastSelection = document.querySelectorAll(\"#\" + selector + \" svg .highlight\");\n\t\t\t\tfor (var k = 0; k < lastSelection.length; k++)\n\t\t\t\t\tlastSelection[k].classList.remove(\"highlight\");\n\n\t\t\t\tfor (var i = 0; i < ev.elements.length; i++ ) {\n\t\t\t\t\tvar note = ev.elements[i];\n\t\t\t\t\tfor (var j = 0; j < note.length; j++) {\n\t\t\t\t\t\tnote[j].classList.add(\"highlight\");\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar cursor = document.querySelector(\"#\" + selector + \" svg .abcjs-cursor\");\n\t\t\t\tif (cursor) {\n\t\t\t\t\tcursor.setAttribute(\"x1\", ev.left - 2);\n\t\t\t\t\tcursor.setAttribute(\"x2\", ev.left - 2);\n\t\t\t\t\tcursor.setAttribute(\"y1\", ev.top);\n\t\t\t\t\tcursor.setAttribute(\"y2\", ev.top + ev.height);\n\t\t\t\t}\n\t\t\t};\n\t\t\tself.onFinished = function() {\n\t\t\t\tvar els = document.querySelectorAll(\"#\" + selector + \" svg .highlight\");\n\t\t\t\tfor (var i = 0; i < els.length; i++ ) {\n\t\t\t\t\tels[i].classList.remove(\"highlight\");\n\t\t\t\t}\n\t\t\t\tvar cursor = document.querySelector(\"#\" + selector + \" svg .abcjs-cursor\");\n\t\t\t\tif (cursor) {\n\t\t\t\t\tcursor.setAttribute(\"x1\", 0);\n\t\t\t\t\tcursor.setAttribute(\"x2\", 0);\n\t\t\t\t\tcursor.setAttribute(\"y1\", 0);\n\t\t\t\t\tcursor.setAttribute(\"y2\", 0);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\tvar cursorControl = new CursorControl('abcjs-paper-69f26c08a8134', null);\nvar visualIds = ['abcjs-paper-69f26c08a8134',];\nvar params = {};\nvar abc = \" \u0001X:1\u0001T: Yaman Bandish : Eri Ali Pia Bina\u0001K:C treble\u0001M:4\/4\u0001L:1\/4\u0001Q:120\u0001%%MIDI program 1 73\u0001x4 | x2 E\/2^F\/2 A\/2B\/2|c3 (G- | G) D2 C|\\\u0001w: * * Ga Ma Da Ni Sa\\' pa \\-   Re  Sa\u0001E D ^F E | G2 E\/2^F\/2 A\/2B\/2|c3 (G- | G) D2 C|\\\u0001w: Ga Re Ma Ga Pa Ga Ma Da Ni Sa\\' pa \\-   Re  Sa\u0001E D ^F E | G2 x2 |x4|x4|\\\u0001w:Ga Re Ma Ga Pa \\- **\u0001x4| x2 B, A, |B, D E D|E ^F G ^F|\\\u0001w: * * .Ni .Da .Ni Re Ga Re Ga Ma Pa Ma\u0001G2 D2 | C2 x2 |x4|x4|\\\u0001w: Pa Re Sa \\ &#8211; * *\u0001x4 | x4 |E E ^F ^F|A A B B|\\\u0001w: Ga Ga Ma Ma Da Da Ni Ni\u0001c2 c B| d2 c2|x4|x4|\\\u0001w: Sa Sa Ni Re Sa **\u0001x4 | x4 |E E ^F ^F|A A B B|\\\u0001w: Ga Ga Ma Ma Da Da Ni Ni\u0001c2 c B| d2 c2|x4|x4|\\\u0001w: Sa Sa Ni Re Sa **\u0001x4 | x2 E\/2^F\/2 A\/2B\/2|c3 (G- | G) D2 C|\\\u0001w: * * Ga Ma Da Ni Sa\\' pa \\-   Re  Sa \u0001E D ^F E | G2 x2|x2|]\u0001w:Ga Re Ma Ga Pa \\- **\u0001\".replace(\/\\x01\/g,\"\\n\");\nvar visualObjs = ABCJS.renderAbc(visualIds, abc, params);\nvar midiIds = ['abcjs-midi-69f26c08a8135',];\n\t\tvar synthControl = new ABCJS.synth.SynthController();\n            var el = document.getElementById('abcjs-midi-69f26c08a8135', null);\n \t\tsynthControl.load(el, cursorControl, {displayRestart: true, displayPlay: true, displayProgress: true});\n\t\tsynthControl.disable(true);\n\t\tvar midiBuffer = new ABCJS.synth.CreateSynth();\n\t\tmidiBuffer.init({\n\t\t\tvisualObj: visualObjs[0],\n \t\t\toptions: {}\n\t\t}).then(function (response) {\n\t\t\tif (synthControl) {\n\t\t\t\tsynthControl.setTune(visualObjs[0], false).then(function (response) {\n\t\t\t\t}).catch(function (error) {\n\t\t\t\t\tconsole.warn(\"Audio problem:\", error);\n\t\t\t\t});\n\t\t\t}\n\t\t}).catch(function (error) {\n\t\t\tconsole.warn(\"Audio problem:\", error);\n\t\t});\n}());\n<\/script>\n\n\n\n\n<textarea id=\"kar\">X:1\nT:Editable\nK:C\nM:4\/4\nF, G, A, B, | C  D E F | G  A B c | d e f g|]\n<\/textarea>\n<div><div id=\"abc-editor-69f26c08a8141\" class=\"abc-paper abcjs-tune-number-0\"><\/div>\n<\/div>\n<script type=\"text\/javascript\">\n(function () {\n     new ABCJS.Editor(\"kar\", { canvas_id: 'abc-editor-69f26c08a8141', \n    abcjsParams: {}\n  });}());\n<\/script>\n\n","protected":false},"featured_media":0,"parent":248,"menu_order":1,"comment_status":"open","ping_status":"closed","template":"","doc_tag":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>sandbox - KaLabs<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/karthicklakshmanan.com\/index.php\/docs\/world-music\/sandbox\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"sandbox - KaLabs\" \/>\n<meta property=\"og:description\" content=\"X:1 T:Editable K:C M:4\/4 F, G, A, B, | C D E F | G A B c | d e f g|]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/karthicklakshmanan.com\/index.php\/docs\/world-music\/sandbox\/\" \/>\n<meta property=\"og:site_name\" content=\"KaLabs\" \/>\n<meta property=\"article:modified_time\" content=\"2022-06-17T16:34:41+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/karthicklakshmanan.com\/index.php\/docs\/world-music\/sandbox\/\",\"url\":\"https:\/\/karthicklakshmanan.com\/index.php\/docs\/world-music\/sandbox\/\",\"name\":\"sandbox - KaLabs\",\"isPartOf\":{\"@id\":\"https:\/\/karthicklakshmanan.com\/#website\"},\"datePublished\":\"2022-06-17T07:23:13+00:00\",\"dateModified\":\"2022-06-17T16:34:41+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/karthicklakshmanan.com\/index.php\/docs\/world-music\/sandbox\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/karthicklakshmanan.com\/index.php\/docs\/world-music\/sandbox\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/karthicklakshmanan.com\/index.php\/docs\/world-music\/sandbox\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/karthicklakshmanan.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"World Music\",\"item\":\"https:\/\/karthicklakshmanan.com\/index.php\/docs\/world-music\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"sandbox\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/karthicklakshmanan.com\/#website\",\"url\":\"https:\/\/karthicklakshmanan.com\/\",\"name\":\"KaLabs\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/karthicklakshmanan.com\/#\/schema\/person\/d8c965256b957ba7ff13eb50f23a3dc1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/karthicklakshmanan.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/karthicklakshmanan.com\/#\/schema\/person\/d8c965256b957ba7ff13eb50f23a3dc1\",\"name\":\"karthick\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/karthicklakshmanan.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e08dc4c1354d0957b11a1d5bdc285864?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e08dc4c1354d0957b11a1d5bdc285864?s=96&d=mm&r=g\",\"caption\":\"karthick\"},\"logo\":{\"@id\":\"https:\/\/karthicklakshmanan.com\/#\/schema\/person\/image\/\"},\"sameAs\":[\"http:\/\/karthicklakshmanan.com\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"sandbox - KaLabs","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/karthicklakshmanan.com\/index.php\/docs\/world-music\/sandbox\/","og_locale":"en_US","og_type":"article","og_title":"sandbox - KaLabs","og_description":"X:1 T:Editable K:C M:4\/4 F, G, A, B, | C D E F | G A B c | d e f g|]","og_url":"https:\/\/karthicklakshmanan.com\/index.php\/docs\/world-music\/sandbox\/","og_site_name":"KaLabs","article_modified_time":"2022-06-17T16:34:41+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/karthicklakshmanan.com\/index.php\/docs\/world-music\/sandbox\/","url":"https:\/\/karthicklakshmanan.com\/index.php\/docs\/world-music\/sandbox\/","name":"sandbox - KaLabs","isPartOf":{"@id":"https:\/\/karthicklakshmanan.com\/#website"},"datePublished":"2022-06-17T07:23:13+00:00","dateModified":"2022-06-17T16:34:41+00:00","breadcrumb":{"@id":"https:\/\/karthicklakshmanan.com\/index.php\/docs\/world-music\/sandbox\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/karthicklakshmanan.com\/index.php\/docs\/world-music\/sandbox\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/karthicklakshmanan.com\/index.php\/docs\/world-music\/sandbox\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/karthicklakshmanan.com\/"},{"@type":"ListItem","position":2,"name":"World Music","item":"https:\/\/karthicklakshmanan.com\/index.php\/docs\/world-music\/"},{"@type":"ListItem","position":3,"name":"sandbox"}]},{"@type":"WebSite","@id":"https:\/\/karthicklakshmanan.com\/#website","url":"https:\/\/karthicklakshmanan.com\/","name":"KaLabs","description":"","publisher":{"@id":"https:\/\/karthicklakshmanan.com\/#\/schema\/person\/d8c965256b957ba7ff13eb50f23a3dc1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/karthicklakshmanan.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/karthicklakshmanan.com\/#\/schema\/person\/d8c965256b957ba7ff13eb50f23a3dc1","name":"karthick","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/karthicklakshmanan.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/e08dc4c1354d0957b11a1d5bdc285864?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e08dc4c1354d0957b11a1d5bdc285864?s=96&d=mm&r=g","caption":"karthick"},"logo":{"@id":"https:\/\/karthicklakshmanan.com\/#\/schema\/person\/image\/"},"sameAs":["http:\/\/karthicklakshmanan.com"]}]}},"comment_count":0,"_links":{"self":[{"href":"https:\/\/karthicklakshmanan.com\/index.php\/wp-json\/wp\/v2\/docs\/262"}],"collection":[{"href":"https:\/\/karthicklakshmanan.com\/index.php\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/karthicklakshmanan.com\/index.php\/wp-json\/wp\/v2\/types\/docs"}],"replies":[{"embeddable":true,"href":"https:\/\/karthicklakshmanan.com\/index.php\/wp-json\/wp\/v2\/comments?post=262"}],"version-history":[{"count":201,"href":"https:\/\/karthicklakshmanan.com\/index.php\/wp-json\/wp\/v2\/docs\/262\/revisions"}],"predecessor-version":[{"id":512,"href":"https:\/\/karthicklakshmanan.com\/index.php\/wp-json\/wp\/v2\/docs\/262\/revisions\/512"}],"up":[{"embeddable":true,"href":"https:\/\/karthicklakshmanan.com\/index.php\/wp-json\/wp\/v2\/docs\/248"}],"prev":[{"title":"Beethoven-Ludwig-van-ode-joy","link":"https:\/\/karthicklakshmanan.com\/index.php\/docs\/world-music\/beethoven-ludwig-van-ode-joy\/","href":"https:\/\/karthicklakshmanan.com\/index.php\/wp-json\/wp\/v2\/docs\/250"}],"wp:attachment":[{"href":"https:\/\/karthicklakshmanan.com\/index.php\/wp-json\/wp\/v2\/media?parent=262"}],"wp:term":[{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/karthicklakshmanan.com\/index.php\/wp-json\/wp\/v2\/doc_tag?post=262"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}