public static GuitarChordName CreateEvent(GuitarMessageList owner, TickPair ticks, ChordNameMeta meta, bool chordNameHidden) { var ret = new GuitarChordName(owner, ticks, meta, chordNameHidden); ret.IsNew = true; ret.CreateEvents(); return ret; }
public GuitarChordRootNoteConfig() { UseUserChordName = false; UserChordName = string.Empty; RootNoteData1 = Int32.MinValue; HideNoteName = false; ChordNameMeta = null; }
public GuitarChordName(GuitarMessageList owner, TickPair pair, ChordNameMeta meta, bool hidden) : base(owner, pair, GuitarMessageType.GuitarChordName) { this.Data1 = meta.ToneName.ToToneNameData1().ToInt(); this.Meta = meta; this.ChordNameHidden = hidden; Channel = 0; }
public GuitarChordName(GuitarMessageList owner, TickPair pair, ChordNameMeta meta, bool hidden) : base(owner, pair, GuitarMessageType.GuitarChordName) { this.Data1 = meta.ToneName.ToToneNameData1().ToInt(); this.Meta = meta; this.ChordNameHidden = hidden; Channel = 0; }
public void CreateChordNameEvents(GuitarDifficulty difficulty, int[] GuitarTuning, int[] BassTuning, Track ownerTrack) { var x108 = Generate108().Where(x => x.Chord != null).ToList(); foreach (var item in x108) { if (item.Chord.Notes.Count() > 1) { ChordNameMeta name = null; if (ownerTrack.Name.IsBassTrackName()) { name = item.Chord.GetTunedChordName(BassTuning); } else { name = item.Chord.GetTunedChordName(GuitarTuning); } int data1 = -1; var useUserChordName = false; var chordName = string.Empty; var hideChordName = false; item.Chord.RootNoteConfig.IfNotNull(x => useUserChordName = x.UseUserChordName); item.Chord.RootNoteConfig.IfNotNull(x => chordName = x.UserChordName); item.Chord.RootNoteConfig.IfNotNull(x => data1 = x.RootNoteData1); item.Chord.RootNoteConfig.IfNotNull(x => hideChordName = x.HideNoteName); if (difficulty == GuitarDifficulty.Expert) { if (hideChordName || (data1 == -1 && (name == null || (name != null && name.ToneName.ToToneNameData1() == ToneNameData1.NotSet)))) { ownerTrack.Insert(item.Ticks.Down, new ChannelMessage(ChannelCommand.NoteOn, Utility.ChordNameHiddenData1, 100 + item.Fret)); ownerTrack.Insert(item.Ticks.Up, new ChannelMessage(ChannelCommand.NoteOff, Utility.ChordNameHiddenData1, 0)); } else { if (data1 == -1) { data1 = name.ToneName.ToToneNameData1().ToInt(); } ownerTrack.Insert(item.Ticks.Down, new ChannelMessage(ChannelCommand.NoteOn, data1, 100 + item.Fret)); ownerTrack.Insert(item.Ticks.Up, new ChannelMessage(ChannelCommand.NoteOff, data1, 0)); } } var chordNameText = Utility.CreateChordNameText(item.Chord.Difficulty, useUserChordName ? chordName : name.ToStringEx()); if (chordNameText.IsNotEmpty()) { ownerTrack.Insert(item.Chord.AbsoluteTicks, new MetaMessage(MetaType.Text, chordNameText)); } } } }
public IEnumerable <ChordNameMeta> GetTunedChordNames(int[] tuning, bool allMatches = true) { var ret = new List <ChordNameMeta>(); var tunedNotes = GetTunedNoteScale(tuning).ToList().Where(x => x != ToneNameEnum.NotSet).ToList(); if (tunedNotes.Any()) { if (tunedNotes.Count() == 1) { var item = new ChordNameMeta(); item.ToneName = tunedNotes.Single(); ret.Add(item); } else { if (tunedNotes.Count() == 2) { tunedNotes.Add(tunedNotes.First()); } if (allMatches) { var items = ChordNameFinder.GetChordNames(tunedNotes); if (items == null) { var item = new ChordNameMeta(); item.ToneName = tunedNotes.Single(); ret.Add(item); } else { ret.AddRange(items); } } else { var item = ChordNameFinder.GetChordName(tunedNotes); if (item != null) { ret.Add(item); } else { item = new ChordNameMeta(); item.ToneName = tunedNotes.Single(); ret.Add(item); } } } } return(ret); }
static ChordNameMeta EC_ShowChord(string chord) { ChordNameMeta ret = null; if (chord.IsNotEmpty()) { ret = new ChordNameMeta(); ret.RootNote = chord[0].ToString(); for (var j = 1; j < chord.Length; j++) { var c = chord[j]; switch (c) { case '>': ret.IsSuper = true; break; case '#': case 'b': { if (c == 'b') { ret.IsFlat = true; } else { ret.IsSharp = true; } } break; default: { if (ret.IsSuper) { ret.Super += c; } else { ret.Number += c; } } break; } } } return(ret); }
public static ChordNameMeta GetChordName(IEnumerable <ToneNameEnum> tones) { ChordNameMeta ret = null; if (tones != null) { tones = tones.Where(x => x != ToneNameEnum.NotSet).ToArray(); if (tones.Count() > 2) { var ecTones = tones.Select(x => GetECToneName(x)).ToArray(); ret = EC_CalculateChordSymbols(ecTones, true).FirstOrDefault(); } } return(ret); }
public static string CreateChordNameText(GuitarDifficulty difficulty, ChordNameMeta chordName) { return "[" + GetChordNameTextPrefix(difficulty) + " " + chordName.ToStringEx().GetIfEmpty(" ") + "]"; }
public static string CreateChordNameText(GuitarDifficulty difficulty, ChordNameMeta chordName) { return("[" + GetChordNameTextPrefix(difficulty) + " " + chordName.ToStringEx().GetIfEmpty(" ") + "]"); }
public static GuitarChordName CreateEvent(GuitarMessageList owner, TickPair ticks, ChordNameMeta meta, bool chordNameHidden) { var ret = new GuitarChordName(owner, ticks, meta, chordNameHidden); ret.IsNew = true; ret.CreateEvents(); return(ret); }
static ChordNameMeta EC_ShowChord(string chord) { ChordNameMeta ret = null; if (chord.IsNotEmpty()) { ret = new ChordNameMeta(); ret.RootNote = chord[0].ToString(); for (var j = 1; j < chord.Length; j++) { var c = chord[j]; switch (c) { case '>': ret.IsSuper = true; break; case '#': case 'b': { if (c == 'b') { ret.IsFlat = true; } else { ret.IsSharp = true; } } break; default: { if (ret.IsSuper) { ret.Super += c; } else { ret.Number += c; } } break; } } } return ret; }