Module: MIDIMessage::SystemExclusive::InstanceMethods

Included in:
Message
Defined in:
lib/midi-message/system_exclusive.rb

Overview

Common SysEx data that a message class will contain

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#addressObject (readonly)

Returns the value of attribute address


16
17
18
# File 'lib/midi-message/system_exclusive.rb', line 16

def address
  @address
end

#checksumObject (readonly)

alternate method from www.2writers.com/eddie/TutSysEx.htm


74
75
76
# File 'lib/midi-message/system_exclusive.rb', line 74

def checksum
  @checksum
end

#nodeObject

Returns the value of attribute node


15
16
17
# File 'lib/midi-message/system_exclusive.rb', line 15

def node
  @node
end

Instance Method Details

#end_byteObject


64
65
66
# File 'lib/midi-message/system_exclusive.rb', line 64

def end_byte
  SystemExclusive::DELIMITER[:finish]
end

#nameObject Also known as: verbose_name


55
56
57
# File 'lib/midi-message/system_exclusive.rb', line 55

def name
  SystemExclusive::DISPLAY_NAME
end

#start_byteObject


60
61
62
# File 'lib/midi-message/system_exclusive.rb', line 60

def start_byte
  SystemExclusive::DELIMITER[:start]
end

#to_a(options = {}) ⇒ Object

an array of message parts. multiple byte parts will be represented as an array of bytes


19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/midi-message/system_exclusive.rb', line 19

def to_a(options = {})
  omit = options[:omit] || []
  node = @node.to_a(options) unless @node.nil? || omit.include?(:node)
  # this may need to be cached when properties are updated
  # might be worth benchmarking
  [
    start_byte,
    node,
    (type_byte unless omit.include?(:type)),
    [address].compact.flatten,
    [value].compact.flatten,
    (checksum unless omit.include?(:checksum)),
    end_byte
  ].compact
end

#to_hex_sObject Also known as: to_bytestr

string representation of the object's bytes


45
46
47
48
49
50
51
52
# File 'lib/midi-message/system_exclusive.rb', line 45

def to_hex_s
  strings = to_bytes.map do |byte|
    string = byte.to_s(16)
    string = "0#{string}" if string.length == 1
    string
  end
  strings.join.upcase
end

#to_numeric_byte_array(options = {}) ⇒ Object Also known as: to_numeric_bytes, to_byte_array, to_bytes, to_byte_a

a flat array of message bytes


36
37
38
# File 'lib/midi-message/system_exclusive.rb', line 36

def to_numeric_byte_array(options = {})
  to_a(options).flatten
end

#type_byteObject


68
69
70
# File 'lib/midi-message/system_exclusive.rb', line 68

def type_byte
  self.class::TYPE
end