diff --git a/include/interface.hpp b/include/interface.hpp
index 06a727c4c2c21ae2e5963befc2d6db327f52e661..93127e48af7f707d2d08fac29238e8d084102df8 100644
--- a/include/interface.hpp
+++ b/include/interface.hpp
@@ -94,6 +94,8 @@ private slots:
     //! \brief Bouton permettant de réintialiser la grille à zéro
     void on_pushButton_clicked();
 
+    void on_simSpeedSlider_sliderMoved(int position);
+
 private:
     //! \brief Initialiser la liste des transitions et voisinages disponibles
     void init_transition_neighborhood_list();
diff --git a/src/interface.cpp b/src/interface.cpp
index 227d83ecb3c1c803d1f25d0781352c5f5100f2e7..8a23437a158e04bcfd3947958971c2f8b4dd8a14 100644
--- a/src/interface.cpp
+++ b/src/interface.cpp
@@ -13,6 +13,7 @@
 #include "neighborhoodDialog.hpp"
 #include "colorlabel.h"
 
+#include <QtGlobal>
 #include <QJsonArray>
 #include <QDate>
 #include <QTextStream>
@@ -20,6 +21,15 @@
 #include <QTimer>
 #include <QElapsedTimer>
 
+#if QT_VERSION >= 0x050000 && QT_VERSION < 0x060000
+#define BAD_APPLE_AUDIO
+#endif
+
+#ifdef BAD_APPLE_AUDIO
+#include <QMediaPlayer>
+#endif
+
+
 MainWindow::MainWindow(QWidget *parent)
     : QMainWindow(parent)
     , ui(new Ui::MainWindow)
@@ -644,7 +654,11 @@ void MainWindow::play_bad_apple()
     static QJsonArray bad_apple_frame_list;
     static QTimer bad_apple_timer;
     static bool bad_apple_connected;
+#ifdef BAD_APPLE_AUDIO
+    static QMediaPlayer bad_apple_player;
+#else
     static QElapsedTimer bad_apple_elapsed;
+#endif
 
     QFile f("extras/bad_apple.json");
     if (!f.open(QFile::ReadOnly | QFile::Text))
@@ -665,8 +679,11 @@ void MainWindow::play_bad_apple()
     {
         bad_apple_timer.callOnTimeout([this]
         {
-
+#ifdef BAD_APPLE_AUDIO
+            unsigned frame_idx = bad_apple_player.position()/(1000.f/30);
+#else
             unsigned frame_idx = bad_apple_elapsed.elapsed()/(1000.f/30);
+#endif
             if ((int)frame_idx >= bad_apple_frame_list.size())
             {
                 bad_apple_timer.stop();
@@ -693,19 +710,17 @@ void MainWindow::play_bad_apple()
             ui->grid_view->copy_grid(grid);
         });
     }
-
-    //bad_apple_player.setMedia(QUrl::fromLocalFile("bad-apple.mp3"));
-    //bad_apple_player.play();
     ;
 
-#ifdef BAD_APPLE_WIN
-    PlaySound(TEXT("extras/bad-apple.wav"), GetModuleHandle(NULL), SND_FILENAME | SND_ASYNC);
-    Sleep(1300); // delay for the sound to load
+#ifdef BAD_APPLE_AUDIO
+
+    bad_apple_player.setMedia(QUrl::fromLocalFile("extras/bad-apple.wav"));
+    bad_apple_player.play();
 #else
-    QMessageBox::information(this, "", "Music functionnality is only available on Windows");
+    QMessageBox::information(this, "", "Music functionnality is only available with Qt 5");
+    bad_apple_elapsed.start();
 #endif
 
-    bad_apple_elapsed.start();
     bad_apple_timer.start(24);
     statusBar()->showMessage("Original : \"Bad Apple!!\" feat. Nomico by Alstroemeria Records", 60000);
 }
@@ -860,6 +875,5 @@ void MainWindow::on_simSpeedSlider_sliderMoved(int position)
         return;
 
     timer->setInterval(1000/frequence);
-    timer->start();
 }
 
diff --git a/src/src.pro b/src/src.pro
index ee5b0d1b1254146ac67c6baa7ac5c4d9d3b5e6b3..11a3a98667912f91bd8a76ea785638e420281bdb 100644
--- a/src/src.pro
+++ b/src/src.pro
@@ -1,6 +1,7 @@
 QT       += core gui
 
 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
+equals(QT_MAJOR_VERSION, 5): QT += multimedia
 
 CONFIG += c++14
 TEMPLATE = app
@@ -96,10 +97,6 @@ qnx: target.path = /tmp/$${TARGET}/bin
 else: unix:!android: target.path = /opt/$${TARGET}/bin
 !isEmpty(target.path): INSTALLS += target
 
-win32 {
-LIBS += -lwinmm
-}
-
 CONFIG(debug, debug|release) {
     DEBUG_OR_RELEASE = debug
 }  else {