DIM freq AS DOUBLE
DIM frequency AS DOUBLE

REM      By Louis Dudzik

10

p = 0
x = 0
CLS
CONST trt = 1.059463094#
PRINT "This program outputs the frequencies of the notes on the"
PRINT "tempered chromatic scale used in music."
PRINT "Using A = 440 hz. (12th root of 2) = 1.059463094"
PRINT "Starting at low A = 27.5 hz and going 6 octaves."
PRINT "Standard bass guitar starts at E = 41 hz."
PRINT ""
PRINT "Press <ENTER> to view on screen."
PRINT "Enter 1 to output to printer."
PRINT "Enter 2 to quit."
INPUT x
IF x = 2 THEN SYSTEM
IF x = 1 THEN
   p = 1
   GOTO 100
END IF
IF x = 0 THEN GOTO 100
GOTO 10

100

IF p = 1 THEN
  LPRINT "This program outputs the frequencies of the notes on the"
  LPRINT "tempered chromatic scale used in music."
  LPRINT "Using A = 440 hz. (12th root of 2) = 1.059463094"
  LPRINT "Starting at low A = 27.5 hz and going 6 octaves."
  LPRINT "Standard bass guitar starts at E = 41 hz."
  LPRINT ""
END IF

freq = 27.5
CLS
FOR oct = 1 TO 6
FOR note = 1 TO 12

IF note = 1 THEN note$ = "A "
IF note = 2 THEN note$ = "A#"
IF note = 3 THEN note$ = "B "
IF note = 4 THEN note$ = "C "
IF note = 5 THEN note$ = "C#"
IF note = 6 THEN note$ = "D "
IF note = 7 THEN note$ = "D#"
IF note = 8 THEN note$ = "E "
IF note = 9 THEN note$ = "F "
IF note = 10 THEN note$ = "F#"
IF note = 11 THEN note$ = "G "
IF note = 12 THEN note$ = "G#"

frequency = (CLNG(freq * 100)) / 100
PRINT note$; "="; frequency, "hz"
IF p = 1 THEN LPRINT note$; "="; frequency, "hz"

freq = freq * trt

NEXT note

PRINT ""
PRINT "Press <ENTER> for the next octave."
IF p = 1 THEN LPRINT ""
INPUT "Enter 3 to end. ", x
IF x = 3 THEN GOTO 10
CLS

NEXT oct
GOTO 10

