First published at http://youtube.com/watch?v=e3L_Ceat4Ss

Since it can be hard to follow the big picture of what's going on with the source code in this video, I placed the syntax-highlighted source code available at the following web address:
http://bisqwit.iki.fi/jutut/kuvat/programming_examples/noise.html

Source code

Download here
0 DIM LINES$(56,3)
1 RESTORE 1000: FOR N% = 1 TO 56: READ LINES$(N%,1): NEXT
2 RESTORE 2000: FOR N% = 1 TO 56: READ LINES$(N%,2): NEXT
3 RESTORE 3000: FOR N% = 1 TO 56: READ LINES$(N%,3): NEXT
4 '**********************************************************
5 '** NOTE: THIS PROGRAM IS FOR TANDY 1000 GW-BASIC ONLY.  **
6 '** IT WILL NOT WORK IN QUICKBASIC OR QBASIC, BECAUSE    **
7 '** IT DEPENDS ON THE 3-CHANNEL PLAY & NOISE STATEMENTS. **
8 '**********************************************************
9 'Created by Joel Yliluoma. Published at http://youtu.be/e3L_Ceat4Ss

10 RESTORE 4000: KEY OFF: CLS
11 FOR N% = 0 TO 5: READ C%(N%), B%(N%), A%: B$(N%) = CHR$(A%)+CHR$(A%): NEXT
12 FOR Y% = 1 TO 25         ' Invoke art!
13   READ S$: LOCATE Y%, 1
14   FOR X% = 1 TO 23
15     N% = VAL(MID$(S$, X%, 1))
16     COLOR C%(N%), B%(N%)
17     PRINT B$(N%);
18   NEXT
19 NEXT

21   'The drum loop consists of noise commands that have the combined
22   'length of sixteen PIT ticks (each is 0x1234DC/65536 seconds).
23   'This makes the cycle about 0.8788 seconds long.
24   'To match the song to the drumbeat, 2 quarternotes
25   'should last exactly the same length of time.
26   'To achieve this, we must solve the following equation:
27   '   16 / (0x1234DC/65536) = 2*60/tempo
28   'This gets about ~136.5487. I select tempo 138 to avoid lag.
30 WHILE 1 ' Loop begin
31 PLAY "MFt138 L8 V14 o2", "MFt138 L8 V9o2", "MFt138 V15 MS L16 o1"
40 FOR N% = 1 TO 56
50   FOR A% = 1 TO 2
51     NOISE 6,13,1:NOISE 3,14,3
52     NOISE 5,10,1:NOISE 3,14,1
53     NOISE 5,10,1:NOISE 3,14,1
54     NOISE 4,13,1:NOISE 3,14,3
55     NOISE 5,10,1:NOISE 3,14,1
56     NOISE 5,10,1:IF A%<2 THEN NOISE 7,1,1
57   NEXT ' The noise commands will be played from a background buffer.
61   FOR A% = 1 TO 3: S$ = LINES$(N%, A%): Y% = A%*3-2: GOSUB 100: NEXT
65   LOCATE 14,48: COLOR 13: PRINT DATE$;
66   LOCATE 15,48: COLOR 5:  PRINT TIME$, TIMER;
67   LOCATE 16,48: COLOR 9:  PRINT N%;
70   PLAY LINES$(N%,1),LINES$(N%,2),LINES$(N%,3)
75   IF INKEY$ <> "" THEN KEY ON: LOCATE 24: END
80 NEXT
90 WEND    ' Loop forever!

99 NOISE 1,15,8:PLAY "v9n35","v8n23","v15n11":RETURN

100 S$ = S$ + SPACE$(31*3 - LEN(S$)): COLOR 7
101 LOCATE Y%+0,48: PRINT LEFT$(S$,31);
102 LOCATE Y%+1,48: PRINT MID$(S$,32,31);
103 LOCATE Y%+2,48: PRINT MID$(S$,63,31);
104 RETURN

