Difference between revisions of "Android/Music Tutor"

From theGleep.com
Jump to: navigation, search
 
(20 intermediate revisions by one user not shown)
Line 5: Line 5:
  
 
= Game Instructions =
 
= Game Instructions =
 +
The purpose of this game is to help the player learn to read "Sheet Music" or "Manuscript"
 +
 +
A random series of notes will be displayed on the staff.  The player will attempt to identify the leftmost note.  As each attempt is made, the current note will be removed from the staff.  A running log of notes is maintained for review and scoring.
 +
 +
The final version of the game will serve three functions; Teach manuscript sight reading, train muscle memory for a specific instrument on a specific song, And act as a minimal midi practice/Experimentation platform (Which also allows creation of songs to learn).
 +
 +
Game play and educational experience will combine in the system of 'levels'.  Earlier levels will have few variances, and will focus on core knowledge.  Later levels will incorporate details from earlier, foundational 'lessons'.  There will also be 'boss' levels that summarize a category of lessons.  (See 'difficulty levels', below)
 +
 +
== Game Play ==
 +
<HTML>
 +
<img src='images/MusicTeacher.ScreenShot3.jpg' style="width: 550px;" align='right'/></HTML>
 +
 +
The interface is divided into three sections; Staff, input and scoring.
 +
 +
As the staff fills in with notes, the player will 'guess' which note is next to play.  Every time the player guesses, the leftmost note is removed from the staff (And for aesthetic reasons, all remaining notes will 'slide' to the left)
 +
 +
Whatever note the player guessed will be sounded by the game, along with the correct note.
 +
 +
Scoring will be an accuracy rating, multiplied by level difficulty, taking into account the count of correct sequential note identifications.
 +
 +
=== Staff ===
 +
The staff part of the interface asks the question "What note is this?" 
 +
 +
When space is available, the whole staff (Both treble and bass clef) is displayed.  When space us limited, only one clef is displayed, and the Clef symbol will change as needed.
 +
 +
Because of technical difficulty, as well as learning curve for the player/User, note duration is not considered (Eventually, note duration will be a factor so that the "Game" Can become an interactive tutor, building "Muscle memory" In the musician for a specific song.)
 +
 +
 +
=== Input ===
 +
To create a tool that goes beyond simple sight reading, this game will implement different input 'modes', each oriented to a particular type of learning; Note identification, keyboard key identification, string and fret identification for fretted instruments, and 'audio' and MIDI modes to allow for training on actual instruments.
 +
 +
==== Notes ====
 +
In 'notes' mode, user input is collected from a collection of buttons, covering all notes in a single octave (Including sharps and flats): Ab, A, A#, Bb, B, C, C#, Db, D, D#, Eb, E, F, F#, Gb, G, G#
 +
 +
In motes mode, the octave itself is ignored, all that matters is if the note is correctly identified.
 +
 +
==== Keys ====
 +
 +
 +
==== Frets ====
 +
==== MIDI ====
 +
==== Microphone ====
 +
 +
=== Difficulty levels ===
 +
 +
=== Configuration options ===
 +
==== Strings ====
 +
* Count
 +
* Notes
 +
 +
==== Game play ====
 +
* Songs folder
 +
 +
==== Scoring ====
 +
* Minimum success rate for next level
 +
 +
 +
