Пример #1
0
        public bool ToDocumentElement(TablatureContext context, ILogger logger, out ChordDefinition element)
        {
            if (context.DocumentState.DefinedChords.Any(
                    c => c.Name.Equals(this.Name.Value,
                                       StringComparison.InvariantCulture)))
            {
                logger.Report(LogLevel.Warning, this.Range, Messages.Warning_ChordAlreadyDefined);
                element = null;
                return(false);
            }

            ChordFingering chordFingering;

            if (!this.Fingering.ToDocumentElement(context, logger, out chordFingering))
            {
                element = null;
                return(false);
            }

            element = new ChordDefinition
            {
                Range       = this.Range,
                DisplayName = this.GetDisplayName(),
                Name        = this.Name.Value,
                Fingering   = chordFingering
            };

            return(true);
        }
Пример #2
0
 public ChordDiagram(ChordDefinition chordDefinition, ChordBarreStyle barreStyle)
 {
     this.InitializeComponent();
     _chordDefinition = chordDefinition;
     _barreStyle      = barreStyle;
     this.Draw();
 }
Пример #3
0
        protected void OnChordChanged()
        {
            RunOnUiThread(() => {
                if (mplayer.currentPressedNotes == null)
                {
                    return;
                }
                string t            = "";
                byte[] pressedNotes = mplayer.currentPressedNotes.ToArray();
                //byte[] pressedNotes = new byte[3] {65,69,71};  // test

                if (pressedNotes.Length > 0)
                {
                    ChordDefinition cd = chordRecognizer.ChordRecognize(pressedNotes);
                    if (cd != null)
                    {
                        //TODO: error on chord 65-69-71 -- ошибка с необязательной нотой аккорда (когда она явялется основной)
                        byte rootnote = pressedNotes[0];
                        if ((cd.RootOffset >= pressedNotes.Length) && (cd.ChordVariantOffset[cd.RootOffset] < cd.ChordVariantOffset[0]))
                        {
                            rootnote = (byte)(pressedNotes[0] - cd.ChordVariantOffset[0]);
                        }
                        t = Common.GetNoteName(rootnote) + cd.Chord.ChordName.Substring(1);
                    }
                }
                FindViewById <TextView>(Resource.Id.currentChord).Text = t;
            });
        }
Пример #4
0
        private void ChordGroup_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            var             cb  = e.Source as ComboBox;
            ChordDefinition def = cb.SelectedItem as ChordDefinition;

            chordDiagram.ChordDefinition = def;
            this.chordDiagram.InvalidateVisual();
        }
Пример #5
0
        public ChordDiagramGridRow(ChordDefinition chordDefinition, int fret, bool isCompact = false, ChordBarreStyle barreStyle = ChordBarreStyle.Brace)
        {
            _barreStyle = barreStyle;
            this.InitializeComponent();
            _chordDefinition = chordDefinition;
            _fret            = fret;
            _isCompact       = isCompact;

            this.Draw();
        }
Пример #6
0
        private void DrawFChord()
        {
            var chord = new ChordDefinition()
            {
                DisplayName = "F",
                Name        = "F",
                Fingering   = new ChordFingering
                {
                    Notes = new[]
                    {
                        new ChordFingeringNote(1, LeftHandFingerIndex.Index),
                        new ChordFingeringNote(3, LeftHandFingerIndex.Ring, true),
                        new ChordFingeringNote(3, LeftHandFingerIndex.Pinky, true),
                        new ChordFingeringNote(2, LeftHandFingerIndex.Middle, true),
                        new ChordFingeringNote(1, LeftHandFingerIndex.Index),
                        new ChordFingeringNote(1, LeftHandFingerIndex.Index),
                    }
                }
            };

            this.Root.Children.Add(new ChordDiagram(chord, ChordBarreStyle.Brace));
        }
Пример #7
0
        private void DrawCmaj7OnGChord()
        {
            var chord = new ChordDefinition()
            {
                DisplayName = "Cmaj7/G",
                Name        = "Cmaj7/G",
                Fingering   = new ChordFingering
                {
                    Notes = new[]
                    {
                        new ChordFingeringNote(3, LeftHandFingerIndex.Index, true),
                        new ChordFingeringNote(3, LeftHandFingerIndex.Index, true),
                        new ChordFingeringNote(5, LeftHandFingerIndex.Ring, true),
                        new ChordFingeringNote(5, LeftHandFingerIndex.Ring, true),
                        new ChordFingeringNote(5, LeftHandFingerIndex.Ring, true),
                        new ChordFingeringNote(7, LeftHandFingerIndex.Pinky, true),
                    }
                }
            };

            this.Root.Children.Add(new ChordDiagram(chord, ChordBarreStyle.Lined));
        }
Пример #8
0
        private void DrawEmOnDChord()
        {
            var chord = new ChordDefinition()
            {
                DisplayName = "Em/D",
                Name        = "Em/D",
                Fingering   = new ChordFingering
                {
                    Notes = new[]
                    {
                        new ChordFingeringNote(-1),
                        new ChordFingeringNote(-1),
                        new ChordFingeringNote(0),
                        new ChordFingeringNote(0),
                        new ChordFingeringNote(0),
                        new ChordFingeringNote(0),
                    }
                }
            };

            this.Root.Children.Add(new ChordDiagram(chord, ChordBarreStyle.Lined));
        }