Sha256: 42de66246cb61b913ff178592c8c7f1bdcecf6ca859e8dc4ec54a8f4c6811ae3

Contents?: true

Size: 819 Bytes

Versions: 3

Compression:

Stored size: 819 Bytes

Contents

module Music
module Transcription

# Connect one note pitch to the target pitch of the next note, via slur, legato, etc.
#
# @!attribute [rw] target_pitch
#   @return [Pitch] The pitch of the note which is being connected to.
#
class Link
  def clone
    Marshal.load(Marshal.dump(self))
  end

  class Tie < Link
    def initialize; end
    
    def ==(other)
      self.class == other.class
    end
  end
  
  class TargetedLink < Link
    attr_accessor :target_pitch
    
    def initialize target_pitch
      @target_pitch = target_pitch
    end
    
    def ==(other)
      self.class == other.class && @target_pitch == other.target_pitch
    end
  end
  
  class Glissando < TargetedLink; end
  class Portamento < TargetedLink; end
  class Slur < TargetedLink; end
  class Legato < TargetedLink; end
end

end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
music-transcription-0.10.0 lib/music-transcription/link.rb
music-transcription-0.9.2 lib/music-transcription/link.rb
music-transcription-0.9.1 lib/music-transcription/link.rb