public override List <MusicalSymbol> Convert(Piece piece)
        {
            _piece          = piece;
            _symbols        = new List <MusicalSymbol>();
            _previousOctave = 4;
            _previousNote   = Enums.NoteType.C;

            _currentClefType = _piece.Clef;
            _symbols.Add(new Clef((ClefType)_piece.Clef, (int)(_piece.Clef + 1) * 2));
            _currentTimeSignature = _piece.TimeSignature;
            _symbols.Add(new PSAMControlLibrary.TimeSignature(TimeSignatureType.Numbers, (uint)_piece.TimeSignature.Top, (uint)_piece.TimeSignature.Bottom));

            RunActions(piece.Elements);

            CheckEndingRepeat();

            return(_symbols);
        }
        private void HandleNote()
        {
            var note = (Models.Note)_element;

            // Octave
            if (_mustAlterOctave)
            {
                _previousOctave  = _alterOctave;
                _mustAlterOctave = false;
            }
            else
            {
                CalculateOctave(note);
            }

            _previousNote = note.NoteType;

            // Note tie type
            var noteTieType = NoteTieType.None;

            if (note.IsTied)
            {
                noteTieType = NoteTieType.Start;
                _isTied     = true;
            }
            else if (_isTied)
            {
                noteTieType = NoteTieType.Stop;
                _isTied     = false;
            }

            // Create and add new note
            var newNote = new PSAMControlLibrary.Note(note.NoteType.ToString(),
                                                      (int)note.AlterType, _previousOctave, (MusicalSymbolDuration)note.DurationType,
                                                      NoteStemDirection.Up,
                                                      noteTieType, new List <NoteBeamType> {
                NoteBeamType.Single
            })
            {
                NumberOfDots = note.Dots
            };

            _symbols.Add(newNote);
        }
Exemple #3
0
 public NoteBuilder(Enums.NoteType note)
 {
     Element = new Note {
         NoteType = note
     };
 }