diff --git a/src/Lib/Ass/Line.cc b/src/Lib/Ass/Line.cc
index 51158b433d8da193e525fae37af1148300f62758..18d2a9830fe44fc0fdd674e8675359493de1e303 100644
--- a/src/Lib/Ass/Line.cc
+++ b/src/Lib/Ass/Line.cc
@@ -160,7 +160,7 @@ Line::getContentAsText() const noexcept
 }
 
 void
-Line::setContent(const QVector<Syl>& syls) noexcept
+Line::setContent(const QVector<Syl> &syls) noexcept
 {
     content = syls;
 }
diff --git a/src/Lib/Ass/Line.hh b/src/Lib/Ass/Line.hh
index 8b8036b2c4fc1e4ebd0333257d57e0088a0d78fd..3ec42714b4a691feccfea06e92cc833bff445b08 100644
--- a/src/Lib/Ass/Line.hh
+++ b/src/Lib/Ass/Line.hh
@@ -43,7 +43,7 @@ public:
     StyleProperties getStyleProperties() const noexcept;
     StyleWeakPtr getStyle() const noexcept;
     const QVector<Syl> &getContent() const noexcept;
-    void setContent(const QVector<Syl>&) noexcept;
+    void setContent(const QVector<Syl> &) noexcept;
 
     QVector<Syl> *getContentPtr() noexcept; // FIXME: remove me
 
diff --git a/src/UI/DocumentViews/AudioVisualizer/TimingLine.cc b/src/UI/DocumentViews/AudioVisualizer/TimingLine.cc
index 4092b07d525ba24ecfe1efdf88dbd7129977c754..29cd6c3067ff4fe9b9b279a129c489318878fcc2 100644
--- a/src/UI/DocumentViews/AudioVisualizer/TimingLine.cc
+++ b/src/UI/DocumentViews/AudioVisualizer/TimingLine.cc
@@ -7,6 +7,11 @@
 
 using namespace Vivy;
 
+#define CONNECT_SEP(sep)                                                                           \
+    connect(sep, &TimingSeparator::positionChanged, this, &TimingLine::timingSeparatorHasChanged); \
+    connect(sep, &TimingSeparator::enterPress, this, &TimingLine::sepEnterPress);                  \
+    connect(sep, &TimingSeparator::exitPress, this, &TimingLine::sepExitPress);
+
 TimingLine::TimingLine(Ass::Line *lineptr, QGraphicsItem *parent)
     : QGraphicsObject(parent)
     , line(*lineptr)
@@ -19,10 +24,7 @@ TimingLine::TimingLine(Ass::Line *lineptr, QGraphicsItem *parent)
     TimingSeparator *timingSeparatorStart =
         new TimingSeparator(currentTime, 0, TimingSeparator::SeparatorStyle::Start, this);
     seps.append(timingSeparatorStart);
-    connect(timingSeparatorStart, &TimingSeparator::positionChanged, this,
-            &TimingLine::timingSeparatorHasChanged);
-    connect(timingSeparatorStart, &TimingSeparator::enterPress, this, &TimingLine::sepEnterPress);
-    connect(timingSeparatorStart, &TimingSeparator::exitPress, this, &TimingLine::sepExitPress);
+    CONNECT_SEP(timingSeparatorStart);
 
     QVector<Ass::Syl> syls = line.getContent();
     for (i = 0; i < syls.size(); ++i) {
@@ -31,16 +33,11 @@ TimingLine::TimingLine(Ass::Line *lineptr, QGraphicsItem *parent)
         TimingSyl *timingSyl = new TimingSyl(syls.at(i), currentTime, this);
         timingSyls.append(timingSyl);
 
-        // TODO: Here create the TimingSeparator and connect
         if (i != 0) {
             TimingSeparator *timingSeparator =
                 new TimingSeparator(currentTime, i, TimingSeparator::SeparatorStyle::Middle, this);
             seps.append(timingSeparator);
-            connect(timingSeparator, &TimingSeparator::positionChanged, this,
-                    &TimingLine::timingSeparatorHasChanged);
-            connect(timingSeparator, &TimingSeparator::enterPress, this,
-                    &TimingLine::sepEnterPress);
-            connect(timingSeparator, &TimingSeparator::exitPress, this, &TimingLine::sepExitPress);
+            CONNECT_SEP(timingSeparator);
         }
 
         currentTime = endSyl;
@@ -49,11 +46,9 @@ TimingLine::TimingLine(Ass::Line *lineptr, QGraphicsItem *parent)
     TimingSeparator *timingSeparatorEnd =
         new TimingSeparator(currentTime, i, TimingSeparator::SeparatorStyle::End, this);
     seps.append(timingSeparatorEnd);
-    connect(timingSeparatorEnd, &TimingSeparator::positionChanged, this,
-            &TimingLine::timingSeparatorHasChanged);
-    connect(timingSeparatorEnd, &TimingSeparator::enterPress, this, &TimingLine::sepEnterPress);
-    connect(timingSeparatorEnd, &TimingSeparator::exitPress, this, &TimingLine::sepExitPress);
+    CONNECT_SEP(timingSeparatorEnd);
 }
+#undef CONNECT_SEP
 
 QRectF
 TimingLine::boundingRect() const
@@ -66,11 +61,10 @@ TimingLine::boundingRect() const
 void
 TimingLine::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
 {
-    painter->fillRect(
-        QRectF(tempOffset, 0,
-               TimingUtils::posFromMs(int(10 * (line.getEnd() - line.getStart()))),
-               TimingUtils::audioHeight()),
-        QColor(0, 255, 255, 50));
+    painter->fillRect(QRectF(tempOffset, 0,
+                             TimingUtils::posFromMs(int(10 * (line.getEnd() - line.getStart()))),
+                             TimingUtils::audioHeight()),
+                      QColor(0, 255, 255, 50));
 }
 
 void
