Added new attribute - start-fret for which fret the fretboard starts on
This commit is contained in:
@@ -152,6 +152,7 @@ class GuitarDiagramsWebComponent extends HTMLElement {
|
||||
"orient-horizontally",
|
||||
"fret-count",
|
||||
"scale-factor",
|
||||
"start-fret",
|
||||
"center-align",
|
||||
];
|
||||
}
|
||||
@@ -170,6 +171,9 @@ class GuitarDiagramsWebComponent extends HTMLElement {
|
||||
case "scale-factor":
|
||||
this.#config.scaleFactor = parseFloat(newValue);
|
||||
break;
|
||||
case "start-fret":
|
||||
this.#config.fretStartingNumber = parseFloat(newValue);
|
||||
break;
|
||||
case "center-align":
|
||||
if (newValue == "true") {
|
||||
let canvas = this.#docRoot.getElementById(this.#config.canvasID);
|
||||
@@ -534,11 +538,21 @@ class GuitarDiagramsWebComponent extends HTMLElement {
|
||||
GuitarDiagramsWebComponent.stringNameFontSize *
|
||||
GuitarDiagramsWebComponent.stringNamePaddingFactor *
|
||||
this.#config.scaleFactor;
|
||||
paramMarker.posY +=
|
||||
this.#config.fretStartingNumber == 0
|
||||
? 0
|
||||
: GuitarDiagramsWebComponent.fretNumberFontSize *
|
||||
this.#config.scaleFactor;
|
||||
} else {
|
||||
paramMarker.posY +=
|
||||
GuitarDiagramsWebComponent.stringNameFontSize *
|
||||
GuitarDiagramsWebComponent.stringNamePaddingFactor *
|
||||
this.#config.scaleFactor;
|
||||
paramMarker.posX +=
|
||||
this.#config.fretStartingNumber == 0
|
||||
? 0
|
||||
: GuitarDiagramsWebComponent.fretNumberFontSize *
|
||||
this.#config.scaleFactor;
|
||||
}
|
||||
|
||||
// paramMarker.posX = posX + boundingRect.left - window.pageXOffset;
|
||||
@@ -975,7 +989,11 @@ class GuitarDiagramsWebComponent extends HTMLElement {
|
||||
baseFreq = 82;
|
||||
}
|
||||
|
||||
const semitoneOffset = Math.pow(2, marker.fret / 12);
|
||||
let currentFret = parseFloat(marker.fret);
|
||||
if (typeof this.#config.fretStartingNumber !== "undefined") {
|
||||
currentFret += parseFloat(this.#config.fretStartingNumber);
|
||||
}
|
||||
const semitoneOffset = Math.pow(2, currentFret / 12);
|
||||
let finalNote = baseFreq * semitoneOffset;
|
||||
return finalNote;
|
||||
}
|
||||
|
Reference in New Issue
Block a user