Tri-Voice (Beep)

This file is part of Byte Power Spring 1987 . Download the collection to get this file.
Developer(s): Kristian Boisvert
Date: 1987
Type: Program
Platform(s): TS 2068
Tags: Sound

Content

Appears On

Tape-based magazine.

Related Products

Related Articles

Last month we thought we were finished with the SOUND EFFECTS but we found a method of creating a simulated...

Related Content

Image Gallery

Tri-Voice (Beep)

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.

Scroll to Top