Module: Musa::Neumalang::Neumalang::Parser::DeltaVelocityAttribute Private

Defined in:
lib/musa-dsl/neumalang/neumalang.rb

Overview

This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.

Semantic action for differential velocity attribute.

Parses relative dynamics: "+f" (louder), "-p" (softer).

Instance Method Summary collapse

Instance Method Details

#valueHash

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Builds delta velocity structure.

Returns:

  • (Hash)

    delta_velocity attribute



795
796
797
798
799
800
801
802
803
804
805
806
# File 'lib/musa-dsl/neumalang/neumalang.rb', line 795

def value
  d = capture(:delta).value
  s = capture(:sign).value

  if /p+/.match?(d)
    v = -d.length
  else
    v = d.length
  end

  { delta_velocity: s * v }
end