diff --git a/src/AudioVisualizer.cc b/src/AudioVisualizer.cc
index 3e820031254f21bc6be024021a9b071199915020..8ab587011ca885103f6b8e31b8b778b726fc950c 100644
--- a/src/AudioVisualizer.cc
+++ b/src/AudioVisualizer.cc
@@ -1,5 +1,4 @@
 #include "AudioVisualizer.h"
-#include "Timer.h"
 
 #include <QLabel>
 #include <QScrollArea>
@@ -16,7 +15,7 @@ AudioVisualizer::AudioVisualizer(QWidget *parent) noexcept
 void
 AudioVisualizer::printSpectrum(QImage pixmap) noexcept
 {
-    Timer *timer        = new Timer(pixmap);
+    TimingView *timer        = new TimingView(pixmap);
     QVBoxLayout *layout = new QVBoxLayout;
 
     layout->addWidget(timer);
diff --git a/src/AudioVisualizer.h b/src/AudioVisualizer.h
index ef363395c163d4e8550f2f1e32b8f631fb590d68..a6f8b598ef0807b63309842f2435e2f342fd94e4 100644
--- a/src/AudioVisualizer.h
+++ b/src/AudioVisualizer.h
@@ -1,7 +1,7 @@
 #ifndef VIVY_AUDIOVISUALIZER_H
 #define VIVY_AUDIOVISUALIZER_H
 
-#include "Timer.h"
+#include "TimingView.hpp"
 #include <QWidget>
 
 class AudioVisualizer final : public QWidget {
diff --git a/src/TimingScene.cc b/src/TimingScene.cc
new file mode 100644
index 0000000000000000000000000000000000000000..f82d0a048592317a839d8a62f96630bf7d297aef
--- /dev/null
+++ b/src/TimingScene.cc
@@ -0,0 +1,25 @@
+#include "TimingScene.hpp"
+
+#include <QLabel>
+#include <QGraphicsLineItem>
+#include <QGraphicsView>
+#include <QGraphicsPixmapItem>
+#include <QScrollArea>
+#include <QVBoxLayout>
+#include <QScrollBar>
+#include <QMessageBox>
+#include <QMouseEvent>
+#include <QPainter>
+
+TimingScene::TimingScene(QWidget *parent) noexcept
+    : QGraphicsScene(parent)
+{
+}
+
+TimingScene::TimingScene(QImage img, QWidget *parent) noexcept
+    : QGraphicsScene(parent)
+    , img(img)
+{
+    QPixmap pixmap(QPixmap::fromImage(img));
+    backgroundImg = addPixmap(pixmap);
+}
diff --git a/src/TimingScene.hpp b/src/TimingScene.hpp
new file mode 100644
index 0000000000000000000000000000000000000000..d72dc097b4ab7cb6c26511ddc5e695835a654d7c
--- /dev/null
+++ b/src/TimingScene.hpp
@@ -0,0 +1,36 @@
+#ifndef VIVY_TIMING_SCENE_H
+#define VIVY_TIMING_SCENE_H
+
+#include "TimingBar.h"
+
+#include <QWidget>
+#include <QColor>
+#include <QVector>
+#include <QGraphicsView>
+#include <QGraphicsScene>
+
+class QGraphicsPixmapItem;
+
+class TimingScene final : public QGraphicsScene {
+    Q_OBJECT
+
+public:
+    static inline constexpr QColor startColour = QColor(127, 0, 127);
+    static inline constexpr QColor endColour   = QColor(0, 127, 0);
+
+    explicit TimingScene(QWidget *parent = nullptr) noexcept;
+    TimingScene(QImage img, QWidget *parent = nullptr) noexcept;
+    ~TimingScene() noexcept = default;
+
+private:
+    QGraphicsPixmapItem *backgroundImg = nullptr;
+    QImage img;
+    QVector<QLine> lines;
+
+public:
+    inline QGraphicsPixmapItem* bg() { return backgroundImg; };
+
+public slots:
+};
+
+#endif // VIVY_TIMING_SCENE_H
diff --git a/src/Timer.cc b/src/TimingView.cc
similarity index 68%
rename from src/Timer.cc
rename to src/TimingView.cc
index 0015b078952c2faf853a1f291acdbe5a1b9d0649..cfb1d3f5becc681c4745053550ac031b7b7eab3e 100644
--- a/src/Timer.cc
+++ b/src/TimingView.cc
@@ -1,4 +1,4 @@
-#include "Timer.h"
+#include "TimingView.hpp"
 
 #include <QLabel>
 #include <QGraphicsLineItem>
@@ -10,30 +10,30 @@
 #include <QMessageBox>
 #include <QMouseEvent>
 #include <QPainter>
+#include <QAbstractScrollArea>
 
 #define TO_ADD_TO_IMAGE_HEIGHT 2 /* Used for alignement */
 
-Timer::Timer(QImage img, QWidget *parent) noexcept
+TimingView::TimingView(QImage img, QWidget *parent) noexcept
     : QGraphicsView(parent)
-    , img(img)
 {
-    QPixmap pixmap(QPixmap::fromImage(img));
-    bg = scene->addPixmap(pixmap);
-    setFixedHeight(pixmap.height());
+    scene = new TimingScene(img);
+    setFixedHeight(img.height());
     setMaximumHeight(img.height() + horizontalScrollBar()->height() - TO_ADD_TO_IMAGE_HEIGHT);
+    setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
     setScene(scene);
 }
 
 void
-Timer::mousePressEvent(QMouseEvent *event) noexcept
+TimingView::mousePressEvent(QMouseEvent *event) noexcept
 {
     QPoint pos = event->pos();
     pos.rx() += horizontalScrollBar()->value();
     int x = event->pos().x() + horizontalScrollBar()->value();
 
     QGraphicsItem *got;
-    if ((got = scene->itemAt(pos, QTransform())) == nullptr || got == bg) {
-        scene->addItem(new TimingBar(QLine(x, 0, x, img.height() - TO_ADD_TO_IMAGE_HEIGHT),
+    if ((got = scene->itemAt(pos, QTransform())) == nullptr || got == scene->bg()) {
+        scene->addItem(new TimingBar(QLine(x, 0, x, scene->height()),
                                      event->button() == Qt::LeftButton ? startColour : endColour));
     }
 
diff --git a/src/Timer.h b/src/TimingView.hpp
similarity index 53%
rename from src/Timer.h
rename to src/TimingView.hpp
index 12aba57e8957307cf4bb8502e619251283342b5f..7c7971645aba2feddb746b0f18f461c113e759e1 100644
--- a/src/Timer.h
+++ b/src/TimingView.hpp
@@ -1,7 +1,8 @@
-#ifndef VIVY_TIMER_H
-#define VIVY_TIMER_H
+#ifndef VIVY_TIMING_VIEW_H
+#define VIVY_TIMING_VIEW_H
 
 #include "TimingBar.h"
+#include "TimingScene.hpp"
 
 #include <QWidget>
 #include <QColor>
@@ -10,25 +11,22 @@
 
 class QGraphicsPixmapItem;
 
-class Timer final : public QGraphicsView {
+class TimingView final : public QGraphicsView {
     Q_OBJECT
 
 public:
     static inline constexpr QColor startColour = QColor(127, 0, 127);
     static inline constexpr QColor endColour   = QColor(0, 127, 0);
 
-    Timer(QImage img, QWidget *parent = nullptr) noexcept;
-    ~Timer() noexcept = default;
+    TimingView(QImage img, QWidget *parent = nullptr) noexcept;
+    ~TimingView() noexcept = default;
 
 private:
-    QGraphicsPixmapItem *bg = nullptr;
-    QGraphicsScene *scene   = new QGraphicsScene;
-    QImage img;
-    QVector<QLine> lines;
+    TimingScene* scene;
 
     void mousePressEvent(QMouseEvent *event) noexcept;
 
 public slots:
 };
 
-#endif // VIVY_TIMER_H
+#endif // VIVY_TIMING_VIEW_H