Class: MIDIEvents::Context
- Inherits:
-
Object
- Object
- MIDIEvents::Context
- Defined in:
- lib/midi-events/context.rb
Overview
A DSL for instantiating message objects
Instance Attribute Summary collapse
-
#channel ⇒ Object
Returns the value of attribute channel.
-
#velocity ⇒ Object
Returns the value of attribute velocity.
Class Method Summary collapse
-
.with(options = {}, &block) ⇒ Object
Open a context with the given options.
Instance Method Summary collapse
-
#channel_aftertouch(value, options = {}) ⇒ Object
(also: #ChannelAftertouch, #ChannelPressure, #channel_pressure)
A channel pressure message.
-
#control_change(index, value, options = {}) ⇒ Object
(also: #ControlChange, #Controller, #controller)
A control change message.
-
#initialize(options = {}) ⇒ Context
constructor
A new instance of Context.
-
#note_off(note, options = {}) ⇒ Object
(also: #NoteOff)
A note off message.
-
#note_on(note, options = {}) ⇒ Object
(also: #NoteOn)
A note on message.
-
#pitch_bend(low, high, options = {}) ⇒ Object
(also: #PitchBend)
A poly pressure message.
-
#polyphonic_aftertouch(note, value, options = {}) ⇒ Object
(also: #PolyphonicAftertouch, #PolyAftertouch, #PolyphonicPressure, #PolyPressure, #poly_aftertouch, #poly_pressure)
A poly pressure message.
-
#program_change(program, options = {}) ⇒ Object
(also: #ProgramChange)
A program change message.
Constructor Details
#initialize(options = {}) ⇒ Context
Returns a new instance of Context.
20 21 22 23 |
# File 'lib/midi-events/context.rb', line 20 def initialize( = {}) @channel = [:channel] @velocity = [:velocity] end |
Instance Attribute Details
#channel ⇒ Object
Returns the value of attribute channel.
6 7 8 |
# File 'lib/midi-events/context.rb', line 6 def channel @channel end |
#velocity ⇒ Object
Returns the value of attribute velocity.
6 7 8 |
# File 'lib/midi-events/context.rb', line 6 def velocity @velocity end |
Class Method Details
.with(options = {}, &block) ⇒ Object
Open a context with the given options
13 14 15 |
# File 'lib/midi-events/context.rb', line 13 def self.with( = {}, &block) new(, &block).instance_eval(&block) end |
Instance Method Details
#channel_aftertouch(value, options = {}) ⇒ Object Also known as: ChannelAftertouch, ChannelPressure, channel_pressure
A channel pressure message
124 125 126 127 128 129 |
# File 'lib/midi-events/context.rb', line 124 def channel_aftertouch(value, = {}) channel = [:channel] || @channel raise 'channel_aftertouch requires a channel' if channel.nil? ChannelAftertouch.new(channel, value, ) end |
#control_change(index, value, options = {}) ⇒ Object Also known as: ControlChange, Controller, controller
A control change message
83 84 85 86 87 88 89 90 91 92 |
# File 'lib/midi-events/context.rb', line 83 def control_change(index, value, = {}) channel = [:channel] || @channel raise 'control_change requires channel' if channel.nil? if index.is_a?(String) ControlChange[index].new(channel, value, ) else ControlChange.new(channel, index, value, ) end end |
#note_off(note, options = {}) ⇒ Object Also known as: NoteOff
A note off message
30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/midi-events/context.rb', line 30 def note_off(note, = {}) channel = [:channel] || @channel velocity = [:velocity] || @velocity raise 'note_off requires both channel and velocity' if channel.nil? || velocity.nil? if note.is_a?(String) NoteOff[note].new(channel, velocity, ) else NoteOff.new(channel, note, velocity, ) end end |
#note_on(note, options = {}) ⇒ Object Also known as: NoteOn
A note on message
48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/midi-events/context.rb', line 48 def note_on(note, = {}) channel = [:channel] || @channel velocity = [:velocity] || @velocity raise 'note_on requires both channel and velocity' if channel.nil? || velocity.nil? if note.is_a?(String) NoteOn[note].new(channel, velocity, ) else NoteOn.new(channel, note, velocity, ) end end |
#pitch_bend(low, high, options = {}) ⇒ Object Also known as: PitchBend
A poly pressure message
139 140 141 142 143 144 |
# File 'lib/midi-events/context.rb', line 139 def pitch_bend(low, high, = {}) channel = [:channel] || @channel raise 'channel_aftertouch requires a channel' if channel.nil? PitchBend.new(channel, low, high, ) end |
#polyphonic_aftertouch(note, value, options = {}) ⇒ Object Also known as: PolyphonicAftertouch, PolyAftertouch, PolyphonicPressure, PolyPressure, poly_aftertouch, poly_pressure
A poly pressure message
102 103 104 105 106 107 108 109 110 111 |
# File 'lib/midi-events/context.rb', line 102 def polyphonic_aftertouch(note, value, = {}) channel = [:channel] || @channel raise 'channel_aftertouch requires a channel' if channel.nil? if note.is_a?(String) PolyphonicAftertouch[note].new(channel, value, ) else PolyphonicAftertouch.new(channel, note, value, ) end end |
#program_change(program, options = {}) ⇒ Object Also known as: ProgramChange
A program change message
65 66 67 68 69 70 71 72 73 74 |
# File 'lib/midi-events/context.rb', line 65 def program_change(program, = {}) channel = [:channel] || @channel raise 'program_change requires channel' if channel.nil? if program.is_a?(String) ProgramChange[program].new(channel, ) else ProgramChange.new(channel, program, ) end end |