High level design

 

Many musicians don’t have access to simple and affordable supplementary tools that would increase their productivity.  A system that can write and save the music they generate as they experiment with their musical instrument would be invaluable.  For example, as a music arranger for an Acapella group, Meg would need to experiment on the keyboard until she finds the sound desired, and then write the notes, a tedious and time consuming process.  Our system would allow the music arranger to experiment without the hassle of worrying about manually inputting notes to a program.  Furthermore, the sheet music generated can be widely distributed over the web and well organized in databases. 

 

To implement the sheet music generator we must receive the midi signals outputted by the instrument using the UART.  We then process the midi signals.  This includes determining what note was sent and the duration of the note.  The notes can then be painted on the screen.  Since the screen only fits three staffs, we allow automatic scrolling once the third staff is full.  Our system allows the user to start a new piece of sheet music, allowing him/her to in effect delete unwanted work, and export the sheet music to the PC.  If the user creates a new piece of sheet music, we reinitialize the drawing variables and TV screen and enable the UART to receive midi signals.  If the user selects to interact with the PC, we enable the UART to communicate with the PC and start the GUI that allows the user to perform tasks such as storing the sheet music and print it.  Figure 2 shows a pictorial view of the system implementation.

 

Figure 2: High level view of system implementation