Keyboard Hero Connor Lucier
Total Page:16
File Type:pdf, Size:1020Kb
Santa Clara University Scholar Commons Computer Engineering Senior Theses Engineering Senior Theses 6-13-2019 Keyboard Hero Connor Lucier Follow this and additional works at: https://scholarcommons.scu.edu/cseng_senior Part of the Computer Engineering Commons Department of Computer Engineering I HEREBY RECOMMEND THAT THE THESIS PREPARED UNDER MY SUPERVISION BY Connor Lucier ENTITLED KEYBOARD HERO BE ACCEPTED IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF BACHELOR OF SCIENCE IN COMPUTER SCIENCE & ENGINEERING fl Thesis Advisor » dateM k>l^ ^H<? Department Chair 1\ date Senior Design Project: Keyboard Hero Connor Lucier Department of Computer Engineering Santa Clara University June 13, 2019 ABSTRACT Learning the piano is a complicated process that involves a lifetime of practice. For many new musicians, however, this task is overwhelming and discouraging because of the many skills involved in playing the piano. To solve this problem, I aim to create a computer game compatible with MIDI keyboards that gives novice pianists an alternative to the typical learning process and gives experienced pianists a new and useful practice tool. The game I created is inspired by two popular video games, Guitar Hero and Rock Band, featuring instant accuracy feedback against imported MIDI tracks, high score tracking, and the ability to practice at slower tempos. This game will hopefully allow players of all skill levels to find new ways to have fun playing the piano. Contents 1 Introduction 1 2 Requirements 2 2.1 Functional . 2 2.2 Non-functional . 2 2.3 Design Constraints . 2 3 Use Cases 3 4 Activity Diagrams 5 4.1 Core Functionality . 5 4.2 Additional Feature: Practice Mode . 6 5 Technologies Used 7 5.1 Game Engine - Unity . 7 5.2 Languages - C# . 7 5.3 Unity Packages . 7 6 Game Architecture 8 6.1 Architecture Diagram . 8 7 Design Rationale 9 7.1 Rationale for Technologies Used . 9 8 System Description 10 8.1 Navigating the Menus . 10 8.2 Playing a Song . 10 9 In-Game Images 12 10 Testing 18 10.1 Early Testing . 18 10.2 Unit and Functional Testing . 18 10.3 Integration Testing . 18 10.4 Play Testing . 18 10.5 Compatibility Testing . 18 11 Difficulties Encountered 19 11.1 Note Creation & Timing . 19 11.2 MIDI Keyboard Input . 19 11.3 Standalone Builds & Package Issues . 20 11.4 Song Importing . 20 3 12 Future Work 21 12.1 Note Creation & Timing . 21 12.2 MIDI Keyboard Input . 21 12.3 Song Importing . 21 12.4 Visual & Audio E↵ects . 21 12.5 Improved Game Options . 21 12.6 Additional Features . 22 13 Lessons Learned 23 13.1 Working Alone . 23 13.2 Setting & Sticking to Deadlines . 23 13.3 Game Development . 23 14 Societal Issues 24 14.1 Alternative Notation . 24 14.2 Free-To-Use Decision . 24 15 Conclusion 25 16 Appendix 26 16.1 Installation Guide . 26 16.1.1 Game Installation . 26 16.1.2 Manual Song Importing . 26 16.1.3 Launch Settings . 26 16.2 User Manual . 26 16.2.1 Main Menu . 26 16.2.2 Options Menu . 27 16.2.3 Mode Selection Menu . 27 16.2.4 Song Selection Menu . 27 16.2.5 Song Player . 28 16.2.6 Viewing Final Results . 28 4 List of Figures 3.1 Use case diagram for students and teachers . 3 4.1 Core functionality, featuring song player and main, options, and song selection menus . 5 4.2 Core functionality with the addition of practice mode . 6 6.1 Core game architecture . 8 9.1 Main Menu . 12 9.2 Options Menu . 13 9.3 Mode Select Menu . 13 9.4 Song Select Menu . 14 9.5 Add Song Menu . 14 9.6 Additional song options for practice mode . 15 9.7 Song Player in quickplay mode with multicolor notes and standard key colors . 15 9.8 Song Player in practice mode with single-color notes (red orange) . 16 9.9 Song Player in quickplay mode with multicolor keys and notes . 16 9.10 Song Complete Menu . 17 5 1 Introduction Aspiring musicians are often discouraged by the overwhelming task of learning an instrument. Learning the piano is a strong example of this predicament. Playing the piano requires that students play two di↵erent components of a song with each hand while reading two lines of music simultaneously. Learning these skills can be a frustrating and tedious challenge, which creates a barrier to entry for many new pianists. Currently, few methods of teaching the piano without an instructor exist. For many students, the first step in the learning process is to buy a book. However, finding the right book for your specific needs can be a challenge in itself. Many casual, entry-level piano books spend too much time teaching about music theory and rhetoric instead of useful practice techniques to employ. In addition, most songs taught in these texts are unfamiliar to new musicians, putting a larger gap between students and their goals of learning their favorite songs. My proposed solution to these pitfalls that pianists face was to gamify the learning process. Music-oriented video games have had strong success in the past decade, mostly coming from two popular series, Guitar Hero1 and Rock Band.2 Both of these series utilize simplified guitars to give players the opportunity to become a rock star without any prior experience. While these games entertain players of all ages and cater to many skill levels, they do not actually teach players how to play the guitar. In fact, talented guitarists often struggle to play these games at a high level, which makes the games poor tools for learning and practice of the instrument they are based on. The piano, compared to the guitar, lends itself more naturally to the format of Guitar Hero and Rock Band. In these games, notes appear at the top of the screen and fall toward a single row of note heads along the bottom of the screen. However, this system becomes confusing with a standard six-string guitar, creating a problem that previously did not exist. While a MIDI keyboard can have up to eighty-eight keys, the arrangement of the keys in a single row makes this format much easier to digest for novices and veterans alike. Additionally, many popular songs across various genres and difficulties utilize less than half of this maximum number of keys, allowing players of various skill levels to play songs within their abilities without oversimplifying the instrument. The core of the game includes a menu from which to select a song to play, an interface through which a player plays a selected song and receives live feedback, and a system for tracking local song high scores. In addition, I created a practice mode for the game, which allows players to play songs at slower tempos in order to learn before being scored on the song. By focusing on playing real music with real instruments, my proposed game will help novice and advanced pianists develop their skills and learn new music more e↵ectively than ever before. The gamification of the learning process for musical instruments, particularly the piano, could potentially help thousands of people learn to play their favorite music without the upfront cost of purchasing private lessons or books. Rather than frustrating students, this solution truly rewards players of all levels for accomplishing their original goal of making music. 1“The Beats to Beat: A History of Guitar Hero.” https://historycooperative.org/the-beats-to-beat-a-history-of-guitar-hero/ 2“10 Years Ago: ‘Rock Band’ Changes The Music Video Game Industry.” http://ultimateclassicrock.com/rock-band-anniversary/ 1 2 Requirements This section outlines the functional and non-functional requirements of the proposed game as well as the design constraints of the project. 2.1 Functional The game will: allow players to import MIDI files into their game • provide a menu for players to select a song to play • provide players an interface to play along with their MIDI tracks • track the player’s score and accuracy as they play along with the song • store players’ local high scores to be viewed in the song selection menu • give players various customization options to optimize their playing experience • 2.2 Non-functional The game will be: intuitive – players should be able to navigate through the game.