You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.5 KiB
51 lines
1.5 KiB
# Project Title: MIDI Song Player
|
|
|
|
This project is a MIDI song player that allows users to request songs from a server and play them on their local machine. The project is written in Python and uses the `mido` library for MIDI file handling.
|
|
|
|
## Getting Started
|
|
|
|
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
|
|
|
|
### Prerequisites
|
|
|
|
The project requires Python 3 and the following Python packages:
|
|
|
|
- mido==1.3.2
|
|
- packaging==23.2
|
|
- python-rtmidi==1.5.8
|
|
|
|
You can install these packages using pip:
|
|
|
|
```python
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
### Project Structure
|
|
|
|
The project is divided into a client and a server. The server hosts a library of MIDI songs and handles requests from the client. The client allows users to request and play songs from the server.
|
|
|
|
#### Server
|
|
|
|
The server is implemented in the `server.py` file. It uses the `Library` class to manage the song library and the `Song` class to represent individual songs. The server listens for incoming connections and spawns a new thread to handle each client.
|
|
|
|
#### Client
|
|
|
|
The client is implemented in the `client.py` file. It uses the `MediaPlayer` class to play songs and the `Requestor` class to request songs from the server. The client provides a simple GUI for users to select and play songs.
|
|
|
|
## Running the Project
|
|
|
|
To run the project, start the server:
|
|
|
|
```python
|
|
python server/server.py
|
|
```
|
|
|
|
Then, in a separate terminal, start the client:
|
|
|
|
```python
|
|
python client/client.py
|
|
```
|
|
|
|
## Authors
|
|
|
|
- FosanzDev |