1000 REM Melody for audio channel 1 (lead)
1001 DATA c+e16e16ee16e16ec+p8c+16c+16, ee16e16ec+p8g+f+g+
1002 DATA p8e16e16ee16e16ec+p8g+,       p8f+p8ep8f+p4
1004 DATA p8f+16f+16f+f+16f+16f+d+p8g+, p8f+p8ep8d+p8c+
1006 DATA p8c+g+ba+4.c+, p8c+g+ba+p8 >d+e<
1008 DATA p8e16e16ee16e16ec+p8c+16c+16, ee16e16ec+p8g+f+g+
1010 DATA p8e16e16ee16e16ec+p8g+,       p8f+p8ep8f+p4
1012 DATA p8f+16f+16f+f+16f+16f+d+p8g+, p8f+p8ep8d+p8c+
1014 DATA p8c+g+ba+4.c+
1015 DATA p8c+g+ba+p8bp32 >c+16.
1016 DATA V13 c+4c+2 <bML >eMN, ec+4 <b4 >c+4p8, <b2b >c+4.,  <g+ag+ep8eg+b>
1019 DATA        c+2.<bML >eMN, ec+4 <b4 >c+4p64 <b16..
1021 DATA b2bg+b>c,p8ccd+g+2,V14<<g+2.  f+MLbMN
1025 DATA ba4g+4a4p32g+16.      , g+2g+4f+MLbMN
1027 DATA ba4g+4a4p64e16..      , e2ef+g+MLd+MN , d+2.. >c+
1030 DATA p8c+g+ba+4.c+
1031 DATA p8c+g+ba+p8bp64 >c+16..
1032 DATA MSL16 c+c+c+c+c+c+c+c+c+c+c+c+ <bb >c+c+
1033 DATA       p8e4.g+g+f+8eed+d+
1034 DATA MSL16 c+c+c+c+c+c+c+c+c+c+c+c+ <bb >c+c+
1035 DATA       p8e4.eef+f+e4, d+2d+8c+8 <bb >g+g+
1037 DATA       L4 g+f+ed+ MN
1038 DATA L8 d+16d+16ed+16d+16 c+2 <c+
1039 DATA p8c+g+ba+p8bp32 >c+16.
1040 DATA V13 c+4c+2 <bML >eMN, ec+4 <b4 >c+4p8, <b2b >c+4.,  <g+ag+ep8eg+b>
1044 DATA        c+2.<bML >eMN, ec+4 <b4 >c+4p64 <b16..
1046 DATA b2bg+b>c V15
1047 DATA p8ccd+g+4. <e  , p8eed+e4 >c+ML <b MN, ba4g+4f+4f+, p8g+g+p8g+p4f+
1051 DATA p8g+g+p8g+p8f+e, p8eed+e4 >c+ML <b MN, ba4g+4f+4p8, d+ed+p64c+16..c+2
1055 DATA p1

2000 REM Melody for audio channel 2 (harmonic, counterpoint, echo)
2001 DATA    p8 c+16c+16c+c+16c+16c+ <g+p8g+16g+16>
2002 DATA c+c+16c+16c+ <g+p8 >ed+e
2003 DATA p8c+16c+16c+c+16c+16c+ <g+p8 >e, p8d+p8c+p8d+ p4
2004 DATA p8d+16d+16d+d+16d+16d+ <b p8 >e, p8d+p8c+p8<b>p4
2006 DATA c+p8c+g+ba+4.
2007 DATA c+p8c+g+ba+b >c+
2008 DATA V10p8<c+16c+16c+c+16c+16c+ <g+p8g+16g+16>
2009 DATA c+c+16c+16c+ <g+p8 >ed+e
2010 DATA p8c+16c+16c+c+16c+16c+ <g+p8 >e, p8d+p8c+p8d+ p4
2012 DATA p8d+16d+16d+d+16d+16d+ <b p8 >e, p8d+p8c+p8<b>p4
2014 DATA c+p8c+g+ba+4.
2015 DATA c+p8c+g+ba+b >c+
2016 DATA p16p32c+16.c+4c+2ML <b16 MN  , b16 >e4c+4 <b4ML >c+. MN
2018 DATA c+16p8 <b2bML >c+. MN        , c+. <g+ag+ep8eMLg+16 MN
2020 DATA g+16b >c+2.ML <b16 MN        , b16 >e4c+4 <b4ML >c+. MN
2022 DATA c+16p64 <b16..b2bg+MLb16 MN  , b16 >cp8ccd+p32g+.. <e16
2024 DATA V12 c+e16e16ee16e16ec+p8c+16c+16, ee16e16ec+p8g+f+g+
2026 DATA p8e16e16ee16e16ec+p8g+,       p8f+p8ep8f+p4
2028 DATA p8f+16f+16f+f+16f+16f+d+p8g+, p8f+p8ep8d+p4
2030 DATA c+p8c+g+ba+4.
2031 DATA c+p8c+g+ba+ >f+g+
2032 DATA p8   <e16e16ee16e16ec+p8c+16c+16, ee16e16ec+p8g+f+g+
2034 DATA p8e16e16ee16e16ec+p8g+,       p8f+p8ep8f+p4
2036 DATA p8f+16f+16f+f+16f+16f+d+p8g+, p8f+p8ep8d+p8c+
2037 DATA p8c+g+ba+2
2039 DATA c+p8c+g+ba+ >f+g+
2040 DATA p16p32c+16.c+4c+2ML <b16 MN  , b16 >e4c+4 <b4ML >c+. MN
2042 DATA c+16p8 <b2bML >c+. MN        , c+. <g+ag+ep8eMLg+16 MN
2044 DATA g+16b >c+2.ML <b16 MN        , b16 >e4c+4 <b4ML >c+. MN
2046 DATA c+16p64 <b16..b2bg+MLb16 MN  , b16 >cp8ccd+p8. <c+
2048 DATA p8c+c+ <b >c+4aMLf+MN , f+f+4e4d+4d+
2050 DATA p8eep8ep4d+
2051 DATA p8eep8ep8d+c+
2052 DATA p8c+c+ <b >c+4aMLf+MN , f+f+4e4d+4p8
2054 DATA <b >c+ <bp64g+16..g+2
2055 DATA p1

