midi-message 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/midi-message/process/filter.rb +6 -1
- data/lib/midi-message/process/processor.rb +2 -1
- data/lib/midi-message.rb +1 -1
- data/test/test_filter.rb +20 -0
- metadata +1 -1
@@ -21,7 +21,12 @@ module MIDIMessage
|
|
21
21
|
|
22
22
|
def process_single(message)
|
23
23
|
val = message.send(@property)
|
24
|
-
result = @bandwidth.map
|
24
|
+
result = @bandwidth.map do |bw|
|
25
|
+
case bw
|
26
|
+
when Range then val >= bw.min && val <= bw.max ? message : nil
|
27
|
+
when Numeric then val == bw ? message : nil
|
28
|
+
end
|
29
|
+
end
|
25
30
|
result.include?(message) ^ @reject ? message : nil
|
26
31
|
end
|
27
32
|
|
@@ -8,7 +8,7 @@ module MIDIMessage
|
|
8
8
|
|
9
9
|
def self.included(base)
|
10
10
|
base.extend(ClassMethods)
|
11
|
-
|
11
|
+
base.send(:attr_reader, :name)
|
12
12
|
end
|
13
13
|
|
14
14
|
def process(messages = nil)
|
@@ -29,6 +29,7 @@ module MIDIMessage
|
|
29
29
|
|
30
30
|
def initialize_processor(options)
|
31
31
|
@message = options[:message]
|
32
|
+
@name = options[:name]
|
32
33
|
end
|
33
34
|
|
34
35
|
end
|
data/lib/midi-message.rb
CHANGED
data/test/test_filter.rb
CHANGED
@@ -92,4 +92,24 @@ class FilterTest < Test::Unit::TestCase
|
|
92
92
|
assert_equal(msg, outp)
|
93
93
|
end
|
94
94
|
|
95
|
+
def test_numeric_note_accept
|
96
|
+
msg1 = MIDIMessage::NoteOn["C4"].new(0, 100)
|
97
|
+
msg2 = MIDIMessage::NoteOn["C5"].new(0, 100)
|
98
|
+
f = Filter.new(:note, 60)
|
99
|
+
outp = f.process(msg1)
|
100
|
+
assert_equal(msg1, outp)
|
101
|
+
outp = f.process(msg2)
|
102
|
+
assert_equal(nil, outp)
|
103
|
+
end
|
104
|
+
|
105
|
+
def test_numeric_note_reject
|
106
|
+
msg1 = MIDIMessage::NoteOn["C4"].new(0, 100)
|
107
|
+
msg2 = MIDIMessage::NoteOn["C5"].new(0, 100)
|
108
|
+
f = Filter.new(:note, 60, :reject => true)
|
109
|
+
outp = f.process(msg1)
|
110
|
+
assert_equal(nil, outp)
|
111
|
+
outp = f.process(msg2)
|
112
|
+
assert_equal(msg2, outp)
|
113
|
+
end
|
114
|
+
|
95
115
|
end
|