You are on page 1of 22

A PROJECT REPORT ON MUSIC PLAYLIST

A Course Project report Submitted in partial fulfillment of the Academic requirements for
the award of the degree of
BACHELOR OF TECHNOLOGY IN
CSE -COMPUTER SCIENCE ENGINEERING
Submitted by
NIVEDHITHA REDDY
Under the esteemed guidance of

LAXMAHIAH.A

DEPARTMENT OF COMPUTER SCIENCE ENGINEERING

SRI INDU COLLEGE OF ENGINEERING & TECHNOLOGY (Autonomous)


(Approved by AICTE, New Delhi & Permanently Affiliated to JNTU Hyderabad Sheriguda
(V), Ibrahimpatnam (M),R.R.Dist-501 510)
2023-2024
SRI INDU COLLEGE OF ENGINEERING & TECHNOLO GY
(An Autonomous Institute)
(Approved by AICTE, New Delhi & Permanently Affiliated to JNTU Hyderabad)
DEPARTMENT OF COMPUTER SCIENCE ENGINEERING

CERTIFICATE
This is to certify that the Project entitled “MUSIC PLAYLIST”is submitted in partial fulfillment
for the award of Degree of Bachelors of Technology in COMPUTER SCIENCE ENGNNERING
of Sri Indu College of Engineering And Technology, Hyderabad for the academic year 2023-2024.
This is a record of tone by the project work done by P.NIVEDHHITHA REDDY(22D41AO5H8)
which has been approved as it satisfies academic requirements in respect of the work prescribed for
II YEAR, I- SEMESTER of B. TECH course.

A .LAXMAHIAH
(Internal guide) (Head of the department)
ABSTRACT

MUSIC PLAYLIST

A music playlist is a personalized compilation of songs that individuals or platforms curate to create
a thematic or mood-specific collection of music. These playlists can range from carefully crafted
arrangements for specific occasions to spontaneous compilations that capture the essence of a
particular moment. In essence, a playlist is a dynamic and customizable selection of tracks, offering
a tailored listening experience.
Digital platforms and streaming services have played a pivotal role in the evolution of playlists. Users
can explore vast libraries of music and effortlessly create, share, and discover playlists that align with
their musical preferences. These platforms often leverage algorithms and user data to offer
personalized recommendations, enriching the playlist creation experience and introducing listeners
to new tracks and artists.
Beyond personal enjoyment, playlists serve as a form of self-expression. They allow individuals to
showcase their musical tastes, share their favorite tracks with others, or even tell a story through the
sequence of songs. Whether it's a nostalgic throwback playlist, a carefully curated road trip
soundtrack, or a collection of recent discoveries, playlists offer a medium for individuals to
communicate and connect through the universal language of music.
A music playlist is more than just a list of songs; it's a dynamic, expressive, and personal curation of
music that reflects the diverse tastes and emotions of its creator. As technology continues to advance,
playlists remain a central element in the ever-evolving landscape of how we discover, consume, and
share music in the digital age.
TABLE OF CONTENTS

SNO TOPIC PAGE NO


1. Introduction 5

2. Existing system 6

3. Proposed system 7-8

4. Hardware and Software requirements 9-10

5. Implementation 11-19

6. Results 20-28

7. Conclusion 29
INTRODUCTION

■ Overview
The "Music Playlist" project is designed to implement a flexible and efficient music playlist
management system using the C programming language and fundamental data structures. The
primary focus is on employing doubly linked lists to organize and navigate through the playlist
seamlessly.
■ Objectives
The key objectives of the project include:
- Implementing a robust data structure to represent a music playlist.
- Facilitating operations such as adding, removing, and displaying music tracks.
- Utilizing a doubly linked list to enable smooth traversal in both directions.
- Providing a foundation for future enhancements and additional features.
■ Features
The project leverages the advantages of doubly linked lists, allowing for efficient insertion, deletion,
and traversal operations within the playlist. Each node in the list encapsulates information about a
music track, contributing to a well-organized and dynamic playlist structure.
■ Scope
The scope of the project encompasses the core functionality of managing a music playlist
through the use of data structures in C. While the initial implementation focuses on the basics of
playlist management, the project sets the stage for potential expansions and enhancements in
subsequent phases.
■ Target Audience
The target audience for the Music Playlist project includes developers and enthusiasts interested in
understanding and implementing basic data structures in a practical scenario. This project provides a
hands-on experience in utilizing doubly linked lists for real-world applications.
EXISTING SYSTEM

