Method: Coltrane::Theory::IntervalClass#initialize

Defined in:
lib/coltrane/theory/interval_class.rb

#initialize(arg) ⇒ IntervalClass

Returns a new instance of IntervalClass.



118
119
120
121
122
123
124
125
126
127
128
129
130
131
# File 'lib/coltrane/theory/interval_class.rb', line 118

def initialize(arg)
  super case arg
        when FrequencyInterval then arg.semitones
        when String
          self.class.names.index(arg) ||
            self.class.full_names.index(arg) ||
            self.class.all_names_including_compound.index(arg) ||
            self.class.full_names_including_compound.index(arg)
        when Numeric then arg
        else
          raise WrongArgumentsError,
                'Provide: [interval] || [name] || [number of semitones]'
        end % 12 * 100
end