Skip to content
library for working with JI tuning systems
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
tests
.gitignore
.travis.yml
Cargo.toml
README.md
bin
dev-bin
dev-test

README.md

Johnston

Build Status

A library for working with JI pitch lattices. Very much a work in-progess.

Started in Common Lisp, then Clojure and back. old repo

Currently working on it as a Rust library. I'm thinking I'll eventually get the best of both worlds by using ketos as an extension language.

Example

extern crate johnston;
use johnston::*;

fn main() {
    let lattice = gen_lattice(&[3], 5);
    println!("{:#?}", lattice);
}

result:

[
    LatticeDimension {
        limit: 3,
        otonal: [
            Pitch {
                cents: 0.0,
                ratio: 1,
            },
            Pitch {
                cents: 701.95496,
                ratio: 3/2,
            },
            Pitch {
                cents: 203.90999,
                ratio: 9/8,
            },
            Pitch {
                cents: 905.8649,
                ratio: 27/16,
            },
            Pitch {
                cents: 407.81998,
                ratio: 81/64,
            },
        ],
        utonal: [
            Pitch {
                cents: 0.0,
                ratio: 1,
            },
            Pitch {
                cents: 498.0449,
                ratio: 4/3,
            },
            Pitch {
                cents: 996.0899,
                ratio: 16/9,
            },
            Pitch {
                cents: 294.13483,
                ratio: 32/27,
            },
            Pitch {
                cents: 792.1799,
                ratio: 128/81,
            },
        ],
    },
]
You can’t perform that action at this time.