midi-message 0.4.6 → 0.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3524480addf08fbff3d0ff0895a035b24cebf1d8
4
- data.tar.gz: 83faadad1ad868779a0a22354d1dc877d4ec5d4e
3
+ metadata.gz: 6e0111fbc4f13b3de102dff3ebbdc0b2ccda001c
4
+ data.tar.gz: 77408d5b1a726b00d7c4032530c8c361fd31e8dc
5
5
  SHA512:
6
- metadata.gz: b9aeefc9a4b4dd10e1a9cb42771ca5266fe90cf461654694b0aba55415178da6ec26c1b3c04c5bbc085417be2c4f6cd3d0a0f30046b09329079ead357f6cd971
7
- data.tar.gz: ab692acd6ec98d41c5b9c538f59dc0159a1431c977bf7dd738ce452e07fa05b726cfc075dcccceda3a393024996bc6d6fa5351d53171aec8e75596f5a40390fe
6
+ metadata.gz: 1fafe7abcdaf8e90df0bcaeeb49d680266ba453dbf21c28aae68a5dd1d97fd962b9e59077bab2fbafc15872563c674a965dae51a666190235d37b5722b3b8c0c
7
+ data.tar.gz: 575a16f20a645fbd7cf6304716ab35120d8718fdecca41bea197c09fc55202e225ef48a9930a6aa226cca7c6bc635e22fb49b90cff54651af0ed759e2913dfdd
data/lib/midi-message.rb CHANGED
@@ -25,6 +25,6 @@ require "midi-message/parser"
25
25
 
26
26
  module MIDIMessage
27
27
 
28
- VERSION = "0.4.6"
28
+ VERSION = "0.4.7"
29
29
 
30
30
  end
@@ -54,10 +54,8 @@ module MIDIMessage
54
54
  ]
55
55
  properties.each_with_index do |property, i|
56
56
  property_schema = schema[i]
57
- container = send(property_schema[:name])
58
- index = property_schema[:index]
59
- define_getter(property, container, index)
60
- define_setter(property, container, index)
57
+ define_getter(property, property_schema)
58
+ define_setter(property, property_schema)
61
59
  has_properties = true
62
60
  end
63
61
  has_properties
@@ -67,7 +65,9 @@ module MIDIMessage
67
65
  # @param [Hash] container
68
66
  # @param [Fixnum] index
69
67
  # @return [Boolean]
70
- def define_getter(property, container, index)
68
+ def define_getter(property, property_schema)
69
+ container = send(property_schema[:name])
70
+ index = property_schema[:index]
71
71
  self.class.send(:attr_reader, property)
72
72
  instance_variable_set("@#{property.to_s}", container[index])
73
73
  true
@@ -77,10 +77,11 @@ module MIDIMessage
77
77
  # @param [Hash] container
78
78
  # @param [Fixnum] index
79
79
  # @return [Boolean]
80
- def define_setter(property, container, index)
80
+ def define_setter(property, property_schema)
81
+ index = property_schema[:index]
81
82
  self.class.send(:define_method, "#{property.to_s}=") do |value|
82
83
  send(:instance_variable_set, "@#{property.to_s}", value)
83
- container[index] = value
84
+ send(property_schema[:name])[index] = value
84
85
  update
85
86
  return self
86
87
  end
data/test/message_test.rb CHANGED
@@ -3,51 +3,70 @@ require "helper"
3
3
  class ShortMessageTest < Minitest::Test
4
4
 
5
5
  def test_channel_message
6
- msg = MIDIMessage::ChannelMessage.new(0x9, 0x0, 0x40, 0x40)
7
- assert_equal(0x9, msg.status[0])
8
- assert_equal(0x0, msg.status[1])
9
- assert_equal(0x40, msg.data[0])
10
- assert_equal(0x40, msg.data[1])
11
- assert_equal([0x90, 0x40, 0x40], msg.to_a)
12
- assert_equal("904040", msg.to_bytestr)
6
+ message = MIDIMessage::ChannelMessage.new(0x9, 0x0, 0x40, 0x40)
7
+ assert_equal(0x9, message.status[0])
8
+ assert_equal(0x0, message.status[1])
9
+ assert_equal(0x40, message.data[0])
10
+ assert_equal(0x40, message.data[1])
11
+ assert_equal([0x90, 0x40, 0x40], message.to_a)
12
+ assert_equal("904040", message.to_bytestr)
13
13
  end
14
14
 
15
15
  def test_to_type
