class Coltrane::Renderers::TextRenderer::TheoryScaleSetDrawer
Public Instance Methods
render()
click to toggle source
# 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