Example #1
0
 private int getNoteDuration(MusicalSymbolDuration duration)
 {
     if (duration == MusicalSymbolDuration.Whole)
     {
         return(256);
     }
     if (duration == MusicalSymbolDuration.Half)
     {
         return(128);
     }
     if (duration == MusicalSymbolDuration.Quarter)
     {
         return(64);
     }
     if (duration == MusicalSymbolDuration.Eighth)
     {
         return(32);
     }
     if (duration == MusicalSymbolDuration.Sixteenth)
     {
         return(16);
     }
     if (duration == MusicalSymbolDuration.d32nd)
     {
         return(8);
     }
     if (duration == MusicalSymbolDuration.d64th)
     {
         return(4);
     }
     return(2);
 }
Example #2
0
 public NoteSymb(string noteStep, int noteAlter, int noteOctave, MusicalSymbolDuration noteDuration)
     : base(MusicalSymbolType.Note, noteDuration)
 {
     symb = new Note(noteStep, noteAlter, noteOctave, noteDuration, NoteStemDirection.Up, NoteTieType.None, new List <NoteBeamType>()
     {
         NoteBeamType.Single
     });
     note       = noteStep;
     alteration = noteAlter;
     octave     = noteOctave;
 }
Example #3
0
 private void ChangeSymbolSelection(Button ActiveButton, MusicalSymbolDuration Duration, MusicalSymbolType Symbol)
 {
     if (SelectedSymbolButton != null)
     {
         SelectedSymbolButton.BackColor = Color.FromName("Control");
     }
     SelectedDuration               = Duration;
     SelectedSymbolButton           = ActiveButton;
     SelectedSymbol                 = Symbol;
     SelectedSymbolButton.BackColor = Color.FromName("ActiveCaption");
 }
Example #4
0
 public Note(string noteStep, int noteAlter, int noteOctave, MusicalSymbolDuration noteDuration,
             NoteStemDirection noteStemDirection, NoteTieType noteTieType, List <NoteBeamType> noteBeamList)
 {
     type          = MusicalSymbolType.Note;
     duration      = noteDuration;
     step          = noteStep;
     octave        = noteOctave;
     alter         = noteAlter;
     stemDirection = noteStemDirection;
     beamList      = noteBeamList;
     tieType       = noteTieType;
     midiPitch     = ToMidiPitch(step, alter, octave);
     DetermineMusicalCharacter();
 }
Example #5
0
        static private MusicalSymbol getNoteMusicalSymbol(D_Note note)
        {
            String note_level                = getNoteLevel(note.level);
            int    note_alteration           = getNoteAlteration(note.alteration);
            int    octave                    = note.octave;
            int    numberOfDots              = getNumberOfDots(note.length_modifier);
            MusicalSymbolDuration duration   = getNoteDuration(getVisualLength(note.length, note.length_modifier));
            NoteStemDirection     direction  = getStemDirection(note.octave);
            NoteTieType           note_tie   = getNoteTie(note.note_tie);
            List <NoteBeamType>   note_beams = new List <NoteBeamType>()
            {
                NoteBeamType.Single
            };

            return(new Note(note_level, note_alteration, octave, duration, direction, note_tie, note_beams)
            {
                NumberOfDots = numberOfDots
            });
        }
