This file is part of Byte Power Spring 1987
. Download the collection to get this file.
Content
Source Code
0
1 REM TRI-VOICE (BEEP)
2 REM RESET 1987 BYTE POWER
3 REM WRITTEN BY K. BOISVERT
4
5 REM INITIALISE VARIABLES
6 LET A=0: LET A1=0: LET B=0: LET B1=0: LET C=0: LET C1=0
10 LET V1=50000: LET V2=50114: LET V3=50372
19 REM GET FIRST NOTES
20 GO SUB 100: GO SUB 200: GO SUB 300
29 REM COUNTER FOR VOICE 1 IF 0 THEN GET NEXT NOTE
30 LET A1=A1-1: IF A1=0 THEN GO SUB 100
34 REM COUNTER FOR VOICE 2 IF 0 THEN GET NEXT NOTE
35 LET B1=B1-1: IF B1=0 THEN GO SUB 200
39 REM COUNTER FOR VOICE 3 IF 0 THEN GET NEXT NOTE
40 LET C1=C1-1: IF C1=0 THEN GO SUB 300
41 REM CHECK IF END OF MUSIC YOU MAY NEED TO CHANGE THIS FOR YOUR OWN WAY OF KNOWING WHEN MUSIC IS FINISHED
42 IF A=255 THEN STOP
44 REM SPECIAL CHECK SINCE 3 VOICE MUSIC 2 VOICES CAN BE OFF AT THE SAME TIME!
45 IF A>=254 AND B>=254 AND B>=254 THEN PAUSE 1: GO TO 30
46 IF B>=254 AND C>=254 THEN LET C=A: LET B=A
47 IF A>=254 AND B>=254 THEN LET A=C: LET B=C
48 IF C>=254 AND A>=254 THEN LET C=B: LET B=B
49 REM IF ONLY VOICE 1 IS A PAUSE THEN PLAY THE SAME NOTE AS VOICE 2 BUT STILL USING COUNTER FOR VOICE 1
50 IF A>=254 THEN LET A=B
54 REM IF ONLY VOICE 2 IS A PAUSE THEN PLAY THE SAME NOTE AS VOICE 3 BUT STILL USING COUNTER FOR VOICE 2
55 IF B>=254 THEN LET B=C
56 REM IF ONLY VOICE 3 IS A PAUSE THEN PLAY THE SAME NOTE AS VOICE 1 BUT STILL USING COUNTER FOR VOICE 3
57 IF C>=254 THEN LET C=A
59 REM PLAY THE NOTES ONE RIGHT AFTER THE OTHER A-36 AND B-36 MEANS MUSIcomp DATA -36 (TO GET THE RIGHT NOTE, SEE SEE MUSIcomp V1.1) IF YOU PUT YOUR OWN DATA YOU WILL NOT NEED TO ALTER THE VALUES OF A OR B. IF YOU WANT AN OCTAVE HIGHER, JUST ADD [-/+] 12 TIMES THE # OF OCTAVES TO BE ADDED OR SUBSTRACTED. IE:IF YOU WANT 3 OCTAVES LOWER, SUBSTRACT 36.
60 BEEP .014,A-36: BEEP .019,B-36: BEEP .014,C-36
69 REM COMPLETE LOOP
70 GO TO 30
99 REM IF VOICE FINISHED THEN DO NOT GET ANY MORE NOTES
100 IF A=255 THEN RETURN
109 REM GET NEXT NOTE OF VOICE1
110 LET A=PEEK V1: LET A1=PEEK (V1+1): LET V1=V1+2
120 RETURN
199 REM IF VOICE FINISHED THEN DO NOT GET ANY MORE NOTES
200 IF B=255 THEN RETURN
209 REM GET NEXT NOTE OF VOICE2
210 LET B=PEEK V2: LET B1=PEEK (V2+1): LET V2=V2+2
220 RETURN
299 REM IF VOICE FINISHED THEN DO NOT GET ANY MORE NOTES
300 IF C=255 THEN RETURN
309 REM GET NEXT NOTE OF VOICE3
310 LET C=PEEK V3: LET C1=PEEK (V3+1): LET V3=V3+2
320 RETURN
8999 REM LOADER
9000 LOAD "TRI-MUSIC"CODE 5E4,495: RUN
9998 REM SAVE PROGRAM
9999 SAVE "TRI-VOICE" LINE 9000: SAVE "TRI-MUSIC"CODE 5E4,495
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.
