Cari Amici,
Il programma che segue utilizza il C64 come un generatore di note...sfrutta le enormi potenzialità del SID (il suo integrato sonoro). E' interamente scritto in basic 2.0 ed è suddiviso in due funzionalità. All'inizio un menù permette di accedere o ad un piano elettronico oppure ad un editor di suoni. Per mezzo dell'editor di suoni si possono inserire note (fino a 1000) che verranno poi suonate in sequenza...
10 poke775,191:clr:print chr$(147):poke53280,3:poke53281,3:a1$="Programma by Pastore Carlo"
20 a2$="(c) 1990":a3$="Premi un tasto":aa=len(a1$):bb=len(a2$):cc=len(a3$)
30 print"qqq]]] in reverse": for i=1 to aa:for j=1 to 50:next j:print mid$(a1$,i,1);:next
40 print"q in reverse":for i = 1 to bb : for j = 1 to 50 : next j : print mid$ (a,i,1):next 45 fori=1to600:next
50 print"q in reverse":fori=1tocc:forj=1to50:nextj:print mid$(a3$,i,1);:next
60 poke198,0:wait198,1:print chr$(147):poke646,1:poke53280,0:poke53281,0:poke198,0
70 print"5 q in reverse 5 ]Menù :":print"3 q in reverse 8 ]1- Music editor"
80 print"2 q in reverse 8 ]2- Piano elettronico" 90 get d$="": if d$="" then
90 100 if d$="1" then 1000 110 if d$="2" then 10000 120 if d$<>"1" or d$<>"2" then 90
1000 print chr$(147):poke 646,1
1010 input"3 q in reverse Quante note vuoi inserire (1-1000)";z
1020 if z<1 or z>1000 then 1000 1030 dim x(z),y(z):n=0
1040 if n=z then 1150
1041 n=n+1
1050 input"cuore in reverse Qual'è la nota";x$
1060 if x$="do" then x(n)=33:y(n)=135:goto 1040
1070 if x$="re" then x(n)=37:y(n)=162:goto 1040
1080 if x$="mi" then x(n)=42:y(n)=62:goto 1040
1090 if x$="fa" then x(n)=44:y(n)=193:goto 1040
1100 if x$="sol" then x(n)=50:y(n)=60:goto 1040
1110 if x$="la" then x(n)=56:y(n)=99:goto 1040
1120 if x$="si" then x(n)=63:y(n)=75:goto 1040
1121 if x$="hd" then x(n)=67:y(n)=15:goto 1040
1130 if x$<>"do" or x$<>"re" or x$<>"mi" or x$<>"fa" or x$<>"sol" then 1040
1140 if x$<>"la" or x$<>"si" or x$<>"hd" then 1040
1150 poke646,7:print chr$(147):print"suono il motivo (s/n) ?"
1160 get r$:if r$="" then 1160
1170 if r$="s" then 1190
1180 clr:print chr$(147):goto 70
1190 sid=54272:fori=0to24:pokesid+i,0:next 1191 print chr$(147):input"Volume (0-15)";v
1192 if v<0 or v>15 then v=15
1193 input "2 q in reverse Forma d'onda (17-33-65-129)";q
1200 print chr$(147):pokesid+24,v:pokesid+5,31:pokesid+6,31:pokesid+4,q
1210 fori=1ton:pokesid+1,x(i):pokesid,y(i):pokesid+4,q:forh=1to180:nexth
1220 pokesid+4,q-1:forj=1to20:nextj:nexti:pokesid+24,0:pokesid+4,q-1
1230 print chr$(147):input"Ancora";s$ 1240 if s$="si" then 1200
1250 clr:print chr$(147):poke646,1:goto 70
10000 w1$="Piano elettronico":w2$="Programma by Pastore Carlo (c) 1990"
10001 xx=len(w1$):yy=len(w2$):print"2 q in reverse";chr$(147)
10002 fori=1toxx:forj=1to50:nextj:print mid$(w1$,i,1);:next
10003 print"q in reverse":for i=1toyy:forj=1to50:nextj:print mid$(w2$,i,1);:next
10010 print"s in reverse 6 q in reverse Q = do - W = re - E = mi - R = fa"
10020 print"q in reverse T = sol - Y = la - U = si - I = do (alto)"
10021 print"q in reverse A = do# - S = re# - D = fa# - F = sol#"
10022 print"q in reverse G = la#":poke198,0
10030 sid=54272:fori=0to24:pokesid+i,0:next:pokesid+24,15:pokesid+4,17
10031 pokesid+5,10:pokesid+6,10
10040 get z$:if z$="" then 10040
10050 if z$="q" then pokesid+4,17:goto 12000
10060 if z$="w" then pokesid+4,17:goto 12010
10070 if z$="e" then pokesid+4,17:goto 12020
10080 if z$="r" then pokesid+4,17:goto 12030
10090 if z$="t" then pokesid+4,17:goto 12040
10100 if z$="y" then pokesid+4,17:goto 12050
10110 if z$="u" then pokesid+4,17:goto 12060
10120 if z$="i" then pokesid+4,17:goto 12070 10130 if z$="a" then pokesid+4,17:goto 12080
10140 if z$="s" then pokesid+4,17:goto 12090
10150 if z$="d" then pokesid+4,17:goto 12100
10160 if z$="f" then pokesid+4,17:goto 12110
10170 if z$="g" then pokesid+4,17:goto 12120
10171 if z$="1" then print chr$(147):clr:end
10180 if z$<>"q" or z$<>"w" or z$<>"e" or z$<>"r" or z$<>"t" then 10040
10190 if z$<>"y" or z$<>"u" or z$<>"i" or z$<>"a" or z$<>"s" then 10040
10200 if z$<>"d" or z$<>"f" or z$<>"g" or z$<>"1" then 10040
12000 pokesid+1,33:pokesid,135:fori=1to180:next:pokesid+4,16:goto 10040
12010 pokesid+1,37:pokesid,162:fori=1to180:next:pokesid+4,16:goto 10040
12020 pokesid+1,42:pokesid,62:fori=1to180:next:pokesid+4,16:goto 10040
12030 pokesid+1,44:pokesid,193:fori=1to180:next:pokesid+4,16:goto 10040
12040 pokesid+1,50:pokesid,60:fori=1to180:next:pokesid+4,16:goto 10040
12050 pokesid+1,56:pokesid,99:fori=1to180:next:pokesid+4,16:goto 10040
12060 pokesid+1,63:pokesid,75:fori=1to180:next:pokesid+4,16:goto 10040
12070 pokesid+1,67:pokesid,15:fori=1to180:next:pokesid+4,16:goto 10040
12080 pokesid+1,35:pokesid,134:fori=1to180:next:pokesid+4,16:goto 10040
12090 pokesid+1,39:pokesid,223:fori=1to180:next:pokesid+4,16:goto 10040
12100 pokesid+1,47:pokesid,107:fori=1to180:next:pokesid+4,16:goto 10040
12110 pokesid+1,53:pokesid,57:fori=1to180:next:pokesid+4,16:goto 10040
12120 pokesid+1,59:pokesid,190:fori=1to180:next:pokesid+4,16:goto 10040