■ . Overview of the Existing System


Introduction
The existing system for managing a music playlist using data structures in C is a fundamental
implementation based on linked lists. It employs singly linked lists to organize the playlist, where
each node represents a music track. The structure includes basic data elements such as title and artist.
Purpose
The purpose of the existing system is to demonstrate a simple yet functional approach to playlist
management using C and linked lists. It aims to provide a foundation for understanding basic data
structure concepts in the context of a real-world application.
Basic Playlist Operations
The existing system includes core functionalities:
- Adding a Song: Adds a new node to the end of the playlist.
- Displaying the Playlist: Prints the titles and artists of all songs in the playlist.
- Removing a Song: Deletes a specific node based on the title and artist.
■ . Limitations of the Existing System
Lack of Backward Traversal
Due to the use of singly linked lists, the existing system lacks efficient backward traversal. This
limitation may impact operations that involve navigating the playlist in reverse order.
Limited Metadata
The current system focuses on basic metadata such as title and artist. It does not accommodate
additional details about music tracks, potentially restricting its utility for more comprehensive
applications.
PROPOSED SYSTEM

The proposed "Enhanced Music Playlist" project seeks to develop an advanced music playlist
management system using the C programming language and an improved data structure – doubly
linked lists. This project aims to overcome limitations observed in the existing system by introducing
enhanced features, facilitating a more dynamic and efficient playlist management experience.
■ Objectives
The key objectives of the proposed project include:
- Implementing a doubly linked list structure for improved playlist traversal in both directions.
- Expanding metadata to include additional details about music tracks.
- Incorporating advanced functionalities such as sorting, searching, and shuffling.
- Enhancing user interaction through a user-friendly command-line interface.
■ Features
Doubly Linked List Structure
The project will transition from singly linked lists to doubly linked lists, providing efficient forward
and backward traversal capabilities within the playlist.
Expanded Metadata
Each node in the playlist will include an extended set of metadata fields, encompassing details JAM
Such as album, genre, release year, and duration.
Advanced Functionality
- Sorting: Implement algorithms for sorting the playlist based on various criteria (e.g., title, artist,
release year).
- Searching: Allow users to search for specific songs within the playlist based on different
Parameters.
- Shuffling: Provide an option to shuffle the order of songs in the playlist.
User-Friendly Interface
The project will incorporate a command-line interface with clear instructions and interactive features,
making it more accessible and user-friendly.
Scope
The scope of the proposed project extends beyond basic playlist management, aiming to create a
comprehensive and feature-rich system. The introduction of doubly linked lists and additional
metadata enhances the versatility and functionality of the music playlist system.
Target Audience
The target audience for the Enhanced Music Playlist project includes developers, students, and music
enthusiasts interested in exploring advanced data structures and functionalities in playlist
management.
Significance
The proposed project is significant as it not only builds upon the existing system's foundations but
also introduces enhancements that cater to a broader range of user needs. The project aims to provide
a more immersive and dynamic music playlist management experience.
■ . Future Enhancements
User Authentication
Implement user authentication to allow multiple users to maintain personalized playlists.
Integration with External APIs
Explore possibilities for integrating with external music databases or APIs to fetch additional
information about songs.
This project proposal outlines the plan for an Enhanced Music Playlist System, introducing advanced
features and improvements to provide a more comprehensive and user-friendly music playlist
management experience.
HARDWARE AND SOFTWARE REQUIREMENTS

