diff --git a/docs/assets/favicon-D4DtJJAi.ico b/docs/assets/favicon-D4DtJJAi.ico deleted file mode 100644 index e733583..0000000 Binary files a/docs/assets/favicon-D4DtJJAi.ico and /dev/null differ diff --git a/docs/assets/guitar-AUKtsq8u.png b/docs/assets/guitar-AUKtsq8u.png new file mode 100644 index 0000000..bda93ed Binary files /dev/null and b/docs/assets/guitar-AUKtsq8u.png differ diff --git a/docs/assets/index-Ag2BL5Bd.js b/docs/assets/index-Ag2BL5Bd.js new file mode 100644 index 0000000..54eee47 --- /dev/null +++ b/docs/assets/index-Ag2BL5Bd.js @@ -0,0 +1 @@ +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const l of s)if(l.type==="childList")for(const c of l.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&r(c)}).observe(document,{childList:!0,subtree:!0});function n(s){const l={};return s.integrity&&(l.integrity=s.integrity),s.referrerPolicy&&(l.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?l.credentials="include":s.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function r(s){if(s.ep)return;s.ep=!0;const l=n(s);fetch(s.href,l)}})();const $e=(e,t)=>e===t,Ae=Symbol("solid-track"),Y={equals:$e};let Ce=ve;const B=1,Z=2,_e={owned:null,cleanups:null,context:null,owner:null};var y=null;let le=null,Ee=null,b=null,$=null,M=null,ne=0;function Q(e,t){const n=b,r=y,s=e.length===0,l=t===void 0?r:t,c=s?_e:{owned:null,cleanups:null,context:l?l.context:null,owner:l},i=s?e:()=>e(()=>H(()=>re(c)));y=c,b=null;try{return U(i,!0)}finally{b=n,y=r}}function F(e,t){t=t?Object.assign({},Y,t):Y;const n={value:e,observers:null,observerSlots:null,comparator:t.equals||void 0},r=s=>(typeof s=="function"&&(s=s(n.value)),pe(n,s));return[me.bind(n),r]}function v(e,t,n){const r=be(e,t,!1,B);se(r)}function z(e,t,n){n=n?Object.assign({},Y,n):Y;const r=be(e,t,!0,0);return r.observers=null,r.observerSlots=null,r.comparator=n.equals||void 0,se(r),me.bind(r)}function H(e){if(b===null)return e();const t=b;b=null;try{return e()}finally{b=t}}function We(e){return y===null||(y.cleanups===null?y.cleanups=[e]:y.cleanups.push(e)),e}function me(){if(this.sources&&this.state)if(this.state===B)se(this);else{const e=$;$=null,U(()=>ee(this),!1),$=e}if(b){const e=this.observers?this.observers.length:0;b.sources?(b.sources.push(this),b.sourceSlots.push(e)):(b.sources=[this],b.sourceSlots=[e]),this.observers?(this.observers.push(b),this.observerSlots.push(b.sources.length-1)):(this.observers=[b],this.observerSlots=[b.sources.length-1])}return this.value}function pe(e,t,n){let r=e.value;return(!e.comparator||!e.comparator(r,t))&&(e.value=t,e.observers&&e.observers.length&&U(()=>{for(let s=0;s1e6)throw $=[],new Error},!1)),t}function se(e){if(!e.fn)return;re(e);const t=ne;Ie(e,e.value,t)}function Ie(e,t,n){let r;const s=y,l=b;b=y=e;try{r=e.fn(t)}catch(c){return e.pure&&(e.state=B,e.owned&&e.owned.forEach(re),e.owned=null),e.updatedAt=n+1,we(c)}finally{b=l,y=s}(!e.updatedAt||e.updatedAt<=n)&&(e.updatedAt!=null&&"observers"in e?pe(e,r):e.value=r,e.updatedAt=n)}function be(e,t,n,r=B,s){const l={fn:e,state:r,updatedAt:null,owned:null,sources:null,sourceSlots:null,cleanups:null,value:t,owner:y,context:y?y.context:null,pure:n};return y===null||y!==_e&&(y.owned?y.owned.push(l):y.owned=[l]),l}function ye(e){if(e.state===0)return;if(e.state===Z)return ee(e);if(e.suspense&&H(e.suspense.inFallback))return e.suspense.effects.push(e);const t=[e];for(;(e=e.owner)&&(!e.updatedAt||e.updatedAt=0;n--)if(e=t[n],e.state===B)se(e);else if(e.state===Z){const r=$;$=null,U(()=>ee(e,t[0]),!1),$=r}}function U(e,t){if($)return e();let n=!1;t||($=[]),M?n=!0:M=[],ne++;try{const r=e();return Le(n),r}catch(r){n||(M=null),$=null,we(r)}}function Le(e){if($&&(ve($),$=null),e)return;const t=M;M=null,t.length&&U(()=>Ce(t),!1)}function ve(e){for(let t=0;t=0;t--)re(e.owned[t]);e.owned=null}if(e.cleanups){for(t=e.cleanups.length-1;t>=0;t--)e.cleanups[t]();e.cleanups=null}e.state=0}function ke(e){return e instanceof Error?e:new Error(typeof e=="string"?e:"Unknown error",{cause:e})}function we(e,t=y){throw ke(e)}const Te=Symbol("fallback");function fe(e){for(let t=0;t1?[]:null;return We(()=>fe(l)),()=>{let a=e()||[],f,o;return a[Ae],H(()=>{let u=a.length,h,x,W,k,O,w,C,p,L;if(u===0)c!==0&&(fe(l),l=[],r=[],s=[],c=0,i&&(i=[])),n.fallback&&(r=[Te],s[0]=Q(j=>(l[0]=j,n.fallback())),c=1);else if(c===0){for(s=new Array(u),o=0;o=w&&p>=w&&r[C]===a[p];C--,p--)W[p]=s[C],k[p]=l[C],i&&(O[p]=i[C]);for(h=new Map,x=new Array(p+1),o=p;o>=w;o--)L=a[o],f=h.get(L),x[o]=f===void 0?-1:f,h.set(L,o);for(f=w;f<=C;f++)L=r[f],o=h.get(L),o!==void 0&&o!==-1?(W[o]=s[f],k[o]=l[f],i&&(O[o]=i[f]),o=x[o],h.set(L,o)):l[f]();for(o=w;oe(t||{}))}const Ne=e=>`Stale read from <${e}>.`;function X(e){const t="fallback"in e&&{fallback:()=>e.fallback};return z(Oe(()=>e.each,e.children,t||void 0))}function J(e){const t=e.keyed,n=z(()=>e.when,void 0,{equals:(r,s)=>t?r===s:!r==!s});return z(()=>{const r=n();if(r){const s=e.children;return typeof s=="function"&&s.length>0?H(()=>s(t?r:()=>{if(!H(n))throw Ne("Show");return e.when})):s}return e.fallback},void 0,void 0)}function je(e,t,n){let r=n.length,s=t.length,l=r,c=0,i=0,a=t[s-1].nextSibling,f=null;for(;co-i){const x=t[c];for(;i{s=l,t===document?e():_(t,e(),t.firstChild?null:void 0,n)},r.owner),()=>{s(),t.textContent=""}}function A(e,t,n){let r;const s=()=>{const c=document.createElement("template");return c.innerHTML=e,n?c.content.firstChild.firstChild:c.content.firstChild},l=t?()=>H(()=>document.importNode(r||(r=s()),!0)):()=>(r||(r=s())).cloneNode(!0);return l.cloneNode=l,l}function He(e,t=window.document){const n=t[ae]||(t[ae]=new Set);for(let r=0,s=e.length;rte(e,t(),s,n),r)}function de(e,t,n){const r=t.trim().split(/\s+/);for(let s=0,l=r.length;s{let i=t();for(;typeof i=="function";)i=i();n=te(e,i,n,r)}),()=>n;if(Array.isArray(t)){const i=[],a=n&&Array.isArray(n);if(ce(i,t,n,s))return v(()=>n=te(e,i,n,r,!0)),()=>n;if(i.length===0){if(n=D(e,n,r),c)return n}else a?n.length===0?he(e,i,r):je(e,n,i):(n&&D(e),he(e,i));n=i}else if(t.nodeType){if(Array.isArray(n)){if(c)return n=D(e,n,r,t);D(e,n,null,t)}else n==null||n===""||!e.firstChild?e.appendChild(t):e.replaceChild(t,e.firstChild);n=t}}return n}function ce(e,t,n,r){let s=!1;for(let l=0,c=t.length;l=0;c--){const i=t[c];if(s!==i){const a=i.parentNode===e;!l&&!c?a?e.replaceChild(s,i):e.insertBefore(s,n):a&&i.remove()}else l=!0}}else e.insertBefore(s,n);return[s]}const De="_chordblock_1a379_6",Fe="_text_1a379_17",Re="_textx_1a379_23",Ve="_nut_1a379_30",Ke="_fret_1a379_36",Ue="_finger_1a379_41",qe="_string_1a379_46",Ge="_n1_1a379_51",Qe="_n2_1a379_52",Xe="_n3_1a379_53",Je="_n4_1a379_54",Ye="_n5_1a379_55",Ze="_n6_1a379_56",ze="_n7_1a379_57",et="_chord_1a379_6",tt="_active_1a379_65",nt="_clear_1a379_89",st="_footer_1a379_93",rt="_roman_1a379_99",lt="_scale_1a379_106",S={chordblock:De,text:Fe,textx:Re,nut:Ve,fret:Ke,finger:Ue,string:qe,n1:Ge,n2:Qe,n3:Xe,n4:Je,n5:Ye,n6:Ze,n7:ze,chord:et,active:tt,clear:nt,footer:st,roman:rt,scale:lt},V={0:"C",1:"C#",2:"D",3:"D#",4:"E",5:"F",6:"F#",7:"G",8:"G#",9:"A",10:"A#",11:"B"};class G{constructor(t){this.strings=t}fingering(t,n){const r=[];return this.strings.forEach((s,l)=>{for(let c=0;cu.color!==null);new Set(o.map(u=>u.color)).size==t.notes.length&&(!a||o[0].color===0)&&s.push(new ge(r));return}const f=this.strings[l];this.string_fingerings(t,n,[...r,new ie(l,0,null,null)],s,l+1);for(let o=0;oMath.abs(h.fret-o)))<=i&&this.string_fingerings(t,n,[...r,new ie(l,o,d,V[t.notes[d]])],s,l+1)}}chord_fingerings(t,n){const r=[];return this.string_fingerings(t,n,[],r,0),r.filter(s=>!r.some(l=>s!=l&&s.isSubSetOf(l)))}}class ie{constructor(t,n,r,s){this.string=t,this.fret=n,this.color=r,this.label=s}}class ge{constructor(t){this.fingers=t,this.signature=this.fingers.map(n=>n.color==null?"x":n.fret).join("|")}get min_fret(){return Math.min(...this.sounding.map(t=>t.fret))}get max_fret(){return Math.max(...this.sounding.map(t=>t.fret))}get sounding(){return this.fingers.filter(t=>t.color!==null)}isSubSetOf(t){return this.sounding.every(n=>t.sounding.some(r=>n.string==r.string&&n.fret==r.fret))}}const it={[[0,4,7]]:"",[[0,3,7]]:"m",[[0,4,8]]:"aug",[[0,3,6]]:"dim",[[0,2,7]]:"sus2",[[0,5,7]]:"sus4"};function ot(e){return(e%12+12)%12}class ct{constructor(t){this.notes=t}get root(){return this.notes[0]}get type(){const t=this.notes.map(n=>ot(n-this.root));return it[t]}get label(){return V[this.root]+this.type}}const ut={W:2,H:1};class T{constructor(t){this.notes=t}static fromSteps(t){let n=0;return t=[...t],t.pop(),new T([0,...t.map(r=>(n=(n+ut[r])%12,n))])}transpose(t){return new T(this.notes.map(n=>(n+t)%12))}label(t){return V[t]}chord(t){return new ct([0,2,4].map(n=>this.notes[(t+n)%this.notes.length]))}}const oe={"Ionian / Major":T.fromSteps("WWHWWWH"),Dorian:T.fromSteps("WHWWWHW"),Phrygian:T.fromSteps("HWWWHWW"),Lydian:T.fromSteps("WWWHWWH"),Mixolydian:T.fromSteps("WWHWWHW"),"Aeolian / Minor":T.fromSteps("WHWWHWW"),Locrian:T.fromSteps("HWWHWWW")},K={guitar:new G([4,9,2,7,11,4]),bass:new G([4,9,2,7]),ukulele:new G([7,0,4,9]),banjo:new G([2,7,11,2])};var ft=A("",!1,!0),at=A(''),dt=A("",!1,!0),ht=A("",!1,!0),gt=A("",!1,!0),_t=A("",!1,!0),mt=A("",!1,!0),pt=A("",!1,!0),bt=A(""),yt=A(""),vt=A("

(/)(/)