Rhythm by Sunil Shastry.

Rhythm is an open-source software written in Python 3 programming language. Rhythm is free to download and use for everyone. The main objective of the software is to accurately fetch the lyrics of any and every song available on the lyrics.ovh public API.

You will find helpful resources and step-by-step guide to install and run Rhythm efficiently on your computer device, on this website.

About the Author

Rhythm was designed and developed by Sunil Shastry. Sunil Shastry is a 19-year old software developer and a designer. Sunil is currently an undergraduate student at the University of Saskatchewan, Canada; majoring in Computer Science. He has always been fascinated about learning something new in terms of computer science and programming. During his first year at university, he developed the Rhythm application as a “side-project”, applying all the knowledge, experience and programming paradigms he learnt throughout his academic year.

Other Projects

Sunil Shastry has designed and developed several projects using modern programming languages and with best coding practices and software design implementation. Please visit Sunil’s personal website or his GitHub profile to view all his projects in much detail.

Contact & Hire

Please contact Sunil Shastry by mailing to sunil.shastry69@gmail.com for any queries. Sunil is a software developer and a designer, proficient in several programming languages and technologies including HTML, CSS, SASS, JavaScript, Python, C, C++, ReactJS, Git, Bootstrap, Figma and Adobe XD, with over three years of experience. Sunil is currently an undergraduate student at the University of Saskatchewan, Canada majoring in Computer Science. Please contact me for any contact or hiring purpose.

Installation and Setup

Rhythm is designed and built using Python 3, it is recommend for the user to have Python 3.5 or a higher version of Python installed on their computer device. This is a console based application and consequently it is assumed that the user is aware of running a Python program on their console. If you do not have Python 3.5 or a higher version installed, please follow the provided steps below.

Python Installation

Installing Python for Windows and Mac by Corey Schafer:

Command Line Navigation

Rhythm is a console based application and consequently it is assumed that the user is aware of running a Python program on their console. However, it is not mandatory to know it, if a person reading this is not aware of any basic command line interfaces (CLI), I have included a short reference below to get some idea on running the main.py Rhythm file (or any Python file in that regard). Open up your terminal or command prompt and try out these following CLI commands.

Please know that there are a lot more CLI commands than just the ones mentioned above, I have stated a few important ones for the scope of the project. For programmers, CLI is a very efficient tool and it is used quite often for several purposes. To learn more about CLI and CLI commands, please visit the following links

Required Packages for Rhythm

A Python library is a reusable chunk of code that you may want to include in your programs/ projects. Compared to languages like C or C++, Python libraries do not pertain to any specific context in Python. Here, a ‘library’ loosely describes a collection of core modules. The Python Standard Library is a collection of exact syntax, token, and semantics of Python. It comes bundled with core Python distribution.

Rhythm is built using the Python 3 programming language and uses the following libraries:

In order to have the Rhythm application running accurately, you must have the requests library installed, the rest can be omitted. However, the other packages can surely be nice to have, as they help Rhythm perform better in terms of the user experience.

Installing Modules

Installing a module/library in Python can be pretty simple and straight-forward. It is something even a novice can easily achieve without much confusion and complication. To install a package, open up your terminal or command prompt and type the following.

pip install (package-name)

pip is a package installer for Python. You can use pip to install packages from the Python Package Index and other indexes. pip is the PyPA recommended tool for installing Python packages. To install the required packages for our project, please type the following commands:

pip install requests
pip install termcolor
pip install colorama
pip install pyfiglet

You need to install the packages one at a time, it might take some time to download depending on your internet speed, once you have successfully downloaded all the required modules for the project, proceed ahead.

Installing Packages using pip by Corey Schafer:

How to use Rhythm?

Once you have downloaded and installed the project files and the required Python libraries, head over to your terminal or command prompt. Since Rhythm is primarily based on the console, one can use the application through their terminal or command prompt only. However, Rhythm provides an option for the user to download external text files if needed. To run the Rhythm project, navigate to the project directory using some CLI commands and run the following command.

python main.py

If you are using a Mac, the above command may or may not work since Mac comes with a Python 2 version pre-installed on it already. To tackle this issue, please try running the following command.

python3 main.py

On the terminal, by writing out python followed by the Python file name, the corresponding Python file is executed right in the terminal, unlike most softwares that involve a "click", "hover", "drag", Rhythm is used through the terminal. Such applications are generally known as console applications, and on the contrary, softwares that involve such "clicks", "hover" and "drag" options are known as GUI (Graphical User Interface) applications.

A full reference about running Python on the command line can be found here

On running the Rhythm application, you will be able you enter the song and artist name and the software will do its working in fetching the lyrics for, this process might take a while depending on your internet speed and the lyrics.ovh public API's access network. However, it is very unlikely for the application to take more than a minute. On receiving the response from the API, Rhythm informs you that your song lyrics have successfully been loaded. At this point, you are given two options, you can either view the lyrics on the terminal or you can download a text file containing the lyrics to your song. The application asks for an input where you are allowed to enter either "view" or "text", and on pressing the "text" option, you will have to provide Rhythm a name for the file and Rhythm will automatically create a "downloads" folder in the same directory and your text file can be present inside the "downloads" folder.

Facing Issues?

Rhythm requires you to download and install loads of packages and files, for a non-developer point of view, this can be very frustrating and error prone. The explanations provided in this documentation may or may not have the perfect description about running the software, and in places where you can easily go wrong, I have provided links to YouTube videos that help you visualize your tasks. However, if you are still having trouble downloading any file or package, or in case you find an error while running your Rhythm application, I would sincerely request you to e-mail me regarding the problem. I would truly appreciate it if you let me know what the problem is and when it occurred. I will try my best to provide a response to you at the earliest, and of course try and fix the problem that is at large with Rhythm.

For any issues and queries, please e-mail me at sunil.shastry69@gmail.com

References and Credits

While developing the Rhythm project, there have been a lot of external tools that are used and that have been extremely helpful in the process of developing the application. These include packages that have made my task easier. Below, there are all the references and credits that are worth mentioning for making my life easier.