Title: | * * Computer Music, MIDI, and Related Topics * * |
Notice: | Conference has been write-locked. Use new version. |
Moderator: | DYPSS1::SCHAFER |
Created: | Thu Feb 20 1986 |
Last Modified: | Mon Aug 29 1994 |
Last Successful Update: | Fri Jun 06 1997 |
Number of topics: | 2852 |
Total number of notes: | 33157 |
I couldn't find the PDP11 music note I thought there was, so here it is . I have made a PDP-11/23 (not a +) with an AAV11-C 12-bit D/A running RT11 5.4B play 4-part wave-table synthesis music at 7.9 kHz sampling rate. I have entered the first 12 bars of the Rite of Spring introduction (you can hear the difference between bassoon and clarinet and horn), the prelude from the G major cello suite of Bach, and misc. other stuff of mine and Jingle Bells. If you want to visit and hear it at LMO2 at 111 Locke Marlboro, after 5PM, ask me know in advance. I have a dinky amp and a pillow speaker, but you don't have to be prone to hear it. 8-). The program is based on an example in the Eckhaus and Morris Minicomputer Systems, but made easier to use for different tunes, and multi-timbral. It would now be possible for me to develop scores in text form (actually in MACRO) elsewhere, and test the composition program on the 11, even though it is not high-fidelity (but it certainly improves when you turn off the line-time clock! 8-) Later I might make envelope control or at least dynamic control, with a number for shifting the sample to the right to make it quieter. If I cut the number of voices, the sample rate would rise, so I might. I use macros and repeat/replace blocks to shorten the scores. I got the wavetables from the Pascal program I posted. I got the harmonic weightings from the Seashore book on psychology of music. I submitted some of this for COMMUSIC IV. One of the interesting things for me to look at in sound synthesis, is synthesizing woodwind multiphonics by audio-frequency trills and tremoli between wide-ly spaced notes. Tom
T.R | Title | User | Personal Name | Date | Lines |
---|---|---|---|---|---|
1097.1 | Are you torturing yourself for art's sake? | MAY14::BAILEY | Steph Bailey | Thu Dec 24 1987 12:22 | 10 |
How much more do you think you could get out of an 11/73 or an 11/83? (How many more voices, or how much great a rate). Is the AAV11-C a DMA driven converter? (I suppose not, since you have no time base listed in your configuration) Sounds like fun. Steph | |||||
1097.2 | How about a VAXlab? | PLDVAX::JANZEN | Tom LMO2/O23 DTN296-5421 | Thu Dec 24 1987 13:01 | 34 |
>< Note 1097.1 by MAY14::BAILEY "Steph Bailey" > > -< Are you torturing yourself for art's sake? >- Do you know any other way to make art? 8-) I probably won't make any serious music on it (I might, especially if a solo playing 30 notes/second can have a ca. 50kHz sampling rate (close guess); i'm attracted to the theoretical and am learning a lot tracing through the articles I've read for 15 years about the concrete problems of synthesis. Every day you people post complaints about the way the manufacturer or your hardware solved these problems for economy, speed (for enough bandwidth and voices), and ease of use by people less bright and technical than you. > > How much more do you think you could get out of an 11/73 or an 11/83? a 73 is 3X a 23+, which probably runs like a 23 (but on Q22), giving ca. 12 voices at 8kHz, or 4 voice at 24kHz. An 83 is 2X a 73, maybe including the PMI, so an 83 might do 6*4, 24 voices with this program at 8kHz, or 6 voices @ 32kHz. > (How many more voices, or how much great a rate). > > Is the AAV11-C a DMA driven converter? (I suppose not, since you have > no time base listed in your configuration) No it is interrupt, but I use programmed mode. I don't have a programmable clock; I just shove the numbers in there as fast as the program can run. That's why I would have to re-tune a different program for duets or solo that ran faster. > Sounds like fun. Using it to verify an automatic composition program (a program that composes without excessive intervention) would be a publishable activity. > Steph I might try to implement FM on it. Tom | |||||
1097.3 | 11-2-2-2-2-23 23 23 23 | ANGORA::JANZEN | Tom LMO2/O23 DTN296-5421 | Mon Dec 28 1987 08:54 | 2 |
I'm going to try to do sampling on it next. Tom | |||||
1097.4 | interestin. | JON::ROSS | we is wockin'.... | Mon Dec 28 1987 09:56 | 12 |
but but.... what low pass filter do you have on the output(s) of the DAC? thats 3Khz bandwith or so? whats a car radio? (Im not complaining) ron | |||||
1097.5 | PLDVAX::JANZEN | Tom LMO2/O23 DTN296-5421 | Mon Dec 28 1987 11:21 | 17 | |
>< Note 1097.4 by JON::ROSS "we is wockin'...." > > -< interestin. >- > what low pass filter do you have on the output(s) > of the DAC? Don't need one. The cassette recorder incidentally filters out the high frequency transition noise, and the EQ at home cleans it up some more. I will need a strategy for sampling. Probably pre-filter at home. Noise on the line could alias, tho. Sampling will be at about 80kHz maybe > thats 3Khz bandwith or so? whats a car radio? Closer to 4kHz A duet program should be closer to 7Khz A solo program maybe 15 kHz BW. An AM radio is roughtly 5kHz > ron Tom (ex-FCC 3rd class/element 9 (the elements are all different now) commerical DJ but forgetting all of it) | |||||
1097.6 | dynamics work now, sort of | MORRIS::JANZEN | Tom LMO2/O23 296-5421 | Wed Mar 02 1988 15:25 | 6 |
I made dynamics work with an ASH instruction. i lost 1/6 of the bandwidth, and the pitch changes as the numbers of shifts changes. I could do a complementary number of shifts to balance the time. The ASH is on samples individually before adding, so different voices in a quartet could have different loudnesses. TOm | |||||
1097.7 | just intonation for computer music | PLDVAX::JANZEN | Tom LMO2/O23 296-5421 | Mon Mar 07 1988 09:35 | 32 |
1 ! here is a program that prints out frequencies for a just intonation scale of 21 notes. For the computer (cf. base note), the frequency of middle c (261.625) was replaced by the skip increment for middle c, 2071. 190 FOR n = -3 TO 3 STEP 1 200 c=1*(2**n)*261.625 210 csharp=c*5/3*5/4*1/2 220 dflat=c*4/3*4/5 230 d=c*9/8 240 dsharp=c*15/8*5/4*1/2 250 eflat=c*4/5*3/2 260 e=c*5/4 270 esharp=c*5/3*5/4*1/2*5/4 280 fflat=c*2*4/5*4/5 290 f=c*4/3 300 fsharp=c*5/4*9/8 310 gflat=c*4/5*3/2*3/2*4/5 320 g=c*3/2 330 gsharp=c*5/4*5/4 340 aflat=c*2*4/5 350 a=c*5/3 360 asharp=c*3/2*15/8*5/4*1/2 370 bflat=c*3/2*3/2*4/5 380 b=c*15/8 390 bsharp=c*5/4*5/4*5/4 400 cflat=c*4/5*4/5*3/2*2 410 print "c,csharp,dflat,d,dsharp,eflat,e,esharp,fflat,f,fsharp,gflat,g,gsharp,"; 420 print "aflat,a,asharp,bflat,b,bsharp,cflat" 430 print c;csharp;dflat;d;dsharp;eflat;e;esharp;fflat;f;fsharp;gflat;g;gsharp; 440 print aflat;a;asharp;bflat;b;bsharp;cflat 450 NEXT n 500 end | |||||
1097.8 | floating point is the key | ANGORA::JANZEN | Tom LMO2/O23 296-5421 | Mon Mar 14 1988 15:59 | 8 |
Well, I learned how to use the floating instruction set well enough to write a reciprocal function for FORTRAN, so i can use this knowledge to make dynamics/envelopes, but probalby on a mono synth program. A mono program would have sufficient bandwidth to reveal the finesse I was adding in features, e.g. portamento, envelopes, evolving formant, reverb, FM synthesis, whatever I have time for in the next 2 years. Tom | |||||
1097.9 | slow arithmetic impossible in 4 voices | PLDVAX::JANZEN | Tom LMO2/O23 296-5421 | Thu Mar 17 1988 12:10 | 13 |
Well, arithmetic shifts could change dynamics, but only by 6dB steps and with wandering pitch (as the number of shifts changed). the extended instruction set MUL integer MUL could change dynamics on 256 increments (in my implementation), but HALVED the throughput. The rite of spring sounded like the Dirge of Winter. The FP11 floating point option also could change dynamics finely, and ALSO halved the bandwidth. Therefore, I will develop a solo program to get bandwidth back by not servicing 3 other voices, and implement floating point dynamics and envelopes on that. Tom | |||||
1097.10 | Trade memory for speed. | CTHULU::YERAZUNIS | Hiding from the Turing Police | Thu Mar 17 1988 17:39 | 14 |
How about using a lookup table instead of a shift or multiply instruction? Just build a .BYTE table with 256 entries, and have one such table for each dynamics level you wish to be able to portray IN THE CURRENT PIECE. All the expensive computations are done at compile time, not at run time- runtime's just an indexed indirection operation- and takes constant time on an 11 (since you can't page fault an PDP-11 :-) ) It'll hog memory, but if you've got memory to spare... -Bill | |||||
1097.11 | continuous dynamics => envelope control | TIGER::JANZEN | Tom LMO2/O23 296-5421 | Fri Mar 18 1988 08:42 | 8 |
Originally, I had four waves, so there would have been 4 waves * #dynamci levels. Not undoable, but, the reason it's no good is: I am only trying to do dynamcis in order to do envelopes, and envelopes need continuous range of levels, not steps as you propose. So I retreated to a solo program with floating point and will report on it when I have a chance to run it. Thanks Tom | |||||
1097.12 | just isn't working now, either | TIGER::JANZEN | Tom LMO2/O23 296-5421 | Fri Mar 18 1988 13:26 | 3 |
I give up on dynamics. It's just too slow. I'll try make the just intonation work. Tom | |||||
1097.13 | just intonation on pdp11 works | PLDVAX::JANZEN | Tom LMO2/O23 296-5421 | Sun Mar 20 1988 15:32 | 12 |
Just intonation works, but only over about 4 octaves, because the current program allows only a byte pointer; there are 21 pitches/octave; the byte pointer is into pitch increments that are words, leaving 128 note positions. As it is, I had to eliminate the sign-extension in MOVB src,R to get it to work. I don't consider it worth while changing the whole program to accomate more for just experiments. Just intonation really is frigid sounding, isn't it? Equal temperament has a built-in flange. Tom | |||||
1097.14 | It makes organs sound nice. | BOLT::BAILEY | Steph (stef') Bailey | Sun Mar 20 1988 16:19 | 9 |
Re: Just intonation. I think it sounds great. It certainly depends upon the harmonic content of your sound, though. If you want it to sound like crap, all you have to do is change keys, like the baroque composers did. Steph | |||||
1097.15 | MORRIS::JANZEN | Tom LMO2/O23 296-5421 | Mon Mar 21 1988 09:24 | 17 | |
>< Note 1097.14 by BOLT::BAILEY "Steph (stef') Bailey" > > -< It makes organs sound nice. >- > > Re: Just intonation. > > I think it sounds great. It certainly depends upon the harmonic > content of your sound, though. > > If you want it to sound like crap, all you have to do is change keys, > like the baroque composers did. > > Steph I wouldn't expect it to sound awful, because in my scale any key with only single accidentals (no double flats, double sharps,) will sound the same as another. That's why I have 21 notes/8va. C,C#,Db,D,D#,Eb,E,E#,Fb,F,F#,Gb,G,G#,Ab,A,A#,Bb,B,B#,Cb Tom | |||||
1097.16 | quarter tones | ANGORA::JANZEN | Tom LMO2/O23 296-5421 | Mon Mar 21 1988 13:46 | 3 |
I wrote a quarter-tone scale. I expect it to work but have to write some music for it. Tom | |||||
1097.17 | Noise maker with simple filter | ANGORA::JANZEN | Tom LMO2/O23 296-5421 | Tue Apr 12 1988 13:47 | 54 |
1 ! NOISE.BAS BY THOMAS E. JANZEN 4-12-88; GENS RANDOM NUMBERS TO MAKE A 2 ! NOISE WAVE, THENS FILTER IT WITH "BRACKET" AND CREATES FILTER.MAC WAVE FILE 3 ! AND FILTER.GRL DECGRAPH LOAD FILE. 4 !$ASS/USER_MODE SYS$COMMAND SYS$INPUT 5 !$GRAPH/NOINT/LOAD/MONO/SIX=NOISE NOISE ANT::STD:[JANZEN]WAVE 10 open 'NOISE.MAC' FOR OUTPUT AS FILE #1%,& ORGANIZATION SEQUENTIAL,ALLOW WRITE,ACCESS WRITE 20 open 'NOISE.GRL' FOR OUTPUT AS FILE #2%,& ORGANIZATION SEQUENTIAL,ALLOW WRITE,ACCESS WRITE 30 restore #1 40 restore #2 100 RANDOMIZE 110 declare integer wave(256),smoothed(256) 115 PRINT "BRACKET: "; 120 INPUT BRACKET 130 for line%=1 to 256 240 ball% = fix(rnd*256)-128 250 wave(line%)=ball% 400 next line% 500 ! smoothing 510 for element=1 to 256 515 smoothed(element)=0 517 ACCUM=0 520 for index=-bracket to bracket 522 POSITION=element+index 523 if (POSITION < 1) then POSITION=256-POSITION 525 if (POSITION > 256) then POSITION=POSITION-256 530 ACCUM=WAVE(POSITION)+ACCUM 600 next index 610 ACCUM=ACCUM/(2*BRACKET+1) 620 SMOOTHED(ELEMENT)=ACCUM 700 next element ! what if pointer is negative? 900 for ROW=1 to 32 910 print #1, " .WORD "; 920 for column=1 to 8 930 print #1 using "######",smoothed((row-1)*8+column); 940 print #1, ","; 950 next column 960 print #1 970 next row 1000 PRINT #2, "!--------------------------------------" 1010 PRINT #2, "! DECgraph Load File Format 1" 1020 PRINT #2, "TITLE FILTERED NOISE" 1030 PRINT #2, "SUBTITLE BRACKET=";BRACKET 1040 PRINT #2, "Y_UNITS ONES" 1050 PRINT #2, "X_UNITS ONES" 1060 PRINT #2, "X_DATA_TYPE NUMERIC" 1070 PRINT #2, "HORIZONTAL_LABEL Sample Point Number" 1080 PRINT #2, "VERTICAL_LABEL Amplitude" 1900 for ROW=1 to 256 1930 PRINT #2, " ",ROW,smoothed(row) 1970 next row 2130 close #1% 2135 close #2% | |||||
1097.18 | synth.mac | ANGORA::JANZEN | Tom LMO2/O23 296-5421 | Tue May 10 1988 14:01 | 97 |
.TITLE SYNTH ;PROGRAM BY IAN MACRAE, DAVE WEILER AND BOB MORRIS ;MODIFIED 11-30-87 TOM JANZEN NO CLOCK 11/12 W/ AAV11-C ;MODIFIED TO BE POLY-PHONIX (DIFFERENT WAVFORMS) T JANZEN .PSECT SYNTH .MCALL .EXIT .SBTTL /DEFINTIONS/ DAC=170444 ;D/A CONVERTER RPT=400+100 ;--- REPEAT, OVERFLOW NVOX=4 ;# VOICES IN SONG TABLE ;DATA AREA DURATN: 1 ;TIME LEFT TO PLAY THIS NOTE NOTE: NOTES ;ADDRESS OF NEXT NOTE TO BE PLAYED VINC: .BLKW NVOX ;NOTE INCREMENT (UPDATED EACH NOTE) WAVPTR: .BLKW NVOX ;WAVETABLE INDEX (UPDATED EACH SAMPLE) ; .SBTTL /INCLUDE WAVA, WAVB, WAVC, WAVD/ ;THE SCORE IS OF THE FORM: ;.BYTE DURATION,PITCH_ADDRESS_A, ; PITCH_ADDRESS_B, PITCH_ADDRESS_C, PITCH_ADDRESS_D ; WHERE PITCH_ADDRESS POINTS TO EVEN BYTE OFFSETS IN SCALE ; PUT A ZERO BYTE AFTER LAST NOTE TO END THE SCORE. ; THE FOUR WAVES ARE IN THE SAME FORMAT: 256 BYTES, 2'S COMPLEMENT ; AROUND 0 DESCRIBING THE WAVE SHAPE. WAVEA: .INCLUDE /WAVA/ WAVEB: .INCLUDE /WAVB/ WAVEC: .INCLUDE /WAVC/ WAVED: .INCLUDE /WAVD/ ; THE SCALE STARTS WITH A 0 WORD FOR A REST, AND THEN HAS ; WORDS THAT DETERMINE PITCH. THESE WORDS ARE THE INCREMENT ; ADDED TO THE WAVE POINTER, MOD-256, TO GET DIFFERENT PITCHES ; BY SKIPPING DIFFERENT NUMBERS OF SAMPLES IN THE WAVE TABLES .RADIX 8 .SBTTL /PROGRAM BODY/ SYNTH:: ;WAIT114 USEC CALL ENTRY ;THE 11/23 IS SO SLOW, IT PLAYS ;5/6 THE SAMPLING RATE REQUIRED ;WITH NO DELAY AT ALL ;SO THE DELAY IN HERE WAS DELETED CALL ENTRY BR SYNTH ENTRY: DEC DURATN ;TIME FOR NEW NOTE? BNE SAMPLE ;NO. SAME NOTE MOV NOTE,R0 ;NEXT NOTE TSTB (R0) ;END? BNE 1$ BR CUT 1$: MOVB (R0)+,DURATN+1 ;SET DURATION (HIGH BYTE, LOW-0) ;I.E., DURATION*256=#CLOCKS DURATION MOV #VINC,R2 ;SET INCREMENTS FOR NEW NOTE .REPT NVOX ;4 VOICES, SO NVOX=4 MOVB (R0)+,R1 ;PULL NOTE FROM TABLE ; BIC #^B1111111100000000,R1 ;ELIMINATE SIGN EXTEND OF MOVB,RN ;I REMOVED THE PREVIOUS LINE BECAUSE IT WAS SO SLOW IT WAS MAKING CLICKS ;BETWEEN NOTES RETURN; THIS PROGRAM IS LIMITED TO SCALES OF 64 NOTES. ; CLR <WAVPTR-VINC>(2) ;CLEAR ENTRY IN WAVETABLE POINTER TABLE ;I DECIDED I COULD ELIMINATE THE CLICK AT NOTE START ;BY NOT CLEARING THE WAVE POINTER FROM THE PREVIOUS NOTE - T. JANZEN MOV INCR(R1),(R2)+ ;SET INCREMENT TO BE USED IN UPDATING .ENDR ;WAVETABLE POINTER TABLE MOV R0,NOTE ;SAVE FOR LATER USE ;SYNTHESIZE NEXT OUTPUT SAMPLE SAMPLE: CLR R1 ;CLEAR ACCUMULATOR MOV #WAVPTR,R2 ;POINTER TO BLOCK OF 4 WAVETABLE POINTERS ;A "MOVB SRC.Rn" SIGN EXTENDS INTO ;THE UPPER BYTE, AND THERE IS NO "ADDB". ;THEREFORE, MUST USE TECHNIQUES AS SHOWN BELOW MOV #VINC,R5 .IRPC WW,<ABCD> ;FOR i = 1,2,3,4 MOV #WAVE'WW,R3 ;START OF WAVE TABLE ADD (R5)+,(R2)+ ;UPDATE i'th PTR IS BYTE OFFSET MOVB -1(R2),.+8. ;HIGH BYTE OF i'th PTR IS BYTE OFFSET ; OF DESIRED SAMPLE IN WAVE TABLE ;THIS IS SELF-MODIFYING CODE. THE X OFFSET ;AFTER THE NEXT MOVB IS MODIFIED BY THE ;PREVIOUS MOVB. MOVB 0(R3),R4 ;SRC = #WAVE + BYTE OFFSET OF DESIRED SAMPLE ADD R4,R1 ;ACCUMULATE i'th SAMPLE .ENDM ;USE MAXIMUM 12-BIT SIGNAL-TO-NOISE RATIO OF CONVERTOR TO ;SUPPRESS MISC. NOISE - T. JANZEN ;ALSO HAD TO FIX BINARY CODE FOR AAV-11C CONVERTOR ASL R1 ASL R1 NEG R1 ;PREPARE TO SUBTRACT SAMPLE FROM 2048(10) ADD #^O4000,R1 ;TO CENTER AROUND ZERO OFFSET MOV R1,@#DAC ;OUTPUT i'TH SAMPLE TO D/A CONVERTER RETURN CUT: MOV #0,@#DAC ;OUTPUT i'TH SAMPLE TO D/A CONVERTER .EXIT ;RETURN TO MONITOR .END SYNTH | |||||
1097.19 | sacre.mac | ANGORA::JANZEN | Tom LMO2/O23 296-5421 | Tue May 10 1988 14:03 | 159 |
;Stravinsky Rite of Spring Introduction ;WAVA = BASSON ;WAVB = CLARNT ;WAVC =CLARNT ;WAVD =HORNP .RADIX 10 QUARTR=:60 ;QUARTER NOTE HALF=:QUARTR*2 TRIPLT=QUARTR/3 ;EIGHTH TRIPLET SXTNTH=:QUARTR/4 ;SIXTEENTH NOTE QUINT6=:QUARTR/5 ;QUINTUPLET SIXTEENTHS SEXTUP=:QUARTR/6 ;SEXTUPLET SIXTEENTHS EIGHTH=:QUARTR/2 ;EIGHTH NOTES NONET=:QUARTR/9 ;NONETUPLETS SIXTEENTHS GRACE=:2 ;GRACE NOTE DODE=:QUARTR/12 ;GROUP OF TWELVE THIRTYSECONDS REST=:0 .MACRO SOLO, RHYTHM,PITCH .BYTE RHYTHM,PITCH,0,0,0 .ENDM .MACRO DUET, RHYTHM,BASSON,HORN .BYTE RHYTHM,BASSON,0,0,HORN .ENDM .MACRO TRIO, RHYTHM,BASSON,CLAR1,CLAR2 .BYTE RHYTHM,BASSON,CLAR1,CLAR2,0 .ENDM .MACRO QUARTT, RHYTHM,BASSON,CLAR1,CLAR2,HORN .BYTE RHYTHM,HORN,CLAR1,CLAR2,BASSON .ENDM NOTES:: ;M1 SOLO QUARTR*2,CN5 SOLO GRACE,BN4 SOLO GRACE,CN5 SOLO SXTNTH,BN4 SOLO SXTNTH,GN4 SOLO SXTNTH,EN4 SOLO SXTNTH,BN4 SOLO QUARTR,AN4 SOLO EIGHTH,REST SOLO TRIPLT,CN5 SOLO GRACE,BN4 SOLO GRACE,CN5 SOLO TRIPLT,BN4 SOLO TRIPLT,GN4 SOLO TRIPLT,EN4 SOLO TRIPLT,BN4 ;M2 DUET SXTNTH,AN4,C$4 DUET SXTNTH,REST,C$4 DUET EIGHTH,CN5,C$4 DUET GRACE,BN4,C$4 DUET GRACE,CN5,C$4 DUET TRIPLT,BN4,C$4 DUET SEXTUP,BN4,DN4 DUET EIGHTH,AN4,DN4 DUET EIGHTH,DN5,DN4 DUET GRACE,GN4,DN4 DUET EIGHTH,AN4,DN4 ;M3 DUET QUINT6,CN5,DN4 DUET GRACE,BN4,DN4 DUET GRACE,CN5,DN4 DUET QUINT6,BN4,DN4 DUET QUINT6,GN4,DN4 DUET QUINT6,EN4,DN4 DORET QRINT6,BN4,DN4 DUET <<QUARTR*5>/2>,AN4,C$4 SOLO EIGHTH,CN5 ;REHEARSAL 1 ;M4 TRIO QUARTR,CN5,Db4,Ab3 TRIO TRIPLT,CN5,Db4,Ab3 TRIO GRACE,BN4,Db4,Ab3 TRIO GRACE,CN5,Db4,Ab3 TRIO NONET,BN4,Db4,Ab3 TRIO NONET,GN4,CN4,GN3 TRIO NONET,GN4,CN4,GN3 TRIO GRACE,CN5,CN4,GN3 TRIO TRIPLT,Bb4,CN4,GN3 ;M5 TRIO TRIPLT,AN4,CN4,GN3 TRIO GRACE,CN5,CN4,GN3 TRIO TRIPLT,Bb4,Cb4,Gb3 TRIO TRIPLT,AN4,Cb4,Gb3 TRIO EIGHTH,Gb4,Bb3,FN3 QUARTT SXTNTH,Gb4,Bb3,FN3,CN5 TRIO SXTNTH,Gb4,Bb3,FN3 TRIO TRIPLT,Gb4,Bb3,FN3 TRIO TRIPLT,Gb4,AN3,EN3 TRIO TRIPLT,Gb4,Ab3,Eb3 ;m6 TRIO TRIPLT,F$4,GN3,DN3 TRIO TRIPLT,D$4,F$3,C$3 TRIO GRACE, F$4,F$3,C$3 TRIO TRIPLT,EN4,FN3,CN3 TRIO TRIPLT,C$4,EN3,BN2 TRIO GRACE, EN3,EN3,BN2 TRIO TRIPLT,DN4,Eb3,Bb2 TRIO TRIPLT,BN3,DN3,AN2 TRIO QUARTR,BN3,C$3,G$2 TRIO EIGHTH,0,C$3,G$2 TRIO EIGHTH,CN5,C$3,G$2 ;M7 TRIO QUARTR,CN5,C$3,G$2 TRIO GRACE,BN4,C$3,G$2 TRIO GRACE,CN5,C$3,G$2 TRIO SXTNTH,BN4,C$3,G$2 TRIO SXTNTH,GN4,C$3,G$2 TRIO SXTNTH,EN4,C$3,G$2 TRIO SXTNTH,BN4,C$3,G$2 ;M8 TRIO EIGHTH,AN4,C$3,G$2 TRIO EIGHTH,CN5,C$3,G$2 TRIO GRACE,BN4,C$3,G$2 TRIO GRACE,CN5,C$3,G$2 TRIO TRIPLT,BN4,C$3,G$2 TRIO SEXTUP,BN4,DN3,AN2 TRIO SEXTUP,AN4,DN3,AN2 TRIO TRIPLT,AN4,D$3,A$2 TRIO EIGHTH,DN5,D$3,A$2 TRIO GRACE,GN4,D$3,A$2 TRIO EIGHTH,AN4,DN3,AN2 ;M9 TRIO QUINT6,CN5,C$3,G$2 TRIO GRACE,BN4,C$3,G$2 TRIO GRACE,CN5,C$3,G$2 TRIO QUINT6,BN4,C$3,G$2 TRIO QUINT6,GN4,C$3,G$2 TRIO QUINT6,EN4,C$3,G$2 TRIO QUINT6,BN4,C$3,G$2 TRIO HALF,AN4,C$3,G$2 ;REHEARSAL 2 ;M10 QUARTT EIGHTH,AN4,C$3,G$2,C$4 QUARTT EIGHTH,AN4,C$3,G$2,F$4 QUARTT GRACE,AN4,C$3,G$2,C$4 QUARTT GRACE,AN4,C$3,G$2,F$4 QUARTT TRIPLT,AN4,C$3,G$2,D$4 QUARTT TRIPLT,AN4,C$3,G$2,C$4 QUARTT TRIPLT,AN4,C$3,G$2,F$4 ;M11 QUARTT GRACE,AN4,C$3,G$2,C$4 QUARTT GRACE,AN4,C$3,G$2,F$4 QUARTT TRIPLT,AN4,C$3,G$2,D$4 QUARTT TRIPLT,AN4,C$3,G$2,C$4 QUARTT SEXTUP,AN4,C$3,G$2,F$4 QUARTT SEXTUP,AN4,C$3,G$2,0 QUARTT TRIPLT,AN4,C$3,G$2,0 QUARTT SEXTUP,AN4,C$3,G$2,G$4 QUARTT SEXTUP,AN4,C$3,G$2,D$4 QUARTT SEXTUP,AN4,C$3,G$2,F$4 QUARTT SEXTUP,AN4,C$3,G$2,C$4 ;M12 QUARTT HALF*2,AN4,C$3,G$2,D$4 .BYTE 0 ;MARKS END OF SONG .EVEN .RADIX 8 .END | |||||
1097.20 | oboe.mac | ANGORA::JANZEN | Tom LMO2/O23 296-5421 | Tue May 10 1988 14:04 | 35 |
.RADIX 10 ;OBOE .BYTE 0, 11, 21, 31, 42, 51, 61, 70 .BYTE 78, 86, 94, 100, 106, 111, 116, 119 .BYTE 122, 124, 126, 126, 126, 125, 123, 120 .BYTE 117, 113, 109, 104, 98, 93, 86, 80 .BYTE 73, 67, 60, 53, 46, 39, 33, 26 .BYTE 20, 15, 9, 4, -1, -5, -8, -12 .BYTE -14, -17, -18, -19, -20, -20, -20, -19 .BYTE -18, -17, -15, -13, -10, -8, -5, -2 .BYTE 1, 5, 8, 11, 14, 18, 21, 24 .BYTE 26, 29, 31, 33, 35, 37, 38, 39 .BYTE 40, 40, 41, 41, 40, 40, 39, 38 .BYTE 37, 35, 33, 32, 30, 28, 26, 23 .BYTE 21, 19, 17, 14, 12, 10, 8, 6 .BYTE 4, 2, 1, -1, -2, -3, -4, -5 .BYTE -6, -7, -7, -7, -7, -7, -7, -7 .BYTE -6, -6, -5, -4, -4, -3, -2, -1 .BYTE 0, 1, 2, 3, 4, 4, 5, 6 .BYTE 6, 7, 7, 7, 7, 7, 7, 7 .BYTE 6, 5, 4, 3, 2, 1, -1, -2 .BYTE -4, -6, -8, -10, -12, -14, -17, -19 .BYTE -21, -23, -26, -28, -30, -32, -33, -35 .BYTE -37, -38, -39, -40, -40, -41, -41, -40 .BYTE -40, -39, -38, -37, -35, -33, -31, -29 .BYTE -26, -24, -21, -18, -14, -11, -8, -5 .BYTE -1, 2, 5, 8, 10, 13, 15, 17 .BYTE 18, 19, 20, 20, 20, 19, 18, 17 .BYTE 14, 12, 8, 5, 1, -4, -9, -15 .BYTE -20, -26, -33, -39, -46, -53, -60, -67 .BYTE -73, -80, -86, -93, -98, -104, -109, -113 .BYTE -117, -120, -123, -125, -126, -126, -126, -124 .BYTE -122, -119, -116, -111, -106, -100, -94, -86 .BYTE -78, -70, -61, -51, -42, -31, -21, -11 .RADIX 8 | |||||
1097.21 | scale.mac | ANGORA::JANZEN | Tom LMO2/O23 296-5421 | Tue May 10 1988 14:04 | 55 |
INCR:: .RADIX 10 ;NOTE INCREMENT TABLE. FOR SIX OCTAVES ; DURATIONS ARE FOR 8.772 KHZ SAMPLE RATE (114. USEC) ; (C1-B1) ; ; (C2-B2) 65.405 69.295 73.415 77.783 82.408 ; 87.308 92.498 97.998 103.83 110.00 116.54 123.47 ; (C3-B3) 130.81 138.59 146.83 155.57 164.82 ; 174.62 185.00 196.00 207.65 220.00 233.08 246.94 ; (C4-B4) 261.62 277.18 293.66 311.13 329.63 ; 349.234 369.994 391.995 415.308 440.006 466.162 493.882 ; (C5-B5) 523.243 554,364 587.324 622.267 659.266 ; 698.467 739.989 783.981 830.607 880.001 932.323 987.763 ; (C6-B6) 1046.56 1108.78 1174.68 .WORD 0 ;NOTE 0=SILENCE ;245 DELETED TO RAISE A HALF STEP , 259, 275, 291, ; C C# D D# E F F# G G# A A# B ; .WORD 259, 275, 291, 308, 326, 346, 366, 388, 411, 436, 461, 489 .WORD 518, 549, 581, 616, 652, 691, 732, 776, 822, 871, 922, 977 .WORD 1035,1097,1162,1231,1305,1382,1464,1551,1644,1741,1845,1955 .WORD 2071,2194,2325,2463,2609,2764,2929,3103,3287,3483,3690,3909 .WORD 4142,4388,4649,4926,5218,5529,5858,6206,6575,6966,7380,7819 .WORD 8284,8776,8776,9298,9852,10436,11058,11716,12412,13150,13932 .WORD 14760,15638 ; .WORD 16568,17552,18596 .MACRO NOTNAM,OCTAVE Cb'OCTAVE== 0+<24*<OCTAVE-2>>;POINTER TO SCALE INCREMENT ARRAY CN'OCTAVE== 2+<24*<OCTAVE-2>>;POINTER TO SCALE INCREMENT ARRAY C$'OCTAVE== 4+<24*<OCTAVE-2>>;POINTER TO SCALE INCREMENT ARRAY Db'OCTAVE== 4+<24*<OCTAVE-2>>;POINTER TO SCALE INCREMENT ARRAY DN'OCTAVE== 6+<24*<OCTAVE-2>>;POINTER TO SCALE INCREMENT ARRAY D$'OCTAVE== 8+<24*<OCTAVE-2>>;POINTER TO SCALE INCREMENT ARRAY Eb'OCTAVE== 8+<24*<OCTAVE-2>>;POINTER TO SCALE INCREMENT ARRAY EN'OCTAVE==10+<24*<OCTAVE-2>>;POINTER TO SCALE INCREMENT ARRAY FN'OCTAVE==12+<24*<OCTAVE-2>>;POINTER TO SCALE INCREMENT ARRAY F$'OCTAVE==14+<24*<OCTAVE-2>>;POINTER TO SCALE INCREMENT ARRAY Gb'OCTAVE==14+<24*<OCTAVE-2>>;POINTER TO SCALE INCREMENT ARRAY GN'OCTAVE==16+<24*<OCTAVE-2>>;POINTER TO SCALE INCREMENT ARRAY G$'OCTAVE==18+<24*<OCTAVE-2>>;POINTER TO SCALE INCREMENT ARRAY Ab'OCTAVE==18+<24*<OCTAVE-2>>;POINTER TO SCALE INCREMENT ARRAY AN'OCTAVE==20+<24*<OCTAVE-2>>;POINTER TO SCALE INCREMENT ARRAY A$'OCTAVE==22+<24*<OCTAVE-2>>;POINTER TO SCALE INCREMENT ARRAY Bb'OCTAVE==22+<24*<OCTAVE-2>>;POINTER TO SCALE INCREMENT ARRAY BN'OCTAVE==24+<24*<OCTAVE-2>>;POINTER TO SCALE INCREMENT ARRAY .ENDM NOTNAM ; NOTNAM <1> ; ONLY GO AS LOW AS A CELLO (CN2) NOTNAM <2> NOTNAM <3> NOTNAM <4> NOTNAM <5> NOTNAM <6> CN7==2+<24*5> ; TOP NOTE .RADIX 8 .END | |||||
1097.22 | I know you're gonna dig this | MINDER::KENT | But there's no hole in the middle | Wed May 11 1988 05:51 | 7 |
re -1,2,3 etc But can you dance to it ? Paul |