midi-message 0.4.6 → 0.4.7

Sign up to get free protection for your applications and to get access to all the features.
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