Beruflich Dokumente
Kultur Dokumente
Bachelor thesis
Petra Kalinov
v
vi
Abstract
The purpose of this work is to design and implement an application used by beginner
pianists to play songs using an electronic keyboard connected to the computer via a Musical
Instrument Digital Interface (MIDI). The program can serve as an educational tool as well
as a means of entertainment for people who have already mastered playing the piano, due
to its style diering from standard musical notation by the way it symbolizes the tones
which are being played. An educational element is represented by the set of editable lessons
containing individual instructions and references to particular songs in Standard MIDI File
Format. Each session may focus on a specic piano playing problem and while the song is
practised an evaluation is provided.
Abstrakt
Zmrem tto prce je navrhnout a implementovat aplikaci umoujc zanajcm pi-
anistm hrt skladby na elektronick klvesy pipojen k potai pomoc rozhran MIDI.
Tento program me slouit nejen jako vukov pomcka, ale tak jako zdroj zbavy pro
uivatele, ktei u zkladn techniku hry na klavr ovldaj, protoe zpsob, jakm je
skladba zapsna se li od bn pouvan hudebn notace tm, jak jsou symbolizovny
jednotliv noty, kter se maj hrt. Vukov element je reprezentovn formou editovatel-
nch lekc, kter obsahuj konkrtn pokyny a odkazy na skladby uloen v MIDI souboru.
Kad lekce se tak me zamit na specick problm. Hodnocen hre probh jen-
dotliv po kad pehran skladb a slou jako rozhodovac faktor pro jeho postup na
dal obtnostn rove.
vii
viii
Contents
List of Figures xi
1 Introduction 1
1.1 Traditional music education . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Specication of the goal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
5 System architecture 17
5.1 Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.1.1 MIDI module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.1.2 System module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.2 Management of input and output . . . . . . . . . . . . . . . . . . . . . . . . 18
5.2.1 Screen management . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5.2.2 Data management . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.2.3 Graphics management . . . . . . . . . . . . . . . . . . . . . . . . . . 20
6 Implementation 21
6.1 Software development tools and libraries . . . . . . . . . . . . . . . . . . . . 21
6.1.1 Programming language . . . . . . . . . . . . . . . . . . . . . . . . . . 21
6.1.2 Graphics framework . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
6.1.3 Integrated Development Environment . . . . . . . . . . . . . . . . . 22
6.1.4 MIDI Application Programming Interface . . . . . . . . . . . . . . . 22
6.2 Implementation highlights . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
ix
6.2.1 Application graphics . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.2.2 PianoRoll library overview . . . . . . . . . . . . . . . . . . . . . . . . 24
6.2.3 XML object loader . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.2.4 Input from keyboard . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.2.5 External tools for lesson authoring . . . . . . . . . . . . . . . . . . . 25
7 Testing 27
7.1 Test setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
7.2 Testing process and results . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
8 Conclusion 29
8.1 Future work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
9 Bibliography 31
A List of acronyms 33
B UML diagrams 35
C Application screenshots 39
D Usability testing questionnaire 41
E User manual 43
F CD Content 45
x
List of Figures
2.1 Original piano roll, source [16] . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Piano roll in MIDI software . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.3 Example of Klavar notation . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.4 Yamaha's lighted keyboard, source [17] . . . . . . . . . . . . . . . . . . . . . 6
2.5 Screenshot of KeyboardMania video game . . . . . . . . . . . . . . . . . . . 7
2.6 Guitar Hero video game . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.7 Synthesia video game . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
xi
xii
CHAPTER 1. INTRODUCTION 1
1 Introduction
Playing the piano is a skill usually learnt during childhood from professional teachers,
typically in weekly sessions. Although the grand piano has limited mobility and is often
expensive, it is still one of the most familiar musical instruments and the most favoured to
begin with. In recent years, popularity of keyboard instruments has been boosted by the
increasing quality and the decreasing price of more portable versions of piano the digital
piano and the electronic keyboard.
Looking at the age of beginner pianists there is a signicant amount of adults who decide
to learn to play the piano. However, most potential students give up the idea even without
trying. The reasons might dier from case to case but the majority are frightened by
the necessity of the traditional education system which could appear to be too pedantic.
Furthermore, there is the musical notation which might scare o another group of people,
although reading music is not as hard as it seems at rst sight.
Having a talent for music is not the key point to successfully learn playing any musical
instrument as it requires lot of patience as well as regular exercising and nothing can express
the whole principle more accurately than the phrase: Practise makes perfect. In addition
the gained skills must be maintained by occasional training and can be even completely
forgotten after some time.
In the Czech republic, a type of school has been established called Zkladn umleck
kola (ZU) where the education of dierent art forms including music is learnt. These
schools have a long lasting tradition in every major town and are also responsible for
organizing various local competitions of young artists. Although they are administrated
by the Ministry of Education, Youth and Sports (MMT), the education expenses are
partly covered by students' tuition fees.
Most of the time spent in front of the piano keyboard during the rst few sessions is
used for learning the position of each key on the sta and by the time the student gets this
into practise, he might be already bored or fed up enough to discontinue further training.
While children are usually forced to attend the lessons by their parents, the adults who
decide to play on their own are sacricing their free time and spending their money, and if
they feel that both could be used for something more enjoyable, they simply stop and the
negative experience may make them possibly never try it again.
Before beginners rst sit at the piano they have to attend a few music theory lessons and
become familiar with specic terminology and the principal of notation. The student then
continues with acquiring the basic playing technique and the identication of the correct
piano key according to the notation. The learning process as a whole consists of the main
topics which are: ear training, rhythm, notation, technique, improvisation, sight reading
and memorization [2]. The actual teaching method has to adapt according to student's
dierent personality, learning style, education level, and so on.
The requirement of individual education plus the high purchase cost of the instrument
itself makes piano training expensive and therefore is not aordable for everyone. The idea
of a complete solution for teaching oneself to play the piano using either printed or an
2 CHAPTER 1. INTRODUCTION
electronic tutorial is not the right one. As it applies mostly to motor skills; the bad habits
gained at the beginning are later hard to get rid of. At least an occasional supervision by
a professional piano teacher who checks the technique and recommends suitable exercises
for further training is necessary.
Music notation is a system which describes music using written symbols. The way of nota-
tion has been evolving since the prehistoric ages similarly to the writing system. Modern
music notation has its origin in European classical music of 18th century and has been
widely used throughout the world until now. However, there has always been the inten-
tion to discover an alternative which would facilitate music-reading. With an increasing
improvement in the area of technology, music production has moved, during the centuries,
from mechanical systems such as orchestrion to electronic devices capable of not only re-
playing but also storing and editing the music. Therefore the need for translation of the
paper notation into its electronic form has appeared. Common audio formats used for the
sound storage and by audio players usually manipulate the actual audio wave unlike the
descriptive music le formats. Examples of mentioned technologies follow in this chapter.
2.1.2 Klavarskribo
Klavarskribo is a music notation introduced in 1931 by the Dutchman Cornelis Pot. It
distinguishes from the conventional notation by being easily readable. However, it hasn't
met with great success among music teachers and the only signicant group of people using
the notation in practice nowadays are the members of the promoting organizations in the
Netherlands [10]. Although the notation is universal for all instruments and for singing it
suits keyboard instruments the most since the design logic is based on the piano keyboard.
The example of Klavarscribo can be seen in Figure 2.3.
The klavar notation itself is unique in the way the stave is placed on the page and
corresponds to the real piano keyboard more than the traditional layout which consists
of ve horizontal lines and four spaces whereas in the klavar stave, the notes are written
vertically and the music is read from top to bottom. The lines match the position of the
black keys on the keyboard thus each note has its own individual place and no sharps, ats
or even any key signature are needed. In other words, Klavarskribo presents a notation in
its straightforward form, stripped of the music theory. Whether the note is played by right
or left hand is indicated by the orientation of note's stem. The Klavarskribo Foundation
has transcribed over 25,000 pieces and custom composition can be transcribed easily with
the aid of specialized software, the KlavarScript.
representation of the sound depends on the current synthesizer. Another advantage over
the wave storage system is ease of editing, composing or recording the music data including
the possibility of its conversion to the printable standard notation eventually.
SMF is dierent from native MIDI protocol, because the events are time-stamped for
playback in the proper sequence. The data are stored in hexadecimal form and are struc-
tured into two dierent types of chunks, header and track. The le does not contain only
the notes but also stores the information about instrument used to replay the track in
a form of specic instrument patch which is identied by a Program Number parameter
with a range of 128 possible values where each number corresponds to one melodic sound.
The portability between several synthesizers is ensured by the instrument table dened in
General MIDI (GM) standard.
2.1.4 MusicXML
This type of music notation is not meant to be used by the players directly but can serve as
a storage format further used by music production software. The transcription is based on
Extensible Markup Language (XML) which is the format widely used by automated tools
to be parsed and manipulated. MusicXML was designed for the interchange of scores.
Although it can be possibly written by hand, a more practical approach is to use an
interactive score writing program. More details can be found in [12].
After the examination of the paper and digital representation of music we can move to
its actual producing in a form of sound output from electronic device such as keyboard,
which will serve as an input for our application. In addition, one interesting attempt of
an educational system which is built-in and shipped with the instrument as a complete
solution will be presented.
and does not have to always be included. The optional parts of the keyboard are additional
sockets placed on the back which allow the user to plug MIDI or audio inputs and outputs.
used has a function of game controller and is either in its convenient or simplied version.
The players follows the instructions on a scrolling display which in principle is similar to
piano rolls. The short description of arcade and console games in this chapter is followed
by a presentation of a software application which has its origin in the previously mentioned
games and the development of which was stimulated by their increasing popularity. These
games have a lot in common and can inspire us in the playability of the elements they
contain.
system in a form of per-song scoreboards which enables the players to keep track of their
progress is included. While the basic functionality is still free, a Learning Pack key can be
purchased to unlock additional features, such as a sheet music display mode.
The system allows the user to play the songs without the player's knowledge of
musical notation.
The system provides the instruction information about piano playing in the form of
complete lessons.
Lessons have a specied number of songs which are required for their completion.
Before the song starts playing, the user can choose to play the song in a slower tempo
but is penalized as the score is evaluated.
While playing the song the user is informed about the remaining time of the song
and the amount of score points gained.
The songs are identied by their names; the song's author might be added as well.
The application can be exited at any point by pressing and conrming the escape
command.
The system's behavior from the user's point of view is described in a use case diagram
placed in Figure B.1. End users of the system are people of any age who are willing to
connect two devices together and spend their free time playing the keyboard in front of
their computer.
12 CHAPTER 3. SYSTEM REQUIREMENTS SPECIFICATION
Another part of the 3D scene is the graphical representation of the notes the user will play
for the musical part. As stated at the end of the research chapter our application will stick
with the piano roll style as it is easy to transform from the SMF and intuitive enough for
the player to read. Each note of the played track is shown as a box directly proportional
in length to the note's duration above the corresponding piano key. The box moves toward
the piano key model and when its near edge touches the key, the key should be pressed
and when the far edge leaves the screen the key should be released. The illustration of the
just described process can be seen in Figure 4.3.
The boxes appear on the screen in advance before they should be actually played to
give the player time to prepare. When playing an advanced piece of music the technique
of preparing ngers to incoming notes applied while playing from the standard notation
needs to be used [2]. The beginner user should follow the lesson system carefully to get
used to more dicult pieces automatically. The success of the overall education system
lies in the lesson's design, which is not the exact purpose of this work and brings out a
suggestion for further work.
The lines heading to the keys on which the boxes trace have a dierent colour according
to the octave where they end. Another line crosses the line where the keyboard begins at
the time where the downbeat appears in the song bringing in a replacement for regular bar
line known from standard notation. The position of the lines is in the same plane as the
CHAPTER 4. USER INTERFACE DESIGN 15
keys are and the perspective view makes the boxes get bigger when they are come closer
or in other words are going to be played. This design has been chosen over the other two
concepts shown in Figure 4.4 which were rejected due to their being less able to adapt to
the scene requirements.
5 System architecture
After we got through the specication of the program's functions and we have a rough idea
of its graphical look, it is time to plan the solution from the software architectural view
and to build preliminary data models. The rst steps involve the division of the system
into its separate objects so the application can be later easily implemented using object
oriented programming. The goal of the design is extensibility so the new capabilities can
be added to the software without major changes to the underlying work. The ideas for
future work are introduced in the nal part of this thesis.
5.1 Components
Beginning with the design from the global view, we have decided to split the system
as a whole into three logical parts where each part has its own functionality capability.
The hierarchy of those parts including the MIDI API is shown in Figure 5.1. The rst
module, which uses services of the MIDI API is the library managing the MIDI commands,
the second is the system library containing the graphical and MIDI related objects and
methods. The last but not least is the part where the application's entry point is placed
and which is responsible for the screen and data management.
MIDI methods and objects which communicate directly with the MIDI library.
Recognizing, identifying and communicating with MIDI input and output devices.
Classes for sending and receiving various MIDI messages.
Song methods working with objects storing the data from MIDI song le.
Parsing the content of the SMF and saving them into tracks which consist of notes
where each note has its pitch and duration.
Class which gathers needed data and perform the MIDI song playback with its own
MIDI clock. Also includes the displaying of 3D models.
Input handling the input from the user's electronic keyboard, if connected.
Score calculating the score points when the piano key is pressed. The amount depends
on the actual timestamp and other parameters.
Screen manager maintains a stack of screens and calls their update and draw methods
and routes the input to the active screen.
Game screen screen which has its own update and draw logic and serves as a parent
screen for all screens which description follows.
Info screen a screen which enables displaying the data on several pages.
Menu screen base class for screens that contain a menu of options which can be navi-
gated and selected by the user
CHAPTER 5. SYSTEM ARCHITECTURE 19
Continue 10
Lesson Song
Lesson #1 7
Instructions Instructions
Lesson #2
y z
Background screen stays behind all the menu screens and draws the background im-
age.
Loading screen coordinates transition between menu and playback screens which takes
a longer
z time do to the data load. x
HUD a screen which displays graphics loaded in 2D textures onto the playback screen.
Whole concept of managing the screen states has been designed according to the sample
created by Microsoft and published on their community web pages of XNA Creators Club
[8].
which can be parsed afterwards in the program by the object manager into application's
internal objects. The set of entities is shown as a diagram in Figure 5.3. The strict
syntax which can be dened in Document Type Denition (DTD) enables the possibility
of later connection with other applications such as an editor tool. The separate data also
makes easier the additional upgrades of content and allows the possibility of interchanges
of lessons between users.
6 Implementation
6.1 Software development tools and libraries
Before we move toward the implementation part itself, the chosen technologies will be pre-
sented together with the particular reasons for their selection from other possible options.
The research has been focused on technologies supporting Rapid Application Development
(RAD), a type of software development methodology. This technique is suitable for our
project since its principle is based on minimal planning in favor of rapid prototyping and
allows an iterative development process.
Looking at the designing part, the class-based and component-oriented programming lan-
guage with support for 3D graphics is essential. The data are manipulated on the object
level thus there is no need for any low-level programming language. A high-level language
with integrated garbage collector and ability to assist the programmer with type checking
is suitable. According to the project's assignment, the platform-dependency has not been
dened so there is no need for using a platform independent programming language such
as Java. Since the author's currently used operating system is Microsoft Windows we have
decided to use C# which responsibly fulls all the previously mentioned requirements.
C# is an object-oriented programming language developed by Microsoft to work under
its .NET Framework. The syntax is based on C++ and contains elements similar to those
of Java. A point worth mentioning is the modularity in C#, represented by support of an
independent part of code in a form of dynamic-link library (DLL); Microsoft's implementa-
tion of the shared library which allows the programmer to import unmanaged code written
in other languages such as C or C++. We will take an advantage of this functionality
while wrapping the low-level MIDI library in the code written in C#.
Handling the graphics in the program requires a set of tools which provide the functionality
in the form of a framework or library. Graphical APIs commonly used are cross-platform
OpenGL and Microsoft's Direct3D, the part of DirectX. Considering our aim of using RAD
tools and developing our application in C# it is essential to use Microsoft XNA Framework
which is in fact a managed version of DirectX that is intended to assist development of
games and also supports porting the code on the Microsoft's video game console Xbox 360.
Unlike the DirectX runtime, XNA Framework is not shipped as a part of Windows and
developers are expected to redistribute the runtime components along with their games or
applications which can be distributed free of charge under Microsoft's current licensing.
There is also an ocial site containing useful samples, making the framework easy to learn
and understand. In addition, a community of XNA developers has grown on the Internet
with its increasing popularity so another portion of samples is available online accelerating
the development by using solved solutions even more.
22 CHAPTER 6. IMPLEMENTATION
by 64-bit applications and is no longer part of the latest's versions of DirectX SDK [7].
Another option for how to deal with MIDI data is the package javax.sound.midi provided
by Java 2 Standard Edition Platform as a part of Java Sound API. While implementing
our application we have decided to use the winmm.dll library regarding the selection of
other development tools discussed earlier in this chapter.
To encapsulate the function of low level library, wrapping a frequently used DLL function
in a managed class is an eective approach to follow. In our application we needed to
nd a way to realize communication between a computer and MIDI devices using MIDI
messages on the programming level. We are going to use the winmm.dll library, written in
C programming language. Instead of writing our own C# wrapper we will take advantage
of the complete solution to speed up the process of development.
We have found two remarkable .NET MIDI libraries. The rst is NAudio [6], the library
of which development started in 2001, with currently released 1.2 version from June 2008
published under the Microsoft Public License. NAudio is a complete solution for working
with variety of audio le formats, not only MIDI. The second is C# MIDI Toolkit [13]
which has been developed by the author since February 2004 now in its fth version from
April 2007 licensed under the MIT License.
Both toolkits have their source code available to browse together with demo applications
thus we could have made our decision according to the suitability of the projects capabilities
to our application by looking at available objects and methods in detail and did not have
to rely on their documentation. Although NAudio is robust project it is still marked as in
beta version. At the end we have decided to go with C# MIDI Toolkit due to its MIDI
orientation only, its complex structure and standalone sequencer.
SongPlayer's class method PlayTrack() since they are dependent on the parameters of
currently played track. Lines representing the boxes' path are static and drawn together
with the keyboard whereas the note boxes and bar lines are dynamically added or removed
from the lists according the actual position of the timer in the song.
7 Testing
While testing our application, we will focus on usability tests which examine if the product
meets the requirements from the user's point of view and how easy and intuitive its usage
is. The aim is to discover errors and areas of improvement while observing people using the
product. The tracked aspects are eciency, accuracy, recall and emotional response. The
person who leads the test, a moderator, rst nds out information about the participant
in the form of questionnaire, then he gives him concrete instructions and instead of asking
questions or showing what to do. Moderator watches the reactions and the actual steps
the user makes. An interview about person's feelings and impressions of the system closes
the testing process. Participants are identied in the report by alphabet letters since their
true identity is not relevant to the test and should stay annonymous.
Our tutorial system was tested on the small group of users with dierent piano playing
skills and experience with similar products to cover the target group of users as complex as
possible from the sample. The tests were not run in one round and after each test changes
to signicant problems were corrected. This procedure has been chosen to increase the
eciency of upcoming tests since we assume that if the mistake was left, it would be
harder to analyse other potential problems covered by the detected problem.
We expected the test to reveal the playback screen's defects as we were aware of a lack
of preliminary prototype tests which would take extra time to create. Instead of early
prototyping, we have decided to implement the program to the designed form and wait for
the state of development, where the system currently occurs, which allows us to make the
changes on the graphical design on the run.
To make the tests possible, the test data had to be created. These data contain the
beginning lessons with simple melodies and some advanced songs placed in Quickplay
mode. For the nal version of the application the data should be created in co-operation
with a professional music master in order to guarantee success in the system's purpose
since our aim is to develop a tool which would allow it. The songs on which the users
train his skills should be chosen according to certain criterion consulted with the experts
at pedagogy.
Before and after test questionnaire can be found in Appendix D. An explanation of the
questions and the summary of the results gained while testing our 5 test subjects in the
average age of 22 follows. In Figures C.2 and C.3, there are the playback scene designs
before and after testing to show the dierences made to the program.
Since our application is targeted at piano players of dierent levels either to be used as an
educational or an entertainment tool, we asked the participants about their piano playing
experience. The reactions to the piano roll style of representing the notes from the players
used to the typical notation were observed. Also we considered it useful to know if they
were familiar with the concept of playback from similar products and score used in video
28 CHAPTER 7. TESTING
games. When the participant answered these questions he was navigated to the song on a
level appropriate to his skill and asked to follow the onscreen instructions.
The questions from the after-test questionnaire were pointed at user's impressions and
opinions about our application. We were interested if the score motivated the player to
replay the song which was conrmed by users which played the video games. According
to answers to question about adequate lesson level we adjusted the test data before we
approached the next test. The participants were asked about their desired use of our
system. Most of them would use the application for their entertainment, only a few because
of its educational element. We suppose the rst group to be the people who would learn
themselves without even noticing it. Some of the participants expressed their intention
to play their favorite songs. Participant A was sure that he would denitely prefer this
way of learning to the classic way which he would have never started by himself but our
system seems to be more of an incentive. None of the participants would hesitate with
buying electronic keyboards capable of connection to their PC which they all own and
would invest from 2 000 to 5 000 CZK.
Most of the problems occurred with the playback screen. Participant A had diculties
with recognizing if the position of his hand corresponds to the range of virtual keyboard
and was not sure when the key should be pressed. To correct this problem each octave was
distinguished with a specic color and the key which was about to be played was highlighted
by the reector from the note box which darkens when closer to the corresponding piano
key. Participants B and C did not recognize what key should be played therefore the
adjustments in the colors of dierent key states was made and the lines were prolonged
even in front of the keyboard. Participant D only had a problem recognizing when the two
same tones follows immediately but during the second replay he played it right. Because
this user was the type of player which can play the songs by ear he suggested a replay
function of the song which is going to be played. The last one, Participant E liked the
keyboard input when navigating the menu but needed some time to get familiarized with
the concept as he was without the previous experience with similar products. Although he
stated that the incoming boxes are better than if the keys would just change colour.
CHAPTER 8. CONCLUSION 29
8 Conclusion
I have implemented a tutorial system which is targeted at users who are going to learn
to play the piano using an electronic keyboard and a computer. The application supports
playback of songs stored in MIDI le format and oers the user the possibility of partici-
pating either in Training or Quickplay mode. The player's knowledge of musical notation
is not required since the program represents music in a visual form.
I have chosen the subject of this work because of my personal knowledge of the piano
playing educational system. I found there is a lack of encouragement which prevented me
from returning to playing after a few years of pause. Therefore my goal was to create a
piano playing tutorial system which would be educative and entertaining at the same time.
When designing the application itself I was mainly inspired by my experience with Guitar
Hero whose concept seemed to me to be applicable for educational purposes if applied to
the real musical instrument.
First of all I had to look closely at the current situation regarding available tools and have
learnt from their drawbacks and took advantage from their successful points. I studied in
detail the MIDI technology to learn how to handle communication between an instrument
and a computer program. I also searched for the most suitable option of handling the
MIDI commands in my program.
Through testing I have conrmed that players who are not familiar with standard musical
notation can use the program prociently and with a clear fun element. Though the
system's data needs to be precisely adjusted to ensure their adequate diculty. I am
aware of the necessity of cooperation with a professional teacher for creating the lesson
data to ensure the eectiveness of the educational element.
9 Bibliography
[1] MIDI Manufacturers Associatio. MIDI.
http://www.midi.org/.
[2] Jan Dostal. Dt u klavru. Supraphon, Praha, R, 1th edition, 1977.
[3] Daniel Forr. MIDI komunikace v hudb. Grada, Praha, R, 1th edition, 1993.
[4] Brent Fox. Game Interface Design. Course Technology PTR, Boston, USA, 1th
edition, 2004.
A List of acronyms
2D Two-Dimensional
3D Three-Dimensional
GM General MIDI
UI User Interface
B UML diagrams
Use cases
Class diagrams
C Application screenshots
Menu screen
Playback screen
5. Appealing things:
E User manual
System requirements
Supported operating systems: MS Windows XP SP3, MS Windows Vista SP1.
A graphics card that supports DirectX 9.0 and Shader Model 1.1.
Installation instructions
Application installation is not required, user can run the le directly by opening the le
PianoRoll.exe.
F CD Content
CD
|-- PianoRoll - Executable file
|-- src - Source files of the application
|-- text
| |--latex - Source files of this text
| \--thesis.pdf - PDF version of this text
\-- readme.txt - User manual
46 APPENDIX F. CD CONTENT