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