Class: MusicTheory::Harmonize
- Inherits:
-
Object
- Object
- MusicTheory::Harmonize
- Includes:
- Output
- Defined in:
- lib/music_theory/harmonize.rb
Instance Attribute Summary collapse
-
#samples ⇒ Object
Returns the value of attribute samples.
Instance Method Summary collapse
-
#initialize(*things_to_flatten) ⇒ Harmonize
constructor
A new instance of Harmonize.
Methods included from Output
#buffer_format, #format, #output_track, #play, #sample_rate
Constructor Details
#initialize(*things_to_flatten) ⇒ Harmonize
Returns a new instance of Harmonize.
9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/music_theory/harmonize.rb', line 9 def initialize(*things_to_flatten) @samples = [] [*things_to_flatten].each do |group| group.each_with_index do |value, i| @samples[i] ||= 0 @samples[i] += value end end max = @samples.map {|s| s.abs }.max multiplier = 1.0 / max @samples.map!{ |s| multiplier * s } end |
Instance Attribute Details
#samples ⇒ Object
Returns the value of attribute samples.
7 8 9 |
# File 'lib/music_theory/harmonize.rb', line 7 def samples @samples end |