Exemplo n.º 1
0
 public void AddNote(NoteBounds bounds)
 {
     if (Notes == null)
     {
         Notes = new FastList <NoteBounds>();
     }
     Notes.Add(bounds);
 }
Exemplo n.º 2
0
        public static BoundsLookup FromJson(object json, Score score)
        {
            var lookup = new BoundsLookup();

            var staveGroups = json.Member <FastList <StaveGroupBounds> >("StaveGroups");

            foreach (var staveGroup in staveGroups)
            {
                var sg = new StaveGroupBounds();
                sg.VisualBounds = staveGroup.VisualBounds;
                sg.RealBounds   = staveGroup.RealBounds;
                lookup.AddStaveGroup(sg);

                foreach (var masterBar in staveGroup.Bars)
                {
                    var mb = new MasterBarBounds();
                    mb.Index             = masterBar.Index;
                    mb.IsFirstOfLine     = masterBar.IsFirstOfLine;
                    mb.LineAlignedBounds = masterBar.LineAlignedBounds;
                    mb.VisualBounds      = masterBar.VisualBounds;
                    mb.RealBounds        = masterBar.RealBounds;
                    sg.AddBar(mb);

                    foreach (var bar in masterBar.Bars)
                    {
                        var b = new BarBounds();
                        b.VisualBounds = bar.VisualBounds;
                        b.RealBounds   = bar.RealBounds;
                        mb.AddBar(b);

                        foreach (var beat in bar.Beats)
                        {
                            var bb = new BeatBounds();
                            bb.VisualBounds = beat.VisualBounds;
                            bb.RealBounds   = beat.RealBounds;
                            bb.Beat         = score
                                              .Tracks[beat.Member <int>("TrackIndex")]
                                              .Staves[beat.Member <int>("StaffIndex")]
                                              .Bars[beat.Member <int>("BarIndex")]
                                              .Voices[beat.Member <int>("VoiceIndex")]
                                              .Beats[beat.Member <int>("BeatIndex")];

                            if (beat.Notes != null)
                            {
                                bb.Notes = new FastList <NoteBounds>();
                                foreach (var note in beat.Notes)
                                {
                                    var n = new NoteBounds();
                                    n.Note           = bb.Beat.Notes[note.Member <int>("Index")];
                                    n.NoteHeadBounds = note.NoteHeadBounds;
                                    bb.AddNote(n);
                                }
                            }

                            b.AddBeat(bb);
                        }
                    }
                }
            }

            return(lookup);
        }
Exemplo n.º 3
0
        public void AddNote(NoteBounds bounds)
        {
            var beat = FindBeat(bounds.Note.Beat);

            beat.AddNote(bounds);
        }