1. Hardware Requirements
1.1 Minimum Requirements
- Processor: Intel Core i3 or equivalent
- RAM: 4 GB
- Storage: 20 GB free space
- Display:1280x800 resolution
1.2 Recommended Requirements
- Processor: Intel Core i5 or equivalent
- RAM:8 GB or higher
- Storage: SSD with 40 GB free space
- Display:1920x1080 resolution
2. Software Requirements
2.1 Development Environment
- Compiler: GCC (GNU Compiler Collection) or any C compiler supporting C99 standards.
- Integrated Development Environment (IDE): Code::Blocks, Visual Studio Code, or any preferred C
development environment.
2.2 Libraries
- Standard Template Library (STL):Required for dynamic memory allocation and advanced data
structures.
- C Standard Library: Essential for standard C functions.
2.3 Operating System
- Supported Platforms: Windows, Linux, macOS
- operating System Version: Windows 10 or later, Ubuntu 18.04 LTS or later, macOS Catalina or
later
2.4 Version Control
- Git:For version control and collaboration.
2.5 Documentation
- Doxygen: Optional for generating documentation from source code comments.
This documentation outlines the hardware and software requirements for the Music Playlist Project.
The provided specifications aim to ensure compatibility, performance, and ease of development across
various platforms.
IMPLEMENTATION

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct node{ char data[40];
struct node*next; struct node*prev;
};
char temp[40];
struct node*head=NULL;
struct node*current_node=NULL;
Void insert(){
printf("Enter Music Name:\n"); while((getchar())!='\n');
scanf("%[^\n]%*c",temp);
struct node* new_node=(struct node*)malloc(sizeof(struct node));
Strcpy(new_node->data,temp); if(head==NULL){
new_node->next=new_node->prev=new_node; head=current_node=new_node;
return;
}
struct node*last=head->prev; new_node->prev=last;
last->next=new_node; new_node->next=head; head->prev=new_node;
}
void Delete_element(){ if(head==NULL){
printf("No Music is there to delete!\n"); return;
}
printf("Enter Music Name to delete:\n"); while((getchar())!='\n');
scanf("%[^\n]%*c",temp);
printf("\n");
struct node*ptr=head;
do{
if(ptr->next==ptr && strcmp(ptr->data,temp)==0){ printf("One file deleted! Playlist is Empty
Now!\n"); head=NULL;
free(ptr); return;
}
else if(strcmp(ptr->data,temp)==0){ struct node*prev=ptr->prev; struct node*next=ptr->next;
prev->next=next; next->prev=prev; head=next; free(ptr);
printf("Music deleted!\n"); return;
}
ptr=ptr->next;
}while(ptr!=head);
printf("No Music file is there!\n");
}
void show(){ if(head==NULL){
printf("Playlist is Empty!\n"); return;
}
struct node*show_ptr=head; printf("\n");
int i=1;
printf("Displaying Playlist :\n"); do{
printf("Song %d : %s\n",i,show_ptr->data); i++;
show_ptr=show_ptr->next;
}while(show_ptr!=head);
}
void next_node(){ if(current_node==NULL){
printf("No songs in Playlist!\n");
}
else{
current_node=current_node->next;
printf("Playing Next Song : %s\n",current_node->data);
}}
void prev_node(){ if(current_node==NULL){
printf("No songs in Playlist!\n");}
else{
current_node=current_node->prev;
printf("Playing Previous Song : %s\n",current_node->data);
}
void first_node(){ if(head==NULL){
printf("Playlist is Empty!\n");
}
else{
printf("Playing First Music : %s\n",head->data);
}}
void last_node(){ if(head==NULL){
printf("Playlist is Empty!\n");
}
else{
printf("Playing Last Music : %s\n",head->prev->data);
}}
void specific_data(){ if(head==NULL){
printf("No music is there to be searched!\n"); return;
}
printf("Enter Music Name to delete:\n");
while((getchar())!='\n');
scanf("%[^\n]%*c",temp); printf("\n");
struct node*ptr=head; do{
if(strcmp(ptr->data,temp)==0){ printf("Music Found!\n"); printf("Playing Music : %s\n",ptr->data);
return;}
ptr=ptr->next;
}while(ptr!=head);
printf("There is no Music file with this name!\n");}
int main(){ int choice; menu:
printf("\n-----Song Playlist Application \n");
printf("1. Add Music\n"); printf("2. Remove Music\n");
printf("3. Show Playlist\n"); printf("4. Play next file\n"); printf("5. Play previous file,\n"); printf("6.
Play first file\n"); printf("7. Play Last file\n"); printf("8. Play specific file.\n"); printf("9. Exit\n\n");
scanf("%d",&choice);
if (choice == 1) insert();
else if (choice == 2) Delete_element();
else if (choice == 3) show();
Else if (choice == 4) next_node();
else if (choice == 5) prev_node();
else if (choice == 6) first_node();
else if (choice == 7) last_node();
else if (choice == 8) specific_data();else
exit(0);
goto menu; return 0;
}/*
RESULT
OUTPUT :

-----Song Playlist Application-----


1. Add Music
2. Remove Music
3. Show Playlist
4. Play next file
5. Play previous file,
6. Play first file
7. Play Last file
8. Play specific file.
9. Exit
Playlist is Empty!
-----Song Playlist Application-----
1. Add Music
2. Remove Music
3. Show Playlist
4. Play next file
5. Play previous file,
6. Play first file
7. Play Last file
8. Play specific file.
9. Exit
Enter Music Name:
hindi h
-----Song Playlist Application-----
1. Add Music
2. Remove Music
3. Show Playlist
4. Play next file
5. Play previous file,
6. Play first file
7. Play Last file
8. Play specific file.
9. Exit
Enter Music Name:
english e
-----Song Playlist Application-----
1. Add Music
2. Remove Music
3. Show Playlist
4. Play next file
5. Play previous file,
6. Play first file
7. Play Last file
8. Play specific file.
9. Exit
Enter Music Name: gujarati g
-----Song Playlist Application-----
1. Add Music
2. Remove Music
3. Show Playlist
4. Play next file
5. Play previous file,
6. Play first file
7. Play Last file
8. Play specific file.
9. Exit
Displaying Playlist :
Song 1 : hindi h Song 2 : english e Song 3 : gujarati g
-----Song Playlist Application-----
1. Add Music
2. Remove Music
3. Show Playlist
4. Play next file
5. Play previous file,
6. Play first file
7. Play Last file
8. Play specific file.
9. Exit
Playing Next Song : english e
-----Song Playlist Application-----
1. Add Music
2. Remove Music
3. Show Playlist
4. Play next file
5. Play previous file,
6. Play first file
7. Play Last file
8. Play specific file.
9. Exit
Playing Next Song : gujarati g
-----Song Playlist Application-----
1. Add Music
2. Remove Music
3. Show Playlist
4. Play next file
5. Play previous file,
6. Play first file
7. Play Last file
8. Play specific file.
9. Exit
Playing Previous Song : english e
-----Song Playlist Application-----
1. Add Music
2. Remove Music
3. Show Playlist
4. Play next file
5. Play previous file,
6. Play first file
7. Play Last file
8. Play specific file.
9. Exit
Playing First Music : hindi h
-----Song Playlist Application-----
1. Add Music
2. Remove Music
3. Show Playlist
4. Play next file
5. Play previous file,
6. Play first file
7. Play Last file
8. Play specific file.
9. Exit
Playing Last Music : gujarati g
-----Song Playlist Application-----
1. Add Music
2. Remove Music
3. Show Playlist
4. Play next file
5. Play previous file,
6. Play first file
7. Play Last file
8. Play specific file.
9. Exit
Enter Music Name to delete: english e
Music Found!
Playing Music : english e
-----Song Playlist Application-----
1. Add Music
2. Remove Music
3. Show Playlist
4. Play next file
5. Play previous file,
6. Play first file
7. Play Last file
8. Play specific file.
9. Exit
Enter Music Name to delete: hindi h
Music deleted!
-----Song Playlist Application-----
1. Add Music
2. Remove Music
3. Show Playlist
4. Play next file
5. Play previous file,
6. Play first file
7. Play Last file
8. Play specific file.
9. Exit
Displaying Playlist :
Song 1 : english e Song 2 : gujarati g
-----Song Playlist Application-----
1. Add Music
2. Remove Music
3. Show Playlist
4. Play next file
5. Play previous file,
6. Play first file
7. Play Last file
8. Play specific file.
9. Exit
CONCLUSION
In conclusion, the music playlist project has been a creative journey, showcasing diverse genres and
personal preferences. It reflects the power of music to evoke emotions and connect people through
shared experiences. As you continue to curate and expand the playlist, may it be a source of joy and
inspiration for all who listen.

You might also like