Skip to content

Commit 8b54399

Browse files
make it play chords
1 parent 5eb6b2c commit 8b54399

1 file changed

Lines changed: 27 additions & 18 deletions

File tree

os/programs/bach.rrbasic

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,42 @@
1+
REM The introduction to Bach's Tocatta and Fuges
2+
REM Demonstration of ENVELOPE and SOUND TONE
3+
14
ON ERROR PROCcontinue
25
MODLOAD "ac97"
36
ON ERROR OFF
47

5-
' Streams
6-
STREAM CREATE lead
7-
STREAM CREATE pedal
8-
STREAM CREATE colour
8+
REM Streams
9+
STREAM CREATE lead1
10+
STREAM CREATE lead2
11+
STREAM CREATE lead3
912

10-
' Envelopes (plain organ — no vibrato)
11-
' id, wave, vol, pulse, attack, decay, sustain, release, vib_depth, vib_rate, glide, pwm_rate, pwm_depth
12-
ENVELOPE CREATE 0, 1, 255, 128, 12, 70, 210, 420, 0, 0, 0, 0, 0
13+
REM ADSR envelopes
1314
ENVELOPE CREATE 2, 1, 255, 128, 25,120, 220, 800, 0, 0, 0, 0, 0
1415
ENVELOPE CREATE 3, 0, 220, 128, 10, 60, 180, 320, 0, 0, 0, 3,12
1516
ENVELOPE CREATE 63, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0
1617

17-
SOUND TONE lead, 880, 20, 2
18-
SOUND TONE lead, 784, 20, 2
19-
SOUND TONE lead, 880, 100, 2
20-
SOUND TONE lead, 100, 40, 63
21-
SOUND TONE lead, 100, 40, 63
22-
SOUND TONE lead, 784, 20, 2
23-
SOUND TONE lead, 698, 20, 2
24-
SOUND TONE lead, 659, 20, 2
25-
SOUND TONE lead, 587, 20, 2
26-
SOUND TONE lead, 554, 90, 2
27-
SOUND TONE lead, 587, 90, 2
18+
REM tune
19+
PROCchord(880, 20, 3)
20+
PROCchord(784, 20, 3)
21+
PROCchord(880, 100, 3)
22+
PROCchord(100, 40, 63)
23+
PROCchord(100, 40, 63)
24+
PROCchord(784, 20, 2)
25+
PROCchord(698, 20, 2)
26+
PROCchord(659, 20, 2)
27+
PROCchord(587, 20, 2)
28+
PROCchord(554, 90, 2)
29+
PROCchord(587, 90, 2)
2830

31+
REM wait for tune to leave buffer
2932
SLEEP 6000
3033
END
3134

3235
DEF PROCcontinue
36+
ENDPROC
37+
38+
DEF PROCchord(rootHz, durCs, env)
39+
SOUND TONE lead1, rootHz, durCs, env
40+
SOUND TONE lead2, rootHz * 1.2599, durCs, env ' major 3rd
41+
SOUND TONE lead3, rootHz * 1.4983, durCs, env ' perfect 5th
3342
ENDPROC

0 commit comments

Comments
 (0)