3000 REM Melody for audio channel 3 (murmurs)
3001 DATA c+8c+c+c+8c+c+c+8c+c+c+8c+c+
3002 DATA c+8c+c+c+8c+c+c+8c+c+c+8c+c+
3003 DATA <a8aaa8aaa8aaa8aa,a8aaa8aaa8aaa8aa,b8bbb8bbb8bbb8bb,b8bbb8bbb8bbb8bb>
3006 DATA c+8c+c+c+8c+c+c+8c+c+c+8c+c+
3007 DATA c+8c+c+c+8c+c+c+8c+c+ <b8p64 >c+..
3008 DATA c+8c+c+c+8c+c+c+8c+c+c+8c+c+
3009 DATA c+8c+c+c+8c+c+c+8c+c+c+8c+c+
3010 DATA <a8aaa8aaa8aaa8aa,a8aaa8aaa8aaa8aa,b8bbb8bbb8bbb8bb,b8bbb8bbb8bbb8bb>
3014 DATA c+8c+c+c+8c+c+c+8c+c+c+8c+c+
3015 DATA c+8c+c+c+8c+c+c+8c+c+ <b8p64 >c+..
3016 DATA d8ddd8ddd8aaf+f+f+8       , p8ddf+8dd >c+8 <f+f+a8dd
3018 DATA c+8c+c+c+8c+c+c+8g+g+eeb8 , p8c+c+e8c+c+b8eeg+8c+c+
3020 DATA d8ddd8ddd8aaf+f+f+8       , p8ddf+8dd >c+8 <f+f+a8dd
3022 DATA <b8bbb8bbb8bbb8 >c8 , p8c8c8c8c4p4
3024 DATA c+8c+c+c+8c+c+c+8c+c+c+8c+c+
3025 DATA c+8c+c+c+8c+c+c+8c+c+c+8c+c+
3026 DATA <a8aaa8aaa8aaa8aa,a8aaa8aaa8aaa8aa,b8bbb8bbb8bbb8bb,b8bbb8bbb8bbb8bb>
3030 DATA c+8c+c+c+8c+c+c+8c+c+c+8c+c+
3031 DATA c+8c+c+c+8c+c+c+8c+c+ <b8p64 >c+..
3032 DATA c+8c+c+c+8c+c+c+8c+c+c+8c+c+
3033 DATA c+8c+c+c+8c+c+c+8c+c+c+8c+c+
3034 DATA <a8aaa8aaa8aaa8aa,a8aaa8aaa8aaa8aa,b8bbb8bbb8bbb8bb,b8bbb8bbb8bbb8bb>
3038 DATA c+8c+c+c+8c+c+c+8c+c+c+8c+c+
3039 DATA c+8c+c+c+8c+c+c+8c+c+ <b8p64 >c+..
3040 DATA d8ddd8ddd8aaf+f+f+8       , p8ddf+8dd >c+8 <f+f+a8dd
3042 DATA c+8c+c+c+8c+c+c+8g+g+eeb8 , p8c+c+e8c+c+b8eeg+8c+c+
3044 DATA d8ddd8ddd8aaf+f+f+8       , p8ddf+8dd >c+8 <f+f+a8dd
3046 DATA <b8bbb8bbb8bbb8 >c8 , p8c8c8c8c4p8ML <a8
3048 DATA MSa8aaa8aaa8aaa8MLb8 , MSb8bbb8bbb8bbb8MLc+8>
3050 DATA V13 MSc+8 >c+8 <d+8 >d+8 <e8 >e8 <d+8MLc+8V15
3051 DATA V13 MSc+8 >c+8 <d+8 >d+8 <e8 >e8 <d+8MLa8<V15
3052 DATA MSa8aaa8aaa8aaa8MLb8 , MSb8bbb8bbb8bb >c4
3054 DATA c+4aag+g+f+f+ee <b8 >c+8 , p8 <b8 >c+4 <b8 >c8c+4

4000 REM This is art. Type "GOSUB 99" to hear a buzzer.
4001 DATA 0,0,219, 11,1,176, 11,1,177, 14,7,177, 15,0,219, 6,0,219
4002 DATA 55555555555000555555555
4003 DATA 55555555500022055555555
4004 DATA 55555555011102205555555
4005 DATA 55555550111110000555555
4006 DATA 55555550111110222055555
4007 DATA 55555502111111001055555
4008 DATA 55555502113444114055555
4009 DATA 55555502134400304055555
4010 DATA 55555550134400304055555
4011 DATA 55555500133444343055555
4012 DATA 55550022033000030005555
4013 DATA 55502222203333302210555
4014 DATA 55501122220000022210555
4015 DATA 55011220222222202211055
4016 DATA 55011000222222200011055
4017 DATA 55011100222222200111055
4018 DATA 55011100111111100111055
4019 DATA 55500000111111100000555
4020 DATA 55555502211112220555555
4021 DATA 55555011222022221055555
4022 DATA 55550011220502111005555
4023 DATA 55001111105550111110055
4024 DATA 50111111105550111111105
4025 DATA 50000000005550000000005
4026 DATA 55555555555555555555555