' Piano 1.0 by SCUEY ' 11/27/05 ' My email address is iamscuey@gmail.com. Email me if you liked this program ' or if you have some suggestions for it. I would like to hear what you ' think of Piano 1.0. ' How to Play: ' ************ ' Keys 1 through 4 play notes C, D, E, and F. Keys 7 through 0 play notes ' G, A, B, and C. Those are all the natural notes. The sharps and flats are ' located on the function keys. F1 is C#, F2 is D#, F4 is F#, F6 is G#, F7 ' is A#, and F9 is C#. The ~ key next to the 1 key lowers the octave. The - ' key next to the 0 raises the octave. Tab lets you choose from three musical ' styles: normal, legato, and staccato. Esc exits Piano 1.0. ' To Do: ' ****** ' Eventually I might make it so that you can select what key you would like ' to play in so that you don't have to use the function keys for every flat ' or sharp. This way you could use keys 1-4 and 7-0 to play all notes on any ' scale you select. Of course, the function keys would still be available ' for playing accidentals. CLS octave = 2 PLAY "o2" '******Key Definitions****** CONST ESC = 27 'Define C KEY 15, CHR$(0) + CHR$(2) ON KEY(15) GOSUB C KEY(15) ON 'Define D KEY 16, CHR$(0) + CHR$(3) ON KEY(16) GOSUB D KEY(16) ON 'Define E KEY 17, CHR$(0) + CHR$(4) ON KEY(17) GOSUB E KEY(17) ON 'Define F KEY 18, CHR$(0) + CHR$(5) ON KEY(18) GOSUB F KEY(18) ON 'Define G KEY 19, CHR$(0) + CHR$(8) ON KEY(19) GOSUB G KEY(19) ON 'Define A KEY 20, CHR$(0) + CHR$(9) ON KEY(20) GOSUB A KEY(20) ON 'Define B KEY 21, CHR$(0) + CHR$(10) ON KEY(21) GOSUB B KEY(21) ON 'Define High C KEY 22, CHR$(0) + CHR$(11) ON KEY(22) GOSUB HighC KEY(22) ON 'Define ` KEY 23, CHR$(0) + CHR$(41) ON KEY(23) GOSUB Lower KEY(23) ON 'Define - KEY 24, CHR$(0) + CHR$(12) ON KEY(24) GOSUB Raise KEY(24) ON 'Define C Sharp/D Flat ON KEY(1) GOSUB CSharp KEY(1) ON 'Define D Sharp/E Flat ON KEY(2) GOSUB EFlat KEY(2) ON 'Define F Sharp/G Flat ON KEY(4) GOSUB FSharp KEY(4) ON 'Define G Sharp/A Flat ON KEY(6) GOSUB AFlat KEY(6) ON 'Define A Sharp/B Flat ON KEY(7) GOSUB BFlat KEY(7) ON 'Define High C Sharp/D Flat ON KEY(9) GOSUB HCSharp KEY(9) ON 'Define Style KEY 25, CHR$(0) + CHR$(15) ON KEY(25) GOSUB SetStyle KEY(25) ON '****End Key Definitions**** PRINT "Press Esc to quit." PRINT PRINT GOSUB octave WHILE INKEY$ <> CHR$(ESC) WEND END Lower: PLAY "<" octave = octave - 1 IF octave < 1 THEN octave = 1 END IF GOSUB octave RETURN Raise: PLAY ">" octave = octave + 1 IF octave > 7 THEN octave = 7 END IF GOSUB octave RETURN A: PLAY "a16" RETURN B: PLAY "b16" RETURN C: PLAY "c16" RETURN D: PLAY "d16" RETURN E: PLAY "e16" RETURN F: PLAY "f16" RETURN G: PLAY "g16" RETURN HighC: PLAY ">c16<" RETURN CSharp: PLAY "c#16" RETURN EFlat: PLAY "e-16" RETURN FSharp: PLAY "f#16" RETURN AFlat: PLAY "a-16" RETURN BFlat: PLAY "b-16" RETURN HCSharp: PLAY ">c#16<" RETURN octave: CLS PRINT COLOR 15 PRINT , , "Piano v1.0 by SCUEY" PRINT : PRINT : PRINT : PRINT : PRINT COLOR 7 PRINT "Octave:"; PRINT octave PRINT : PRINT : PRINT : PRINT : PRINT : PRINT PRINT : PRINT : PRINT : PRINT : PRINT : PRINT PRINT : PRINT PRINT "Press Tab to change style, Esc to exit." RETURN SetStyle: 1 INPUT "Do you want to play in (n)ormal, (l)egato, or (s)taccato style"; style$ IF style$ = "n" THEN PLAY "mn" ELSEIF style$ = "l" THEN PLAY "ml" ELSEIF style$ = "s" THEN PLAY "ms" ELSE GOTO 1 END IF GOSUB octave RETURN