diff --git a/src/controllers/premium-song-controller.ts b/src/controllers/premium-song-controller.ts
new file mode 100644
index 0000000000000000000000000000000000000000..14189f7fe25b66f14b9b82b8ae7edf7f003c6c85
--- /dev/null
+++ b/src/controllers/premium-song-controller.ts
@@ -0,0 +1,72 @@
+import { NextFunction, Request, Response } from "express";
+import * as PremiumSongService from "../services/premium-song-services"
+import { generateResponse } from "../utils/response";
+import { StatusCodes } from "http-status-codes";
+
+const addNewSong = async (
+    req: Request,
+    res: Response,
+    next: NextFunction,
+): Promise<void> => {
+    try {
+        const data = req.body;
+        const premiumAlbumId = Number(req.params.premiumAlbumId);
+        const responseData = await PremiumSongService.addNewSong(data, premiumAlbumId);
+        generateResponse(res, StatusCodes.OK, responseData);
+    } catch (err) {
+        next(err);
+    }
+};
+
+const getAllSongFromAlbum = async (
+    req: Request,
+    res: Response,
+    next: NextFunction,
+): Promise<void> => {
+    try {
+        const premiumAlbumId = Number(req.params.premiumAlbumId);
+        const responseData = await PremiumSongService.getAllSongFromAlbum(premiumAlbumId);
+        generateResponse(res, StatusCodes.OK, responseData);
+    } catch (err) {
+        next(err);
+    }
+};
+
+const updatePremiumSong = async (
+    req: Request,
+    res: Response,
+    next: NextFunction,
+): Promise<void> => {
+    try {
+        const data = req.body;
+        const premiumAlbumId = Number(req.params.premiumAlbumId);
+        const premiumSongId = Number(req.params.premiumSongId);
+        const responseData = await PremiumSongService.updatePremiumSong(data, premiumAlbumId, premiumSongId);
+        generateResponse(res, StatusCodes.OK, responseData);
+    } catch (err) {
+        next(err);
+    }
+};
+
+const deletePremiumSong = async (
+    req: Request,
+    res: Response,
+    next: NextFunction,
+): Promise<void> => {
+    try {
+        const premiumAlbumId = Number(req.params.premiumAlbumId);
+        const premiumSongId = Number(req.params.premiumSongId);
+        const responseData = await PremiumSongService.deletePremiumSong(premiumAlbumId, premiumSongId);
+        generateResponse(res, StatusCodes.OK, responseData);
+    } catch (err) {
+        next(err);
+    }
+};
+
+
+export {
+    addNewSong,
+    getAllSongFromAlbum,
+    updatePremiumSong,
+    deletePremiumSong,
+};