diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..a02de4871986d8b203ae95ef11e243f6911284ef
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+sound_player/Musiques/*
diff --git a/launch_jarvis.sh b/launch_jarvis.sh
new file mode 100644
index 0000000000000000000000000000000000000000..e7e16a22578d1ae28d5dbae094d737969e435a11
--- /dev/null
+++ b/launch_jarvis.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+screen -S sound_player -d -m sudo sound_player/sound_player.py
+screen -S jarvis -d -m ./Jarvis.py
\ No newline at end of file
diff --git a/sound_player/player-client.py b/sound_player/player-client.py
new file mode 100755
index 0000000000000000000000000000000000000000..46e944f1163d516538e83e4996e41ea5c45782b2
--- /dev/null
+++ b/sound_player/player-client.py
@@ -0,0 +1,15 @@
+#!/usr/bin/python3
+import socket
+import sys
+client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+host = '127.0.0.1'
+port = 13
+client.connect((host, port))
+if len(sys.argv) == 2:
+    client.send(sys.argv[1].encode())
+elif len(sys.argv) == 1:
+    client.send(b"help")
+else:
+    print("ERROR: invalid number of argument 1 or 0 required")
+data = client.recv(1024)
+print(data.decode())
diff --git a/sound_player/player.py b/sound_player/player.py
new file mode 100755
index 0000000000000000000000000000000000000000..b2a828ad1e428dea0c6445341240bbd8769bd97f
--- /dev/null
+++ b/sound_player/player.py
@@ -0,0 +1,122 @@
+#!/usr/bin/python3
+import pygame
+from time import sleep
+import random
+import threading
+import socket
+
+pygame.init()
+pygame.mixer.init()
+
+with open("playlist.txt") as f:
+    playlist_text = [e.strip().replace("\n", "") for e in f.readlines()]
+
+started = False
+current_index = random.randint(0, len(playlist_text) - 1)
+current_sound = playlist_text[current_index]
+playing = False
+pygame.mixer.music.set_volume(0.5)
+
+def play():
+    global started, playing, current_sound, current_index
+    if not started or not pygame.mixer.music.get_busy():
+        try:
+            pygame.mixer.music.load(current_sound)
+            pygame.mixer.music.play()
+            started = True
+            playing = True
+            return ("playing : " + current_sound.split("/")[-1].replace(".mp3", "")).encode()
+        except Exception as e:
+            print(e)
+            return (f"ERROR: Can't play sound : {current_sound}").encode()
+    else:
+        pygame.mixer.music.unpause()
+        return ("playing : " + current_sound.split("/")[-1].replace(".mp3", "")).encode()
+
+def pause():
+    global playing
+    pygame.mixer.music.pause()
+    playing = False
+    return b"pausing music..."
+
+def get_volume():
+    return (f"volume : {pygame.mixer.music.get_volume()}").encode()
+
+def volume_up():
+    pygame.mixer.music.set_volume(pygame.mixer.music.get_volume()+0.10)
+    return (f"volume : {pygame.mixer.music.get_volume()}").encode()
+
+def volume_down():
+    pygame.mixer.music.set_volume(pygame.mixer.music.get_volume()-0.10)
+    return (f"volume : {pygame.mixer.music.get_volume()}").encode()
+
+def next_sound():
+    global current_index, current_sound
+    pygame.mixer.music.stop()
+    current_index = (current_index + 1) % len(playlist_text)
+    current_sound = playlist_text[current_index]
+    try:
+        pygame.mixer.music.load(current_sound)
+        pygame.mixer.music.play()
+        started = True
+        return ("playing : " + current_sound.split("/")[-1].replace(".mp3", "")).encode()
+    except Exception as e:
+        print(e)
+        return (f"ERROR: Can't play sound : {current_sound}").encode()
+
+def previous_sound():
+    global current_index, current_sound
+    pygame.mixer.music.stop()
+    current_index = (current_index - 1) % len(playlist_text)
+    current_sound = playlist_text[current_index]
+    try:
+        pygame.mixer.music.load(current_sound)
+        pygame.mixer.music.play()
+        started = True
+        return ("playing : " + current_sound.split("/")[-1].replace(".mp3", "")).encode()
+    except Exception as e:
+        print(e)
+        return (f"ERROR: Can't play sound : {current_sound}").encode()
+
+def get_sound():
+    return current_sound.split("/")[-1].replace(".mp3","").encode()
+
+def the_playlist_continue():
+    global playing
+    while True:
+        print("theplaylistcontinue_loop")
+        if playing and not pygame.mixer.music.get_busy():
+            print(next_sound())
+        sleep(5)
+
+server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+server.bind(('127.0.0.1', 13))
+server.listen(5)
+
+t = threading.Thread(target=the_playlist_continue)
+t.daemon = True
+t.start()
+while True:
+    connection, address = server.accept()
+    print('Got connection from', address)
+    data = connection.recv(1024).decode()
+    print(data)
+    if data == "play":
+        connection.send(play())
+    elif data == "pause":
+        connection.send(pause())
+    elif data == "get_volume":
+        connection.send(get_volume())
+    elif data == "volume_up":
+        connection.send(volume_up())
+    elif data == "volume_down":
+        connection.send(volume_down())
+    elif data == "next":
+        connection.send(next_sound())
+    elif data == "previous":
+        connection.send(previous_sound())
+    elif data == "get_sound":
+        connection.send(get_sound())
+    else :
+        connection.send(b"player-client [play|pause|get_volume|volume_up|volume_down|next|previous|get_sound]")
+    connection.close()  # close the connection
diff --git a/sound_player/playlist.txt b/sound_player/playlist.txt
new file mode 100644
index 0000000000000000000000000000000000000000..b954a1311a59a7cf65d4605cef57b6cb24de1910
--- /dev/null
+++ b/sound_player/playlist.txt
@@ -0,0 +1,21 @@
+/home/pi/sound_player/Musiques/GreatestHits/13 Love Is A Battlefield.mp3
+/home/pi/sound_player/Musiques/GreatestHits/06 You Better Run.mp3
+/home/pi/sound_player/Musiques/GreatestHits/07 Fire And Ice.mp3
+/home/pi/sound_player/Musiques/GreatestHits/11 Little To Late.mp3
+/home/pi/sound_player/Musiques/GreatestHits/19 All Fired Up.mp3
+/home/pi/sound_player/Musiques/GreatestHits/20 One Love.mp3
+/home/pi/sound_player/Musiques/GreatestHits/17 Sex As A Weapon.mp3
+/home/pi/sound_player/Musiques/GreatestHits/12 Looking For A Stranger.mp3
+/home/pi/sound_player/Musiques/GreatestHits/01 Heartbreaker.mp3
+/home/pi/sound_player/Musiques/GreatestHits/05 Treat Me Right.mp3
+/home/pi/sound_player/Musiques/GreatestHits/15 Ooh Ooh Song.mp3
+/home/pi/sound_player/Musiques/GreatestHits/14 We Belong.mp3
+/home/pi/sound_player/Musiques/GreatestHits/18 Le Bel Age.mp3
+/home/pi/sound_player/Musiques/GreatestHits/08 Promises In The Dark.mp3
+/home/pi/sound_player/Musiques/GreatestHits/10 Shadows Of The Night.mp3
+/home/pi/sound_player/Musiques/GreatestHits/16 Invincible.mp3
+/home/pi/sound_player/Musiques/GreatestHits/03 Hit Me With Your Best Shot.mp3
+/home/pi/sound_player/Musiques/GreatestHits/09 Precious Time.mp3
+/home/pi/sound_player/Musiques/GreatestHits/02 We Live For Love.mp3
+/home/pi/sound_player/Musiques/GreatestHits/04 Hell Is For Children.mp3
+/home/pi/sound_player/Musiques/Nightcall-Kavinski.mp3