class CircuitPatchTools::Patch

Constants

CATEGORIES
COMMANDS
FIELDS
GENRES
PATTERN
POLYPHONY
SYSEX

Public Class Methods

new(parameter_hash) click to toggle source
# File lib/circuit_patch_tools/patch.rb, line 52
def initialize(parameter_hash)
  @parameters = parameter_hash
end
unpack(raw) click to toggle source
# File lib/circuit_patch_tools/patch.rb, line 40
def self.unpack(raw)
  values = raw.unpack(PATTERN)

  values.zip(SYSEX).each do |v, (_, name, validator)|
    unless validator === v
      raise "#{name}: #{v.inspect} does not satisfy #{validator.inspect}"
    end
  end

  new(FIELDS.zip(values).to_h)
end

Public Instance Methods

pack() click to toggle source
# File lib/circuit_patch_tools/patch.rb, line 56
def pack
  FIELDS.map { |f| @parameters[f] }.pack(PATTERN)
end