Class: Tonal::Ratio::Approximation::Set
- Inherits:
-
Object
- Object
- Tonal::Ratio::Approximation::Set
- Extended by:
- Forwardable
- Defined in:
- lib/tonal/approximation.rb
Instance Attribute Summary collapse
-
#ratio ⇒ Object
readonly
Returns the value of attribute ratio.
-
#ratios ⇒ Object
readonly
Returns the value of attribute ratios.
Instance Method Summary collapse
- #[](index) ⇒ Object
-
#initialize(ratio:) {|@ratios| ... } ⇒ Set
constructor
A new instance of Set.
- #inspect ⇒ Object
- #max_primes ⇒ Object
- #min_primes ⇒ Object
- #prime_divisions ⇒ Object
- #sort_by ⇒ Object
- #to_cents ⇒ Object
Constructor Details
#initialize(ratio:) {|@ratios| ... } ⇒ Set
Returns a new instance of Set.
166 167 168 169 170 |
# File 'lib/tonal/approximation.rb', line 166 def initialize(ratio:) @ratio = ratio @ratios = ::Set.new yield @ratios if block_given? end |
Instance Attribute Details
#ratio ⇒ Object (readonly)
Returns the value of attribute ratio.
164 165 166 |
# File 'lib/tonal/approximation.rb', line 164 def ratio @ratio end |
#ratios ⇒ Object (readonly)
Returns the value of attribute ratios.
164 165 166 |
# File 'lib/tonal/approximation.rb', line 164 def ratios @ratios end |
Instance Method Details
#[](index) ⇒ Object
193 194 195 |
# File 'lib/tonal/approximation.rb', line 193 def [](index) entries[index] end |
#inspect ⇒ Object
173 174 175 |
# File 'lib/tonal/approximation.rb', line 173 def inspect "#{ratio}: #{entries}" end |
#max_primes ⇒ Object
181 182 183 |
# File 'lib/tonal/approximation.rb', line 181 def max_primes entries.map(&:max_prime) end |
#min_primes ⇒ Object
185 186 187 |
# File 'lib/tonal/approximation.rb', line 185 def min_primes entries.map(&:min_prime) end |
#prime_divisions ⇒ Object
189 190 191 |
# File 'lib/tonal/approximation.rb', line 189 def prime_divisions entries.map(&:prime_divisions) end |
#sort_by ⇒ Object
197 198 199 200 201 202 203 |
# File 'lib/tonal/approximation.rb', line 197 def sort_by(&) self.class.new(ratio: ratio) do |ratios| entries.sort_by(&).each do |ratio| ratios << ratio end end end |
#to_cents ⇒ Object
177 178 179 |
# File 'lib/tonal/approximation.rb', line 177 def to_cents entries.map(&:to_cents) end |