10 '------------------------------
20 ' CPC MUSIC 30 '------------------------------ 40 DIM d(300) 50 CLS 60 BORDER 1 70 INK 0,0:INK 1,1:PAPER 1: INK 2,9:PEN 2 80 CLS 90 PRINT" CPC MUSIC " 100 WINDOW 8,32,5,21 110 PAPER 0 120 CLS 130 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT 140 PRINT 150 PRINT" CPC MUSIC " 160 PRINT 170 GOSUB 1610 180 PRINT " UN PROGRAMME" 190 GOSUB 1610 200 PRINT 210 PRINT " POUR AMSTRAD CPC464" 220 GOSUB 1610 230 PRINT 240 PRINT " ECRIT PAR" 250 PRINT 260 GOSUB 1610 270 PRINT " YVES L'HOMER" 280 PRINT 290 GOSUB 1610 300 PRINT " TAPEZ UNE TOUCHE" 310 PRINT 320 GOSUB 1610 330 PRINT " POUR COMMENCER " 340 PRINT 350 GOSUB 1610 360 GOSUB 1610 370 GOTO 140 380 MODE 1 390 BORDER 0 400 z=2 410 ws=0 420 INK 1,18:PEN 1 430 INK 0,2:PAPER 0 440 BORDER 1 450 ' 460 '--- presentation --- 470 480 CLS 490 WINDOW #1,1,40,8,13 500 WINDOW #3,1,40,22,25 510 CLS#1 520 CLS#3 530 ' 540 '--- composition --- 550 ' 560 PRINT" CPC MUSIC " 570 PAPER #1,1 580 PEN #1,2 590 PEN #3,2 600 PAPER #3,1 610 PRINT #3," tapez enter pour valider " 620 REM PRINT #1," " 630 LOCATE 5,10:INPUT#1," entrez le nombre de notes que vous voulez entendre jouer par l'amstrad puis tapez enter (nombre maximum 44)";nn 640 PRINT #1,"" 650 PRINT #1," tapez <1> puis <enter> pour avoir un do,<2>..re,<3>..mi,<4>..fa,<5>..sol,<6>..la,<7>..si,<8>..do,<9>..re, <10>..mi,<11>..fa" 660 FOR i=1 TO nn 670 INPUT #1,"note ",d(i) 680 IF d(i)>11 OR d(i)<1 THEN GOTO 670 690 IF d(i)=1 THEN PRINT #1, " do" 700 IF d(i)=2 THEN PRINT #1, " re" 710 IF d(i)=3 THEN PRINT #1, " mi" 720 IF d(i)=4 THEN PRINT #1, " fa" 730 IF d(i)=5 THEN PRINT #1," sol" 740 IF d(i)=6 THEN PRINT #1," la" 750 IF d(i)=7 THEN PRINT #1," si" 760 IF d(i)=8 THEN PRINT #1," do+" 770 IF d(i)=9 THEN PRINT #1," re+" 780 IF d(i)=10 THEN PRINT #1," mi+" 790 IF d(i)=11 THEN PRINT #1," fa+" 800 NEXT 810 GOSUB 1550 820 CLS 830 v=7 840 GOSUB 1460 850 FOR i=1 TO nn 860 IF d(i)=1 THEN f=261.626 870 IF d(i)=2 THEN f=293.665 880 IF d(i)=3 THEN f=329.628 890 IF d(i)=4 THEN f=349.228 900 IF d(i)=5 THEN f=391.995 910 IF d(i)=6 THEN f=440 920 IF d(i)=7 THEN f=493.883 930 IF d(i)=9 THEN f=587.33 940 IF d(i)=8 THEN f=523.251 950 IF d(i)=10 THEN f=659.255 960 IF d(i)=11 THEN f=698.457 970 GOSUB 1140 980 NEXT 990 PRINT 1000 INPUT #3," voulez vous rejouer le morceau <1> creer un autre morceau <2> changer le tempo du morceau <3>",ws 1010 IF ws<1 OR wf>2 THEN GOTO 1000 1020 REM PAPER 0:PEN 1 1030 REM BORDER 0 1040 IF ws=2 GOTO 60 1050 IF ws=3 THEN GOSUB 1550 1060 IF ws=1 OR ws=3 THEN z=2 1070 IF ws=1 OR Ws=3 THEN CLS 1080 IF ws=1 OR ws=3 GOTO 840 1090 END 1100 ' 1110 '--- execution du morceau --- 1120 ' 1130 MODE 1 1140 k=236 1150 SOUND 1,f,d,v 1160 SOUND 1,1,20,1 1170 REM INK 2,13 1180 REM INK 3,0 :PEN 3 1190 IF d(i)=1 THEN hh=7 1200 IF d(i)=2 THEN hh=6 1210 IF d(i)=3 THEN hh=5 1220 IF d(i)=4 THEN hh=4 1230 IF d(i)=5 THEN hh=3 1240 IF d(i)=6 THEN hh=2 1250 IF d(i)=7 THEN hh=1 1260 IF d(i)=8 THEN hh=0 1270 IF d(i)=9 THEN hh=-1 1280 IF d(i)=10 THEN hh=-2 1290 IF d(i)=11 THEN hh=-3 1300 IF i=9 THEN Z=2 1310 IF i=9 THEN CLS 1320 IF i=18 THEN z=2:IF i=18 THEN CLS 1330 IF i=27 OR i=36 THEN z=2:IF i=27 OR i=36 THEN CLS 1340 IF i=9 OR i=18 THEN GOSUB 1460 1350 IF i=27 OR i=36 THEN GOSUB 1460 1360 IF i=45 OR i=54 THEN GOSUB 1460 1370 IF i=45 OR i=54 THEN CLS 1380 z=z+4 1390 hh=hh+5 1400 INK 0,13:PAPER 0 1410 INK 2,0:PEN 2 1420 LOCATE z,hh:PRINT CHR$(k) 1430 RETURN 1440 ' 1450 '--- porte --- 1460 ' 1470 PLOT 3,228:DRAW 3,355 1480 PLOT 6,228:DRAW 6,355 1490 PLOT 0,228:DRAW 640,228:PLOT 0,260:DRAW 640,260:PLOT 0,292:DRAW 640,292 1500 PLOT 0,324:DRAW 640,324:PLOT 0,356:DRAW 640,356 1510 RETURN 1520 ' 1530 '--- tempo --- 1540 ' 1550 INPUT #1,"voulez vous un tempo lent <1> un tempo moyen <2> un tempo rapide <3> ";te 1560 IF te<1 OR te>3 GOTO 1550 1570 IF te=2 THEN d=25 1580 IF te=3 THEN d=12 1590 IF te=1 THEN d=50 1600 RETURN 1610 FOR t=1 TO 40: CALL &BD19:NEXT 1620 GOSUB 1640 1630 RETURN 1640 bb$=INKEY$:IF bb$="" THEN RETURN ELSE GOTO 380 |