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.



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

def note
  @note
end

#velocityObject

Returns the value of attribute velocity.



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

def velocity
  @velocity
end

Instance Method Details

#data_as_bytesObject



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

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.



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

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”.



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

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