Passion Project: MSU

MSU: Music Simply Undefined

 

Download the program here.

My passion project for 2023 was a music program, and this music program of mine allows you to create easy and crisp sounding music. The program offers you a variety of notes for you to choose from in creating music, alongside having three octaves to work with. In addition, there is a composition display that allows you to see a visual representation of the music being played. Users can also save and open compositions, which makes sharing music readily accessible.

WHY:

I started this program with the hope of increasing my knowledge of coding, and to perhaps gain a better understanding of music in general. My goal with this program was to offer users a unique way of creating music and to make it accessible to everyone of all ages. Before this project, I had very little knowledge of coding, but now I can understand and write a variety of code using python thanks to this project.

Some individuals possess grand, and ambitious ideas, but are limited by the capabilities of a program. This gave me another goal for this program: to offer as many features and tools as possible to supply the user’s imagination without limitations as they create music. With this, the user won’t have to worry about having to find another route to construct their ideas, as the program will have everything they need. The progress for this goal is present in the program through the variety of notes usable, and the octaves of which the user can switch through to change the pitches.

CHECK-INS:

These check-ins act as a benchmark as for how much progress I made on the project each check-in.

Check-In #1:

On the first check-in, I had already started working on MSU, and at the check-in I had a few headers menus and a welcome pop up question to greet the user.

Check-In #2:

At the second check-in, the option to save files was added, alongside having a note menu that when clicked, adds a note to the track. In addition, the option to show or hide the note menu was added.

Check-In #3:

By check-in #3, MSU was now functional and allowed the user to create a composition from the two notes in the note menu. There was also a play button added that allowed the user to listen to the composition.

Check-In #4:

At check-in #4, I finished adding in all the notes that I wanted to add for the program. I also added the option to delete notes, as well as an option to increase or decrease the octave of the notes.

Check-In #5:

At the final check-in, the program was practically finished. I added a “visual display” to the program that allowed users to see a visual representation of what was playing.

PROCESS (STORY):

The programming language I decided to code this program with was Python. Within python I also used python TKinter, which is a module that allows me to create software programs with python. I chose python as my choice of programming language because I found python to be good for creating software programs. Python is also easy to learn, so I had little difficulty in learning the basics and implementing features for my program.

I started this project sometime around March, when I was still deciding on what exactly my passion project should be. I decided to go through with the music program since the other option of mine, a flashcard app, seemed a little too difficult for my skill level at the time. There didn’t seem to be any tutorials online regarding creating music programs, so there were times where I found myself lost trying to figure out where to go from one place to another. Eventually, I learned enough that I could create this program and sufficiently program the features I wanted to add.

FINAL PRODUCT:

REFLECTION:

Overall, I had a wonderful journey with this project and there are very little things that I would change if I could go back in time. One example is that I would choose another method instead of using mp3 files as sounds for the program, as playing mp3 files can use up a lot of power and my program was experiencing slow loading at times. Another thing is that I would change the way notes are produced in the program, where instead of clicking on the notes, you would be able to drag the notes to the note track. Other than those few things, I am content with how my project turned out at the end.

For the future of this project, I wish to add many more features to optimize the program to its fullest potential. One such feature is implementing an export feature to allow the user to export the music into an mp3 file. Other file types can be considered, though mp3s are the most popular sound file type. Another feature I wish to add in the future is to increase or decrease the duration of a note in the note track. The default duration is 500 milliseconds, which limits the user on how many songs they can create.

 

 

 

Skip to toolbar