class SMF::Quantize

Public Class Methods

new(div, unit=1.0/8) click to toggle source
# File lib/smf/toy/quantize.rb, line 8
def initialize(div, unit=1.0/8)
  @unit = unit * div * 4
  self.min = 0.0
  self.max = 1.0
  self.rand = 0.0
end

Public Instance Methods

max=(v) click to toggle source
# File lib/smf/toy/quantize.rb, line 16
def max=(v) @max = @unit * v end
min=(v) click to toggle source
# File lib/smf/toy/quantize.rb, line 15
def min=(v) @min = @unit * v end
quantize(ev) click to toggle source
# File lib/smf/toy/quantize.rb, line 19
def quantize(ev)
  offset = (ev.offset + @unit / 2) / @unit * @unit
  if @rand != 0
    offset += rand(@rand) - @rand / 2
  end
  offset = offset.round
  if (@min..@max) === (ev.offset - offset).abs
    ev.offset = offset
  end
end
rand=(v) click to toggle source
# File lib/smf/toy/quantize.rb, line 17
def rand=(v) @rand = @unit * v end