Rand Stats

ScaleVec

cpan:SAMGWISE

Build Status

NAME

ScaleVec - A flexible yet accurate music representation system.

SYNOPSIS

use ScaleVec;

my ScaleVec $major-scale .= new( :vector(0, 2, 4, 5, 7, 9, 11, 12) );

# Midi notes 0 - 127 with our origin on middle C (for most midi specs)
use ScaleVec::Scale::Fence;
my ScaleVec::Scale::Fence $midi .= new(
  :vector(60, 61)
  :repeat-interval(12)
  :lower-limit(0)
  :upper-limit(127)
);

# A two octave C major scale in midi note values
say do for -7..7 {
  $midi.step: $major-scale.step($_)
}

DESCRIPTION

Encapsulating the power of linear algebra in an easy to use music library, ScaleVec provides a way to represent musical structures such as chords, rhythms, scales and tempos with a common format.

CONTRIBUTIONS

To contribute, head to the github page: https://github.com/samgwise/p6-ScaleVec

AUTHOR

Sam Gillespie

COPYRIGHT AND LICENSE

Copyright 2016 Sam Gillespie

This library is free software; you can redistribute it and/or modify it under the Artistic License 2.0.