diff --git a/src/UI/DocumentViews/TimingAxis.cc b/src/UI/DocumentViews/TimingAxis.cc
index 2d7f6c7370b72c71724a9b8cb003f2c728e5f5a5..8abf1d709ba1d881534ca9698a24d19460f7b1ad 100644
--- a/src/UI/DocumentViews/TimingAxis.cc
+++ b/src/UI/DocumentViews/TimingAxis.cc
@@ -14,7 +14,7 @@ using namespace Vivy;
 
 TimingAxis::TimingAxis(qreal soundLength_, int x0_, int x1_, int y_) noexcept
     : QGraphicsItem()
-    , soundLength(soundLength_)
+    , audioLength(soundLength_)
     , x0(x0_)
     , x1(x1_)
     , y(y_)
@@ -27,39 +27,48 @@ TimingAxis::boundingRect() const
     return QRectF(x0, y - penWidth, x1, y + penWidth);
 }
 
+/*
+ * Refresh the minor/major ticks value
+ * For intended results, this function should only be called when scene() returns a valid QGraphicsScene (so not in the constructors)
+ */
 void
-TimingAxis::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
+TimingAxis::refreshTicks()
 {
-    painter->drawLine(x0, y, x1, y);
-
-    if (soundLength == 0)
-        return;
-
-    qDebug() << "Audio length is " << soundLength;
-    int minorTicksIndex = 0;
-    // Find what is our ticks
-    QGraphicsScene *currScene = scene();
-    if (currScene != nullptr) {
-        for (minorTicksIndex = 0; minorTicksIndex < availableTicks.size(); minorTicksIndex++) {
-            qDebug() << "Calculated is "
-                     << currScene->width() / (qreal(soundLength) * availableTicks[minorTicksIndex]);
-
-            if (currScene->width() / (qreal(soundLength) * availableTicks[minorTicksIndex]) <
+    int nbAvailableTicks        = availableTicks.size();
+    int minorTicksIndex         = 0;
+    QGraphicsScene *parentScene = scene();
+    if (parentScene != nullptr) {
+        for (minorTicksIndex = 0; minorTicksIndex < nbAvailableTicks; minorTicksIndex++) {
+            if (parentScene->width() / (audioLength * availableTicks[minorTicksIndex]) <
                 minBetweenMinor) {
                 minorTicksIndex = minorTicksIndex == 0 ? 0 : minorTicksIndex - 1;
                 break;
             }
         }
     }
-    qreal minorTicks = availableTicks[minorTicksIndex];
-    qreal majorTicks = availableTicks[minorTicksIndex + 1];
 
-    qDebug() << "Minor ticks : " << minorTicks;
-    qDebug() << "Major ticks : " << majorTicks;
+    if (minorTicksIndex < nbAvailableTicks - 1) {
+        minorTicks = availableTicks[minorTicksIndex];
+        majorTicks = availableTicks[minorTicksIndex + 1];
+    } else {
+        minorTicks = -1;
+        majorTicks = availableTicks[minorTicksIndex];
+    }
+}
+
+void
+TimingAxis::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
+{
+    if (audioLength == 0)
+        return;
+
+    painter->drawLine(x0, y, x1, y);
 
-    for (qreal i = majorTicks; i < x1 - x0; i += majorTicks)
+    for (qreal i = majorTicks; i < x1 - x0; i += majorTicks) {
         painter->drawLine(int(x0 + i), y - 5, int(x0 + i), y + 5);
-    for (qreal i = minorTicks; i < x1 - x0; i += minorTicks)
-        if (fmod(i, majorTicks))
-            painter->drawLine(int(x0 + i), y - 2, int(x0 + i), y + 2);
+    }
+    if (minorTicks >= 0)
+        for (qreal i = minorTicks; i < x1 - x0; i += minorTicks)
+            if (fmod(i, majorTicks) != 0)
+                painter->drawLine(int(x0 + i), y - 2, int(x0 + i), y + 2);
 }
diff --git a/src/UI/DocumentViews/TimingAxis.hh b/src/UI/DocumentViews/TimingAxis.hh
index 70bebf92d2ee6d7a5b4bb4e5ea2fed9c051b095d..fff80a97c65b73d454de7746c8e675808b7476af 100644
--- a/src/UI/DocumentViews/TimingAxis.hh
+++ b/src/UI/DocumentViews/TimingAxis.hh
@@ -7,13 +7,14 @@
 
 #include <QGraphicsWidget>
 #include <QPainter>
+#include <QGraphicsScene>
 #include <cmath>
 
 namespace Vivy
 {
 class TimingAxis final : public QGraphicsItem {
 public:
-    explicit TimingAxis(qreal soundLength, int x0, int x1, int y) noexcept;
+    explicit TimingAxis(qreal audioLength, int x0, int x1, int y) noexcept;
     ~TimingAxis() noexcept override = default;
 
     QRectF boundingRect() const override;
@@ -24,14 +25,18 @@ private:
 
     QVector<qreal> availableTicks = { 0.01, 0.1, 1, 10, 60, 3600, 86400 };
     qreal minBetweenMinor{ 5 };
+    qreal minorTicks;
+    qreal majorTicks;
 
     qreal penWidth{ 1 };
-    qreal soundLength{ 0 };
+    qreal audioLength{ 0 };
     int x0{ 0 };
     int x1{ 0 };
     int y{ 0 };
 
 protected:
+public slots:
+    void refreshTicks();
 };
 
 }
diff --git a/src/UI/DocumentViews/TimingScene.cc b/src/UI/DocumentViews/TimingScene.cc
index 92fcf7a93e3a0411fdfd530c5c75a170aa7f62d3..b81e90c483b4c30fedc8a25667766fe1f6274246 100644
--- a/src/UI/DocumentViews/TimingScene.cc
+++ b/src/UI/DocumentViews/TimingScene.cc
@@ -29,6 +29,7 @@ TimingScene::TimingScene(QImage img_, qreal soundLength_, QWidget *parent) noexc
     backgroundImg  = addPixmap(pixmap);
     TimingAxis *ax = new TimingAxis(soundLength, 0, pixmap.width(), 10);
     addItem(ax);
+    ax->refreshTicks();
 }
 
 void