16
- msg = MIDIMessage::ChannelMessage.new(0x9, 0x0, 0x40, 0x40)
17
- typemsg = msg.to_type
18
- assert_equal(MIDIMessage::NoteOn, typemsg.class)
19
- assert_equal(msg.status[1], typemsg.channel)
20
- assert_equal(msg.data[0], typemsg.note)
21
- assert_equal(msg.data[1], typemsg.velocity)
22
- assert_equal(msg.to_a, typemsg.to_a)
23
- assert_equal(msg.to_bytestr, typemsg.to_bytestr)
16
+ message = MIDIMessage::ChannelMessage.new(0x9, 0x0, 0x40, 0x40)
17
+ typemessage = message.to_type
18
+ assert_equal(MIDIMessage::NoteOn, typemessage.class)
19
+ assert_equal(message.status[1], typemessage.channel)
20
+ assert_equal(message.data[0], typemessage.note)
21
+ assert_equal(message.data[1], typemessage.velocity)
22
+ assert_equal(message.to_a, typemessage.to_a)
23
+ assert_equal(message.to_bytestr, typemessage.to_bytestr)
24
24
  end
25
25
 
26
26
  def test_note_off
27
- msg = MIDIMessage::NoteOff.new(0, 0x40, 0x40)
28
- assert_equal(0, msg.channel)
29
- assert_equal(0x40, msg.note)
30
- assert_equal(0x40, msg.velocity)
31
- assert_equal([0x80, 0x40, 0x40], msg.to_a)
32
- assert_equal("804040", msg.to_bytestr)
27
+ message = MIDIMessage::NoteOff.new(0, 0x40, 0x40)
28
+ assert_equal(0, message.channel)
29
+ assert_equal(0x40, message.note)
30
+ assert_equal(0x40, message.velocity)
31
+ assert_equal([0x80, 0x40, 0x40], message.to_a)
32
+ assert_equal("804040", message.to_bytestr)
33
33
  end
34
34
 
35
35
  def test_note_on
36
- msg = MIDIMessage::NoteOn.new(0, 0x40, 0x40)
37
- assert_equal(0, msg.channel)
38
- assert_equal(0x40, msg.note)
39
- assert_equal(0x40, msg.velocity)
40
- assert_equal([0x90, 0x40, 0x40], msg.to_a)
41
- assert_equal("904040", msg.to_bytestr)
36
+ message = MIDIMessage::NoteOn.new(1, 0x40, 0x40)
37
+ assert_equal(1, message.channel)
38
+ assert_equal(0x40, message.note)
39
+ assert_equal(0x40, message.velocity)
40
+ assert_equal([0x91, 0x40, 0x40], message.to_a)
41
+ assert_equal("914040", message.to_bytestr)
42
+ assert_equal([0x91, 0x40, 0x40], message.to_bytes)
43
+ end
44
+
45
+ def test_change_channel
46
+ message = MIDIMessage::NoteOn.new(1, 0x40, 0x40)
47
+ assert_equal(1, message.channel)
48
+ assert_equal(0x40, message.note)
49
+ assert_equal(0x40, message.velocity)
50
+ assert_equal([0x91, 0x40, 0x40], message.to_a)
51
+ assert_equal("914040", message.to_bytestr)
52
+ assert_equal([0x91, 0x40, 0x40], message.to_bytes)
53
+
54
+ message.channel = 3
55
+ assert_equal(3, message.channel)
56
+ assert_equal(0x40, message.note)
57
+ assert_equal(0x40, message.velocity)
58
+ assert_equal([0x93, 0x40, 0x40], message.to_a)
59
+ assert_equal("934040", message.to_bytestr)
60
+ assert_equal([0x93, 0x40, 0x40], message.to_bytes)
42
61
  end
43
62
 
44
63
  def test_note_on_to_note_off
45
- msg = MIDIMessage::NoteOn.new(0, 0x40, 0x40)
46
- assert_equal(0, msg.channel)
47
- assert_equal(0x40, msg.note)
48
- assert_equal(0x40, msg.velocity)
49
- assert_equal([0x90, 0x40, 0x40], msg.to_a)
50
- off = msg.to_note_off
64
+ message = MIDIMessage::NoteOn.new(0, 0x40, 0x40)
65
+ assert_equal(0, message.channel)
66
+ assert_equal(0x40, message.note)
67
+ assert_equal(0x40, message.velocity)
68
+ assert_equal([0x90, 0x40, 0x40], message.to_a)
69
+ off = message.to_note_off
51
70
  assert_equal(0, off.channel)
52
71
  assert_equal(0x40, off.note)
53
72
  assert_equal(0x40, off.velocity)
@@ -56,63 +75,63 @@ class ShortMessageTest < Minitest::Test
56
75
 
57
76
 
58
77
  def test_polyphonic_aftertouch
59
- msg = MIDIMessage::PolyphonicAftertouch.new(1, 0x40, 0x40)
60
- assert_equal(1, msg.channel)
61
- assert_equal(0x40, msg.note)
62
- assert_equal(0x40, msg.value)
63
- assert_equal([0xA1, 0x40, 0x40], msg.to_a)
64
- assert_equal("A14040", msg.to_bytestr)
78
+ message = MIDIMessage::PolyphonicAftertouch.new(1, 0x40, 0x40)
79
+ assert_equal(1, message.channel)
80
+ assert_equal(0x40, message.note)
81
+ assert_equal(0x40, message.value)
82
+ assert_equal([0xA1, 0x40, 0x40], message.to_a)
83
+ assert_equal("A14040", message.to_bytestr)
65
84
  end
