SonicWeave is a Domain Specific Language for manipulating musical frequencies, ratios and equal temperaments.
Not to be confused with the Sweave flexible framework for mixing text and R code for automatic document generation.
The sonic-weave
package is many things.
- The language of Scale Workshop 3
- A command-line interface for calculating musical quantities
- A TypeScript compatible npm package
- A template language for running SonicWeave programs inside JavaScript
You may also be interested in the technical overview of SonicWeave as a programming language.
Harmonic segment from the 8th harmonic to the 16th (repeating at the octave).
8::16
10-tone equal temperament
tet(10)
The major scale in Pythagorean tuning i.e. 3-limit just intonation.
sorted(3^[-1..5] rdc 2)
Scale title, colors and labels.
"Japanese pentatonic koto scale, theoretical. Helmholz/Ellis p.519, nr.110"
9/8 white "Major 2nd"
6/5 green "Minor 3rd"
3/2 white "Perfect 5th"
8/5 green "Minor 6th"
2 gray "Root (Octave)"
- Arseniiv A. - Co-developer / Language feedback
- Inthar - Co-developer / Language feedback
- Akselai - Quality assurance
- Godtone - Notation adviser / Language feedback
- Joe Hildebrand - Grammar review
- Marc Sabat - Notation adviser
SonicWeave looks like Javascript with Python semantics, has Haskell ranges and operates similar to xen-calc with some Zig sprinkled on top.
- ECMAScript - Brendan Eich et. al.
- Python - Guido van Rossum et. al.
- Haskell - Lennart Augustsson et. al.
- Zig - Andrew Kelley et. al.
- NumPy - Travis Oliphant et. al.
- Scala - Manuel Op de Coul
- Scale Workshop 1 - Sean Archibald et. al.
- SQL - Donald D. Chamberlin et. al.
- FJS - "misotanni"
- NFJS - Matthew Yacavone
- Xen-calc - Matthew Yacavone
- Xenpaper - Damien Clarke
- Ups and downs notation - Kite Giedraitis
- S-expressions - "Godtone"
- Peg.js - David Majda et. al.
- Peggy - Joe Hildebrand et. al.
- Xenharmonic Wiki - (community project)
- Xenharmonic Alliance - (community Discord / Facebook)