diff --git a/Python/lib/waveform.py b/Python/lib/waveform.py
index 39597fa81fc4544a1e73db6c5d741a7d35376b3c..383a7e9fa30dfb548f5d53f065ece58836fc5e4c 100644
--- a/Python/lib/waveform.py
+++ b/Python/lib/waveform.py
@@ -34,6 +34,14 @@ class Waveform:
         self.sample_len_min = 2 * sample_rate / np.gcd(int(sample_rate), int(freq_res))
         assert (self.sample_len_min * freq_res / self.sample_rate) % 2 == 0, "frequency resolution requirement not met"
         assert self.sample_len_min % 512 == 0, "sample length not integer multiple of 512"
+
+    def copy(self, other):
+        self.omega = other.omega
+        self.amplitude = other.amplitude
+        self.phi = other.phi
+        self.sample_rate = other.sample_rate
+        self.freq_res = other.freq_res
+        self.sample_len_min = other.sample_lem_min
     
     def set_amplitudes(self, amps: np.ndarray) -> bool:
         if np.sum(amps) >= 2**15 - 1: