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.
- View all available songs
- Search songs by name
- View song details (artist, duration)
- Play songs with simulated playback
- Load albums from file system
- Add songs to albums
- Delete songs from albums
- Display album song list
- Play entire album
- 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
- Logs all user actions with timestamps
- View history
- Clear history
-
Language: C
-
Core Concepts:
- Linked Lists
- File Handling
- Dynamic Memory Allocation
- Modular Programming
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
- Songs are loaded from
MasterList.txtinto memory - Each album is stored as a separate
.txtfile containing song IDs - Playlists and albums are implemented using linked lists
- History is recorded with timestamps for every action
git clone https://github.com/akshit404-exe/SoundVibe.git
cd SoundVibegcc main.c Song.c Album.c Playlist.c Database.c Time.c -o soundvibe./soundvibe==================MAIN MENU==================
1. Album
2. Playlist
3. Songs
4. Check your History
5. Clear History
6. Exit
- 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
- Add graphical user interface (GUI)
- Integrate real audio playback
- Add sorting and filtering options
- Search by artist or genre
- Favorites / liked songs feature