class Alda::Octave

An octave event. An Alda::EventContainer containing an Alda::Octave can be derived using event list sugar. See Alda::EventList#method_missing.

o! means octave up, and o? means octave down. You can also use +@ and -@ to denote octave up and down.

Attributes

num[RW]

The string representing the octave’s number.

It can be empty, in which case it is purely serving for +@ and -@.

up_or_down[RW]

Positive for up, negative for down, and 0 as default.

Alda::Score.new do
  p((++++o).event.up_or_down) # => 4
end

Public Class Methods

new(num) → Alda::Octave click to toggle source

Creates an Alda::Octave.

Calls superclass method
# File lib/alda-rb/event.rb, line 672
def initialize num
  super()
  @num = num.to_s
  @up_or_down = 0
end

Public Instance Methods

+octave → octave click to toggle source

Octave up.

Alda::Score.new { piano_; c; +o; c }.play
# (plays C4, then C5)

See -@.

# File lib/alda-rb/event.rb, line 688
def +@
  @up_or_down += 1
  self
end
-octave → octave click to toggle source

Octave down. See +@.

# File lib/alda-rb/event.rb, line 699
def -@
  @up_or_down -= 1
  self
end
octave == other → true or false click to toggle source

Overrides Alda::Event#==. Returns true if other is an Alda::Octave and has the same num and up_or_down as octave (using ==).

Calls superclass method Alda::Event#==
# File lib/alda-rb/event.rb, line 727
def == other
  super || other.is_a?(Alda::Octave) && @num == other.num && @up_or_down == other.up_or_down
end
to_alda_code() → String click to toggle source

Overrides Alda::Event#to_alda_code.

# File lib/alda-rb/event.rb, line 709
def to_alda_code
  case @up_or_down <=> 0
  when 0
    ?o + @num
  when 1
    ?> * @up_or_down
  when -1
    ?< * -@up_or_down
  end
end