Compucolor.org – Virtual Media

Listing of file='SOUNDC.BAS;01' on disk='vmedia/intro_to_soundware-sector.ccvf'

100 REM  ** SOUND COMPOSER - MODIFIED JULY 19,79 **
110 REM              COPYRIGHT  4-79
120 REM              CAP ELECTRONICS
130 REM 
140 TM= PEEK (32940)+ PEEK (32941)* 256:POKE 32936,3
150 IF TM> 1024* 64- 4THEN LOAD "PATCH":RUN
160 IF PEEK (TM+ 180)< > 241THEN LOAD "PATCH":RUN
170 DA= TM+ 8:AD= 33283:GOSUB 60000
180 CLEAR 100
190 BD$= "twtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwtwt"
200 BL$= "                                                            "
210 P= 100:D= 500:NS= 0:S1= 0:S2= 0
220 OUT 8,247
230 REM   SOUND EXPERIMENTER
240 PLOT 6,7,12,15
250 GOSUB 890
260 TM= PEEK (32940)+ 256* PEEK (32941)+ 1
270 PRINT "                                                              "
280 PLOT 14,3,1,2
290 PRINT "    cf tu ab pb nu ab ~| {d {e    tf tu pq {d tu cf {e {d     "
300 PLOT 3,1,4
310 PRINT "    gd vw vw as lw rs no a| l    vi vw ab a  vw gd l a|     "
320 PLOT 3,1,6
330 PRINT "                                                              "
340 PLOT 3,1,6,15
350 PRINT "                      BY CAP ELECTRONICS                      "
360 POKE TM,50:POKE TM+ 2,15:POKE TM+ 4,0
370 REM     SCREEN FILLER
380 PLOT 15,6,0:N= 11
390 PLOT 3,3,N:PRINT "TO EXPERIMENT WITH SOUNDS YOU CAN ENTER:"
400 PLOT 3,8,N+ 1:PRINT "PITCH,DURATION,#STEPS,STEPSIZE1,STEPSIZE2"
410 PLOT 3,8,N+ 2:PRINT "(1-999),(1-9999),(0-255),(0-255),(0-255)"
420 PLOT 3,3,N+ 4:PRINT "SOME EXAMPLES ARE:"
430 PLOT 3,8,N+ 5:PRINT "1.   TONE      100,500,0,0,0"
440 PLOT 3,8,N+ 6:PRINT "2.   GLISSANDO 255,2,253,255,0"
450 PLOT 3,8,N+ 7:PRINT "3.   SAUCER    250,25,249,5,249"
460 PLOT 3,3,N+ 9:PRINT "ENTER 1 2 OR 3  TO HEAR AN EXAMPLE"
470 PLOT 3,9,N+ 10:PRINT "E  TO ENTER A NEW SOUND"
480 PLOT 3,9,N+ 11:PRINT "R  TO REPEAT THE PREVIOUS SOUND"
490 PLOT 3,9,N+ 12:PRINT "Q  TO QUIT"
500 PLOT 3,9,N+ 13:PRINT "M  TO GO TO THE MENU"
510 PLOT 3,1,26:PRINT BL$
520 PLOT 3,3,26:PRINT "PRESS YOUR CHOICE - ";:OUT 8,255:CH= CALL (2):OUT 8,255
530 CH$= CHR$ (CH):PRINT "";CH$;""
540 REM     CHOOSER
550 IF CH$= "R"THEN GOSUB 750:GOTO 510
560 IF VAL (CH$)< > 0THEN 680
570 X= CALL (0)
580 IF CH$= "0"THEN 510
590 IF CH$= "Q"THEN GOSUB 790:GOTO 830
600 IF CH$= "E"THEN PLOT 3,3,28:GOTO 630
610 IF CH$= "M"THEN GOSUB 790:GOTO 850
620 GOTO 510
630 PRINT BL$:PLOT 3,3,28
640 OUT 8,255
650 INPUT "PITCH,DUR,#STEPS,SS1,SS2 = ";P,D,NS,S1,S2
660 OUT 8,247
670 GOSUB 1070:GOSUB 740:GOTO 510
680 NN= VAL (CH$)
690 IF NN= 1THEN GOSUB 980:GOTO 510
700 IF NN= 2THEN GOSUB 1010:GOTO 510
710 IF NN= 3THEN GOSUB 1040:GOTO 510
720 X= CALL (0):GOTO 510
730 RETURN
740 REM     SOUND POKER
750 AD= TM:DA= P:GOSUB 60000
760 AD= TM+ 2:DA= D:GOSUB 60000
770 POKE TM+ 4,NS:POKE TM+ 5,S1:POKE TM+ 6,S2
780 XX= CALL (0):RETURN
790 REM   ENDING
800 X= 2:Y= 10:H= 20:W= 60:C= 1:GOSUB 60030
810 FOR NN= 1TO 20:XC= CALL (1):NEXT
820 RETURN
830 PLOT 3,22,19,14
840 PRINT "BYE BYE, COME AGAIN":PLOT 27,11,15:END
850 REM  GOTO THE MENU
860 PLOT 3,22,19,14
870 PRINT "BACK TO THE MENU"
880 LOAD "MENU":RUN
890 REM        BORDER DRAWER
900 PLOT 6,0,12,15,3,0,0
910 PLOT 6,10,27,24
920 PRINT BD$:PLOT 3,0,8:PRINT BD$:PLOT 3,0,31:PRINT BD$
930 PLOT 27,10,3,0,0:PRINT BD$
940 PLOT 3,63,0:PRINT BD$
950 PLOT 27,24,3,1,1
960 POKE TM,50:POKE TM+ 2,15
970 RETURN
980 REM     TONE
990 P= 100:D= 500:NS= 0:S1= 0:S2= 0
1000 GOSUB 1070:GOSUB 740:RETURN
1010 REM       GLISSANDO
1020 P= 255:D= 2:NS= 253:S1= 255:S2= 0
1030 GOSUB 1070:GOSUB 740:RETURN
1040 REM        SAUCER
1050 P= 250:D= 25:NS= 249:S1= 5:S2= 249
1060 GOSUB 1070:GOSUB 740:RETURN
1070 PLOT 3,3,28:PRINT "PITCH,DUR,#STEPS,SS1,SS2 = ";
1080 PRINT P;",";D;",";NS;","S1;","S2;"           "
1090 RETURN
60000 Z1= INT (DA/ 256):Z2= DA- Z1* 256
60010 POKE AD,Z2:N= N+ 1:POKE AD+ 1,Z1:RETURN
60020 DATA 175,87,50,255,129,193,225,241,201,201,300
60030 REM       SCROLLING SUBROUTINE
60040 DA= 28672+ 128* Y+ X+ X:AD= TM+ 126:GOSUB 60000
60050 DA= 128- W- W:AD= TM+ 149:GOSUB 60000
60060 POKE TM+ 129,H- 1:POKE TM+ 131,W* (C+ 1)
60070 POKE TM+ 143,35* (1- C):RETURN