Class: MIDI::NoteEvent

Inherits:
ChannelEvent show all
Defined in:
lib/midilib/event.rb

Overview

The abstract superclass of all note on, and note off, and polyphonic pressure events.

Direct Known Subclasses

NoteOff, NoteOn, PolyPressure

Constant Summary collapse

PITCHES =
%w(C C# D D# E F F# G G# A A# B)

Instance Attribute Summary collapse

Attributes inherited from ChannelEvent

#channel

Attributes inherited from Event

#delta_time, #print_channel_numbers_from_one, #print_decimal_numbers, #print_note_names, #status, #time_from_start

Instance Method Summary collapse

Methods inherited from ChannelEvent

#to_s

Methods inherited from Event

#<=>, #channel_to_s, #number_to_s, #quantize_to, #to_s

Instance Attribute Details

#noteObject

Returns the value of attribute note


103
104
105
# File 'lib/midilib/event.rb', line 103

def note
  @note
end

#velocityObject

Returns the value of attribute velocity


103
104
105
# File 'lib/midilib/event.rb', line 103

def velocity
  @velocity
end

Instance Method Details

#data_as_bytesObject


126
127
128
129
130
131
# File 'lib/midilib/event.rb', line 126

def data_as_bytes
  data = []
  data << (@status + @channel)
  data << @note
  data << @velocity
end

#note_to_sObject

If @print_note_names is true, returns pch_oct(val) else returns value as a number using number_to_s.


122
123
124
# File 'lib/midilib/event.rb', line 122

def note_to_s
  return @print_note_names ? pch_oct(@note) : number_to_s(@note)
end

#pch_oct(val = @note) ⇒ Object

Returns note name as a pitch/octave string like “C4” or “F#6”.


114
115
116
117
118
# File 'lib/midilib/event.rb', line 114

def pch_oct(val=@note)
  pch = val % 12
  oct = (val / 12) - 1
  "#{PITCHES[pch]}#{oct}"
end