@@ -111,10 +105,10 @@ TimingLine::sepExitPress(int sepIndex)
 qreal
 TimingLine::requestMove(int sepIndex, qreal x)
 {
-    QRectF sceneRect        = mapRectFromScene(scene()->sceneRect());
+    QRectF sceneRect       = mapRectFromScene(scene()->sceneRect());
     QVector<Ass::Syl> syls = line.getContent();
 
-    qreal ret = x;
+    qreal given = x;
     qreal mini, maxi;
 
     if (sepIndex <= 0) {
@@ -122,68 +116,53 @@ TimingLine::requestMove(int sepIndex, qreal x)
 
         mini = sceneRect.left();
         maxi = sepIndex < syls.size() - 1 ? timingSyls[sepIndex + 1]->pos().x()
-                                           : TimingUtils::posFromMs(int(line.getDuration()) * 10);
-
-        if (ret < mini)
-            ret = mini;
-        if (ret > maxi)
-            ret = maxi;
+                                          : TimingUtils::posFromMs(int(line.getDuration()) * 10);
 
-        tempOffset = ret;
+        given      = qBound(mini, given, maxi);
+        tempOffset = given;
 
-        quint64 dur1 = quint64(TimingUtils::msFromPos(int(seps[1]->pos().x() - ret)) / 10);
+        quint64 dur1 = quint64(TimingUtils::msFromPos(int(seps[1]->pos().x() - given)) / 10);
         syls[0].setDuration(dur1);
         timingSyls[0]->setLen(dur1);
-        timingSyls[0]->setPos(ret, 0);
-        line.setStart(
-            quint64(TimingUtils::msFromPos(mapToScene(seps[0]->pos().x(), 0).x()) / 10));
+        timingSyls[0]->setPos(given, 0);
+        line.setStart(quint64(TimingUtils::msFromPos(mapToScene(seps[0]->pos().x(), 0).x()) / 10));
     }
 
     else if (sepIndex >= syls.size()) {
         prepareGeometryChange();
 
-        mini = timingSyls[sepIndex - 1]->pos().x();
-        maxi = sceneRect.right();
-
-        if (ret < mini)
-            ret = mini;
-        if (ret > maxi)
-            ret = maxi;
+        mini  = timingSyls[sepIndex - 1]->pos().x();
+        maxi  = sceneRect.right();
+        given = qBound(mini, given, maxi);
 
         quint64 dur2 =
-            quint64(TimingUtils::msFromPos(int(ret - timingSyls[sepIndex - 1]->pos().x())) / 10);
+            quint64(TimingUtils::msFromPos(int(given - timingSyls[sepIndex - 1]->pos().x())) / 10);
         syls[sepIndex - 1].setDuration(dur2);
         timingSyls[sepIndex - 1]->setLen(dur2);
-        line.setEnd(line.getStart() + quint64(TimingUtils::msFromPos(int(ret)) / 10));
+        line.setEnd(line.getStart() + quint64(TimingUtils::msFromPos(int(given)) / 10));
     }
 
     else {
-        mini = timingSyls[sepIndex - 1]->pos().x();
-        maxi = sepIndex < syls.size() - 1 ? timingSyls[sepIndex + 1]->pos().x()
+        mini  = timingSyls[sepIndex - 1]->pos().x();
+        maxi  = sepIndex < syls.size() - 1 ? timingSyls[sepIndex + 1]->pos().x()
                                            : TimingUtils::posFromMs(int(line.getDuration() * 10));
-
-        if (ret < mini)
-            ret = mini;
-        if (ret > maxi)
-            ret = maxi;
+        given = qBound(mini, given, maxi);
 
         quint64 sumDur = syls[sepIndex].getDuration() + syls[sepIndex - 1].getDuration();
         quint64 dur1   = quint64(
-              TimingUtils::msFromPos(int(ret) - int(timingSyls[sepIndex - 1]->pos().x())) / 10);
-        if (dur1 > sumDur) {
-            dur1 = sumDur;
-        }
+              TimingUtils::msFromPos(int(given) - int(timingSyls[sepIndex - 1]->pos().x())) / 10);
+        dur1         = qMin(dur1, sumDur);
         quint64 dur2 = sumDur - dur1;
 
         syls[sepIndex - 1].setDuration(dur1);
         syls[sepIndex].setDuration(dur2);
 
         timingSyls[sepIndex - 1]->setLen(dur1);
-        timingSyls[sepIndex]->setPos(ret, 0);
+        timingSyls[sepIndex]->setPos(given, 0);
         timingSyls[sepIndex]->setLen(dur2);
     }
 
     line.setContent(syls);
 
-    return ret;
+    return given;
 }
diff --git a/src/UI/DocumentViews/AudioVisualizer/TimingSeparator.cc b/src/UI/DocumentViews/AudioVisualizer/TimingSeparator.cc
index 5c3e7ab4d4ffbc9f8346d15703df919380fddb33..e4c40c94f9990c2b085f6d1fdec189ffd7aeb894 100644
--- a/src/UI/DocumentViews/AudioVisualizer/TimingSeparator.cc
+++ b/src/UI/DocumentViews/AudioVisualizer/TimingSeparator.cc
@@ -15,7 +15,6 @@ TimingSeparator::TimingSeparator(int time, int index, SeparatorStyle style_, Tim
     , sepIndex(index)
     , parentTimingLine(parent)
 {
-    qDebug() << time;
     setPos(TimingUtils::posFromMs(time), 0);
 
     setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemSendsGeometryChanges);