Index: sample_scripts/audio_reader.py
===================================================================
--- sample_scripts/audio_reader.py	(revision 1e781baa9d163260df25c9e14575de1efe80daeb)
+++ sample_scripts/audio_reader.py	(revision 1e781baa9d163260df25c9e14575de1efe80daeb)
@@ -0,0 +1,19 @@
+import sys
+import os
+sys.path.insert(0, os.path.abspath('../'))
+
+from AmmosAudioReader import AmmosAudioReader
+
+if __name__ == '__main__':
+
+    if len(sys.argv) != 2:
+        sys.exit()
+
+    file_name = sys.argv[1]
+
+    print("File name:", file_name)
+
+    dat_file = AmmosAudioReader(file_name)
+
+    dat_file.read_all_frames_left()
+    print(dat_file.container)
Index: sample_scripts/audio_socket_reader_test.py
===================================================================
--- sample_scripts/audio_socket_reader_test.py	(revision 1e781baa9d163260df25c9e14575de1efe80daeb)
+++ sample_scripts/audio_socket_reader_test.py	(revision 1e781baa9d163260df25c9e14575de1efe80daeb)
@@ -0,0 +1,40 @@
+import sys
+import os
+sys.path.insert(0, os.path.abspath('../'))
+
+import socket
+
+import numpy as np
+import scipy.io.wavfile as wavfile
+
+from AmmosAudioSocketReader import AmmosAudioSocketReader
+
+
+if __name__ == '__main__':
+    frames = []
+
+    # create socket
+    in_socket = socket.socket()
+    in_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
+    in_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
+    in_socket.bind(('127.0.0.1', 12345))
+    print('Waiting for connection')
+    in_socket.listen(1)
+    conn, _ = in_socket.accept()
+    print('Connected')
+
+    # create AmmosAudioSocketReader
+    socket_reader = AmmosAudioSocketReader(conn)
+
+    print('Reading Frames')
+    while True:
+        try:
+            frames.append(socket_reader.read_next_frame())
+        except KeyboardInterrupt:
+            break
+
+    # write frames to wav file
+    print('Writing frames to Wav File')
+    audio = np.concatenate([frame[0] for frame in frames])
+    print(audio)
+    wavfile.write(f"test.wav", frames[0][1], audio)
Index: sample_scripts/audio_socket_reader_test_streamer.py
===================================================================
--- sample_scripts/audio_socket_reader_test_streamer.py	(revision 1e781baa9d163260df25c9e14575de1efe80daeb)
+++ sample_scripts/audio_socket_reader_test_streamer.py	(revision 1e781baa9d163260df25c9e14575de1efe80daeb)
@@ -0,0 +1,26 @@
+import sys
+import os
+sys.path.insert(0, os.path.abspath('../'))
+import socket
+
+try:
+    file_path = sys.argv[1]
+except IndexError:
+    print("Please provide a file path as argument")
+    sys.exit(1)
+except FileNotFoundError:
+    print("File not found")
+    sys.exit(1)
+
+file = open(file_path, 'rb')
+total_bytes = file.read()
+print('File read')
+
+print('Connecting to socket')
+out_socket = socket.socket()
+out_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
+out_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
+out_socket.connect(('127.0.0.1', 12345))
+print('Connected')
+print('Sending Bytes')
+out_socket.sendall(total_bytes)
Index: sample_scripts/iqdw_reader.py
===================================================================
--- sample_scripts/iqdw_reader.py	(revision 1e781baa9d163260df25c9e14575de1efe80daeb)
+++ sample_scripts/iqdw_reader.py	(revision 1e781baa9d163260df25c9e14575de1efe80daeb)
@@ -0,0 +1,19 @@
+import sys
+import os
+sys.path.insert(0, os.path.abspath('../'))
+
+from AmmosIFReader import AmmosIFReader
+
+if __name__ == '__main__':
+
+    if len(sys.argv) != 2:
+        sys.exit()
+
+    file_name = sys.argv[1]
+
+    print("File name:", file_name)
+
+    dat_file = AmmosIFReader(file_name)
+
+    dat_file.read_all_frames_left()
+    print(dat_file.container)
Index: sample_scripts/pdw_reader.py
===================================================================
--- sample_scripts/pdw_reader.py	(revision 1e781baa9d163260df25c9e14575de1efe80daeb)
+++ sample_scripts/pdw_reader.py	(revision 1e781baa9d163260df25c9e14575de1efe80daeb)
@@ -0,0 +1,27 @@
+import os
+import sys
+sys.path.insert(0, os.path.abspath('../'))
+
+from PDW import PDW
+
+if __name__ == '__main__':
+
+    if len(sys.argv) != 2:
+        print("Specify name of .ppdw file")
+        sys.exit()
+
+    file_name = sys.argv[1]
+
+    with open(file_name, 'rb') as f:
+
+        while(True):
+            current_bytes = f.read(32)
+            if current_bytes == '':
+                print("End of file detected")
+                break
+            if len(current_bytes) != 32:
+                print("Can not read all 32 bytes of next PDW")
+                break
+
+            current_pdw = PDW.from_bytes(current_bytes)
+            print(current_pdw)
