Module: AlsaRawMIDI::TypeConversion

Defined in:
lib/alsa-rawmidi/type_conversion.rb

Overview

Helper for converting MIDI data

Class Method Summary collapse

Class Method Details

.hex_string_to_numeric_bytes(string) ⇒ Array<Integer>

Convert a hex string to an array of numeric bytes eg “904040” -> [0x90, 0x40, 0x40]

Parameters:

  • string (String)

Returns:

  • (Array<Integer>)


11
12
13
14
15
16
17
18
19
# File 'lib/alsa-rawmidi/type_conversion.rb', line 11

def hex_string_to_numeric_bytes(string)
  string = string.dup
  bytes = []
  until string.length.zero?
    string_byte = string.slice!(0, 2)
    bytes << string_byte.hex
  end
  bytes
end

.numeric_bytes_to_hex_string(bytes) ⇒ String

Convert an array of numeric bytes to a hex string eg [0x90, 0x40, 0x40] -> “904040”

Parameters:

  • bytes (Array<Integer>)

Returns:

  • (String)


24
25
26
27
28
29
30
31
# File 'lib/alsa-rawmidi/type_conversion.rb', line 24

def numeric_bytes_to_hex_string(bytes)
  string_bytes = bytes.map do |byte|
    string_byte = byte.to_s(16).upcase
    string_byte = "0#{string_byte}" if byte < 16
    string_byte
  end
  string_bytes.join
end