diff --git a/src/UI/DocumentViews/AudioVisualizer/TimingCursor.cc b/src/UI/DocumentViews/AudioVisualizer/TimingCursor.cc
index 28b5d4116b99b495e8a0c6f1f2342e609b15aa7c..d1c57ef6a06d8dcbd25d02c153e00dcb83182a46 100644
--- a/src/UI/DocumentViews/AudioVisualizer/TimingCursor.cc
+++ b/src/UI/DocumentViews/AudioVisualizer/TimingCursor.cc
@@ -10,6 +10,7 @@ using namespace Vivy;
 TimingCursor::TimingCursor()
     : QGraphicsItem()
 {
+    setZValue(Z_CURSOR_BAR);
     textRect = QRectF(0, 10, maxWidth,
                       TimingUtils::audioHeight() - 20); // TODO : remove 10/20 magic numbers
 }
diff --git a/src/UI/DocumentViews/AudioVisualizer/TimingLine.cc b/src/UI/DocumentViews/AudioVisualizer/TimingLine.cc
index 8beae2b6368ae21e95b6d69f960234715b185377..e64008b941d941456ad5cfd6915ba8995b8bf003 100644
--- a/src/UI/DocumentViews/AudioVisualizer/TimingLine.cc
+++ b/src/UI/DocumentViews/AudioVisualizer/TimingLine.cc
@@ -22,6 +22,8 @@ TimingLine::TimingLine(Ass::Line *lineptr, int index, QGraphicsItem *parent)
     int endSyl      = 0;
     int i;
 
+    setZValue(Z_LINE_BACKGROUND);
+
     TimingSeparator *timingSeparatorStart =
         new TimingSeparator(currentTime, 0, TimingSeparator::SeparatorStyle::Start, this);
     seps.append(timingSeparatorStart);
diff --git a/src/UI/DocumentViews/AudioVisualizer/TimingScene.cc b/src/UI/DocumentViews/AudioVisualizer/TimingScene.cc
index 4decbf3ba33050af3c721e19cf610612bb7176ec..3f16407dd0d38bc7db1c617478a7dbefc10e14e5 100644
--- a/src/UI/DocumentViews/AudioVisualizer/TimingScene.cc
+++ b/src/UI/DocumentViews/AudioVisualizer/TimingScene.cc
@@ -69,6 +69,7 @@ TimingScene::rebuildScene()
 
     QPixmap pixmap(QPixmap::fromImage(img));
     backgroundImg = addPixmap(pixmap);
+    backgroundImg->setZValue(Z_SPECTER);
     backgroundImg->setPos(0, TimingUtils::axisHeight());
 
     TimingUtils::setAudioHeight(pixmap.height());
@@ -77,6 +78,7 @@ TimingScene::rebuildScene()
 
     ax = new TimingAxis();
     addItem(ax);
+    ax->setZValue(Z_AXIS);
     ax->setPos(0, TimingUtils::axisHeight());
 
     // Freeze the scene boundaries
diff --git a/src/UI/DocumentViews/AudioVisualizer/TimingSeparator.cc b/src/UI/DocumentViews/AudioVisualizer/TimingSeparator.cc
index e4c40c94f9990c2b085f6d1fdec189ffd7aeb894..05ccb1bb11404e58cfd51fcd3891a5397f34a3fa 100644
--- a/src/UI/DocumentViews/AudioVisualizer/TimingSeparator.cc
+++ b/src/UI/DocumentViews/AudioVisualizer/TimingSeparator.cc
@@ -22,9 +22,18 @@ TimingSeparator::TimingSeparator(int time, int index, SeparatorStyle style_, Tim
     setCursor(Qt::PointingHandCursor);
 
     switch (style) {
-    case SeparatorStyle::Start: pen = QPen(QColor(0, 0, 255)); break;
-    case SeparatorStyle::Middle: pen = QPen(QColor(180, 0, 180)); break;
-    case SeparatorStyle::End: pen = QPen(QColor(255, 0, 0)); break;
+    case SeparatorStyle::Start:
+        pen = QPen(QColor(0, 0, 255));
+        setZValue(Z_SEPARATOR_START_END);
+        break;
+    case SeparatorStyle::Middle:
+        pen = QPen(QColor(180, 0, 180));
+        setZValue(Z_SEPARATOR_MIDDLE);
+        break;
+    case SeparatorStyle::End:
+        pen = QPen(QColor(255, 0, 0));
+        setZValue(Z_SEPARATOR_START_END);
+        break;
     }
     // Putting even-size width seems to be undefined behaviour for pixel drawing : stick to odd
     pen.setWidth(1);
diff --git a/src/UI/DocumentViews/AudioVisualizer/TimingSyl.cc b/src/UI/DocumentViews/AudioVisualizer/TimingSyl.cc
index 291804cb62835b2ae501941ce449a35566e86ba8..4be5e87eb61470457ddcef09fbe0a239e81595c6 100644
--- a/src/UI/DocumentViews/AudioVisualizer/TimingSyl.cc
+++ b/src/UI/DocumentViews/AudioVisualizer/TimingSyl.cc
@@ -12,6 +12,7 @@ TimingSyl::TimingSyl(Ass::Syl syl_, int startTime, QGraphicsItem *parent)
     : QGraphicsObject(parent)
     , syl(syl_)
 {
+    setZValue(Z_LINE_SYL_TEXT);
     setPos(TimingUtils::posFromMs(startTime), 0);
 }
 
diff --git a/src/UI/DocumentViews/AudioVisualizer/TimingUtils.hh b/src/UI/DocumentViews/AudioVisualizer/TimingUtils.hh
index 1ff08ceb357a314855d491022eaa7396720906e2..65a8d3bdb90601666cc259d58727b7556eed851f 100644
--- a/src/UI/DocumentViews/AudioVisualizer/TimingUtils.hh
+++ b/src/UI/DocumentViews/AudioVisualizer/TimingUtils.hh
@@ -9,6 +9,14 @@
 
 #define getTimingScene() static_cast<TimingScene *>(scene())
 
+#define Z_SPECTER             -1000
+#define Z_AXIS                10
+#define Z_LINE_BACKGROUND     -100
+#define Z_SEPARATOR_START_END 1000
+#define Z_SEPARATOR_MIDDLE    100
+#define Z_LINE_SYL_TEXT       50
+#define Z_CURSOR_BAR          500
+
 /*
  * FIXME
  * Relying on static may pose issues when multiple audioVisualiser