EDO.js

EDO.js: A comprehensive JavaScript library for interaction with musical set theory in any tuning - Published in JOSS (2021)

https://github.com/michaelsel/edojs

Science Score: 93.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in JOSS metadata
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords from Contributors

mesh
Last synced: 6 months ago · JSON representation

Repository

A set of functions for manipulating musical pitches within a given EDO

Basic Info
  • Host: GitHub
  • Owner: MichaelSel
  • License: agpl-3.0
  • Language: JavaScript
  • Default Branch: master
  • Size: 21 MB
Statistics
  • Stars: 6
  • Watchers: 1
  • Forks: 0
  • Open Issues: 8
  • Releases: 2
Created over 5 years ago · Last pushed over 2 years ago
Metadata Files
Readme Contributing License

README.md

edoJS

A Set-Theory based JavaScript library pitch manipulation and analysis in any tuning system that is based on equal divisions of the octave (i.e., EDO, and also known as "TET").

As such, it allows to describe collections of pitches in psycho-acoustical terms (e.g., roughness or dissonance), it implements experimental algorithms proposed in the music theory literature, and allows for standard and novel set-theory manipulations.

This library is aimed at music theorists, musicologists, and cognitive scientists working on musical research, for the creation of stimuli for experiments, and for the analysis of musical structures.

Installation and Usage

To install npm (its dependencies) npm i edo.js

Similarly, you can do any type of import.

Import Library

Client-Side CDN source example - https://www.jsdelivr.com/package/npm/edo.js?version=1.2.14&path=dist xhtml <script src="https://cdn.jsdelivr.net/npm/edo.js@1.2.14/dist/edo.js"></script> Server-Side Javascript // NOTE: here no relative path so node will use the edojs installed from NPM const EDO = require("edo.js").EDO; ```

Basic Usage

```javascript let edo = new EDO(12) //create a new EDO context with 12 divisions.

//once the object has been created, you can access its functions.

//invert pitches edo.get.inversion([0,2,4,5,7,9,11]) //returns [0, 2, 4, 6, 7, 9, 11]

edo.convert.ratiotointerval(3/2) //returns [7]

edo.count.pitches([0, 3, 3, 2, 4, 3, 4]) //returns [[3,3],[4,2], [2,1], [0,1]] // (3 appears 3 times, 4 appears 2 times, etc.)

edo.is.subset([2,4],[1,2,3,4,5]) //returns true (the set [2,4] IS a subset of [1,2,3,4,5]) ```

Development

To install development dependencies: npm install --include=dev

To build the project

npm run build

To regenerate the docs

npm run docs

To test:

npm run test

Author

Michael Seltenreich

License

GNU AGPLv3

Some demos

DEMOS

Full Documentation

Documentation A good place to start: EDO Class

Owner

  • Login: MichaelSel
  • Kind: user

JOSS Publication

EDO.js: A comprehensive JavaScript library for interaction with musical set theory in any tuning
Published
November 17, 2021
Volume 6, Issue 67, Page 3784
Authors
Michael Seltenreich ORCID
Department of Music, New York University, New York, New York 10003
Editor
Brian McFee ORCID
Tags
music theory music analysis music perception set theory diatonic set theory equal divisions of the octave TET

GitHub Events

Total
  • Watch event: 1
Last Year
  • Watch event: 1

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 252
  • Total Committers: 3
  • Avg Commits per committer: 84.0
  • Development Distribution Score (DDS): 0.317
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Michael I****5 172
MichaelSel s****c@g****m 79
dependabot[bot] 4****] 1

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 16
  • Total pull requests: 11
  • Average time to close issues: 8 days
  • Average time to close pull requests: 4 months
  • Total issue authors: 3
  • Total pull request authors: 1
  • Average comments per issue: 3.19
  • Average comments per pull request: 0.27
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 11
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • napulen (11)
  • albincorreya (4)
  • amiika (1)
Pull Request Authors
  • dependabot[bot] (11)
Top Labels
Issue Labels
Pull Request Labels
dependencies (11)

Packages

  • Total packages: 1
  • Total downloads:
    • npm 34 last-month
  • Total dependent packages: 1
  • Total dependent repositories: 1
  • Total versions: 79
  • Total maintainers: 1
npmjs.org: edo.js

A set of functions for manipulating musical pitches within a given EDO

  • Versions: 79
  • Dependent Packages: 1
  • Dependent Repositories: 1
  • Downloads: 34 Last month
Rankings
Dependent repos count: 10.4%
Stargazers count: 11.6%
Average: 15.3%
Forks count: 15.5%
Downloads: 18.1%
Dependent packages count: 21.1%
Maintainers (1)
Last synced: 6 months ago

Dependencies

package-lock.json npm
  • 290 dependencies
package.json npm
  • chai ^4.3.4 development
  • clean-jsdoc-theme ^2.2.15 development
  • jsdoc ^3.6.7 development
  • mocha ^9.1.2 development
  • nyc ^15.1.0 development
  • rollup ^2.60.2 development
  • rollup-plugin-terser ^7.0.2 development
  • swagger-jsdoc ^4.0.0 development
  • tui-jsdoc-template ^1.2.2 development
  • csv-parser ^2.3.3
  • fs 0.0.1-security
  • midi-parser-js ^4.0.4
  • xml2js ^0.4.23
.github/workflows/npm-publish.yml actions
  • actions/checkout v2 composite
  • actions/setup-node v2 composite