Class: MIDIMessage::Context

Inherits:
Object
  • Object
show all
Defined in:
lib/midi-message/context.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Context

Returns a new instance of Context.



12
13
14
15
# File 'lib/midi-message/context.rb', line 12

def initialize(options = {})
  @channel = options[:channel]
  @velocity = options[:velocity]  
end

Instance Attribute Details

#channelObject

Returns the value of attribute channel.



9
10
11
# File 'lib/midi-message/context.rb', line 9

def channel
  @channel
end

#velocityObject

Returns the value of attribute velocity.



9
10
11
# File 'lib/midi-message/context.rb', line 9

def velocity
  @velocity
end

Instance Method Details

#channel_aftertouch(value, options = {}) ⇒ Object Also known as: ChannelAftertouch, ChannelPressure, channel_pressure



81
82
83
84
85
# File 'lib/midi-message/context.rb', line 81

def channel_aftertouch(value, options = {})
  channel = options[:channel] || @channel
  raise 'channel_aftertouch requires a channel' if channel.nil?
  ChannelAftertouch.new(channel, value, options)    
end

#control_change(index, value, options = {}) ⇒ Object Also known as: ControlChange, Controller, controller



52
53
54
55
56
57
58
59
60
# File 'lib/midi-message/context.rb', line 52

def control_change(index, value, options = {})
  channel = options[:channel] || @channel
  raise 'control_change requires channel' if channel.nil?
  if index.kind_of?(String)
    ControlChange[index].new(channel, value, options)
  else
    ControlChange.new(channel, index, value, options)
  end    
end

#note_off(note, options = {}) ⇒ Object Also known as: NoteOff



17
18
19
20
21
22
23
24
25
26
# File 'lib/midi-message/context.rb', line 17

def note_off(note, options = {})
  channel = options[:channel] || @channel
  velocity = options[:velocity] || @velocity
  raise 'note_off requires both channel and velocity' if channel.nil? || velocity.nil?
  if note.kind_of?(String)
    NoteOff[note].new(channel, velocity, options)
  else
    NoteOff.new(channel, note, velocity, options)
  end
end

#note_on(note, options = {}) ⇒ Object Also known as: NoteOn



29
30
31
32
33
34
35
36
37
38
# File 'lib/midi-message/context.rb', line 29

def note_on(note, options = {})
  channel = options[:channel] || @channel
  velocity = options[:velocity] || @velocity
  raise 'note_on requires both channel and velocity' if channel.nil? || velocity.nil?
  if note.kind_of?(String)
    NoteOn[note].new(channel, velocity, options)
  else
    NoteOn.new(channel, note, velocity, options)
  end
end

#pitch_bend(low, high, options = {}) ⇒ Object Also known as: PitchBend



90
91
92
93
94
# File 'lib/midi-message/context.rb', line 90

def pitch_bend(low, high, options = {})
  channel = options[:channel] || @channel
  raise 'channel_aftertouch requires a channel' if channel.nil?
  PitchBend.new(channel, low, high, options)    
end

#polyphonic_aftertouch(note, value, options = {}) ⇒ Object Also known as: PolyphonicAftertouch, PolyAftertouch, PolyphonicPressure, PolyPressure, poly_aftertouch, poly_pressure



65
66
67
68
69
70
71
72
73
# File 'lib/midi-message/context.rb', line 65

def polyphonic_aftertouch(note, value, options = {})
  channel = options[:channel] || @channel
  raise 'channel_aftertouch requires a channel' if channel.nil?
  if note.kind_of?(String)
    PolyphonicAftertouch[note].new(channel, value, options)
  else
    PolyphonicAftertouch.new(channel, note, value, options)
  end    
end

#program_change(program, options = {}) ⇒ Object Also known as: ProgramChange



41
42
43
44
45
46
47
48
49
# File 'lib/midi-message/context.rb', line 41

def program_change(program, options = {})
  channel = options[:channel] || @channel
  raise 'program_change requires channel' if channel.nil?
  if program.kind_of?(String)
    ProgramChange[program].new(channel, options)
  else
    ProgramChange.new(channel, program, options)
  end    
end