I think this would be a nifty add in:
public Waveform Clone()
{
Waveform clone = this;
clone.Data = Data.Clone();
clone.BurstStartLocations = (int[])BurstStartLocations.Clone();
clone.BurstStopLocations = (int[])BurstStopLocations.Clone();
return clone;
}