Classic Computer Magazine Archive ANTIC VOL. 3, NO. 10 / FEBRUARY 1985

Education

MUSIC FLASH CARDS

by James Brown

A drill program that helps students learn the names of notes on the musical staff. The BASIC listing runs on all Atari computers of any memory configuration.  Antic Disk subscribers RUN "D:MUSFLASH.BAS"

Here is a fairly simple program I developed when my daughter started taking piano lessons.  When learning a new subject, some drill and practice is often necessary to sharpen skills.  This is just the thing for a computer, which can present the material in a more interesting way than most human "drill instructors", and which never gets bored or impatient.
  The purpose of Music Flashcards is to teach the positions of notes on the musical staff.  The program reinforces each correct answer by sounding the corresponding note.  It uses the regular low resolution Atari sound voices, however, so the pitch is not very precise.  This deficiency can easily be overcome by using the technique of coupling two sound generators to produce high-precision tones.  Such a change is recommended if you want to teach pitch recognition at the same time.
  The program is very simple to use for any child who has enough experience with the computer to know that it is usually a good idea to press [RETURN] to complete an input.  This is necessary only in the initial "set up" sequence.  During the timed response segment, only a single keypress, representing the note shown, is needed.  So, after entering the program, correcting it with TYPO and saving a backup copy, all you need do is type RUN and answer the prompts.  The program keeps your score, which ranges from the high 90's if you really know your notes and have fast typing reflexes, down to zero if you aren't paying any attention at all.
  You can limit the drill to either the treble (G) clef, or the bass (F) clef, or include both.  This way the student can concentrate on whichever area is currently being studied in regular music lessons.

James W Brown is supervisor of the Database System Engineering Group at the Caltech Jet Propulsion Laboratory (JPL) in Pasadena, California, and is librarian of the JPL Atari Computer Enthusiasts user group.

PROGRAM TAKE-APART

100-       Three arrays hold the note
           values for the SOUND command,
           the character name of the note,
           and the corresponding keycode.
115- 238   Set up the title screen, read
           note values into arrays, and
           play a sequence of notes while
           rotating the colors on the marquee.
240- 245   Address pointers, and initialize
           previous score.
250-       DEL is the value used for delay loops.
           It can be adjusted to slow down or
           speed up the drill.  MAXTIM counts
           down to zero while waiting for a response.
255- 267   Prompt for and accept the number of notes
           for this drill sequence.  Note error trapping.
269- 285   Prompt for and accept the choice of staff
           - bass, treble, or both.
299- 327   Draw lines of staff.
330- 380   Draw clef symbols.
400- 480   Loop for drilling notes.
405- 407   Randomly pick a note from the selected range.
410-       Draw the note.
420- 430   Timing loop - wait for key-press.
435-       Check for correct answer.
437-       445 Sound buzzer if wrong answer.
446-       Allow up to two wrong answers.  If three,
           assume student is guessing or playing around.
447-       If time runs out, show the right answer and continue.
450-       If time remaining, try again.
459- 462   Sound the note.
464- 470   Show the name of the note.
475-       Erase the note and tally the score.
490- 499   Summarize results.  Encourage improvement,
           but don't accept backsliding.
500- 520   Subroutine to rotate colors.
700- 799   Subroutine to draw a short line through a
           note (middle C or A above staff).
800- 899   Subroutine to erase a note.
900- 999   Subroutine to draw a note.
1000-      Sound values for notes.
1010-      Names of notes.
1020-      Keycodes of notes.
1050-1053  G clef symbol.
1060-1063  F clef symbol.
1200-1280  Error trap handlers.
 

Listing: MUSFLASH.BAS Download