# 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