plato-midi-bridge 0.1.0

Style decomposition for MIDI — Eisenstein lattices, Penrose tilings, and multi-scale musical analysis
Documentation
  • Coverage
  • 53.85%
    7 out of 13 items documented1 out of 1 items with examples
  • Size
  • Source code size: 20.81 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 555.54 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 8s Average build duration of successful builds.
  • all releases: 8s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • SuperInstance/plato-midi-bridge
    1 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • SuperInstance

Plato-MIDI Bridge — Style decomposition for MIDI with Eisenstein lattices and Penrose tilings.

Core Types

  • StyleVector — 109-dimensional musical style vector
  • EisensteinLattice — 12-chamber hexagonal lattice encoding
  • PenroseEncoder — 5D cut-and-project tiling encoding
  • ScaleLevel — Multi-scale analysis (micro, note, phrase, section, piece)

Usage

use plato_midi_bridge::{StyleVector, EisensteinLattice, PenroseEncoder, PHI};

// Create a style vector from raw features
let style = StyleVector::new(&[0.5; 109]);

// Encode in Eisenstein lattice
let coupling = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1, 0.0];
let chamber = EisensteinLattice::chamber(&coupling);
assert!(chamber < 12);

// Encode in Penrose tiling
let encoder = PenroseEncoder::new(None);
let v = [1.0, 0.5, 0.7, 0.3, 0.6];
let (px, py, accepted) = encoder.encode(&v);
assert!(accepted);