Top Level Namespace

Defined Under Namespace

Modules: Archaeopteryx Classes: Array, Feigenbaum, InfiniteBeats, InfiniteStream, Struct

Constant Summary

SCALE =

parts stolen from jvoorhis music.rb, idea partly original, partly jvoorhis-stolen also

{"C" => 0,
  "C#" => 1,
"D" => 2,
  "D#" => 3,
"E" => 4,
"F" => 5,
  "F#" => 6,
"G" => 7,
  "G#" => 8,
"A" => 9,
  "A#" => 10,
"B" => 11}
OCTAVES =

assuming C major! this isn't quite right. we're not really representing notes here but positions in the scale.

{-1 => (0..11), # starting note is C-1
0 => (12..23),
1 => (24..35),
2 => (36..47),
3 => (48..59),
4 => (60..71),
5 => (72..83),
6 => (84..95),
7 => (96..107),
8 => (108..119),
9 => (120..127)}
MINOR_7TH =

chords! this can also happen with scales!

[0, 2, 6, 9]
MAJOR_7TH =
[0, 4, 7, 11]
MAJOR_TRIAD =
[0,4,7]
MAJOR_SCALE =
[0, 2, 4, 5, 7, 9, 11]
MINOR_SCALE =
[0, 2, 3, 5, 7, 8, 10]
CIRCLE_OF_FIFTHS =

higher-resolution nomenclature exists but I won't have time to use it

%w{C
CIRCLE_OF_FOURTHS =

relative minor is always x + 3 this data structure is of course a ring

CIRCLE_OF_FIFTHS.reverse