ECE434 Project - MIDI Sequencer

Team members: Gaven Williams, Brendan Perez

Grading Template
I'm using the following template to grade. Each slot is 10 points. 0 = Missing, 5=OK, 10=Wow!

 Add Extras

09 Executive Summary 09 Packaging 09 Installation Instructions 09 User Instructions 09 Highlights 09 Theory of Operation 09 Work Breakdown 09 Future Work/Conclusions 09 Hackster.io 09 Demo/Poster 00 Not Late

Score: 90/100

Executive Summary


Final hardware implementation of the MIDI Player

Our project is a MIDI/WAV music player. The user can browse through a selection of .mid and .wav files using pushbuttons and an LCD screen, or put the player in "shuffle" mode. While in MIDI mode, the user also has the option of selecting a soundfont, which will then be used in MIDI synthesis.

We have finished implementing all of these features. The final step is using systemd to automatically start the player on boot.

Source code: https://github.com/rhit-perezbe/MIDI-Player

Packaging


We constructed a small UI box that houses the pushbuttons and LCD screen.

The CAD files are located on our GitHub as well: https://github.com/rhit-perezbe/MIDI-Player

Installation Instructions
All installation instructions can also be found on our GitHub repo: https://github.com/rhit-perezbe/MIDI-Player

User Instructions
Once everything is installed, how do you use the program? Give details here, so if you have a long user manual, link to it here.

Consider making it autostart for full credit.

Highlights
Here is where you brag about what your project can do.

Include a YouTube demo the audio description.

Theory of Operation
Give a high level overview of the structure of your software. Are you using GStreamer? Show a diagram of the pipeline. Are you running multiple tasks? Show what they do and how they interact.

Work Breakdown
List the major tasks in your project and who did what.

Also list here what doesn't work yet and when you think it will be finished and who is finishing it.

Future Work
Suggest addition things that could be done with this project.

Timeline
Fri 27-Jan-2023: BeagleBone playing .wav files

Mon 30-Jan-2023: BeagleBone playing .mid files given a soundfont

Sun 5-Feb-2023: Can stop song playing (kills fluidsynth process)

Mon 6-Feb-2023: Breadboarding user hardware

Tues 7-Feb-2023: Software for user buttons

Fri 10-Feb-2023: Start software for LCD display

Mon 13-Feb-2023: Finalize software for LCD display

Fri 17-Feb-2023: Put together box for user hardware

Sun 19-Feb-2023: Finalize documentation (hackster.io, wiki page, etc)

Wed 22-Feb-2023: Final project DUE

Conclusions
Give some concluding thoughts about the project.

If we were to do this again, we could have expanded the UI box to also contain a PocketBeagle in order to fully contain our hardware and reduce the number of exposed wires.