midi-instrument 0.4.2 → 0.4.3

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: 978dc80ea49edc2731e8f13901b836b097f0d2c8
4
- data.tar.gz: b994a8bc8087ed8e7137bbd4104eb1cbb2a9b6b5
3
+ metadata.gz: fe1e9e3af1c7a886eaa6cca36351d14beef013c1
4
+ data.tar.gz: ec1cbde73021ea8ec6f9340613f9a1cd00002dec
5
5
  SHA512:
6
- metadata.gz: fb094c3701f256fbebfbca1f8123757c67a16bcbcba813848ab13e1258dd30c8d73af8ce4fb76a0a463d36ebe9d265996dce9654caf9526e39fa30a455d157df
7
- data.tar.gz: 7d9f7a393fb61e3001f340f5a0d99ea428792a50f9c990c6cdf0e57d2f6417fef25fc97f6ac9c86520f15516cc8d448907b0aaaa26fd48b3f88cc83127ea40c2
6
+ metadata.gz: d1d8676a627a98500691565041f76ede6e266f5127797b394ec324d11aee7ec7d5154fd269f430f4af5421e648d3746a6c03661b7b368840ac63748b75cb7a37
7
+ data.tar.gz: fdab9dcfe956de274cbf58b42a64382d480c94dae79d803f6db9b8f09fd65a2131a8fdd6427ade397a6b8fcbd49b243f231b0d6af206e1e68c9060669debe0bd
@@ -27,6 +27,6 @@ require "midi-instrument/output"
27
27
 
28
28
  module MIDIInstrument
29
29
 
30
- VERSION = "0.4.2"
30
+ VERSION = "0.4.3"
31
31
 
32
32
  end
@@ -15,7 +15,6 @@ module MIDIInstrument
15
15
  @listener = Listener.new(options[:sources])
16
16
  @devices = InputContainer.new(@listener)
17
17
  @channel = nil
18
- @channel_filter = nil
19
18
  end
20
19
 
21
20
  # Add a MIDI input callback
@@ -24,10 +23,7 @@ module MIDIInstrument
24
23
  # @return [Listen]
25
24
  def receive(match = {}, &block)
26
25
  if block_given?
27
- @listener.receive(match) do |event|
28
- event = filter_event(event)
29
- yield(event)
30
- end
26
+ @listener.receive(match) { |event| yield(event) }
31
27
  end
32
28
  self
33
29
  end
@@ -36,8 +32,7 @@ module MIDIInstrument
36
32
  # @param [Array<MIDIMessage>, MIDIMessage, *MIDIMessage] messages
37
33
  # @return [Array<MIDIMessage>]
38
34
  def add(*messages)
39
- messages = Message.to_messages([messages].flatten)
40
- messages = messages.map { |message| filter_message(message) }.compact
35
+ messages = Message.to_messages([messages].flatten).compact
41
36
  @listener.add(*messages) unless messages.empty?
42
37
  messages
43
38
  end
@@ -46,16 +41,14 @@ module MIDIInstrument
46
41
  # Set the listener to acknowledge notes on all channels
47
42
  # @return [Boolean]
48
43
  def omni
49
- @channel_filter = nil
50
44
  @channel = nil
51
45
  true
52
46
  end
53
47
  alias_method :omni_on, :omni
54
48
 
55
- # Set the listener to only acknowledge notes from a specific channel
49
+ # Specify an input channel
56
50
  # @return [Boolean]
57
51
  def channel=(channel)
58
- @channel_filter = channel.nil? ? nil : MIDIFX::Filter.new(:channel, channel, :name => :input_channel)
59
52
  @channel = channel
60
53
  true
61
54
  end
@@ -71,28 +64,6 @@ module MIDIInstrument
71
64
 
72
65
  private
73
66
 
74
- # Filter an event based on the message contained in it
75
- # @param [Hash] event
76
- # @return [Hash, nil]
77
- def filter_event(event)
78
- if !@channel_filter.nil?
79
- if !(message = filter_message(event[:message])).nil?
80
- event[:message] = message
81
- event
82
- end
83
- else
84
- event
85
- end
86
- end
87
-
88
- # If there's a channel filter, use it to filter the given message.
89
- # @param [MIDIMessage] message
90
- # @return [MIDIMessage]
91
- def filter_message(message)
92
- message = @channel_filter.process(message) unless @channel_filter.nil?
93
- message
94
- end
95
-
96
67
  # Container class that handles updating the listener when changes are made
97
68
  class InputContainer < Array
98
69
 
data/test/input_test.rb CHANGED
@@ -44,31 +44,25 @@ class MIDIInstrument::InputTest < Test::Unit::TestCase
44
44
  context "#omni" do
45
45
 
46
46
  should "not have a receive channel" do
47
- assert_nil @input.instance_variable_get("@channel_filter")
48
47
  @input.channel = 4
49
48
  assert_equal 4, @input.channel
50
49
  @input.omni
51
50
  assert_nil @input.channel
52
- assert_nil @input.instance_variable_get("@channel_filter")
53
51
  end
54
52
 
55
53
  end
56
54
 
57
55
  context "#channel=" do
58
56
 
59
- should "have filter when channel is specified" do
60
- assert_nil @input.instance_variable_get("@channel_filter")
57
+ should "set channel" do
61
58
  @input.channel = 3
62
- assert_not_nil @input.instance_variable_get("@channel_filter")
63
59
  assert_equal 3, @input.channel
64
60
  end
65
61
 
66
- should "not have filter when channel is nil" do
62
+ should "unset channel" do
67
63
  @input.channel = 3
68
- assert_not_nil @input.instance_variable_get("@channel_filter")
69
64
  assert_equal 3, @input.channel
70
65
  @input.channel = nil
71
- assert_nil @input.instance_variable_get("@channel_filter")
72
66
  assert_nil @input.channel
73
67
  end
74
68
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: midi-instrument
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ari Russo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-17 00:00:00.000000000 Z
11
+ date: 2014-09-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: midi-eye