== Known Bugs ==
 +
{{#ifeq:{{CURRENTUSER}}
 +
|TheGleep |
 +
 +
== Development History ==
 +
18-Nov-2011 - Rebooted the development approach to use Adobe Air so that it's cross-platform
  
 
= Help Text =
 
= Help Text =
  
 
= Development Notes =
 
= Development Notes =
;A queue of "notes"
+
Use adobe AIR to build so it's cross-platform.
:Each note will be pulled off the queue and the image it represents will be loaded into the UI...then I will execute an "animation" against it to cause it to "slide" from right-to-left.
+
  
 +
* [http://www.flashdevelop.org/wikidocs/index.php?title=Main_Page Editor]
 +
* [http://vandelaydesign.com/blog/web-development/adobe-air-tutorials/ Examples/Tutorials]
  
;Once *that's* working, all of the "notes" will be stacked up on each other, so I'll add some logic to fix that:
+
[http://www.cs.cofc.edu/~manaris/spring04/cs220-handouts/JFugue/JFugue-UserGuide.html jFugue] looks like a VERY useful library, but I don't know how well it would integrate to adobe Air.  Even if it's not usable, there is some very good documentation for naming/notation conventions there.
: * when the note gets animated, I will add it to an "active animations" queue
+
: * the "slide" instructions will be updated to end (length-of-animations-queue * width-of-a-note) before the left side of the screen.
+
  
  
;Once *that's* working, it'll be time to honor user input:
+
;Well...now I have to restart ... and I removed all of my other "todo" items, so I'll have to redesign.  Oh, well.
: * wire each button to check if the "head" note in the animations queue is the note for that button
+
:use jFugue to play the notes!
: * when the note matches the button
+
:There are open-source tuners for android...find one and adopt the "what note is playing" code for instrument mode
:: + remove it from the animations queue
+
:: + re-animate all of the remaining notes in the queue to "slide" left by (1 * width-of-a-note)
+
  
  
;at this point, it will be "playable" - but FAR from finished!
+
;Todo
 +
: Add accuracy to "Status" section - Phase *and* total
  
;Time to add a "debug mode" - cycle through all the notes available (and I do mean ALL!  Including keys!) and log what the note should be and what the user selected as the note.
+
: Speed up staff population (for now)
  
 +
: Build the phases (See below for phase progressions)
  
;The *next* major step will be handling "active" notes:
+
: Show accuracy in "continue" prompt
: * when the user gets the note right before it's done with the animation
+
: * The user is VERY likely to answer while an animation is active, but there are other notes "done" with the animation...like, three notes "stopped" and a fourth note "sliding"...so I need to queue up the "move left by (1 * width-of-a-note) to happen *AFTER* the sliding stops...or revise the active animation to end (1 * width-of-a-note) later than it currently does...
+
  
 +
: Support accuracy configuration for moving on to the next level
 +
:: Change "Continue" prompt to support "retry"
 +
:: Save configuration settings
 +
:: Default accuracy
  
;After that, I have:
+
: Configuration dialog
: * "Playing" the note for the button that's pressed (maybe even in "pause" mode...)
+
:: Minimum Accuracy per phase
: * changing staffs (trebble cleff vs bass cleff)
+
:: "Reset" or "Restart" option (clears game state back to level 1, phase 1)
: * scoring
+
 
: * Help
+
: Save game-state on exit
:: + instructions
+
: Restore game-state on startup
:: + about
+
 
:: + donations
+
: Improve animation
: * configuration
+
:: Slow down the note population and allow users to identify the note before it is "lands"
:: + type of fretboard
+
::: Slide currently active notes to the left by one position
:: + User information for registering high scores (later)
+
::: revise the "landing place" of the currently active animation
: * Keyboard
+
:: Proper honoring of "pause" mode
: * Fretboard
+
 
: * high-scores (online)
+
: Add "debug mode" - cycle through all the notes available (and I do mean ALL!  Including keys!) and log what the note should be and what the user selected as the note.
: * "playing songs" - feeding a song into the game so the player learns the song.
+
 
: * levels
+
:After that, I have:
: * audio feedback (sound the note the user hits)
+
:: * "Playing" the note for the button that's pressed (maybe even in "pause" mode...)
:: Level Progression
+
:: * changing staffs (trebble cleff vs bass cleff)
::: level and phase (phase 1 = trebble cleff, phase 2 = bass cleff)
+
:: * scoring
::: level 1 - 12 notes
+
:: * Help
::: level 2 - 16 notes
+
::: + instructions
::: level 3 - 16 notes (including sharps)
+
::: + about
::: level 4 - 20 notes (including sharps)
+
::: + donations
::: level 5 - 20 notes (including flats)
+
:: * configuration
::: level 6 - 24 notes (including flats)
+
::: + type of fretboard
 +
::: + User information for registering high scores (later)
 +
:: * Keyboard
 +
:: * Fretboard
 +
:: * high-scores (online)
 +
:: * "playing songs" - feeding a song into the game so the player learns the song.
 +
:: * audio feedback (sound the note the user hits)
 +
:: Level Progression - level and phase
 +
:::: phase 1 = trebble cleff
 +
:::: phase 2 = bass cleff
 +
:::: phase 3 = trebble cleff with flats
 +
:::: phase 4 = bass cleff with flats
 +
:::: phase 5 = trebble cleff with sharps
 +
:::: phase 6 = bass cleff with sharps
 +
:::: phase 7 (when keys are added) = Trebble naturals
 +
:::: phase 8 (when keys are added) = Bass naturals
 +
:::: phase 8 ("Trebble Boss") = trebble cleff with all notes
 +
:::: phase 9 ("Bass Boss") = bass cleff with all notes
 +
::: level 1 - 24 notes, all within two steps of the staff
 +
::: level 2 - 24 notes, all within two steps or above the staff
 +
::: level 3 - 24 notes, all within two steps or below the staff
 +
::: level 4 - 24 notes, full range
 
::: level 7+ adds "keys" (base key, key plus sharps, key plus flats, key plus naturals...for however many keys there are)  
 
::: level 7+ adds "keys" (base key, key plus sharps, key plus flats, key plus naturals...for however many keys there are)  
:: + speed
+
::: + speed
:: + number of notes
+
::: + number of notes
:: + allow sharps
+
::: + allow sharps
:: + allow flats (will require adding "flats" to the collection of pictures)
+
::: + allow flats (will require adding "flats" to the collection of pictures)
:: + use "keys"
+
::: + use "keys"
::: - add key signature pictures to slide in
+
:::: - add key signature pictures to slide in
::: - add "naturals" to the collection of pictures
+
:::: - add "naturals" to the collection of pictures
::: - support key signature to evaluate for correct input
+
:::: - support key signature to evaluate for correct input
: * Mic support
+
:::: - bonus points: "Guess the key"
: * ?Time signature and note lengths?
+
:::: - Extra level "Identify the key"
 +
:: * Mic support
 +
:: * ?Time signature and note lengths?
 +
 
 +
: Options/Configuration
 +
:: * Minimum level score (Percent correct)
 +
:: "Reset Game"
 +
 
 +
}}
 
}}
 
}}

Latest revision as of 13:16, 5 August 2013

I'm not saying much about it right now. But I'm going to enjoy using this app for myself.