/// <inheritdoc /> public override void CopyFrom(byte[] data) { if (data.Length != DumpLength) { throw new InvalidDumpSizeException(DumpLength, data.Length); } Threshold = ByteUtils.NumberFrom4MidiPackets(data.Take(4).ToArray()); Ratio = (Ratio)ByteUtils.NumberFrom4MidiPackets(data.Skip(4).Take(4).ToArray()); Attack = (Attack)ByteUtils.NumberFrom4MidiPackets(data.Skip(8).Take(4).ToArray()); Release = (Release)ByteUtils.NumberFrom4MidiPackets(data.Skip(12).Take(4).ToArray()); Level = ByteUtils.NumberFrom4MidiPackets(data.Skip(16).Take(4).ToArray()); Sidechain = ByteUtils.BooleanFrom4MidiPackets(data.Skip(20).Take(4).ToArray()); SidechainLevel = ByteUtils.NumberFrom4MidiPackets(data.Skip(24).Take(4).ToArray()); SidechainNote = (NotePitch)ByteUtils.NumberFrom4MidiPackets(data.Skip(28).Take(4).ToArray()); SidechainTime = ByteUtils.NumberFrom4MidiPackets(data.Skip(32).Take(4).ToArray()); SidechainRelease = ByteUtils.NumberFrom4MidiPackets(data.Skip(36).Take(4).ToArray()); SidechainSync = ByteUtils.BooleanFrom4MidiPackets(data.Skip(40).Take(4).ToArray()); }