22.09.2015 Views

of Microprocessors

Musical-Applications-of-Microprocessors-2ed-Chamberlin-H-1987

Musical-Applications-of-Microprocessors-2ed-Chamberlin-H-1987

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

LOW-COST SYNTHESIS TECHNIQUES 763<br />

0001 0000<br />

0002 0000<br />

0003 0000<br />

0004 0000<br />

0005 0000<br />

0006 0000<br />

0007 0000<br />

0008 BFFI<br />

0009 0000<br />

0010 0000<br />

0011 0000 0000<br />

0012 0002 0000<br />

0013 0004 0000<br />

0014 0006 0000<br />

0015 0008 00<br />

0016 0009 00<br />

0017 OOOA 0000<br />

0018 OOOC 00<br />

0019 0000 0000<br />

0020 OOOF 00<br />

0021 0010 0000<br />

0022 0012 00<br />

0023 0013 0000<br />

0024 0015 00<br />

0025 0016<br />

0026 0016<br />

0027 0700 AOOO<br />

0028 0702 A608<br />

0029 0704 BlOC<br />

0030 0706 8DFlBF<br />

0031 0709 A50A<br />

0032 070B 6500<br />

0033 0700 850A<br />

0034 070F ASOB<br />

0035 0711 6501<br />

0036 0713 850B<br />

0037 Oll5 BI0F<br />

0038 0717 8DFIBF<br />

0039 OllA ASOD<br />

0040 onc 6502<br />

0041 071E 8500<br />

0042 0720 A50E<br />

0043 0722 6503<br />

0044 0724 850E<br />

0045 0726 B1l2<br />

0046 0728 8DFIBF<br />

0047 072B A510<br />

0048 0720 6504<br />

0049 072F 8510<br />

0050 0731 A511<br />

0051 0733 6505<br />

0052 0735 8511<br />

0053 0737 B1l5<br />

0054 0739 8DFIBF<br />

0055 073C A513<br />

0056 073E 6506<br />

0057 0740 8513<br />

0058 0742 A514<br />

0059 0744 6507<br />

0060 0746 8514<br />

4-VOICE WAVEFORM TABLE SCAN SYNTHESIS SUBROUTINE FOR 6502<br />

CALL WITH 4 FREQUENCY PARAMETERS IN FREQI-FREQ4<br />

TONE FREQUENCY = (FREQ PARM)*.12715 HZ<br />

CALL ALSO WITH TEMPO AND OUR SET; OUR IS ZEROED ON RETURN<br />

CHORD DURATION = TEMPO*DUR*.00012 SECONDS<br />

SAMPLE PERIOD = 120US = 8.33KS/S FOR IMHZ PROCESSOR CLOCK<br />

PORT<br />

FREQI<br />

FREQ2<br />

FREQ3<br />

FREQ4<br />

TEMPO<br />

OUR<br />

VIPT<br />

VITAB<br />

nPT<br />

nTAB<br />

V3PT<br />

V3TAB<br />

V4PT<br />

V4TAB<br />

CHORD<br />

CHORDO<br />

CHORDI<br />

*= 0<br />

. WORD 0<br />

.WORD 0<br />

.WORD 0<br />

.WORD 0<br />

. BYTE 0<br />

.BYTE 0<br />

.WORD 0<br />

. BYTE 0<br />

•WORD 0<br />

.BYTE 0<br />

.WORD 0<br />

.BYTE 0<br />

.WORD 0<br />

.BYTE 0<br />

$BFFI<br />

*= $700<br />

LOY flo<br />

LOX TEMPO<br />

LOA (VITAB),Y<br />

STA PORT<br />

LOA VIPT<br />

ADC FREQI<br />

STA VIPT<br />

LDA VIPT+l<br />

ADC FREQl+l<br />

STA VIPT+l<br />

LDA (V2TAB),Y<br />

STA PORT<br />

LOA V2PT<br />

ADC FREQ2<br />

STA V2PT<br />

LOA V2PT+l<br />

ADC FREQ2+l<br />

STA V2PT+l<br />

LOA (V3TAB),Y<br />

STA PORT<br />

LOA V3PT<br />

ADC FREQ3<br />

STA V3PT<br />

LOA V3PT+l<br />

ADC FREQ3+l<br />

STA V3PT+l<br />

LOA (V4TAB),Y<br />

STA PORT<br />

LOA V4PT<br />

ADC FREQ4<br />

STA V4PT<br />

LOA V4PT+l<br />

ADC FREQ4+l<br />

STA V4PT+l<br />

OUTPUT PORT BITS TO D-TO-A CONVERTER<br />

STORAGE MUST BE IN PAGE 0 FOR SPEED<br />

FREQUENCY PARAMETER FOR VOICE 1<br />

FREQUENCY PARAMETER FOR VOICE 2<br />

FREQUENCY PARAMETER FOR VOICE 3<br />

FREQUENCY PARAMETER FOR VOICE 4<br />

CONTROLS TEMPO, NORMALLY STATIC<br />

CONTROLS CHORD DURATION<br />

VOICE 1 WAVE TABLE POINTER<br />

VOICE 1 WAVEFORM TABLE PAGE ADDRESS<br />

VOICE 2<br />

VOICE 3<br />

VOICE 4<br />

KEEP Y=O FOR INDIRECT ADDRESSING<br />

SET X TO TEMPO COUNT<br />

GET SAMPLE FROM VOICE 1 WAVE TABLE<br />

OUTPUT TO THE DAC<br />

ADD THE VOICE 1 FREQUENCY PARAMETER<br />

TO THE VOICE 1 WAVE TABLE POINTER<br />

LOWER BYTE<br />

UPPER BYTE<br />

REPEAT FOR VOICE 2<br />

USE TIME-DIVISON MULTIPLEXING TO<br />

MIX THE 4 VOICES<br />

REPEAT FOR VOICE 3<br />

CARRY NOT CLEARED PRIOR TO ADDING<br />

FREQUENCY TO POINTER TO SAVE TIME<br />

ALSO INTRODUCES SLIGHT RANDOM<br />

FREQUENCY ERROR WHICH LIVENS UP<br />

THE SOUND<br />

REPEAT FOR VOICE 4<br />

VOICE 4 IS SOMEWHAT LOUDER SINCE ITS<br />

SAMPLE "DWELLS" IN THE DAC LONGER<br />

Fig. 20-2. Simplified four-voice waveform table scan for 6502

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!