66
85
 
67
86
  def test_control_change
68
- msg = MIDIMessage::ControlChange.new(2, 0x20, 0x20)
69
- assert_equal(msg.channel, 2)
70
- assert_equal(0x20, msg.index)
71
- assert_equal(0x20, msg.value)
72
- assert_equal([0xB2, 0x20, 0x20], msg.to_a)
73
- assert_equal("B22020", msg.to_bytestr)
87
+ message = MIDIMessage::ControlChange.new(2, 0x20, 0x20)
88
+ assert_equal(message.channel, 2)
89
+ assert_equal(0x20, message.index)
90
+ assert_equal(0x20, message.value)
91
+ assert_equal([0xB2, 0x20, 0x20], message.to_a)
92
+ assert_equal("B22020", message.to_bytestr)
74
93
  end
75
94
 
76
95
  def test_program_change
77
- msg = MIDIMessage::ProgramChange.new(3, 0x40)
78
- assert_equal(3, msg.channel)
79
- assert_equal(0x40, msg.program)
80
- assert_equal([0xC3, 0x40], msg.to_a)
81
- assert_equal("C340", msg.to_bytestr)
96
+ message = MIDIMessage::ProgramChange.new(3, 0x40)
97
+ assert_equal(3, message.channel)
98
+ assert_equal(0x40, message.program)
99
+ assert_equal([0xC3, 0x40], message.to_a)
100
+ assert_equal("C340", message.to_bytestr)
82
101
 
83
102
  end
84
103
 
85
104
  def test_channel_aftertouch
86
- msg = MIDIMessage::ChannelAftertouch.new(3, 0x50)
87
- assert_equal(3, msg.channel)
88
- assert_equal(0x50, msg.value)
89
- assert_equal([0xD3, 0x50], msg.to_a)
90
- assert_equal("D350", msg.to_bytestr)
105
+ message = MIDIMessage::ChannelAftertouch.new(3, 0x50)
106
+ assert_equal(3, message.channel)
107
+ assert_equal(0x50, message.value)
108
+ assert_equal([0xD3, 0x50], message.to_a)
109
+ assert_equal("D350", message.to_bytestr)
91
110
  end
92
111
 
93
112
  def test_pitch_bend
94
- msg = MIDIMessage::PitchBend.new(0, 0x50, 0xA0)
95
- assert_equal(0, msg.channel)
96
- assert_equal(0x50, msg.low)
97
- assert_equal(0xA0, msg.high)
98
- assert_equal([0xE0, 0x50, 0xA0], msg.to_a)
99
- assert_equal("E050A0", msg.to_bytestr)
113
+ message = MIDIMessage::PitchBend.new(0, 0x50, 0xA0)
114
+ assert_equal(0, message.channel)
115
+ assert_equal(0x50, message.low)
116
+ assert_equal(0xA0, message.high)
117
+ assert_equal([0xE0, 0x50, 0xA0], message.to_a)
118
+ assert_equal("E050A0", message.to_bytestr)
100
119
  end
101
120
 
102
121
  def test_system_common
103
- msg = MIDIMessage::SystemCommon.new(1, 0x50, 0xA0)
104
- assert_equal(1, msg.status[1])
105
- assert_equal(0x50, msg.data[0])
106
- assert_equal(0xA0, msg.data[1])
107
- assert_equal([0xF1, 0x50, 0xA0], msg.to_a)
108
- assert_equal("F150A0", msg.to_bytestr)
122
+ message = MIDIMessage::SystemCommon.new(1, 0x50, 0xA0)
123
+ assert_equal(1, message.status[1])
124
+ assert_equal(0x50, message.data[0])
125
+ assert_equal(0xA0, message.data[1])
126
+ assert_equal([0xF1, 0x50, 0xA0], message.to_a)
127
+ assert_equal("F150A0", message.to_bytestr)
109
128
  end
110
129
 
111
130
  def test_system_realtime
112
- msg = MIDIMessage::SystemRealtime.new(0x8)
113
- assert_equal(8, msg.id)
114
- assert_equal([0xF8], msg.to_a)
115
- assert_equal("F8", msg.to_bytestr)
131
+ message = MIDIMessage::SystemRealtime.new(0x8)
132
+ assert_equal(8, message.id)
133
+ assert_equal([0xF8], message.to_a)
134
+ assert_equal("F8", message.to_bytestr)
116
135
  end
117
136
 
118
137
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: midi-message
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.6
4
+ version: 0.4.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ari Russo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-10 00:00:00.000000000 Z
11
+ date: 2015-04-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -139,7 +139,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
139
139
  version: 1.3.6
140
140
  requirements: []
141
141
  rubyforge_project: midi-message
142
- rubygems_version: 2.2.2
142
+ rubygems_version: 2.4.6
143
143
  signing_key:
144
144
  specification_version: 4
145
145
  summary: Ruby MIDI message objects