public static PatternData ToData(Pattern pattern) { return(new PatternData { BarsCount = pattern.Info.BarsCount, BeatsPerBar = pattern.Info.BeatsPerBar, TimeUnitsPerBeat = pattern.Info.UnitsPerBeat.Index, SuggestedBpm = pattern.Info.SuggestedBpm, Sounds = pattern.Sounds.Sounds.Select(s => ToData(s, pattern.Sounds)).ToArray(), Beats = pattern.AllBeats().Select(b => ToData(b, pattern.Sounds)).ToArray() }); }
public BeatsDrawer(Pattern pattern, IGridCoordinatesProvider grid) { this.pattern = pattern; this.grid = grid; this.patternPaint = new SKPaint { Color = SKColors.White, IsAntialias = true, Style = SKPaintStyle.StrokeAndFill }; this.patternSounds = pattern.Sounds; foreach (var beat in pattern.AllBeats()) { var coord = grid.Coordinates(beat.Sound.Instrument, beat.T); patternBeats.Add(new PointAndMark(coord, beat.Sound.Mark)); } }