{"id":109,"date":"2024-06-25T10:55:23","date_gmt":"2024-06-25T10:55:23","guid":{"rendered":"https:\/\/abramelinwolfe.com\/?page_id=109"},"modified":"2025-06-08T11:04:37","modified_gmt":"2025-06-08T11:04:37","slug":"c-major-scale","status":"publish","type":"page","link":"https:\/\/abramelinwolfe.com\/index.php\/c-major-scale\/","title":{"rendered":"C Major Scales and Arpeggios"},"content":{"rendered":"<div id=\"cs-content\" class=\"cs-content\"><div class=\"x-section e109-e1 m31-0\"><div class=\"x-row x-container max width e109-e2 m31-1 m31-2 m31-3\"><div class=\"x-row-inner\"><div class=\"x-col e109-e3 m31-a\"><div><div id=\"abcjs-paper-69e0767fe55c5\" class=\"abcjs-paper abcjs-tune-number-0\"><\/div>\n<div id=\"abcjs-midi-69e0767fe55c8\" class=\"abcjs-large 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-69e0767fe55c5', null);\nvar visualIds = ['abcjs-paper-69e0767fe55c5',];\nvar params = { responsive: 'resize'};\nvar abc = \"\u0001X:2\u0001T:C Major\u0001L:1\/4\u0001M:4\/4\u0001Q:1\/4=100\u0001I:linebreak $\u0001K:C\u0001%%MIDI program 41\u0001!3!C D E F | G A B c | !1!d e f g | a b c\\' b | a g f e | d !2!c B A | G F E D | C4 |] \u0001\".replace(\/\\x01\/g,\"\\n\");\nvar visualObjs = ABCJS.renderAbc(visualIds, abc, params);\nvar midiIds = ['abcjs-midi-69e0767fe55c8',];\n\t\tvar synthControl = new ABCJS.synth.SynthController();\n            var el = document.getElementById('abcjs-midi-69e0767fe55c8', null);\n \t\tsynthControl.load(el, cursorControl, {displayLoop: true,displayRestart: true, displayPlay: true, displayProgress: true,displayWarp: 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: { responsive: 'resize'}\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 class=\"x-row x-container max width e109-e5 m31-1 m31-2 m31-4\"><div class=\"x-row-inner\"><div class=\"x-col e109-e6 m31-a\"><div class=\"x-text x-content e109-e7 m31-b\"><\/div><\/div><\/div><\/div><\/div><\/div><\/div><div class=\"x-row x-container max width e109-e8 m31-1 m31-2 m31-5\"><div class=\"x-row-inner\"><div class=\"x-col e109-e9 m31-a\"><div><div id=\"abcjs-paper-69e0767fe55dc\" class=\"abcjs-paper abcjs-tune-number-0\"><\/div>\n<div id=\"abcjs-midi-69e0767fe55dd\" class=\"abcjs-large 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-69e0767fe55dc', null);\nvar visualIds = ['abcjs-paper-69e0767fe55dc',];\nvar params = { responsive: 'resize'};\nvar abc = \"\u0001\u0001X:3\u0001T:C Major - 3 Octaves\u0001L:1\/4\u0001M:4\/4\u0001I:linebreak $\u0001K:C\u0001\\\"^C Major\\\" !2!C D E F | G A B c | d !1!e f g | a b c\\' !1!d\\' | e\\' !1!f\\' g\\' a\\' | b\\' !4!c\\'\\' !4!b\\' a\\' | \u0001g\\' f\\' !3!e\\' d\\' | c\\' !3!b a g | f e d c | B A G F | E D C2 |] \u0001\u0001\".replace(\/\\x01\/g,\"\\n\");\nvar visualObjs = ABCJS.renderAbc(visualIds, abc, params);\nvar midiIds = ['abcjs-midi-69e0767fe55dd',];\n\t\tvar synthControl = new ABCJS.synth.SynthController();\n            var el = document.getElementById('abcjs-midi-69e0767fe55dd', null);\n \t\tsynthControl.load(el, cursorControl, {displayLoop: true,displayRestart: true, displayPlay: true, displayProgress: true,displayWarp: 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: { responsive: 'resize'}\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<\/div><\/div><\/div><div class=\"x-row x-container max width e109-e11 m31-1 m31-2 m31-6\"><div class=\"x-row-inner\"><div class=\"x-col e109-e12 m31-a\"><div class=\"x-text x-content e109-e13 m31-b\"><\/div><\/div><\/div><\/div><div class=\"x-row x-container max width e109-e14 m31-1 m31-2 m31-7\"><div class=\"x-row-inner\"><div class=\"x-col e109-e15 m31-a\"><div><div id=\"abcjs-paper-69e0767fe55e9\" class=\"abcjs-paper abcjs-tune-number-0\"><\/div>\n<div id=\"abcjs-midi-69e0767fe55ea\" class=\"abcjs-large 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-69e0767fe55e9', null);\nvar visualIds = ['abcjs-paper-69e0767fe55e9',];\nvar params = { responsive: 'resize'};\nvar abc = \"\u0001X:2\u0001T:C Major - Arpeggio\u0001L:1\/4\u0001M:4\/4\u0001Q:1\/4=100\u0001I:linebreak $\u0001K:C\u0001%%MIDI program 41\u0001!2!C E G c | e g c\\' g | e c G E | C4 |] \u0001\".replace(\/\\x01\/g,\"\\n\");\nvar visualObjs = ABCJS.renderAbc(visualIds, abc, params);\nvar midiIds = ['abcjs-midi-69e0767fe55ea',];\n\t\tvar synthControl = new ABCJS.synth.SynthController();\n            var el = document.getElementById('abcjs-midi-69e0767fe55ea', null);\n \t\tsynthControl.load(el, cursorControl, {displayLoop: true,displayRestart: true, displayPlay: true, displayProgress: true,displayWarp: 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: { responsive: 'resize'}\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<\/div><\/div><\/div><div class=\"x-row x-container max width e109-e17 m31-1 m31-2 m31-8\"><div class=\"x-row-inner\"><div class=\"x-col e109-e18 m31-a\"><div class=\"x-text x-content e109-e19 m31-b\"><\/div><\/div><\/div><\/div><div class=\"x-row x-container max width e109-e20 m31-1 m31-2 m31-9\"><div class=\"x-row-inner\"><div class=\"x-col e109-e21 m31-a\"><div><div id=\"abcjs-paper-69e0767fe55f3\" class=\"abcjs-paper abcjs-tune-number-0\"><\/div>\n<div id=\"abcjs-midi-69e0767fe55f4\" class=\"abcjs-large 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-69e0767fe55f3', null);\nvar visualIds = ['abcjs-paper-69e0767fe55f3',];\nvar params = { responsive: 'resize'};\nvar abc = \"\u0001X:2\u0001T:C Major Pentatonic\u0001L:1\/4\u0001M:4\/4\u0001Q:1\/4=100\u0001I:linebreak $\u0001K:C\u0001%%MIDI program 41\u0001!3!C D E G | A c !1!d e | g a c\\' a | g e d !2!c | A G E D | C4 |]  \u0001\".replace(\/\\x01\/g,\"\\n\");\nvar visualObjs = ABCJS.renderAbc(visualIds, abc, params);\nvar midiIds = ['abcjs-midi-69e0767fe55f4',];\n\t\tvar synthControl = new ABCJS.synth.SynthController();\n            var el = document.getElementById('abcjs-midi-69e0767fe55f4', null);\n \t\tsynthControl.load(el, cursorControl, {displayLoop: true,displayRestart: true, displayPlay: true, displayProgress: true,displayWarp: 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: { responsive: 'resize'}\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<div class=\"x-text x-content e109-e23 m31-b\"><\/div><div><div id=\"abcjs-paper-69e0767fe5603\" class=\"abcjs-paper abcjs-tune-number-0\"><\/div>\n<div id=\"abcjs-midi-69e0767fe5604\" class=\"abcjs-large 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-69e0767fe5603', null);\nvar visualIds = ['abcjs-paper-69e0767fe5603',];\nvar params = { responsive: 'resize'};\nvar abc = \"\u0001X:2\u0001T:C Major Carl Flesch Extract\u0001L:1\/8\u0001M:12\/8\u0001I:linebreak $\u0001K:C\u0001!2!CDE FGA Bcd !1!efg | abc\\' d\\'e\\'!1!f\\' g\\'!1!a\\'b\\' !4!c\\'\\'!4!b\\'a\\' | g\\'f\\'!3!e\\' d\\'c\\'!3!b agf edc | BAG FED C6 ||\u0001[M:6\/4] (3!2!C_EG (3!1!c!1!_e!3!g (3!2!c\\'!1!_e\\'g\\' (3c\\'\\'g\\'e\\' (3!4!c\\'!1!g!3!e (3!1!c!2!G!4!E | (3C=EG (3c!1!=eg (3!2!c\\'!1!=e\\'g\\' (3c\\'\\'g\\'e\\' (3!4!c\\'!1!g!3!e (3!1!c!2!GE | (3CE!3!A (3!1!c!1!e!4!a (3!2!c\\'!1!e\\'!3!a\\' (3c\\'\\'a\\'e\\' (3!4!c\\'!2!a!3!e (3!1!c!3!A!4!E |$ (3C!1!F!3!A (3!1!c!1!fa (3!2!c\\'!1!f\\'a\\' (3c\\'\\'a\\'f\\' (3!4!c\\'!2!a!4!f (3!1!c!3!A!1!F | (3C!1!F!3!_A (3!1!c!1!f!3!_a (3!2!c\\'!1!f\\'_a\\' (3c\\'\\'a\\'f\\' (3!4!c\\'!2!a!4!f (3!1!c!3!A!1!F |$ \u0001\\\"^Diminished\\\" C\/!4!^D\/!1!^F\/=A\/ !1!c\/!1!^d\/!3!^f\/!4!=a\/ c\\'\/!1!^d\\'\/!2!^f\\'\/!3!=a\\'\/ !4!c\\'\\'\/!3!a\\'\/!2!f\\'\/!1!d\\'\/ !4!c\\'\/!2!a\/!4!f\/!3!d\/ c\/A\/F\/!4!D\/ | \\\"^Dominant\\\" C\/E\/G\/_B\/ c\/!1!e\/g\/_b\/ c\\'\/!1!e\\'\/!2!g\\'\/!3!_b\\'\/ !4!c\\'\\'\/!3!b\\'\/!2!g\\'\/!1!e\\'\/ !4!c\\'\/_b\/g\/e\/ c\/_B\/G\/E\/ | F12 |] \u0001 \u0001\".replace(\/\\x01\/g,\"\\n\");\nvar visualObjs = ABCJS.renderAbc(visualIds, abc, params);\nvar midiIds = ['abcjs-midi-69e0767fe5604',];\n\t\tvar synthControl = new ABCJS.synth.SynthController();\n            var el = document.getElementById('abcjs-midi-69e0767fe5604', null);\n \t\tsynthControl.load(el, cursorControl, {displayLoop: true,displayRestart: true, displayPlay: true, displayProgress: true,displayWarp: 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: { responsive: 'resize'}\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<\/div><\/div><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-109","page","type-page","status-publish","hentry","no-post-thumbnail"],"_links":{"self":[{"href":"https:\/\/abramelinwolfe.com\/index.php\/wp-json\/wp\/v2\/pages\/109","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/abramelinwolfe.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/abramelinwolfe.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/abramelinwolfe.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/abramelinwolfe.com\/index.php\/wp-json\/wp\/v2\/comments?post=109"}],"version-history":[{"count":49,"href":"https:\/\/abramelinwolfe.com\/index.php\/wp-json\/wp\/v2\/pages\/109\/revisions"}],"predecessor-version":[{"id":338,"href":"https:\/\/abramelinwolfe.com\/index.php\/wp-json\/wp\/v2\/pages\/109\/revisions\/338"}],"wp:attachment":[{"href":"https:\/\/abramelinwolfe.com\/index.php\/wp-json\/wp\/v2\/media?parent=109"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}