'=========================================================================== ' Subject: PIANO NOTES Date: Unknown Date (00:00) ' Author: Charles Graham Code: QB, QBasic, PDS ' Keys: PIANO,NOTES Packet: SOUND.ABC '=========================================================================== '> How can I calculate all the notes on '> a piano (Notes 1-84)? ' REM PITCH.BAS by Charles Graham ' There are 88 keys on a standard piano keyboard. ' This program lists the approximate Cycles-Per-Second ' for each piano key and plays the tone. DIM keyno$(12) FOR x = 1 TO 12 READ keyno$(x) NEXT x keyno = 1 mult = 1.059463 pitch = 27.5 CLS COLOR 15, 1 PRINT STRING$(17, "-"); PRINT " Piano Note Frequencies "; PRINT STRING$(17, "-") PRINT "Key #", "Note", " CPS", "Comments " LOCATE 25, 1 PRINT SPACE$(18); PRINT "Press a key to continue"; PRINT SPACE$(18); COLOR 12, 0 LOCATE 3, 1 VIEW PRINT 3 TO 24 DO PRINT USING " ##"; keyno; PRINT , note = note + 1 IF note > 12 THEN note = 1 END IF PRINT keyno$(note), IF keyno$(note) = "A" AND pitch >= 37 THEN pitch = INT(pitch + .5) END IF PRINT USING "####.##"; pitch; IF keyno = 40 THEN PRINT , "Middle C"; END IF IF pitch >= 37 THEN SOUND pitch, 4 PRINT ELSE PRINT , "Too low to sound" END IF keyno = keyno + 1 pitch = pitch * mult DO a$ = INKEY$ LOOP UNTIL LEN(a$) LOOP UNTIL keyno > 88 VIEW PRINT 1 TO 25 LOCATE 25, 1 COLOR 15, 1 PRINT SPACE$(20); PRINT "Press a key to end"; PRINT SPACE$(21); DO a$ = INKEY$ LOOP UNTIL LEN(a$) COLOR 7, 0 CLS END DATA "A", "A#/Bb", "B", "C", "C#/Db", "D" DATA "D#/Eb", "E", "F", "F#/Gb", "G", "G#/Ab"