PRINT "Dur, moll vagy egyenlo hangkozu?"
eleje:
z$ = INKEY$
IF z$ = "d" OR z$ = "D" THEN z$ = "dur": GOTO kezd1
IF z$ = "m" OR z$ = "M" THEN z$ = "moll": GOTO kezd2
IF z$ = "e" OR z$ = "E" THEN z$ = "moll": GOTO kezd3

GOTO eleje

DEFDBL A, F, V

kezd1:
a(1) = 9 / 8
a(2) = 10 / 9
a(3) = 16 / 15
a(4) = 9 / 8
a(5) = 10 / 9
a(6) = 9 / 8
valto = 16 / 15
hang$(0) = "C"
hang$(1) = "D"
hang$(2) = "E"
hang$(3) = "F"
hang$(4) = "G"
hang$(5) = "A"
hang$(6) = "H"
GOTO zenel

kezd2:
a(1) = 9 / 8
a(2) = 16 / 15
a(3) = 10 / 9
a(4) = 9 / 8
a(5) = 16 / 15
a(6) = 9 / 8
valto = 10 / 9
hang$(0) = "C"
hang$(1) = "D"
hang$(2) = "Esz"
hang$(3) = "F"
hang$(4) = "G"
hang$(5) = "Asz"
hang$(6) = "B"
GOTO zenel

kezd3:
a(1) = 2 ^ (1 / 7)
a(2) = a(1)
a(3) = a(1)
a(4) = a(1)
a(5) = a(1)
a(6) = a(1)
valto = a(1)
hang$(0) = "1"
hang$(1) = "2"
hang$(2) = "3"
hang$(3) = "4"
hang$(4) = "5"
hang$(5) = "6"
hang$(6) = "7"

zenel:
p = .5
f = 528

beker: s$ = INKEY$
SOUND f, 1
IF s$ <> "2" AND s$ <> "8" THEN GOTO beker
IF s$ = "2" THEN irany = -1
IF s$ = "8" THEN irany = 1
IF f > 30000 AND irany = 1 THEN irany = 0: GOTO beker
IF f < 38 AND irany = -1 THEN irany = 0: GOTO beker
beallit:
p = p + irany
IF p = 7.5 THEN p = .5: arany = valto: GOTO sipol
IF p = -.5 THEN p = 6.5: arany = 1 / valto: GOTO sipol
arany = a(p - irany / 2) ^ irany
sipol:
f = f * arany
PRINT hang$(INT(p)), INT(f)
irany = 0
GOTO beker

