Staff: Teacher and Tester

Publication

Publication Details

Date

Pages

See all articles from SYNC v3 n6

The ability to name notes on the staff is a necessary skill for even the novice musician. “Staff” is a versatile music education program that reviews notes from the first ledger line below the staff to the first ledger line above. Although the program includes the necessary lines for use with the ZON X-81 sound generator, it can be an effective educational program even without sound.

The basic program is in “tester” mode. It will put a note somewhere on the treble staff and wait for you to enter the letter name of the note. It will acknowledge the right answer, and, in the ZON version, play the note. If you do not enter the correct note in three tries, the computer will give the answer, play the note, and go on to the next note. Twenty random notes are presented.

Variations on a Theme

“Staff” is easily edited to the “teacher” mode which presents, plays, and identifies in order from the lowest to the highest notes. The range is covered three times.

Another variation, used with either the teacher or tester mode, uses the bass clef. Any of the four resulting programs can be used with or without the ZON unit.

Variables

  • C: Register contents (ZON)
  • D: Register number (ZON)
  • R: Round counter
  • N: Note placement (display line number)
  • V: Check for odd/even display line
  • Z: Guess counter
  • G$: Note guessed
  • A$: Name of note
  • T: Counter for loop timing

Line Notes

The program line notes are presented in two parts: one for the general program and one for the ZON programming. Necessary changes for the program variations are indicated after the line notes. The ZON version is necessarily set up for automatic RUN on LOADing; in order to SAVE the program, enter RUN 5.

ZON notes

1 : Machine code loading routine.

3: Loads registers with preparatory values (see subroutine).

107: Channel A tuner.

115, 125: Sets note frequency.

130: Loads note.

131, 132: Single decay envelope.

134: Turns on sound.

200-215: Clear all registers.

220-250: String slicing routine loads registers 7, 8, and 12 to enable channel A tone, enable the envelope, and set envelope period.

260-275: Adjunct to loading routine in initial REM.

General notes

10-25: Draw staff.

30-70: Draw clef.

85: Places note (inverse space) on staff, with or without ledger lines.

90: Checks for display line number of notes; all odd numbers are notes in spaces: even numbers are notes on lines. V will represent odd; NOT V, even.

110, 120: A$ assignment according to placement of note. Since all values in the logical statement are evaluated, splitting the possibilities into two IF-THENs speeds the running of the program.

140: Acknowledges a right or wrong answer; identifies note after third wrong guess.

145: 16 spaces, 2 commas, 1 space.

155: Erases note, replacing staff line where necessary. Last parenthetical statement has three spaces between the quotation marks.

Variations

The following variations may be developed by editing as indicated.

1) Non-ZON

Delete lines 1-9, 107, 115, 125, 130, 131, 132, 134, and all lines from 200 on.

Add:

5 REM “STAFF” and SAVE the program in the usual way.

Other variations include ZON program lines; delete as necessary.

2) Teacher mode

Delete lines 95, 100, 105, 150. Change /add:

75 FOR R=1 TO 3\n80 FOR N=16 TO 4 STEP -1\n130 GOSUB 260\n134 GOSUB 260\n140 PRINT AT N,31;A$\n145 PRINT AT N,31;" "\n155 NEXT N

3) Bass staff

ZON programmers will notice that the notes, although in the correct relationship to each other, are not the correct frequency for pitch or octave. This is because the lower notes need a C value larger than 255, with a load into register D 1 , a routine that does not fit simply into this particular program. Changing the value of C in lines 115 and 125 and adding a subroutine for the second load will give the lower octaves.

Products

 

Downloadable Media

 
Scroll to Top