diff --git a/pulse_lib/segments/segment_base.py b/pulse_lib/segments/segment_base.py
index 7a1e16ca387c9a94cece47ec55531089b63baf5a..e4e373f3e288f560b2a9ad8508660736b2943096 100644
--- a/pulse_lib/segments/segment_base.py
+++ b/pulse_lib/segments/segment_base.py
@@ -111,9 +111,26 @@ class segment_base():
 
         return new_segment
 
+    def __iadd__(self, other):
+        '''
+        define addition operator for segment_single
+        '''
+        if isinstance(other, segment_base):
+            self.data = self.data + other.data
+
+        elif type(other) == int or type(other) == float:
+            self.data += other
+        else:
+            raise TypeError("Please add up segment_single type or a number ")
+
+        return self
+
     def __sub__(self, other):
         return self.__add__(other*-1)
 
+    def __isub__(self, other):
+        return self.__iadd__(other*-1)
+
     def __mul__(self, other):
         '''
         muliplication operator for segment_single