Skip to content

akshit404-exe/SoundVibe

Repository files navigation

🎵 SoundVibe (C Music Management System)

SoundVibe is a terminal-based music management system built in C that allows users to manage songs, albums, playlists, and playback history using file handling and linked lists.


🚀 Features

🎶 Song Management

  • View all available songs
  • Search songs by name
  • View song details (artist, duration)
  • Play songs with simulated playback

📀 Album Management

  • Load albums from file system
  • Add songs to albums
  • Delete songs from albums
  • Display album song list
  • Play entire album

📂 Playlist Management

  • Create and manage playlists
  • Add songs to playlist
  • Add entire albums to playlist
  • Delete songs from playlist
  • Navigate songs (next / previous)
  • Play full playlist with optional loop mode

🕓 History Tracking

  • Logs all user actions with timestamps
  • View history
  • Clear history

🛠️ Tech Stack

  • Language: C

  • Core Concepts:

    • Linked Lists
    • File Handling
    • Dynamic Memory Allocation
    • Modular Programming

📂 Project Structure

SoundVibe/
│── main.c
│── Song.c / Song.h
│── Album.c / Album.h
│── Playlist.c / Playlist.h
│── Database.c / Database.h
│── Time.c / Time.h
│
│── MasterList.txt        # All songs database
│── List_of_Albums.txt    # Album names
│── History.txt           # User activity log
│── *.txt                 # Individual album files

⚙️ How It Works

  • Songs are loaded from MasterList.txt into memory
  • Each album is stored as a separate .txt file containing song IDs
  • Playlists and albums are implemented using linked lists
  • History is recorded with timestamps for every action

▶️ How to Run

1. Clone the repository

git clone https://github.com/akshit404-exe/SoundVibe.git
cd SoundVibe

2. Compile the project

gcc main.c Song.c Album.c Playlist.c Database.c Time.c -o soundvibe

3. Run the program

./soundvibe

📸 Sample Menu

==================MAIN MENU==================
1. Album
2. Playlist
3. Songs
4. Check your History
5. Clear History
6. Exit

💡 Key Highlights

  • Efficient use of linked lists for dynamic data handling
  • File-based storage system (no external database required)
  • Modular and scalable code structure
  • Playback simulation using time delays
  • Complete user interaction system via terminal

📈 Future Improvements

  • Add graphical user interface (GUI)
  • Integrate real audio playback
  • Add sorting and filtering options
  • Search by artist or genre
  • Favorites / liked songs feature

About

This is a skeleton of Music app written in C

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors