public static List <MusicalSymbol> Convert(MusicMeasure measure) { var s = new List <MusicalSymbol>(); foreach (var note in measure.Notes.OrderBy(n => n.Position)) { var t = TranslateNote(note); var direction = note.Note > 71 ? NoteStemDirection.Down : NoteStemDirection.Up; var duration = TranslateDuration(note); var psamNote = new Note(t.Note, t.Alter, t.Octave, duration.Duration, direction, NoteTieType.None, new List <NoteBeamType>() { NoteBeamType.Single }); psamNote.NumberOfDots = duration.Dots; if (note.IsRepaired) { psamNote.MusicalCharacterColor = System.Drawing.Color.Red; } s.Add(psamNote); } return(s); }
private static (IncipitViewerWPF Viewer, int Width) BuildVisualMeasure(MusicMeasure measure) { var result = new IncipitViewerWPF(); var symbols = MeasureToPsamSymbolConvertor.Convert(measure); foreach (var symbol in symbols) { result.AddMusicalSymbol(symbol); } result.AddMusicalSymbol(new Barline()); return(result, CalculateWidth(symbols)); }
public MeasureViewModel(MusicMeasure measure) { Measure = measure; var viewer = BuildVisualMeasure(measure); Width = viewer.Width; var grid = new Grid { Width = Width, Height = 100 }; grid.Children.Add(viewer.Viewer); DisplayGrid = grid; }