0% found this document useful (0 votes)
6 views

Python-03-b09702087

The document outlines the development of 'Moodplay', a mood-based music recommendation application designed to enhance user experiences by providing personalized playlists based on current mood, genre preferences, and activities. It details the structure of two primary databases for playlists and titles, the interactive features of the application, and the planned use of Python libraries for data handling and user interaction. The project aims to create a user-friendly interface that allows quick access to curated playlists, ultimately fostering a deeper emotional connection with music.

Uploaded by

hrkt6mr5v2
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

Python-03-b09702087

The document outlines the development of 'Moodplay', a mood-based music recommendation application designed to enhance user experiences by providing personalized playlists based on current mood, genre preferences, and activities. It details the structure of two primary databases for playlists and titles, the interactive features of the application, and the planned use of Python libraries for data handling and user interaction. The project aims to create a user-friendly interface that allows quick access to curated playlists, ultimately fostering a deeper emotional connection with music.

Uploaded by

hrkt6mr5v2
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Playlist Generator — “Moodplay”

- Every moment deserves its melody.

Wilson Yang 楊植鈞 Brown Shih 石博仁 Spencer Fang 方嘉澤


Civil Engineering Civil Engineering Physics
[email protected] [email protected] [email protected]

Vincent Huang 黃彥鈞 Clary Lee 李郁旻 Mauna 莫那德勞


DFLL Accounting Anthropology
[email protected] [email protected] [email protected]

Abstract — With the fast pace of life these days, mood changes These two datasets will be integrated into a relational database
can be felt throughout the day. Music for example can be used with the structure using a shared "mood tag" as a foreign key. This design
intent to change one’s mood, increase productivity, or just accompany enables streamlined recommendation logic and supports future
a task. Different tasks require an array of music to be played, which system expansion.
can be tiresome to sift through and select. The goal of this project is to
develop a simple mood-based song recommendation application for Both databases are initially constructed in CSV file format,
Python that takes into consideration the user’s preferred genre and with the following preliminary structure:
current mood. By utilizing this tool, users will be able to receive quick
suggestions that help elevate one’s mood toward an effortless B. Playlist Database
experience. Each song title serves as the primary keyword of the row,
paired with multiple corresponding attributes, including: artist
Keywords — mood-based, productivity booster, recommendation name, YouTube link, mood tag, genre, appropriate time of day,
and applicable activity scenario. The attribute columns are
designed with flexibility in mind, allowing for additions or
I. INTRODUCTION modifications throughout the development process to support
As-is: While there are numerous music streaming platforms more accurate recommendations and diverse use cases.
available on the market, most offer music recommendation
features that primarily rely on backend algorithms to
automatically suggest songs based on users’ listening history.
However, these recommendations are typically passive in nature
and lack interactive filtering mechanisms on the user side. As a
result, they often fail to provide context-aware suggestions that
truly reflect a user's current mood or activity. At present, few
platforms have implemented front-end driven, mood-based
personalized playlist modules.
To-be: Our project aims to develop an interactive, personalized
playlist recommendation system specifically designed for music C. Playlist Title Database
festival attendees. Built with Python, the application allows
This database uses the mood tag as the main categorization
users to input multiple attributes such as their music preferences,
for playlist titles. The initial design includes eight common
current mood, time of day, and ongoing activity. The system
listening moods (e.g., happy, sad, relaxed, excited) and four time
then generates contextually relevant song recommendations
through a multi-layered filtering process. This experience is segments (morning, noon, evening, night), forming a base of 8
designed to enhance the listener’s emotional state and × 4 = 32 preset playlist titles.
atmosphere in the moment, helping them mentally and
emotionally prepare for live performances, while deepening
personal resonance and connection with music. Building on this structure, the system dynamically appends the
user's current activity context (e.g., commuting, working out,
II. POSSIBLE FORMAT OF THE DATA WE USE IN THE PROJECT
reflecting, partying) to the base playlist title. Combined with the
A. Two primary Databases time of day, this generates highly personalized and context-
aware playlist names.
Our project centers around the creation of two primary
databases: the Playlist Database and the Playlist Title Database.
Identify applicable funding agency here. If none, delete this text box.
For example :If the user’s current mood is sad, the time is input and music playback, further enhancing user experience
night, and the activity is reflecting, the generated playlist title and overall interaction.
might be: “Melancholy Reflecting Night”
IV. EXPECTED RESULTS
Our visualized results are showcased below.
A. Step 1:
Description: Users input the activity they are currently
engaged in.

