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