internal Tune GetEasiestTune() { Tune current = CurrentTune; Tune?best = null; uint?minBarres = null; for (byte value = 0; value < Tune.Limit; ++value) { var tune = new Tune(value); TransposeTo(tune); uint barres = CountBarres(); if (!minBarres.HasValue || (barres < minBarres)) { minBarres = barres; best = tune; } } TransposeTo(current); // ReSharper disable once PossibleInvalidOperationException return(best.Value); }
internal void TransposeTo(Tune tune) => TransposeBy(tune - CurrentTune);