 /// - Returns: Returns bool value of equeation.
 public func ==(lhs: Interval, rhs: Interval) -> Bool {
 	return lhs == rhs
+}
+
+/// Extends `Interval` by any given octave.
+/// For example between C1 and D1, there are 2 halfsteps but between C1 and D2 there are 14 halfsteps.
+//// ```.M2 * 2``` will give you D2 from a C1.
+///
+/// - Parameters:
+///   - interval: Interval you want to extend by an octave.
+///   - octave: Octave you want to extend your interval by.
+/// - Returns: Returns new interval by calculating halfsteps between target interval and octave.
+public func *(interval: Interval, octave: Int) -> Interval {
+	return Interval(halfstep: interval.halfstep + (12 * (octave - 1)))
 }
 
 /// Defines the interval between `Note`s in halfstep tones and degrees.

    case .maj: return [.unison, .M3, .P5]
    case .min: return [.unison, .m3, .P5]
    case .aug: return [.unison, .M3, .m6]
    case .b5: return [.unison, .M3, .d5]
    case .dim: return [.unison, .m3, .d5]
    case .sus: return [.unison, .P4, .P5]

    case .sus: return "sus4"
    case .sus2: return "sus2"
    case .dom6: return "6"
    case .m6: return "-6"
    case .dom7: return "7"
    case .M7: return "maj7"
    case .m7: return "-7"
    case .aug7: return "aug7"
    case .dim7: return "dim7"
    case .M7b5: return "7b5"
    case .m7b5: return "m7b5"
    case .dom9: return "9"
    case .M9: return "maj9"
    case .m9: return "-9"
    case .dom11: return "11"
    case .M11: return "maj11"
    case .m11: return "-11"
    case .dom13: return "13"
    case .M13: return "maj13"
    case .m13: return "-13"
    case .add9: return "add9"
    case .madd9: return "-add9"
    case .M7b9: return "7b9"
    case .m7b9: return "-7b9"
    case .M6add9: return "6add9"
    case .m6add9: return "-6add9"
    case .dom7add11: return "7(add11)"
    case .M7add11: return "maj7(add11)"
    case .m7add11: return "-7(add11)"
    case .dom7add13: return "7(add13)"
    case .M7add13: return "maj7(add13)"
    case .m7add13: return "-7(add13)"
    case .M7a5: return "7#5"
    case .m7a5: return "-7#5"
    case .M7a9: return "7#9"
    case .M7a5b9: return "7#5b9"
    case .M9a11: return "9#11"
    case .M9b13: return "9b13"
    case .M6sus4: return "6sus4"
    case .maj7sus4: return "maj7sus4"
    case .M7sus4: return "7sus4"
    case .M9sus4: return "9sus4"
    case .maj9sus4: return "maj9sus4"
    case .mM7: return "-maj7"
    case .mM9: return "-maj9"
    case .mM11: return "-maj11"
    case .mM13: return "-maj13"
    case .mM7add11: return "-maj7(add11)"
    case .mM7add13: return "-maj7(add13)"
    case .M5: return "5"
    case .custom(_, let description): return "\(description)"
    }
