private static GuitarString ParseString(string s, int number, int startingFret) { try { var guitarString = new GuitarString(number); if (s.StartsWith("X", StringComparison.OrdinalIgnoreCase)) guitarString.IsMuted = true; else { string[] frets = s.Split('|').Skip(1).ToArray(); for (int i = 0; i < frets.Length; i++) { if (frets[i].ToUpper() == "-X-") { guitarString.RelativeFret = i + 1; guitarString.AnsoluteFret = startingFret + guitarString.RelativeFret; } else if (frets[i].ToUpper() == "(X)") guitarString.OptionalRelativeFret = i + 1; } } return guitarString; } catch (Exception ex) { throw new FormatException("Wrong string format", ex); } }
public Note GetNote(GuitarString @string) { if (@string.IsMuted) { throw new ArgumentException("String is muted"); } int fret = @string.AnsoluteFret + Offset; Note note = Notes[@string.Number - 1] + fret; return(note); }
public Note GetUnclambedNote(GuitarString @string) { Note note = Notes[@string.Number - 1]; return(note); }
public FingeringBuiler AddString(int number) { _previousString = number; _strings[number - 1] = new GuitarString(number); return this; }
public FingeringBuiler AddString(int number) { _previousString = number; _strings[number - 1] = new GuitarString(number); return(this); }