Class: Webmidi::Middleware::NoteRangeFilter

Inherits:
Base
  • Object
show all
Defined in:
lib/webmidi/middleware/note_range_filter.rb

Instance Method Summary collapse

Constructor Details

#initialize(app, min: 0, max: 127, **options) ⇒ NoteRangeFilter

Returns a new instance of NoteRangeFilter.



6
7
8
9
10
11
12
13
# File 'lib/webmidi/middleware/note_range_filter.rb', line 6

def initialize(app, min: 0, max: 127, **options)
  super(app, **options)
  validate_note!(min, "min")
  validate_note!(max, "max")
  raise InvalidMessageError, "min cannot be greater than max" if min > max

  @range = min..max
end

Instance Method Details

#call(message) ⇒ Object



15
16
17
18
19
# File 'lib/webmidi/middleware/note_range_filter.rb', line 15

def call(message)
  return nil if note_message?(message) && !@range.cover?(message.note)

  @app.call(message)
end