typescripttonnetz
A complete library of Neo-Riemannian Theory for musicians, mathematicians, engineers and those interested in mathematical music theory
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.8%) to scientific vocabulary
Keywords
Repository
A complete library of Neo-Riemannian Theory for musicians, mathematicians, engineers and those interested in mathematical music theory
Basic Info
- Host: GitHub
- Owner: edelveart
- License: mit
- Language: TypeScript
- Default Branch: main
- Homepage: https://www.npmjs.com/package/ts-tonnetz
- Size: 607 KB
Statistics
- Stars: 9
- Watchers: 3
- Forks: 4
- Open Issues: 0
- Releases: 1
Topics
Metadata Files
README.md
TS-Tonnetz
TS-Tonnetz is a library of transformations, graphs, and cycles from Mathematical Music Theory, enabling the creation, manipulation, and analysis of musical structures across various Tonnetz spaces.

Currently Integrated in Topos
TS-Tonnetz is now integrated into the Topos live coding environment, where you can try it out and explore its features directly.
Suite of Tonnetz Tools with Academic Grounding
It emerged as a development branch in late 2023 to contribute to Miika Alonen's phenomenal ZifferJS project.
Backed by two doctoral theses and additional research articles, TS-Tonnetz offers a powerful set of tools for exploring musical operations within various Tonnetz spaces. Its focus is on the application of these tools for algorithmic composition and live coding, rather than musicological analysis.
Installation
node
npm i ts-tonnetz
Features Implemented
Transformations follow the edge flip between triangles and their geometries (so far), maintaining two common notes (not necessarily considering voice-leading). In other words, different Tonnetz spaces adhere to the voice-leading space geometry of the conventional Tonnetz.
- [x] PRL functions and compositions of any length
- [x] Film music transformations:
f(), n(), s(), h(), t6() - [x] Cardinal transformations
- [x] Cube Dance
- [x] OctaTowers
- [x] Power Towers
- [x] Weitzmann Regions, Boretz Regions
- [x] HexaCycles, OctaCycles, EnneaCycles
- [x] Hamiltonian Cycles
Mathematical inspiration (Trajectoires) in the Doctoral thesis written by Louis Bigo:
text
Représentations symboliques musicales et calcul spatial (2013).
Dual Geometry of the Tonnetz
We have implemented all the Neo-Riemannian functions developed in the Doctoral thesis written by Sonia Cannas:
text
Geometric Representation and Algebraic Formalization of Musical Structures (2018).
Each of these new transformations from the generalized transformational theory for seventh chords is enabled for the Tonnetz you want to explore.
PLRQ-group
- [x]
p12, p14, p23, p35 - [x]
r12, r23, r42, r35, r53 - [x]
l13, l15, l42 - [x]
q43, q15, rr35, qq51, n51
PLRQ-group extended
Includes more types of seventh chords and their transformations between them.
- [x]
p18, p19, p26, p39, p47, p64, p87, p98 - [x]
r63, r76, r86, l71, l89, q62, q76 - [x]
rr19, rr39, rr98, qq38, qq98
PLR*-group
Transformations with augmented and diminished triads.
- [x]
p, r, l, p32, p41, lt13, l41, l14, rt23, rt42, q13, q42, n42
ST-group
Transformations between triad chords and different types of seventh chords. The groups PLRQ and PLR* must be included.
- [x]
p1M, l1d, p2m, r2M, p3d, r3m, p4M, l4m, p5d, r5d, rr5d, z5d
Mathematical inspiration in the paper:
text
A Generalized Dual of the Tonnetz for Seventh Chords:
Mathematical, Computational and Compositional Aspects
(Sonia Cannas and Moreno Andreatta, 2018).
Extensions of the Axis System in Béla Bartók
Generalized implementation on any Tonnetz of the harmonic groups of axis system ideaded by Ernő Lendvai: Tonic (8 chords), Subdominant (8 chords), and Dominant (8 chords). The parameters specify two directions, sought emotion (based on the ideas of Mauro de Maria), cross or diagonal movement. Major-minor and minor-major alternation available for cross path.
The manipulation can be done using a single function:
* genCardinalPoints()
Groups with chord roots separated by major thirds (which we will call triangular) are also added.
* genTriangularPoints()
We added six new graphs generalized inspired by the idea of cardinal points (extension of the axial system) for film music by Mauro de Maria. These graphs link the groups of cardinal points with the groups of three chords.
Each graph can be manipulated from a single function:
* genCardinalTriangularGraph()
Contributing
- New features (
feat: <...>) - Fix errors and bugs (
fix: <...>) - Refactor (
refactor: <...>) - Testing (
test: <...>) - Documentation (
docs: <...>)
License
Owner
- Name: Edgar Delgado Vega
- Login: edelveart
- Kind: user
- Location: Lima-Perú
- Repositories: 1
- Profile: https://github.com/edelveart
Hi, I'm Edgar, a person motivated by art and technology. My interests are mathematical music theory and live coding (Sonic Pi).
Citation (CITATION.cff)
cff-version: 1.2.0
message: "If you use this software and its documentation, please cite it as below."
authors:
- family-names: "Delgado Vega"
given-names: "Edgar Armando"
orcid: "https://orcid.org/0000-0002-9672-9087"
title: "TypeScript Tonnetz"
version: 0.0.86
doi:
date-released: 2023-12-1
url: "https://github.com/edelveart/TypeScriptTonnetz"
repository-code: "https://github.com/edelveart/TypeScriptTonnetz"
license: MIT
GitHub Events
Total
- Issues event: 2
- Watch event: 1
- Delete event: 1
- Issue comment event: 6
- Push event: 43
- Pull request event: 20
- Fork event: 1
- Create event: 2
Last Year
- Issues event: 2
- Watch event: 1
- Delete event: 1
- Issue comment event: 6
- Push event: 43
- Pull request event: 20
- Fork event: 1
- Create event: 2
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 1
- Total pull requests: 1
- Average time to close issues: 4 days
- Average time to close pull requests: N/A
- Total issue authors: 1
- Total pull request authors: 1
- Average comments per issue: 3.0
- Average comments per pull request: 0.0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 1
- Pull requests: 1
- Average time to close issues: 4 days
- Average time to close pull requests: N/A
- Issue authors: 1
- Pull request authors: 1
- Average comments per issue: 3.0
- Average comments per pull request: 0.0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- jimishol (1)
Pull Request Authors
- edelveart (8)
- eliot-akira (1)
- amiika (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- npm 21 last-month
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 7
- Total maintainers: 1
npmjs.org: ts-tonnetz
TypeScript Tonnetz is a set of structures and functions from mathematical music theory
- Homepage: https://github.com/edelveart/TypeScriptTonnetz
- License: MIT
-
Latest release: 0.0.86
published almost 2 years ago