{"version":9,"randomSeed":"38b181dbe590a5f917e10b6615ac79b0","graph":{"viewport":{"xmin":-3.227912059771036,"ymin":-0.42249198112074904,"xmax":5.866063700545483,"ymax":6.762972274340104},"xAxisMinorSubdivisions":1,"yAxisMinorSubdivisions":1},"expressions":{"list":[{"type":"text","id":"16","text":"Click on the numbered buttons to add chords"},{"type":"text","id":"19","text":"The program checks whether the new chord follows the rules for sounding good; the button will do nothing if that chord violates the rules"},{"type":"text","id":"21","text":"What follows is the maths behind this; read it if you want, but that's not necessary to use this"},{"type":"expression","id":"1","color":"#c74440","latex":"C_{bi}\\left(v\\right)=\\sum_{k=1}^{\\operatorname{length}\\left(v\\right)}2^{v\\left[k\\right]}"},{"type":"expression","id":"6","color":"#6042a6","latex":"C_{ib}\\left(n,k\\right)=\\operatorname{mod}\\left(\\operatorname{floor}\\left(\\frac{n}{2^{k}}\\right),2\\right)"},{"type":"expression","id":"2","color":"#2d70b3","latex":"V=\\left[C_{bi}\\left(\\left[1,2,3,4,5,6\\right]\\right),C_{bi}\\left(\\left[3,4,5\\right]\\right),C_{bi}\\left(\\left[1,2,4,6\\right]\\right),C_{bi}\\left(\\left[1,3,5,6\\right]\\right),C_{bi}\\left(\\left[1,4,6\\right]\\right),C_{bi}\\left(\\left[1,2,4,5\\right]\\right)\\right]"},{"type":"expression","id":"3","color":"#c74440","latex":"P=\\left[\\right]"},{"type":"expression","id":"5","color":"#388c46","latex":"A\\left(i\\right)=\\left\\{\\operatorname{length}\\left(P\\right)=0:\\left(P\\to\\left[i\\right]\\right),C_{ib}\\left(V\\left[P\\left[\\operatorname{length}\\left(P\\right)\\right]\\right],i\\right)=1:\\left(P\\to\\operatorname{join}\\left(P,i\\right)\\right)\\right\\}"},{"type":"expression","id":"14","color":"#c74440","latex":"K=\\left[1...6\\right]"},{"type":"folder","id":"23","title":"labels","collapsed":true},{"type":"expression","id":"24","folderId":"23","color":"#000000","latex":"\\left(0,1\\right)","showLabel":true,"label":"C maj - I ...","labelSize":"2","labelOrientation":"left","pointOpacity":"1","pointSize":"0"},{"type":"expression","id":"25","folderId":"23","color":"#000000","latex":"\\left(0,2\\right)","showLabel":true,"label":"D min - ii ...","labelSize":"2","labelOrientation":"left","pointSize":"0"},{"type":"expression","id":"26","folderId":"23","color":"#000000","latex":"\\left(0,3\\right)","showLabel":true,"label":"E min - iii ...","labelSize":"2","labelOrientation":"left","pointSize":"0"},{"type":"expression","id":"27","folderId":"23","color":"#000000","latex":"\\left(0,4\\right)","showLabel":true,"label":"F maj - IV ...","labelSize":"2","labelOrientation":"left","pointSize":"0"},{"type":"expression","id":"28","folderId":"23","color":"#000000","latex":"\\left(0,5\\right)","showLabel":true,"label":"G maj - V ...","labelSize":"2","labelOrientation":"left","pointSize":"0"},{"type":"expression","id":"29","folderId":"23","color":"#000000","latex":"\\left(0,6\\right)","showLabel":true,"label":"A min - vi ...","labelSize":"2","labelOrientation":"left","pointSize":"0"},{"type":"expression","id":"31","color":"#2d70b3","latex":"U=\\left[\\left\\{\\operatorname{length}\\left(P\\right)=0:1,C_{ib}\\left(V\\left[P\\left[\\operatorname{length}\\left(P\\right)\\right]\\right],j\\right)=1:1,0\\right\\}\\operatorname{for}j=K\\right]"},{"type":"expression","id":"13","color":"#000000","latex":"\\left(0,K\\right)","labelSize":"2","labelOrientation":"left","pointOpacity":"1","pointSize":"30U","clickableInfo":{"enabled":true,"latex":"A\\left(\\operatorname{index}\\right)"}},{"type":"expression","id":"7","color":"#388c46","latex":"\\left[\\left(k,P\\left[k\\right]\\right)\\operatorname{for}k=\\left[1...\\operatorname{length}\\left(P\\right)\\right]\\right]","pointOpacity":"1","pointSize":"20"},{"type":"expression","id":"17","color":"#c74440","latex":"\\left(0,0\\right)","showLabel":true,"label":"Delete last chord","labelSize":"2","labelOrientation":"above","pointOpacity":"1","pointSize":"30","clickableInfo":{"enabled":true,"latex":"\\left\\{\\operatorname{length}\\left(P\\right)=1:\\left(P\\to\\left[\\right]\\right),P\\to P\\left[1...\\left(\\operatorname{length}\\left(P\\right)-1\\right)\\right]\\right\\}"}}]}}