Class: MIDIMessage::Context
- Inherits:
-
Object
- Object
- MIDIMessage::Context
- Defined in:
- lib/midi-message/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-message/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-message/context.rb', line 6 def channel @channel end |
#velocity ⇒ Object
Returns the value of attribute velocity.
6 7 8 |
# File 'lib/midi-message/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-message/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
118 119 120 121 122 |
# File 'lib/midi-message/context.rb', line 118 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
80 81 82 83 84 85 86 87 88 |
# File 'lib/midi-message/context.rb', line 80 def control_change(index, value, = {}) channel = [:channel] || @channel raise "control_change requires channel" if channel.nil? if index.kind_of?(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 |
# File 'lib/midi-message/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.kind_of?(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
47 48 49 50 51 52 53 54 55 56 |
# File 'lib/midi-message/context.rb', line 47 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.kind_of?(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
132 133 134 135 136 |
# File 'lib/midi-message/context.rb', line 132 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
98 99 100 101 102 103 104 105 106 |
# File 'lib/midi-message/context.rb', line 98 def polyphonic_aftertouch(note, value, = {}) channel = [:channel] || @channel raise "channel_aftertouch requires a channel" if channel.nil? if note.kind_of?(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
63 64 65 66 67 68 69 70 71 |
# File 'lib/midi-message/context.rb', line 63 def program_change(program, = {}) channel = [:channel] || @channel raise "program_change requires channel" if channel.nil? if program.kind_of?(String) ProgramChange[program].new(channel, ) else ProgramChange.new(channel, program, ) end end |