Guitar Tutor Report

From CSSEMediaWiki
Revision as of 01:39, 1 October 2008 by Jason Clutterbuck (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Contents

Introduction

The Domain

This project is being developed to model the process of jazz improvisation. The end goal is a program that will augment the learning process. It is hoped to achieve this by providing feedback on the notes selected while playing. The structure of music can be very complex. I have started by only dealing with a subset of this structure.

Jazz improvisation

Fig. 1. an example chart

Jazz musition normally improvise with the help of a chart fig. 1. the chart generally has a title an indication of how fast it is meant to be played. Sometime the vocal of main melody is recorded on the chart. When a band plays the chart the will play it once the way it is written to give respect to the composer after that the will play through a number of times to take turns improvising over the piece and then they will play the piece again as written to finish. There are general rules to follow that dictate what notes can be played at any particular time in the piece. These rules can get fairly complex and this has influenced the project. The main problem with applying the rules is that the key that the music is in for a particular section of any chart must be identified. the player will analyse the piece and find points where the key changes. This task can be difficult to do for a person and it turns out that it can in some cases there can be more than one answer. because of this difficulty implementing the process of note validation is a topic for future research.

The structure of music

Fig. 2. an example repeat

The structure of music that I have modelled in the domain model form the basic backbone that all notated music is hung on. Each chart has a time signature, this specifies how many notes each bar can hold, a tempo that indicates how fast to play, and a continuous line bars that form the basis of the piece. The line of bars can contain repeats. a repeat is a section of music that is played two or more times. like the section from A to B in fig. 2. The symbol as A is to indicate the start of the repeated section this can occur anywhere in the piece. It is followed by a corresponding end of repeat symbol as can be seen in the middle of the third line fig. 2. The horizontal lines above line three fig. 2. marked 1. and 2. are to indicate alternate endings. When the piece is played the second part is substituted on the second time through. There can be any number of alternate endings and each ending can be played for any number of times. They are labelled by number 1 and 2 as in the example or 1,2 play this part first and second 1..5 means play this on repeat one through five. The endings must be played in the order written and can not be in an arbitrary order. Repeats can not be nested. one repeat can run straight into the beginning of another.

Design Introduction

To model this domain I have split the program into four main parts. The metronome part drives the simulation supplying a beat to play along with. In the future it will also be used to drive a progress indicator in the GUI. The instrument part interfaces with the real instrument, or as in this test just reads from a file. The GUI component drives the domain model in other ways from the user input.

Personal tools