Plays an arrangement of Johann Strauss’s waltz On the Beautiful Blue Danube through the speaker, from the introduction through the waltz sections with their repeats. It opens with “**BLUE DANUBE**” built up in large letters one dot at a time, each dot shot in from the corner of the screen with a click. A picture follows: a sailboat on rows of waves under a white sky, with the title and the note “This will be the ENTIRE SCORE (I’ve improvised some) ENJOY!” When the music ends it starts again from the beginning.
REMs identify it as Rev. 3 by Wm. J. Tilley, with graphics from SINCUS News by J. Colonna, August 1984. The title effect is a routine by Eddie Duncan-Dunlap from Your Sinclair, reprinted by ZX-Appeal in September 1986 and run in SINCUS News in November/December 1986, which Tilley turned into a subroutine.
Program Analysis
Structure
- Lines 2–20: credits, the title and picture subroutines, and the player:
READ d,p, divide the length by 10 andBEEP. - Lines 25–2000: the score as DATA pairs of length and pitch, with REMs naming the sections, sharps and flats. The pair
999,999ends it, and line 2010 restores and plays it again. - Lines 8000–8310: the title effect. Lines 8400–8650: the river picture.
The Title Effect
The title is printed small in the top row, then each of its pixels is tested with POINT (x,y+168). Each lit pixel is enlarged to a point at 2*x,3*y+80, and a line is drawn and undrawn from 0,0 with DRAW OVER 1 so it looks like a shot fired from the corner.
Notable Techniques
- Gaps between notes are written as pitch 69, the highest note
BEEPallows, so every DATA item can go straight toBEEPwithout a special case. - The waves are rows of arcs drawn with the third parameter of
DRAW, and the sky is 320 spaces printed in white paper. - The DATA lines contain spaces after the commas, grouping the length and pitch of each note for easier editing.
Potential Issues
- The music repeats forever; BREAK is the only way to stop it.
- Line 63 and line 72 contain a pitch of 60 among the 69 rests, which appears to be a typing slip for 69.
This program came from an Oliger (JLO SAFE) disk and was converted to load from tape. The program already saved with a plain SAVE; the author’s street address was removed from the credit REM in line 2 (his name is kept). It was tested in ZEsarUX.
Source Code
2 REM :::: bluedanube" Rev. 3 Wm. J. Tilley
3 GO SUB 8000
4 CLS
5 REM GRAPHICS FROM SINCUS NEWS J. COLONNA AUG/84
6 GO SUB 8400
9 REM :::: in SPECTRUM rod PLAY c SPECTRUM ion SPECTRUM empo di VALSE
10 READ d,p: LET d=d/10
15 IF p=999 THEN GO TO 2010
20 BEEP d,p: GO TO 10
25 REM :::: Introduction
30 DATA 2,9,2,8,4,9,4,69,2,11,2,10,4,11,4,69,2,13,2,11,4,13,4,14,4,16,4,18,4,69,2,16,2,15,4,16,4,69,2,18,2,17,4,18
33 DATA 4,69,2,18,2,17,4,18,4,19,4,21,4,23,4,69,2,19,2,21,2,23,2,9,12,19,4,19,2,19,2,21,2,23,2,9,12,18,4,18
36 DATA 2,18,2,19,2,21,2,9,2,16,2,69,2,19,2,69,2,9,2,69,2,14,2,69,2,19,2,69,2,9,2,69,2,13,2,69,2,19,2,69,2,9,2,69,2,11,2,69,2,16,2,69,2,7,2,69
39 DATA 2,9,2,69,2,14,2,69,2,6,2,69,2,7,2,69,2,13,2,69,2,4,2,69,12,69
41 REM :::: #1 Tempo di Valse
42 DATA 4,2, 4,6, 4,9, 12,9, 12,9, 4,9, 4,69, 4,2, 4,2, 4,6, 4,9, 12,9, 12,9, 4,9, 4,69
45 DATA 4,1, 4,1, 4,4, 4,11, 12,11, 12,11, 4,11, 4,69, 4,1, 4,1, 4,6, 4,9, 12,11, 12,11, 4,9, 4,69
48 DATA 4,2, 4,2, 4,6, 4,9, 12,14, 12,14, 4,14, 4,69, 4,2, 4,2, 4,6, 4,9, 12,14, 12,14, 4,14
51 DATA 4,69, 4,4, 4,4, 4,7, 2,11, 2,69, 12,11, 2,11, 4,11, 4,8, 4,9, 12,18, 4,18
53 REM :::: STILL C & F SHARP
54 DATA 4,26, 4,18, 10,11, 2,69, 10,13, 2,69, 4,14, 2,69, 2,18, 4,18
56 REM :::: F,G,C SHARP
57 DATA 4,69, 2,18, 2,69, 2,16, 2,69
59 REM :::: leggiero C,F,G SHARP
60 DATA 2,25, 2,69, 2,23, 2,69, 2,23, 2,69, 4,69, 2,23, 2,69, 2,22, 2,69, 2,22, 2,69, 2,23, 2,69, 2,23, 2,69, 4,69, 2,16, 2,69, 2,16, 2,69, 8,18, 4,16, 4,69, 2,16, 2,69, 2,16, 2,69, 8,23, 4,23
63 DATA 4,69, 2,26, 2,69, 2,25, 2,69, 2,25, 2,69, 2,23, 2,69, 2,23, 2,60, 4,69, 2,23, 2,25,2,69, 2,28, 2,69, 2,26, 2,69, 2,26, 2,69, 4,69
66 DATA 2,20, 2,69, 2,23, 2,69, 8,23, 4,23, 6,20, 2,18, 2,14, 2,11, 2,18, 2,18, 2,18, 4,18, 4,16
69 DATA 4,9, 2,26, 2,69, 2,25, 2,69
71 REM :::: REPEAT
72 DATA 4,69, 2,26, 2,69, 2,25, 2,69, 2,25, 2,69, 2,23, 2,69, 2,23, 2,60, 4,69, 2,23, 2,25,2,69, 2,28, 2,69, 2,26, 2,69, 2,26, 2,69, 4,69
75 DATA 2,20, 2,69, 2,23, 2,69, 8,23, 4,23, 6,20, 2,18, 2,14, 2,11, 2,18, 2,18, 2,18, 4,18, 4,16
78 DATA 4,9, 4,69, 4,69, 12,21, 12,21, 4,21, 4,69, 4,69
80 REM :::: End Part 1, Start 2
82 REM :::: C & F SHARP
83 DATA 4,9
86 DATA 4,7, 4,69, 4,9, 4,7, 4,69, 4,9, 12,18, 4,18, 4,16, 4,9, 4,6, 4,69, 4,9, 4,6, 4,69, 4,9, 12,16, 4,16, 4,14, 4,9, 4,7, 4,69
89 DATA 4,9, 4,7, 4,69, 4,9, 12,18, 4,18, 4,16, 4,9, 4,14, 4,16, 4,18, 8,21, 4,19, 2,18, 2,18, 4,18, 2,16, 2,9, 2,69
92 DATA 4,14, 4,69, 4,9
93 REM Repeat 8 bars
95 DATA 4,7, 4,69, 4,9, 4,7, 4,69, 4,9, 12,18, 4,18, 4,16, 4,9, 4,6, 4,69, 4,9, 4,6, 4,69, 4,9, 12,16, 4,16, 4,14, 4,9, 4,7, 4,69
98 DATA 4,9, 4,7, 4,69, 4,9, 12,18, 4,18, 4,16, 4,9, 4,14, 4,16, 4,18, 8,21, 4,19, 2,18, 2,18, 4,18, 2,16, 2,9, 2,69
101 DATA 4,14, 4,69, 4,26, 4,14, 4,69
102 REM :::: A & F natural, B & E FLAT sostenuto
104 DATA 12,26, 4,26, 4,27, 4,26, 4,23, 4,23, 4,21, 12,19, 2,23, 2,69, 4,69
107 DATA 4,23, 2,23, 2,17, 6,19,2,17, 4,17, 4,14, 4,17, 4,15, 4,14, 4,16
110 DATA 12,26, 4,26, 4,27, 4,26, 4,24, 4,23, 4,21, 12,19
113 DATA 4,18, 4,69, 4,17, 4,69, 6,19, 2,22, 12,21, 4,21, 4,69, 4,9
115 REM START OF PART 3,F SHARP tranquillo
116 DATA 4,2
119 DATA 4,11, 4,69, 4,11, 4,11, 6,14, 2,12, 4,11, 2,2, 2,69, 4,2, 8,2, 4,2, 4,11, 4,69, 4,11, 4,11, 6,16, 2,14, 4,12, 2,6, 2,69, 4,6, 12,6
122 DATA 4,12, 4,69, 4,12, 4,12, 4,18, 2,16, 4,19, 2,11, 2,69, 4,11, 8,11, 4,11, 4,10, 4,69, 4,9, 12,11
125 DATA 4,11, 4,69, 4,2
126 REM repeat 15 bars
128 DATA 4,11, 4,69, 4,11, 4,11, 6,14, 2,12, 4,11, 2,2, 2,69, 4,2, 8,2, 4,2, 4,11, 4,69, 4,11, 4,11, 6,16, 2,14, 4,12, 2,6, 2,69, 4,6, 12,6
131 DATA 4,12, 4,69, 4,12, 4,12, 4,18, 2,16, 4,19, 2,11, 2,69, 4,11, 8,11, 4,11, 4,10, 4,69, 4,9, 12,11
134 DATA 4,11, 2,69, 2,11, 2,12, 2,11
136 REM (2nd. time gva ad lib.) F SHARP
137 DATA 2,11, 2,9, 2,8, 2,9, 2,11, 2,9, 2,9, 2,7, 2,6, 2,7, 4,14, 2,14, 2,12, 2,12, 2,69
140 DATA 2,12, 2,69, 2,12, 2,69, 2,11, 2,69, 2,11, 2,69, 2,11, 2,9, 2,8, 2,9, 2,11, 2,9
143 DATA 2,9, 2,7, 2,6, 2,7, 4,19, 2,19, 2,18, 2,18, 2,69, 2,18, 2,69, 2,16, 2,69, 2,14, 2,69, 2,14, 2,69
146 DATA 2,11, 2,9, 2,8, 2,9, 2,11, 2,9, 2,9, 2,7, 2,6, 2,7, 4,14, 2,14, 2,12, 2,12, 2,69, 2,12, 2,69
149 DATA 2,12, 2,69, 2,11, 2,69, 2,11, 2,69, 2,11, 2,9, 2,8, 2,9, 2,11, 2,9, 2,9, 2,7, 2,23, 2,69, 2,69, 2,19, 6,18, 2,16, 2,12, 2,9
150 REM Ending 1
152 DATA 4,7, 2,69, 2,11, 2,12, 2,11
153 REM :::: Repeat 15 bars
155 DATA 2,11, 2,9, 2,8, 2,9, 2,11, 2,9, 2,9, 2,7, 2,6, 2,7, 4,14, 2,14, 2,12, 2,12, 2,69
158 DATA 2,12, 2,69, 2,12, 2,69, 2,11, 2,69, 2,11, 2,69, 2,11, 2,9, 2,8, 2,9, 2,11, 2,9
161 DATA 2,9, 2,7, 2,6, 2,7, 4,19, 2,19, 2,18, 2,18, 2,69, 2,18, 2,69, 2,16, 2,69, 2,14, 2,69, 2,14, 2,69
164 DATA 2,11, 2,9, 2,8, 2,9, 2,11, 2,9, 2,9, 2,7, 2,6, 2,7, 4,14, 2,14, 2,12, 2,12, 2,69, 2,12, 2,69
167 DATA 2,12, 2,69, 2,11, 2,69, 2,11, 2,69, 2,11, 2,9, 2,8, 2,9, 2,11, 2,9, 2,9, 2,7, 2,23, 2,69, 2,69, 2,19, 6,18, 2,16, 2,12, 2,9
168 REM :::: Ending 2
170 DATA 4,7, 4,69, 4,69
171 REM start Part 4 key of C
173 DATA 12,7, 12,7, 4,12, 2,0, 2,0, 4,0, 4,69, 4,69, 4,0
174 REM allargando B FLAT
176 DATA 2,0, 2,5, 2,9, 2,12, 4,4, 2,16, 2,69, 12,16
179 DATA 4,13, 4,14, 2,16, 2,69, 12,16, 4,11, 4,12, 4,14, 12,12, 2,0, 2,5, 2,9, 2,12, 4,21, 4,21, 4,19, 4,17, 4,16, 4,17, 2,19, 2,69, 12,19
181 REM Ending 1
182 DATA 4,17, 4,9, 4,14, 4,12, 4,7, 4,9, 12,5, 4,5, 4,69, 4,0
185 DATA 2,0, 2,5, 2,9, 2,12, 4,4, 2,16, 2,69, 12,16
188 DATA 4,13, 4,14, 2,16, 2,69, 12,16, 4,11, 4,12, 4,14, 12,12, 2,0, 2,5, 2,9, 2,12, 4,21, 4,21, 4,19, 4,17, 4,16, 4,17, 2,19, 2,69, 12,19
190 REM Ending 2
191 DATA 4,17, 4,16, 4,14, 12,14, 4,13, 4,69, 4,69, 4,69, 4,24, 2,23
193 REM :::: b flat line # 194 to be REPEATED
194 DATA 12,24, 4,24, 6,24, 2,23, 12,24, 4,24, 4,29, 4,21, 6,22, 2,26, 4,16, 2,69
197 DATA 2,19, 4,19, 4,21, 4,22, 2,26, 4,16, 4,69, 2,19, 2,21, 2,22, 2,23, 12,24, 4,24, 6,24, 2,23, 12,24, 4,24, 4,33, 4,24
200 DATA 4,23, 2,29, 4,29, 2,29, 2,28, 4,28, 4,26, 2,26, 2,26, 4,26, 4,24
202 REM :: 1st. ENDING
203 DATA 4,17, 6,24, 2,23
206 DATA 12,24, 4,24, 6,24, 2,23, 12,24, 4,24, 4,29, 4,21, 6,22, 2,26, 4,16, 2,69
209 DATA 2,19, 4,19, 4,21, 4,22, 2,26, 4,16, 4,69, 2,19, 2,21, 2,22, 2,23, 12,24, 4,24, 6,24, 2,23, 12,24, 4,24, 4,33, 4,24
212 DATA 4,23, 2,29, 4,29, 2,29, 2,28, 4,28, 4,26, 2,26, 2,26, 4,26, 4,24
214 REM 2nd. Ending
215 DATA 4,17, 4,69, 4,69
217 REM :: start PART 5, C,F,G are SHARP
218 DATA 12,12, 8,14, 4,15, 4,16, 2,13, 2,16, 2,21, 2,25, 2,28, 2,69, 2,26, 2,69, 2,25, 2,69
221 DATA 4,25, 2,25, 2,24, 2,25, 2,26, 2,25, 2,23, 2,21, 2,20, 2,20, 4,20, 4,21
224 DATA 4,18, 4,69, 4,69, 2,30, 2,69, 4,69, 4,69, 2,30, 2,69, 4,69, 4,69, 4,9, 4,11, 4,13
226 REM cantando & to REPEAT
227 DATA 4,14, 6,6, 2,9, 4,14, 6,6, 2,9, 12,14, 4,14, 4,13, 4,11, 4,13, 6,4, 2,9
230 DATA 4,13, 6,4, 2,9, 12,13, 4,13, 4,11, 4,9, 4,8, 4,11, 4,20, 4,29, 4,18, 4,14, 12,13, 4,13, 4,11, 4,9
232 REM ENDING 1
233 DATA 4,8, 4,11, 4,18, 4,18, 4,16, 4,8, 12,9, 4,9, 4,11, 4,13
235 REM repeat
236 DATA 4,14, 6,6, 2,9, 4,14, 6,6, 2,9, 12,14, 4,14, 4,13, 4,11, 4,13, 6,4, 2,9
239 DATA 4,13, 6,4, 2,9, 12,13, 4,13, 4,11, 4,9, 4,8, 4,11, 4,20, 4,29, 4,18, 4,14, 12,13, 4,13, 4,11, 4,9
241 REM ENDING 2
242 DATA 4,8, 4,9, 4,11, 4,12, 4,13, 4,14, 4,16, 2,16, 2,16, 4,16, 4,16, 4,16,4,16
244 REM to be repeated, brillante
245 DATA 4,25, 4,69, 4,69, 4,25, 4,69, 4,69, 12,25, 4,25, 2,16, 2,20, 2,21, 2,23, 4,69, 4,69, 2,23, 4,69, 4,69, 12,26, 4,26, 2,18, 2,22, 2,23, 2,25, 4,26, 4,69, 4,69
247 REM 1st. Ending
248 DATA 4,26, 4,69, 4,69, 12,30, 4,30, 4,28, 4,25, 12,30, 4,30, 4,28, 4,26, 4,25, 4,69, 4,69, 12,69
250 REM repeat
251 DATA 4,25, 4,69, 4,69, 4,25, 4,69, 4,69, 12,25, 4,25, 2,16, 2,20, 2,21, 2,23, 4,69, 4,69, 2,23, 4,69, 4,69, 12,26, 4,26, 2,18, 2,22, 2,23, 2,25, 4,26, 4,69, 4,69
253 REM #2 Ending
254 DATA 4,30, 12,33, 4,33, 4,32, 4,30, 4,30, 4,28, 4,27, 4,26, 4,25, 4,23, 12,21, 4,21
255 REM >END.< back to intro
2000 DATA 999,999
2010 RESTORE : GO TO 10
8000 CLS
8010 REM "p16" WAS shooting titles in SINCUS --I changed to use as a subroutine
8020 REM SINCUS NEWS NOV/DEC 86
8030 REM :::: ENTER YOUR TITLE IN LINE 8120 (USE 16 SPACES) REMOVE LINE 4 & START PGM.
8040 REM by Eddie Duncan-Dunlap, Bridgen, Mid Glamorgan
8050 REM from "Your Sinclair"
8060 REM reprinted by "ZX-Appeal"-Vancouver Sinclair Users Group
8070 REM September 1986
8090 BORDER 1
8100 REM changes to effect-RAND the x value or drop NOT out of line 8150
8120 PRINT AT 0,0; INK 7;"**BLUE DANUBE**"
8130 FOR x=0 TO 127
8140 FOR y=0 TO 7
8150 IF NOT POINT (x,y+168) THEN GO TO 8220
8160 PLOT 2*x,3*y+80
8170 PLOT 0,0: DRAW OVER 1;2*x,3*y+79
8180 PLOT 0,0: DRAW OVER 1;2*x,3*y+79
8190 PRINT AT 21,0;
8200 BEEP .01,7
8210 PLOT 2*x,3*y+81
8220 NEXT y
8300 NEXT x
8305 PAUSE 150
8310 RETURN
8400 REM SCREEN DISPLAY
8420 BORDER 1: PAPER 1: CLS
8425 LET Y=10
8430 FOR J=1 TO 5
8435 PLOT 8,Y
8440 FOR i=1 TO 12
8445 DRAW INK 7;20,0,.2*PI
8450 NEXT i
8455 LET y=y+20
8460 NEXT j
8570 FOR i=1 TO 320
8575 PRINT PAPER 7;" ";
8580 NEXT i
8585 PLOT 150,95
8590 DRAW 30,20
8595 DRAW -120,0
8600 DRAW 30,-20
8605 PLOT 120,115
8610 DRAW 0,50
8620 DRAW -40,-40
8630 DRAW 40,0
8632 INK 1
8635 PRINT INK 7;AT 0,0;" ON THE BEAUTIFUL BLUE DANUBE "
8640 PRINT INK 7;AT 20,0;" This will be the ENTIRE SCORE "
8645 PRINT INK 7;AT 21,1;"(I've improvised some) ENJOY! "
8650 RETURN
9999 SAVE "bluedanube": SAVE "bluedanube": CLS : PRINT AT 10,0;"To VERIFY, rewind tape & PLAY": VERIFY "": VERIFY ""Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.
