npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@authentrics/chord-diagram

v0.0.4

Published

A typescript package for creating stringed instrument chord diagrams in Angular or vanilla JavaScript.

Downloads

7

Readme

chord-diagram

This package provides a basic Typescript class for drawing chord diagrams on HTML DOM canvasses within given parent elements. It may be used in conjunction with @authentrics/ngx-chord-diagram for Angular applications.

This is the first npm package I have created, so patience and constructive suggestions are very welcome.

Chords may be shown for instruments with different numbers of strings. Each array of positions for a chord indicates the number of strings by its length. Positions higher up the neck than the first 5 frets will automatically be interpreted, and the first fret used will be labeled appropriately. It should be noted, however, that no more than 5 frets may be spanned by a single chord.

The position array is simple the list of finger positions, starting from the lowest string to the highest. Use a -1 for strings that are not played, and a 0 for those that are played open.

Demo page image

The basic usage is shown in the demo index.html file:

<div id="chordArea"></div>
<script>const exports = {"__esModule": true};</script>
<script src="../dist/ChordDiagram.js"></script>
<script>
	const parentEl = document.getElementById('chordArea');
	const chords = [
		{parentElement:parentEl, name: 'C', positions: [-1,3,2,0,1,0]},
		{parentElement:parentEl, name: 'D', positions: [-1,-1,0,2,3,2], color: 'navy', dotColor: '#AAA'},
		{parentElement:parentEl, name: 'A7sus', positions: [-1,-1,7,9,8,10], dotColor: 'orange'},
	];
	const diagrammer = new ChordDiagram();
	for (const chord of chords) {
		diagrammer.draw(chord);
	}
</script>

##Chord Diagram Interface The chord request structure is defined as follows:

export interface ChordDiagramInterface {
    parentElement: HTMLElement | undefined; // parent element on page, to hold canvasses
    name: string;                           // chord name, e.g., Cbm
    positions: number[];                    // array of numeric positions, one for each string; -1;unplayed, and 0=open
    color: string;                          // fretboard color
    dotColor: string;                       // position dot color
}

##Sizing To control the size of diagrams, use CSS for canvas elements with 'chord-diagram' class, or via the parent. E.g.,

#chordArea2 canvas {
    max-height: 120px;
}
canvas.chord-diagram {
    max-height: 180px;
}