midi-instrument 0.4.2 → 0.4.3

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: 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