Class: Coltrane::Renderers::TextRenderer::TheoryScaleSetDrawer
- Inherits:
-
BaseDrawer
- Object
- BaseDrawer
- Coltrane::Renderers::TextRenderer::TheoryScaleSetDrawer
- Defined in:
- lib/coltrane/renderers/text_renderer/theory_scale_set_drawer.rb
Instance Attribute Summary
Attributes inherited from BaseDrawer
#flavor, #layout, #model, #options, #per_row
Instance Method Summary collapse
Methods inherited from BaseDrawer
Constructor Details
This class inherits a constructor from Coltrane::Renderers::TextRenderer::BaseDrawer
Instance Method Details
#render ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/coltrane/renderers/text_renderer/theory_scale_set_drawer.rb', line 7 def render output = [] scale_width = scale_set.results.keys.map(&:size).max scale_set.results.each do |name, scales_by_tone| output << name.ljust(scale_width + 1, ' ') scales_by_tone.each do |tone_number, notes| p = (notes.size.to_f / scale_set.searched_notes.size) * 100 l = p == 100 ? p : (p + 20) * 0.4 und = p == 100 ? :underline : nil color = Color::HSL.new(30, p, l / 2).html output << Paint["#{Theory::Note[tone_number].name}(#{notes.size})", color, und] output << ' ' end output << "\n" end output.join end |