Guitar notation software

Design team members: Alex John Magdanz

Supervisor: David Wang

Background

The process of writing music has changed significantly since the introduction of the personal computer. Combined with the development of the Musical Instrument Digital Interface (MIDI) industry-standard protocol in 1983, computers have made it possible to automatically create a musical score simply by playing a MIDI capable instrument. Unfortunately for guitarists, most guitars are not capable of producing MIDI output, or require expensive equipment to do so. In addition, guitarists use two forms of musical notation: standard musical notation and guitar tablature. The latter has the advantage of being able to document playing techniques used for specific notes such as hammer-ons, pull-offs, slides, or bends. An opportunity exists to develop a method by which guitarists can easily create written music by playing their instrument, without having to purchase expensive equipment to make their instrument MIDI capable. It is likely that the primary users of this product would be composers, music teachers, or band members.

Project description

The objective of the project is to create a software program that can receive music as input, and write that music using standard musical notation or guitar tablature. The project will focus in particular on notating music played on the guitar. However, the program will be able to receive the guitar input from various sources including microphones, the pick-ups of electric and acoustic-electric guitars, and previously recorded WAV files. Specifically, the program will be able to receive input from a guitar without using a MIDI device.

Once the music has been input, the program will be able to display and print the notated music in both standard musical notation and guitar tablature. The user will then be able to edit the written score, and switch between the two forms of notation at any time. In addition, the program will be able to recognize guitar playing techniques such as bends and slides and be able to correctly write these techniques into the music notation. Finally, the program will be able to export the recorded music to a MIDI file so that it can be output to a MIDI instrument.

Design methodology

The program will use the ABC musical notation form as the central hub where editing can occur and from which the notation can be converted into MIDI, standard notation, or tablature formats. ABC notation is an increasingly popular musical notation format, designed to improve the universality of notation files. Most major musical notation programs across all operating systems accept ABC format as input and/or output. Using ABC notation for this project will ensure that the music created is transferrable and editable in other major programs.

Programming of the graphical user interface will be done using Microsoft Visual Basic 2005. Sound input to the computer will be achieved by an Edirol UA-20 external sound card. The UA-20 is able to accept input from microphones, MIDI sources, and guitar amplifiers and provides good sampling frequency and resolution for the price. Finally, analysis and filtering of the audio signal will be done using Matlab. Significant engineering work will be involved in the analysis of the audio signal, as tone recognition becomes exceedingly complex as multiple voices are added.