home *** CD-ROM | disk | FTP | other *** search
- { SONG.PAS - Demo of music and drum routines for Tandy 1000 and/or PCJr }
-
- uses noiz,drums;
-
- procedure check_key(var ch: char);
- begin
- if keyhit then
- begin
- ch:=upcase(fkey);
- case ch of
- '1': roto1(10,1);
- '2': roto2(6,10);
- '3': roto5(8,0,5);
- '4': snare(10,2);
- '5': begin
- snare(4,8); snare(8,2); snare(4,4);
- end;
- 'Q',
- #27: begin
- up(1,19,1); sound(e1); wait(50);
- chord(e3,b3,fs4,32,17);
- sound(e2); echo(80,long); writeln;
- quiet; halt;
- end;
- 'F': begin
- writeln; quiet; halt;
- end;
- end;
- end;
- end;
-
- procedure beat;
- var
- i,j: integer;
- ch: char;
- begin
- i:=0; j:=0;
- repeat
- check_key(ch);
- inc(i); inc(j);
- case i of
- 10: begin
- quiet;
- roto5(8,20,2); sims(10,1);snare(8,2); tom(4,4); lowtom(8,2);
- i:=0; j:=0;
- end;
- end;
- case j of
- 1: chord(d4,fs4,b5,1,14);
- 2: chord(c4,g4,d4,1,14);
- 3: chord(a4,cs4,fs4,1,14);
- 4: chord(d4,a4,d5,1,14);
- 5: begin
- snare(2,5); lowtom(1,10);
- roto1(2,2); roto2(2,20);
- j:=0;
- end;
- end;
- sound(a2); bass(1,10);
- sound(b2); snare(1,10);
- sound(g2); lowtom(2,5);
- sound(e2); snare(1,10);
- until true = false;
- end;
-
- procedure main;
- const
- ray: array[1..8] of string[80] =
- ('1) Roto 1',
- '2) Roto 2',
- '3) Roto 5',
- '4) Snare roll',
- '5) Snare lick',
- 'Q) Quit with Ending',
- 'ESC) Quit with Ending',
- 'F) Halt with no Ending');
-
- var
- i: integer;
-
- begin
- writeln(#10' - Menu -'#10);
- for i:=1 to 8 do writeln(' '+ray[i]);
- write(#10' Command [1,2,3,4,5,Q,F]: ');
- beat;
- end;
-
- begin
- drums.inturbo:=false; noiz.inturbo:=false;
- main;
- end.