public void invert(Tonality tonality) { int mean = this.pitchMean(); int tonicPitch = tonality.getTonicPitch(); if (tonality.getMode() == Tonality.MINOR) { tonicPitch += 3; } tonicPitch = Note.convertToClosestPitch(mean, tonicPitch); //Apply inversion foreach (MusicItem mi in this.musicItemList) { mi.invert(tonicPitch, tonality); } }
public override void RachmaninoffInvert(int p, Tonality tonality) { if (this.isSilence()) { return; } int doubleDistance = 0; if (tonality.getMode() == Tonality.MAJOR) { doubleDistance = this.pitch * 2 - (p * 2 - 1); } else { doubleDistance = this.pitch * 2 - (p * 2 + 1); } this.pitch -= doubleDistance; }