Example #6
0
        public void ManageModeNote(IncipitViewer viewer, int index, EditeurMode SelectedMode, int X, int Y, MusicalSymbolType SelectedSymbol, MusicalSymbolDuration SelectedDuration, Color SelectedColor)
        {
            string noteName   = new StringBuilder().Append(Convert.ToChar((29 - ((Y + 2) / 4)) % 7 + 65)).ToString(); // E = B
            int    noteOctave = (48 - ((Y + 2) / 4)) / 7;

            //MessageBox.Show("X = "+X+", Y = "+Y+" / "+noteName+" "+noteOctave);

            if (SelectedMode == EditeurMode.Delete)
            {
                DeleteSlur(viewer, index);
                viewer.RemoveMusicalSymbolAt(index);
            }

            if (SelectedMode == EditeurMode.Edit)
            {
                Note tmp = new Note(noteName, 0, noteOctave,
                                    SelectedDuration, SelectedColor, NoteStemDirection.Up, NoteTieType.None,
                                    (SelectedDuration > MusicalSymbolDuration.Quarter ? ((Note)viewer.IncipitElement(index)).BeamList : new List <NoteBeamType>()
                {
                    NoteBeamType.Single
                }));

                if (SelectedDuration <= MusicalSymbolDuration.Quarter)
                {
                    ManageModeBeam(viewer, index, EditeurMode.Delete);
                }

                if (tmp.Step == ((Note)viewer.IncipitElement(index)).Step && tmp.Octave == ((Note)viewer.IncipitElement(index)).Octave)
                {
                    tmp.TieType = ((Note)viewer.IncipitElement(index)).TieType;
                }
                else
                {
                    ManageModeTie(viewer, index, EditeurMode.Delete);
                }

                tmp.Slur = ((Note)viewer.IncipitElement(index)).Slur;

                viewer.RemoveMusicalSymbolAt(index);
                viewer.InciptInsert(index, tmp);
            }

            if (SelectedMode == EditeurMode.Add)
            {
                if (SelectedSymbol == MusicalSymbolType.Note)
                {
                    viewer.InciptInsert(
                        index,
                        new Note(noteName, 0, noteOctave, SelectedDuration, SelectedColor,
                                 NoteStemDirection.Up, NoteTieType.StopAndStartAnother, new List <NoteBeamType>()
                    {
                        NoteBeamType.Continue
                    })
                        );
                    ManageModeTie(viewer, index, EditeurMode.Delete);
                    ManageModeBeam(viewer, index, EditeurMode.Delete);
                }
                else if (SelectedSymbol == MusicalSymbolType.Rest)
                {
                    viewer.InciptInsert(
                        index,
                        new Rest(SelectedDuration, SelectedColor)
                        );
                }

                // Notes.Insert(i * linenb, new NoteSymb(new StringBuilder().Append(Convert.ToChar((40 - ((Y + 2) / 4)) % 7 + 65)).ToString(), 0, (38 - ((Y + 2) / 4)) / 7, SelectedDuration, SelectedColor));
            }
        }
Example #7
0
 public RestSymb(MusicalSymbolDuration SymbDuration, Color SymbColor)
     : base(MusicalSymbolType.Rest, SymbDuration, SymbColor)
 {
     symb = new Rest(SymbDuration);
     symb.MusicalCharacterColor = SymbColor;
 }
Example #8
0
 public RestSymb(MusicalSymbolDuration SymbDuration)
     : base(MusicalSymbolType.Rest, SymbDuration)
 {
     symb = new Rest(SymbDuration);
 }
Example #9
0
 public MusicalSybols(MusicalSymbolType SymbType, MusicalSymbolDuration SymbDuration, Color SymbColor)
 {
     duration    = SymbDuration;
     type        = SymbType;
     objectcolor = SymbColor;
 }
Example #10
0
 public MusicalSybols(MusicalSymbolType SymbType, MusicalSymbolDuration SymbDuration)
 {
     duration    = SymbDuration;
     type        = SymbType;
     objectcolor = Color.Black;
 }
