Class: HeadMusic::Instruments::InstrumentConfigurationOption

Inherits:
Object
  • Object
show all
Defined in:
lib/head_music/instruments/instrument_configuration_option.rb

Overview

An option for an instrument configuration.

Examples:

  • Piccolo trumpet leadpipe: "a" option with transposition_semitones: -1
  • Bass trombone F attachment: "engaged" option with lowest_pitch_semitones: -6
  • Trumpet mute: "straight", "cup", "harmon" options (no pitch effects)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name_key:, default: false, transposition_semitones: nil, lowest_pitch_semitones: nil) ⇒ InstrumentConfigurationOption

Returns a new instance of InstrumentConfigurationOption.



12
13
14
15
16
17
# File 'lib/head_music/instruments/instrument_configuration_option.rb', line 12

def initialize(name_key:, default: false, transposition_semitones: nil, lowest_pitch_semitones: nil)
  @name_key = name_key.to_sym
  @default = default
  @transposition_semitones = transposition_semitones
  @lowest_pitch_semitones = lowest_pitch_semitones
end

Instance Attribute Details

#defaultObject (readonly)

Returns the value of attribute default.



10
11
12
# File 'lib/head_music/instruments/instrument_configuration_option.rb', line 10

def default
  @default
end

#lowest_pitch_semitonesObject (readonly)

Returns the value of attribute lowest_pitch_semitones.



10
11
12
# File 'lib/head_music/instruments/instrument_configuration_option.rb', line 10

def lowest_pitch_semitones
  @lowest_pitch_semitones
end

#name_keyObject (readonly)

Returns the value of attribute name_key.



10
11
12
# File 'lib/head_music/instruments/instrument_configuration_option.rb', line 10

def name_key
  @name_key
end

#transposition_semitonesObject (readonly)

Returns the value of attribute transposition_semitones.



10
11
12
# File 'lib/head_music/instruments/instrument_configuration_option.rb', line 10

def transposition_semitones
  @transposition_semitones
end

Instance Method Details

#==(other) ⇒ Object



31
32
33
# File 'lib/head_music/instruments/instrument_configuration_option.rb', line 31

def ==(other)
  to_s == other.to_s
end

#affects_range?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/head_music/instruments/instrument_configuration_option.rb', line 27

def affects_range?
  !lowest_pitch_semitones.nil?
end

#affects_transposition?Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/head_music/instruments/instrument_configuration_option.rb', line 23

def affects_transposition?
  !transposition_semitones.nil?
end

#default?Boolean

Returns:

  • (Boolean)


19
20
21
# File 'lib/head_music/instruments/instrument_configuration_option.rb', line 19

def default?
  @default == true
end

#to_sObject



35
36
37
# File 'lib/head_music/instruments/instrument_configuration_option.rb', line 35

def to_s
  name_key.to_s
end