PROGRAM SCALE

? Uses Only The Left Channel

? plays the sounds of the musical scale...
? begins with C four octaves below middle C (523 Hz) and
? ends with C two octaves above middle C.

? Plays These 5 Times-First TONE Wave, Then Sawtooth Wave, Then Square Wave
? Then SineWave, Then Noise Wave

INTEGER I,J
WORD NOTE(43)
BYTE WAVESAW(12),WAVESQUARE(8),WAVESIN(12),WAVENOISE(12)

DATA (NOTE,33,37,41,44,49,55,62,65,73,82,87,98,110,123,131)
DATA (147,165,175,196,220,247,262,294,330,349,392,440,494,523,587,659)
DATA (698,784,880,988,1047,1175,1319,1397,1568,1760,1976,2093)
DATA (WAVESAW,0,64,127,96,64,32,0,-32,-64,-96,-127,-64)
DATA (WAVESQUARE,64,64,64,64,-64,-64,-64,-64)

? play each note in scale for 1/2 second
? use default TONE function with sine waveform

PRINT "If You Have A Speaker Hooked Up...Let The Music Begin!"

FOR J=1 TO 43
   I=TONE(1,NOTE(J),25,64)
NEXT J



? play each note in scale for 1/2 second
? use WAVE function initialized with sawtooth waveform

I=WAVE(12,WAVESAW)
IF I=0 THEN GOTO NoFreeMem

FOR J=1 TO 43
   I=SOUND(1,NOTE(J),25,64)
NEXT J
I=WAVE_END()



? play each note in scale for 1/2 second
? use WAVE function initialized with square waveform

I=WAVE(8,WAVESQUARE)
IF I=0 THEN GOTO NoFreeMem

FOR J=1 TO 43
   I=SOUND(1,NOTE(J),25,64)
NEXT J
I=WAVE_END()



? play each note in scale for 1/2 second
? use WAVE function initialized with sine harmonics waveform

FOR I=1 TO 12
   WAVESIN(I)=INT(32*SIN(2*PI*I/12.0)+32*SIN(2*PI*I/6.0)+32*SIN(2*PI*I/4.0))
NEXT I

I=WAVE(12,WAVESIN)
IF I=0 THEN GOTO NoFreeMem

FOR J=1 TO 43
   I=SOUND(1,NOTE(J),25,64)
NEXT J
I=WAVE_END()



? play each note in scale for 1/2 second
? use WAVE function initialized with random noise waveform

FOR J=1 TO 12
   WAVENOISE(J)=(RANDOM()\255)-128
NEXT J

I=WAVE(12,WAVENOISE)
IF I=0 THEN GOTO NoFreeMem

FOR J=1 TO 43
   I=SOUND(1,NOTE(J),25,64)
NEXT J
I=WAVE_END()

{NoFreeMem}
END