Example #11
0
        public static bool ParseXml(IMusicalNotesViewer viewer) //Returns true if there are no errors
        {
            viewer.ClearMusicalIncipit();
            XmlNodeList measures        = viewer.XmlIncipit.SelectNodes("/score-partwise/part/measure");
            int         skipMeasures    = 0;
            string      partID          = "";
            bool        firstLoop       = true;
            int         currentTempo    = 120;
            int         currentDynamics = 80;

            try
            {
                foreach (XmlNode measure in measures)
                {
                    bool barlineAlreadyAdded = false;
                    if (measure.ParentNode.Name == "part")  //Don't take the other voices than the upper into account / Nie uwzględniaj innych głosów niż górny
                    {
                        if (!firstLoop)
                        {
                            if (measure.ParentNode.Attributes["id"].Value != partID)
                            {
                                break;
                            }
                        }
                        else
                        {
                            partID = measure.ParentNode.Attributes["id"].Value;
                        }
                    }
                    if (skipMeasures > 0)
                    {
                        skipMeasures--; continue;
                    }
                    if (measure.HasChildNodes == false)
                    {
                        continue;
                    }
                    foreach (XmlNode symbol in measure.ChildNodes)
                    {
                        if (symbol.HasChildNodes == false)
                        {
                            continue;
                        }
                        if (symbol.Name == "attributes")
                        {
                            foreach (XmlNode attribute in symbol.ChildNodes)
                            {
                                if (attribute.Name == "clef")
                                {
                                    ClefType typeOfClef = ClefType.GClef;
                                    int      line       = 1;
                                    foreach (XmlNode clefAttribute in attribute.ChildNodes)
                                    {
                                        if (clefAttribute.Name == "sign")
                                        {
                                            if (clefAttribute.InnerText.ToUpper() == "G")
                                            {
                                                typeOfClef = ClefType.GClef;
                                            }
                                            else if (clefAttribute.InnerText.ToUpper() == "C")
                                            {
                                                typeOfClef = ClefType.CClef;
                                            }
                                            else if (clefAttribute.InnerText.ToUpper() == "F")
                                            {
                                                typeOfClef = ClefType.FClef;
                                            }
                                            else
                                            {
                                                throw (new Exception("Unknown clef"));
                                            }
                                        }
                                        if (clefAttribute.Name == "line")
                                        {
                                            line = Convert.ToInt16(clefAttribute.InnerText);
                                        }
                                    }
                                    viewer.AddMusicalSymbol(new Clef(typeOfClef, line));
                                }
                                if (attribute.Name == "time")
                                {
                                    uint numberOfBeats      = 4;
                                    uint beatType           = 4;
                                    TimeSignatureType sType = TimeSignatureType.Numbers;
                                    foreach (XmlNode timeAttribute in attribute.ChildNodes)
                                    {
                                        if (timeAttribute.Name == "beats")
                                        {
                                            numberOfBeats = Convert.ToUInt32(timeAttribute.InnerText);
                                        }
                                        if (timeAttribute.Name == "beat-type")
                                        {
                                            beatType = Convert.ToUInt32(timeAttribute.InnerText);
                                        }
                                    }
                                    if (attribute.Attributes.Count > 0)
                                    {
                                        foreach (XmlAttribute a in attribute.Attributes)
                                        {
                                            if (a.Name == "symbol")
                                            {
                                                if (a.Value == "common")
                                                {
                                                    sType = TimeSignatureType.Common;
                                                }
                                                else if (a.Value == "cut")
                                                {
                                                    sType = TimeSignatureType.Cut;
                                                }
                                            }
                                        }
                                    }
                                    viewer.AddMusicalSymbol(new TimeSignature(sType, numberOfBeats, beatType));
                                }
                                if (attribute.Name == "key")
                                {
                                    foreach (XmlNode keyAttribute in attribute.ChildNodes)
                                    {
                                        if (keyAttribute.Name == "fifths")
                                        {
                                            viewer.AddMusicalSymbol(new Key(Convert.ToInt16(keyAttribute.InnerText)));
                                        }
                                    }
                                }
                                if (attribute.Name == "measure-style")
                                {
                                    foreach (XmlNode measureStyleAttribute in attribute.ChildNodes)
                                    {
                                        if (measureStyleAttribute.Name == "multiple-rest")
                                        {
                                            skipMeasures = Convert.ToInt32(measureStyleAttribute.InnerText) - 1;
                                        }
                                    }
                                }
                            }
                        }
                        else if (symbol.Name == "sound")
                        {
                            if (((XmlElement)symbol).HasAttribute("tempo"))
                            {
                                currentTempo = Convert.ToInt32(symbol.Attributes["tempo"].Value);
                            }
                            if (((XmlElement)symbol).HasAttribute("dynamics"))
                            {
                                currentDynamics = Convert.ToInt32(symbol.Attributes["dynamics"].Value);
                            }
                        }
                        else if (symbol.Name == "direction")
                        {
                            foreach (XmlNode direction in symbol.ChildNodes)
                            {
                                if (direction.Name == "sound")
                                {
                                    if (((XmlElement)direction).HasAttribute("tempo"))
                                    {
                                        currentTempo = Convert.ToInt32(direction.Attributes["tempo"].Value);
                                    }
                                    if (((XmlElement)direction).HasAttribute("dynamics"))
                                    {
                                        currentDynamics = Convert.ToInt32(direction.Attributes["dynamics"].Value);
                                    }
                                }
                                if (direction.Name == "direction-type")
                                {
                                    foreach (XmlNode directionType in direction.ChildNodes)
                                    {
                                        if (directionType.Name == "dynamics")
                                        {
                                            DirectionPlacementType placement = DirectionPlacementType.Above;
                                            int    defaultY = 0;
                                            string text     = "";
                                            if (((XmlElement)directionType).HasAttribute("default-y"))
                                            {
                                                defaultY  = Convert.ToInt32(directionType.Attributes["default-y"].Value);
                                                placement = DirectionPlacementType.Custom;
                                            }
                                            if (((XmlElement)directionType).HasAttribute("placement") &&
                                                placement != DirectionPlacementType.Custom)
                                            {
                                                if (directionType.Attributes["placement"].Value == "above")
                                                {
                                                    placement = DirectionPlacementType.Above;
                                                }
                                                else if (directionType.Attributes["placement"].Value == "below")
                                                {
                                                    placement = DirectionPlacementType.Below;
                                                }
                                            }
                                            foreach (XmlNode dynamicsType in directionType.ChildNodes)
                                            {
                                                text = dynamicsType.Name;
                                            }
                                            Direction dir = new Direction();
                                            dir.DefaultY  = defaultY;
                                            dir.Placement = placement;
                                            dir.Text      = text;
                                            viewer.AddMusicalSymbol(dir);
                                        }
                                    }
                                }
                            }
                        }
                        else if (symbol.Name == "note")
                        {
                            int    octave       = 0;
                            int    alter        = 0;
                            string step         = "C";
                            bool   isRest       = false;
                            int    numberOfDots = 0;
                            MusicalSymbolDuration     duration              = MusicalSymbolDuration.Whole;
                            NoteStemDirection         stemDirection         = NoteStemDirection.Up;
                            NoteTieType               tieType               = NoteTieType.None;
                            TupletType                tuplet                = TupletType.None;
                            List <NoteBeamType>       beamList              = new List <NoteBeamType>();
                            List <LyricsType>         lyric                 = new List <LyricsType>();
                            List <string>             lyricText             = new List <string>();
                            ArticulationPlacementType articulationPlacement = ArticulationPlacementType.Below;
                            ArticulationType          articulation          = ArticulationType.None;
                            bool          hasNatural            = false;
                            bool          isGraceNote           = false;
                            bool          isChordElement        = false;
                            bool          hasFermataSign        = false;
                            float         stemDefaultY          = 28;
                            bool          customStemEndPosition = false;
                            int           tremoloLevel          = 0;
                            NoteSlurType  slur      = NoteSlurType.None;
                            NoteTrillMark trillMark = NoteTrillMark.None;
                            int           voice     = 1;

                            foreach (XmlNode noteAttribute in symbol.ChildNodes)
                            {
                                if (noteAttribute.Name == "pitch")
                                {
                                    foreach (XmlNode pitchAttribute in noteAttribute.ChildNodes)
                                    {
                                        if (pitchAttribute.Name == "step")
                                        {
                                            step = pitchAttribute.InnerText;
                                        }
                                        else if (pitchAttribute.Name == "octave")
                                        {
                                            octave = Convert.ToInt16(pitchAttribute.InnerText);
                                        }
                                        else if (pitchAttribute.Name == "alter")
                                        {
                                            alter = Convert.ToInt16(pitchAttribute.InnerText);
                                        }
                                    }
                                }
                                else if (noteAttribute.Name == "voice")
                                {
                                    voice = Convert.ToInt32(noteAttribute.InnerText);
                                }
                                else if (noteAttribute.Name == "grace")
                                {
                                    isGraceNote = true;
                                }
                                else if (noteAttribute.Name == "chord")
                                {
                                    isChordElement = true;
                                }
                                else if (noteAttribute.Name == "type")
                                {
                                    if (noteAttribute.InnerText == "whole")
                                    {
                                        duration = MusicalSymbolDuration.Whole;
                                    }
                                    else if (noteAttribute.InnerText == "half")
                                    {
                                        duration = MusicalSymbolDuration.Half;
                                    }
                                    else if (noteAttribute.InnerText == "quarter")
                                    {
                                        duration = MusicalSymbolDuration.Quarter;
                                    }
                                    else if (noteAttribute.InnerText == "eighth")
                                    {
                                        duration = MusicalSymbolDuration.Eighth;
                                    }
                                    else if (noteAttribute.InnerText == "16th")
                                    {
                                        duration = MusicalSymbolDuration.Sixteenth;
                                    }
                                    else if (noteAttribute.InnerText == "32nd")
                                    {
                                        duration = MusicalSymbolDuration.d32nd;
                                    }
                                    else if (noteAttribute.InnerText == "64th")
                                    {
                                        duration = MusicalSymbolDuration.d64th;
                                    }
                                    else if (noteAttribute.InnerText == "128th")
                                    {
                                        duration = MusicalSymbolDuration.d128th;
                                    }
                                }
                                else if (noteAttribute.Name == "accidental")
                                {
                                    if (noteAttribute.InnerText == "natural")
                                    {
                                        hasNatural = true;
                                    }
                                }
                                else if (noteAttribute.Name == "tie")
                                {
                                    if (noteAttribute.Attributes["type"].Value == "start")
                                    {
                                        if (tieType == NoteTieType.Stop)
                                        {
                                            tieType = NoteTieType.StopAndStartAnother;
                                        }
                                        else
                                        {
                                            tieType = NoteTieType.Start;
                                        }
                                    }
                                    else
                                    {
                                        tieType = NoteTieType.Stop;
                                    }
                                }
                                else if (noteAttribute.Name == "rest")
                                {
                                    isRest = true;
                                }
                                else if (noteAttribute.Name == "dot")
                                {
                                    numberOfDots++;
                                }
                                else if (noteAttribute.Name == "stem")
                                {
                                    if (noteAttribute.InnerText == "down")
                                    {
                                        stemDirection = NoteStemDirection.Down;
                                    }
                                    else
                                    {
                                        stemDirection = NoteStemDirection.Up;
                                    }
                                    foreach (XmlAttribute xa in noteAttribute.Attributes)
                                    {
                                        if (xa.Name == "default-y")
                                        {
                                            stemDefaultY = float.Parse(xa.Value.Replace('.',
                                                                                        Convert.ToChar(NumberFormatInfo.CurrentInfo.CurrencyDecimalSeparator)));
                                            customStemEndPosition = true;
                                        }
                                    }
                                }
                                else if (noteAttribute.Name == "beam")
                                {
                                    if (noteAttribute.InnerText == "begin")
                                    {
                                        beamList.Add(NoteBeamType.Start);
                                    }
                                    else if (noteAttribute.InnerText == "end")
                                    {
                                        beamList.Add(NoteBeamType.End);
                                    }
                                    else if (noteAttribute.InnerText == "continue")
                                    {
                                        beamList.Add(NoteBeamType.Continue);
                                    }
                                    else if (noteAttribute.InnerText == "forward hook")
                                    {
                                        beamList.Add(NoteBeamType.ForwardHook);
                                    }
                                    else if (noteAttribute.InnerText == "backward hook")
                                    {
                                        beamList.Add(NoteBeamType.BackwardHook);
                                    }
                                }
                                else if (noteAttribute.Name == "notations")
                                {
                                    foreach (XmlNode notationAttribute in noteAttribute.ChildNodes)
                                    {
                                        if (notationAttribute.Name == "tuplet")
                                        {
                                            if (notationAttribute.Attributes["type"].Value == "start")
                                            {
                                                tuplet = TupletType.Start;
                                            }
                                            else if (notationAttribute.Attributes["type"].Value == "stop")
                                            {
                                                tuplet = TupletType.Stop;
                                            }
                                        }
                                        if (notationAttribute.Name == "dynamics")
                                        {
                                            DirectionPlacementType placement = DirectionPlacementType.Above;
                                            int    defaultY = 0;
                                            string text     = "";
                                            if (((XmlElement)notationAttribute).HasAttribute("default-y"))
                                            {
                                                defaultY  = Convert.ToInt32(notationAttribute.Attributes["default-y"].Value);
                                                placement = DirectionPlacementType.Custom;
                                            }
                                            if (((XmlElement)notationAttribute).HasAttribute("placement") &&
                                                placement != DirectionPlacementType.Custom)
                                            {
                                                if (notationAttribute.Attributes["placement"].Value == "above")
                                                {
                                                    placement = DirectionPlacementType.Above;
                                                }
                                                else if (notationAttribute.Attributes["placement"].Value == "below")
                                                {
                                                    placement = DirectionPlacementType.Below;
                                                }
                                            }
                                            foreach (XmlNode dynamicsType in notationAttribute.ChildNodes)
                                            {
                                                text = dynamicsType.Name;
                                            }
                                            Direction dir = new Direction();
                                            dir.DefaultY  = defaultY;
                                            dir.Placement = placement;
                                            dir.Text      = text;
                                            viewer.AddMusicalSymbol(dir);
                                        }
                                        else if (notationAttribute.Name == "articulations")
                                        {
                                            foreach (XmlNode articulationAttribute in notationAttribute.ChildNodes)
                                            {
                                                if (articulationAttribute.Name == "staccato")
                                                {
                                                    articulation = ArticulationType.Staccato;
                                                }
                                                else if (articulationAttribute.Name == "accent")
                                                {
                                                    articulation = ArticulationType.Accent;
                                                }

                                                if (articulationAttribute.Attributes["placement"].Value == "above")
                                                {
                                                    articulationPlacement = ArticulationPlacementType.Above;
                                                }
                                                else if (articulationAttribute.Attributes["placement"].Value == "below")
                                                {
                                                    articulationPlacement = ArticulationPlacementType.Below;
                                                }
                                            }
                                        }
                                        else if (notationAttribute.Name == "ornaments")
                                        {
                                            foreach (XmlNode ornamentAttribute in notationAttribute.ChildNodes)
                                            {
                                                if (ornamentAttribute.Name == "trill-mark")
                                                {
                                                    if (ornamentAttribute.Attributes["placement"].Value == "above")
                                                    {
                                                        trillMark = NoteTrillMark.Above;
                                                    }
                                                    else if (ornamentAttribute.Attributes["placement"].Value == "below")
                                                    {
                                                        trillMark = NoteTrillMark.Below;
                                                    }
                                                }
                                                else if (ornamentAttribute.Name == "tremolo")
                                                {
                                                    tremoloLevel = Convert.ToInt32(ornamentAttribute.InnerText);
                                                }
                                            }
                                        }
                                        else if (notationAttribute.Name == "slur")
                                        {
                                            if ((Convert.ToInt32(notationAttribute.Attributes["number"].Value)) != 1)
                                            {
                                                continue;
                                            }
                                            if (notationAttribute.Attributes["type"].Value == "start")
                                            {
                                                slur = NoteSlurType.Start;
                                            }
                                            else if (notationAttribute.Attributes["type"].Value == "stop")
                                            {
                                                slur = NoteSlurType.Stop;
                                            }
                                        }
                                        else if (notationAttribute.Name == "fermata")
                                        {
                                            hasFermataSign = true;
                                        }
                                        else if (notationAttribute.Name == "sound")
                                        {
                                            if (((XmlElement)notationAttribute).HasAttribute("dynamics"))
                                            {
                                                currentDynamics = Convert.ToInt32(notationAttribute.Attributes["dynamics"].Value);
                                            }
                                        }
                                    }
                                }
                                else if (noteAttribute.Name == "lyric")
                                {
                                    foreach (XmlNode lyricAttribute in noteAttribute.ChildNodes)
                                    {
                                        if (lyricAttribute.Name == "syllabic")
                                        {
                                            if (lyricAttribute.InnerText == "begin")
                                            {
                                                lyric.Add(LyricsType.Begin);
                                            }
                                            else if (lyricAttribute.InnerText == "middle")
                                            {
                                                lyric.Add(LyricsType.Middle);
                                            }
                                            else if (lyricAttribute.InnerText == "end")
                                            {
                                                lyric.Add(LyricsType.End);
                                            }
                                            else if (lyricAttribute.InnerText == "single")
                                            {
                                                lyric.Add(LyricsType.Single);
                                            }
                                        }
                                        else if (lyricAttribute.Name == "text")
                                        {
                                            lyricText.Add(lyricAttribute.InnerText);
                                        }
                                    }
                                }
                            }
                            if (beamList.Count == 0)
                            {
                                beamList.Add(NoteBeamType.Single);
                            }
                            if (!isRest)
                            {
                                Note nt = new Note(step, alter, octave, duration, stemDirection, tieType, beamList);
                                nt.NumberOfDots          = numberOfDots;
                                nt.Tuplet                = tuplet;
                                nt.Lyrics                = lyric;
                                nt.LyricTexts            = lyricText;
                                nt.Articulation          = articulation;
                                nt.ArticulationPlacement = articulationPlacement;
                                nt.HasNatural            = hasNatural;
                                nt.IsGraceNote           = isGraceNote;
                                nt.IsChordElement        = isChordElement;
                                nt.StemDefaultY          = stemDefaultY;
                                nt.CustomStemEndPosition = customStemEndPosition;
                                nt.CurrentTempo          = currentTempo;
                                nt.TrillMark             = trillMark;
                                nt.Slur           = slur;
                                nt.HasFermataSign = hasFermataSign;
                                nt.TremoloLevel   = tremoloLevel;
                                nt.Voice          = voice;
                                nt.Dynamics       = currentDynamics;
                                viewer.AddMusicalSymbol(nt);
                            }
                            else
                            {
                                Rest rt = new Rest(duration);
                                rt.NumberOfDots   = numberOfDots;
                                rt.Tuplet         = tuplet;
                                rt.MultiMeasure   = skipMeasures + 1;
                                rt.CurrentTempo   = currentTempo;
                                rt.HasFermataSign = hasFermataSign;
                                rt.Voice          = voice;
                                viewer.AddMusicalSymbol(rt);
                            }
                        }
                        else if (symbol.Name == "barline")
                        {
                            Barline b = new Barline();
                            foreach (XmlNode barlineAttribute in symbol.ChildNodes)
                            {
                                if (barlineAttribute.Name == "repeat")
                                {
                                    if (((XmlElement)barlineAttribute).HasAttribute("direction"))
                                    {
                                        if (barlineAttribute.Attributes["direction"].Value == "forward")
                                        {
                                            b.RepeatSign = RepeatSignType.Forward;
                                        }
                                        else if (barlineAttribute.Attributes["direction"].Value == "backward")
                                        {
                                            b.RepeatSign = RepeatSignType.Backward;
                                        }

                                        viewer.AddMusicalSymbol(b);
                                        barlineAlreadyAdded = true;
                                    }
                                }
                            }
                        }
                    }
                    if (!barlineAlreadyAdded)
                    {
                        viewer.AddMusicalSymbol(new Barline());
                    }
                    firstLoop = false;
                }
            }
            catch
            {
                return(false);
            }
            return(true);
        }
Example #12
0
        static private MusicalSymbol getRestMusicalSymbol(D_Note note)
        {
            MusicalSymbolDuration duration = getNoteDuration(note.length);

            return(new Rest(duration));
        }
Example #13
0
 public Rest(MusicalSymbolDuration restDuration)
 {
     type     = MusicalSymbolType.Rest;
     duration = restDuration;
     DetermineMusicalCharacter();
 }