This naming logic not only enhances emotional resonance


for the user, but also strengthens the memorability and personal
connection of playlists across different contexts..
Fig. 1. User Interface from Suno as our project reference

B. Step 2:
III. PYTHON PACKAGES BEYOND THE COURSE
Description: Users can interact with the program by
In this project, based on our current development progress selecting various attribute tags based on their current mood,
and technical capacity, we have structured our work into three preferred music genre, or ongoing activity.
main phases: short-term, mid-term, and long-term goals. The
detailed breakdown of these goals is outlined in section (f). If
development proceeds smoothly and proves to be feasible, the
project may go beyond the original course scope by
incorporating a variety of Python libraries that support data
handling, user interaction, and music playback functionalities.
A. Csv module and QtWebEngineWidgets
Define To begin with,. We’ll use Python built-in csv module
to efficiently reads .csv files and manages datasets containing
fields such as mood, song title, and YouTube link, laying a
strong foundation for conditional filtering and recommendation
logic.
For basic music playback, we use QtWebEngineWidgets
module to create an embedded browser interface, and then use
HTML5 <video> or <audio> tags inside it to play video or
audio. — a simple yet effective solution for implementing basic
music recommendations.
B. Ttk.Combobox and Rendom module
To enhance interactivity, we used ttk.Combobox to create a
dropdown menu which allows users to select their choices from
a list of options in Python. Fig. 2. User Interface from Suno as our project reference

For a more advanced recommendation mechanism, we C. Step 3:


explore integrating the random module. It randomly selects
Description: The program will recommend songs that
songs that have already been filtered in our database, helping us
match the selected criteria from playlists curated by users.
save time as indecisive beings.
C. Graphic User Interface (GUI): tkinter / PySimpleGUI
Lastly, in terms of Graphical User Interface (GUI)
development, we plan to adopt tkinter or PySimpleGUI in future
stages. This will allow us to design a visual interface for mood
• YouTube Playlist Integration
Explore the integration of the YouTube API to
automatically generate online playlists based on user
selections.
B. Mid-Term Goals (advanced functionalities)
• Develop a Simple Web Version
Convert the system into a web-based interface, allowing
Fig. 3. User Interface from Suno as our project reference
non-technical users to interact with it effortlessly.
D. Step 4: • UI/UX Design Improvements
Description: With the development of our Python-based Enhance the interface design to improve user experience and
generator, users can create a playlist with a single click, as visual appeal.
shown in the illustration below. • Increase Practical Use Cases
Develop a personalized warm-up playlist feature tailored for
music festival attendees, increasing the system’s
applicability in real-world scenarios.
C. Long-Term Goals (Ideal Extended Development)
• Mobile App Development
Package the entire recommendation system into a mobile
application, turning it into a convenient and portable
"Mood-Based Music Assistant" for everyday use.

Our project flowchart is showcased below.

Fig. 4. Playlist Interface from Spotify as our project reference

V. PROJECT DEVELOPMENT PROGRESS


A. Short-Term Goals
• Establis hInitial Database
Create custom playlists and organize the first version of the
recommendation system based on various tags, including
mood, time of day (when the song is best suited to be
played), genre, and activity (e.g., workout, party, drinking,
etc.).
• Design an Interactive Menu
Develop an interactive menu interface that allows users to
quickly access curated playlists by selecting a mood option.
(At this stage, playlist names are fixed and pre-defined by
the developers.)
• Support for Custom Input and Auto-Naming
Allow users to input mood or situational keywords, with the
system automatically generating appropriate playlist names.
• Enhance Content and Randomness
Expand the playlist database to increase diversity in
recommendations, and introduce random elements to make
the experience more engaging.

You might also like