diff --git a/src/music.c b/src/music.c
index 5711d38..f9c88e9 100644
--- a/src/music.c
+++ b/src/music.c
@@ -199,6 +199,34 @@ void music_stop(void) {
     WARN("SDL_Mixer: %s", Mix_GetError());
 }
 
+/**
+ * @brief Pauses the music.
+ */
+void music_pause(void) {
+  if(music_music == NULL) return;
+
+  Mix_PauseMusic();
+}
+
+/**
+ * @brief Resumes the music.
+ */
+void music_resume(void) {
+  if(music_music == NULL) return;
+
+  Mix_ResumeMusic();
+}
+
+/**
+ * @brief Sets the music to a position in seconds.
+ *    @param sec Position to go to in seconds.
+ */
+void music_setPos(double sec) {
+  if(music_music == NULL) return;
+
+  Mix_FadeInMusicPos(music_music, 1, 1000, sec);
+}
+
 /* Music lua stuff. */
 
 /**
diff --git a/src/music.h b/src/music.h
index b932e69..6c15edb 100644
--- a/src/music.h
+++ b/src/music.h
@@ -16,6 +16,9 @@ int music_volume(const double vol);
 void music_load(const char* name);
 void music_play(void);
 void music_stop(void);
+void music_pause(void);
+void music_resume(void);
+void music_setPos(double sec);
 
 /* Lua control. */
 int lua_loadMusic(lua_State* L, int read_only);