@guitar-chords/svg
Use SVG to generate guitar chords. View the chord diagrams it generates →.
Install
npm install @guitar-chords/svg
Usage
options
GuitarChords Instantiation Options, See GuitarChordsOptions.
import { GuitarChords } from '@guitar-chords/svg'
const guitarChords = new GuitarChords({
name: 'C',
matrix: [
[0, 0, 0, 0, 1, 0],
[0, 0, 2, 0, 0, 0],
[3, 4, 0, 0, 0, 0],
],
})
document.querySelect('body').append(guitarChords.element)
console.log(guitarChords.data)
Property
data
Get the chord data.
element
Get the Svg element of the GuitarChords
gridRect
Get the size and position information of the chord grid.
height
Get the height of the chord
version
Get the version of the chord
- @returns
string
version 1.0.0
width
Get the width of the chord
Methods
render(options)
Re-render the chord.
Param | Types | Required | Description |
---|
options | Partial<GuitarChordsOptions> | no | Chord instantiation options, see GuitarChordsOptions |
Types
GridRect
Grid size and position information.
Prop | Types | Required | Description |
---|
width | number | yes | Grid Width |
height | number | yes | Grid Height |
top | number | yes | The position of the top of the grid in the entire chord diagram |
right | number | yes | The position of the right of the grid in the entire chord diagram |
bottom | number | yes | The position of the bottom of the grid in the entire chord diagram |
left | number | yes | The position of the left of the grid in the entire chord diagram |
GuitarChordsData
Guitar Chords All Options (Configuration Data).
Prop | Types | Required | Description |
---|
autoRender | boolean | yes | Whether to automatically render when instantiated, the default is true |
defaultColor | string | yes | Default colors (except for the color of the finger number text) |
defaultLineWidth | number | yes | Default line width |
transpose | number | yes | Chord transposition value, 1 is a sharp semitone, -1 is a flat semitone, default is 0 |
transposeTextColor | string | yes | The font color of the chord transposition symbol is the same as the chord name font color by default |
name | string | yes | Chord Name |
nameFontSize | number | yes | Chord name font size |
nameTextColor | string | yes | Chord Name Color |
nameLetterSpacing | number | yes | The spacing between chord name letters, default is 0 |
spacing | number | yes | Spacing between chord names and the chord grid |
nutLineWidth | number | yes | The width of the nut line (default is the value of lineWidth) |
nutColor | string | yes | Nut Line Color |
fretsSpacing | number | yes | Fret Line Spacing |
fretsColor | string | yes | Fret Line Color |
fretsLineWidth | number | yes | Fret Line Width |
stringSpacing | number | yes | String line spacing |
stringColor | string | yes | String line color |
stringLineWidth | number | yes | String line width |
stringCount | number | yes | The number of strings, which is the value of matrix[i].length or 6 |
fingerRadius | number | yes | Radius of the fingering dot |
fingerCircleColor | string | yes | Fingering dot color |
showFingerNumber | boolean | yes | Whether to display the finger number, the default is true |
fingerNumberTextColor | string | yes | Finger number font color, default #fff |
startFrets | number | yes | The starting fret of the chord, default is 0 |
startFretsTextColor | string | yes | Starting grade font color |
matrix | number[][] | yes | Matrix of chord fingerings and number of frets (2D array with rows representing chords and columns representing frets) |
mergeFingerCircle | boolean | yes | Whether to merge fingering dots when playing barre/barre, default is false |
showNotesOutsideOfChords | boolean | yes | Used to configure whether to display a small cross x/o at the head of the empty string column, the default is false |
notesOutsideOfChords | Record<number, boolean> | yes | Whether to display open strings as notes outside of chords option {chord number (strings 1-6 for guitar): true or false} |
crossLineWidth | number | yes | The line thickness of the notes x/o outside the chord is the default string line width. Its length is the diameter of the fingering dot |
crossLineColor | string | yes | Line color for the non-chord tones x/o |
crossRadius | number | yes | The radius of the chord outside the tone x/o , the default is fingerRadius * 0.75 |
GuitarChordsOptions
Required configuration options for chord strength, see GuitarChordsData
type GuitarChordsOptions = {
name: string;
matrix: GuitarChordsData['matrix'];
} & Omit<GuitarChordsData, 'stringCount'>
Constants
Chord Default Options
{
autoRender: true,
defaultColor: '#000',
defaultLineWidth: 4,
transpose: 0,
nameFontSize: 60,
spacing: 20,
fretsSpacing: 50,
stringSpacing: 30,
fingerRadius: 15,
showFingerNumber: true,
fingerNumberTextColor: '#fff',
startFrets: 0,
matrix: [
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
],
mergeFingerCircle: false,
showNotesOutsideOfChords: false,
}