[comp.dsp] A couple of pieces for Csound

mg@ukc.ac.uk (M.W.Guy) (06/16/90)

For people using the Csound sound synthesis package, here are a couple of
pieces of music.  The instruments are a simple string bass and "wobba", a
synthetic organ, vaguely reminiscent of a Hammond organ and Leslie cabinets
(with those wonderful whirling speakers).

You wil also find attached the "scot" for the final movement of Bach's
Italian Concerto, which sounds fine played on wobba.

The Csound mailing list seems to be dead, hence my posting here
instead of there.

Enjoy
	Martin

#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create the files:
#	sting.orc
#	sting.scot
#	it3.scot
# This archive created: Fri Jun 15 20:55:04 1990
export PATH; PATH=/bin:$PATH
if test -f 'sting.orc'
then
	echo shar: will not over-write existing file "'sting.orc'"
else
cat << \SHAR_EOF > 'sting.orc'
; Orchestra for backing riff from "Rock Steady" from "Nothing like the Sun"
; by Sting.  Plucked bass and hammond clone.
; Martin Guy, Canterbury, April 1990
sr=8192
kr=512
ksmps=16

; Bogus instrument for global end decay
gkdecay	init 1
instr 3
gkdecay	line	1,p3,0
endin

; Spluck.
instr 1
a11	pluck	7500,cpspch(p5),200,2,1
a12	pluck	7500,cpspch(p5)*1.01,200,2,1
a13	oscil	5000,cpspch(p5),1
kdecay	linseg	1,p3*0.9,1,p3*0.1,0
	out	(a11+a12+a13)*kdecay*gkdecay
endin

instr 2
; Wobba.
; Harmonic sine waves, with amplitudes controlled by slow sines of different
; rates for a hammond-like effect.
; Amplitude of tones is proportional to 1/freq for equal energy.

icps = cpspch(p5)	; pitch of current note in cps
iamp = 440/icps		; amplitude of current note
ileslie = (icps/440)*2	; speed of wobble

; Four slow oscillators control amplitude of first four harmonics.
; The tremolo rate is proportional to the frequency of the harmonic.
k1	oscil 2500*iamp,ileslie,1
k2	oscil 1250*iamp,ileslie*2,1
k3	oscil 750*iamp,ileslie*3,1
k4	oscil 1000*iamp,ileslie*4,1

; The first four harmonics (almost)
a1	oscil k1,icps,1
a2	oscil k2,icps*2.01,1
a3	oscil k3,icps*3.02,1
a4	oscil k4,icps*4.03,1

; Envelope for tidy decay
kenv	linseg	1,p3*3/4,1,p3/4,0

asig	= (a1+a2+a3+a4)*kenv

out	asig * gkdecay

endin
SHAR_EOF
fi # end of overwriting check
if test -f 'sting.scot'
then
	echo shar: will not over-write existing file "'sting.scot'"
else
cat << \SHAR_EOF > 'sting.scot'
; Backing riff for "Rock Steady" from "Nothing like the Sun" by Sting
; Martin Guy, Canterbury, April 1990
orchestra {
	bass = 1
	chords = 2
	gdecay = 3
}

functions {
; sine wave table
f1 0 1024 10 1
; string just before plucking.
f2 0 1024 7 0 32 1 928 -1 32 0
}

score {
$bass
t 130
4=,,a12rra6'e12,a6'g12,a__/
12arr12rra6'e12,a6'g_12f#/
4,a12rra6'e12,a6'g12,a__/
12arr12rra6'e12,a4'g/

4,a12rra6'e12,a6'g12,a__/
12arr12rra6'e12,a6'g_12f#/
4,a12rra6'e12,a6'g12,a__/
12arr12rra6'e12,a4'g/

$chords
4r 12=c#<=g<=,e rr  4r 12 =c#<=g<=,e rr /
4r 12=c#<=g<=,e rr  4r 12 =c#<=g<=,e rr /
4r 12=c#<=g<=,e rr  4r 12 =c#<=g<=,e rr /
4r 12=c#<=g<=,e rr  4r 12 =c#<=g<=,e rr /

4r 12=c#<=g<=,e rr  4r 12 =c#<=g<=,e rr /
4r 12=c#<=g<=,e rr  4r 12 =c#<=g<=,e rr /
4r 12=c#<=g<=,e rr  4r 12 =c#<=g<=,e rr /
4r 12=c#<=g<=,e rr  4r 12 =c#<=g<=,e rr /
}

score {
$bass
t 130
4=,,,f12rrf6'e-12,f6'f12,f__/
12frr12rrf6'e-12,f4'f/
4,f12rrf6'e-12,f6'f12,f__/
12frr12rrf6'e-12,f4'f/

4,f12rrf6'e-12,f6'f12,f__/
12frr12rrf6'e-12,f4'f/
4,f12rrf6'e-12,f6'f12,en__/
12err12rre4'dc/

$chords
4r 12=c<=a<=,e- rr  4r 12 =c<=a<=,e- rr /
4r 12=c<=a<=,e- rr  4r 12 =c<=a<=,e- rr /
4r 12=c<=a<=,e- rr  4r 12 =c<=a<=,e- rr /
4r 12=c<=a<=,e- rr  4r 12 =c<=a<=,e- rr /

4r 12=c<=a<=,e- rr  4r 12 =c<=a<=,e- rr /
4r 12=c<=a<=,e- rr  4r 12 =c<=a<=,e- rr /
4r 12=c<=a<=,e- rr  4r 12 =c<=a<=,e- rr /
4r =bn<=a-<=,d rr/ 
}

score {
$bass
t 130
4=,,a12rra6'e12,a6'g12,a__/
12arr12rra6'e12,a6'g12f#/
4,a12rra6'e12,a6'g12,a__/
12arr12rra6'e12,a4'g/

4,a12rra6'e12,a6'g12,a__/
12arr12rra6'e12,a6'g12f#/
4,a12rra6'e12,a6'g12,a__/
12arr12rra6'e12,a4'g/

$chords
4r 12=c#<=g<=,e rr  4r 12 =c#<=g<=,e rr /
4r 12=c#<=g<=,e rr  4r 12 =c#<=g<=,e rr /
4r 12=c#<=g<=,e rr  4r 12 =c#<=g<=,e rr /
4r 12=c#<=g<=,e rr  4r 12 =c#<=g<=,e rr /

4r 12=c#<=g<=,e rr  4r 12 =c#<=g<=,e rr /
4r 12=c#<=g<=,e rr  4r 12 =c#<=g<=,e rr /
4r 12=c#<=g<=,e rr  4r 12 =c#<=g<=,e rr /
4r 12=c#<=g<=,e rr  4r 12 =c#<=g<=,e rr /

$gdecay
1c__/1c__/1c__/1c__/
1c__/1c__/1c__/1c/
}
SHAR_EOF
fi # end of overwriting check
if test -f 'it3.scot'
then
	echo shar: will not over-write existing file "'it3.scot'"
else
cat << \SHAR_EOF > 'it3.scot'
; Italian Concerto Pt 3
; @(#)it3.scot	1.2 (mg@ukc) 2/28/90
orchestra {
	voice1 = 1
	voice2 = 1
	voice3 = 1
}

functions {
; sine wave table
f1 0 1024 10 1
; string just before plucking.
f2 0 1024 7 1 64 1 0 0 96 0 0 1 32 1 0 0
}

score {		; 3rd and final movement of the Italian Concerto by Bach.
$voice1
!key "-b"
!time "4/4"
t270
4='f2,f8ga/8bcdefgab/4c c<=''a c<g b<g/2a<f g<e/
2a8rgec/2f8re-ca/2d8rcaf/2b8rbge/
cde'babcf/efgbabc,e-/def'cbagf/efge2c/
4f2,f8ga/bcdefgab/4c c<=''a c<g b<g/2a<f g<e/
2=''b4ba/2g4ga/ 2=''b4ba/2g4ga/
4ba2g/4,cb2a/4rca8gf/2fr/

$voice2
!key "-b"
!time "4/4"
2=ac/4,fbag/8fr4='fec/2cc/
8rfed2c/8rdcb2a/8rbag2f__/8ffed2e/
1r/r/r/r/
2=ac/4,fbag/8fr4='fec/2cc/
8rfefr4f8f/8rfefr4f8f/8rfefr4f8f/8rfefr4f8f/
8r4f8frfed/8r4,g8grgfe/4f f<=c f<c e<b/2c<a r/

$voice3
!key "-b"
!time "4/4"
2=,fe/d4cb/8afgabcde/fgabcdec/
4f,fea/d,dcf/b,bad/,g8'ga4gf/
egfa/g,cf,a/bd,gb/8cdefgabg/
2fe/d4cb/8afgabcde/fgabcdec/
4d,d'dc/b,b'bc/d,d'dc/b,b'bc/
dcbg/ecfc/8agab4c,c/f8gabcde/
}

score {
; Bar 25
$voice1
!key "-b"
!time "4/4"
t270
8r='abcbagf/'e-c4d__8dbab/eb'f,b'g,bag/acbabaga/
4faca/f8bc4d,f/gbec/8fe4f__8fcbc/
8=''abagfedc/bn'g,bag'def/gagfedcbn/a'f,agf'cde/
$voice2
!key "-b"
!time "4/4"
1r/r/r/r/r/r/r/r/r/r/r/r/
$voice3
!key "-b"
!time "4/4"
4=,faca/f8bc4d,f/gbec/fcac/
8,fabcbagf/'e-c4d__8dbab/eb'f,b'g,bag/acbabaga/
4=,facf__/8fedcbnagf/4egce__/8edcbnagfe/
}

score {
; 37
$voice1
!key "-b"
!time "4/4"
t270
8='fgfedcbna/g'f,gfg'f,a'f/,bn'f,bab'fcf/dfdcdfcf/
8,bn'f,bab'f,a'f/,g'f,gfg'f,a'f/,bn'f,bab'fcf/dfdcbnagf/
egfefedc/'bg4a__8afef/bnf'c,f'd,fed/egfefede/
4cege/c8fg4a,c/dfbng/cg'gf/
$voice2
!key "-b"
!time "4/4"
1r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/
$voice3
!key "-b"
!time "4/4"
4=,dfac__/c8bna4bc/d8,gf4ga/bn8ba4bc/
4=d8,gf4ga/bn8ba4bc/d8,gf4ga/8bndbagfed/
4cege/c8fg4a,c/dfbng/cgeg/
8=,cefgfedc/'bg4a__8afef/bnf'c,f'd,fed/egfefede/
}

score {
; 53
$voice1
!key "-b"
!time "4/4"
t270
1='e__/8egfegfef/
1='d__/8dfedfede/1c__/8cedcedcd/
2bn__4bb/2c4re/2.f4d/2.e4f#/
1g/r/4='e2,c8de/fgabncdef/
4gg<='e g<d f<d/2e<c d<bn/2f4fe/2d4de/
2f4fe/2d4de/fe2d/8r4d8drdcbn/
4c'ge8dc/2cr
$voice2
!key "-b"
!time "4/4"
8r='cbabaga/4frrr/
8r='agfagfg/4errr/8rgfegfef/4drrr/
4rd2g/4rg2c__/4c8bna2b__/4b8ag4ac__/
8cedcdcbna/8gabncdefd/1r/4r=fed/
8cr4'cbng/2gg/8rcbncr4c8c/8rcbncr4c8c/
8rcbncr4c8c/8rcbncr4c8c/8r4c8crcbna/4gf2e__/
4e'c<='g c<g bn<f/2g<e r/
$voice3
!key "-b"
!time "4/4"
4=,cegb/acaf/
4=,bndfa/gbnge/,aceg/fafd/
8,g'gfefede/,g'fededcd/,g'edcdcbnc/g'dcbncbab/
8gcbnabaga/bncdefgab/4crbnr/2a4gf/
8e,cdefgabn/cdefgabng/4a,a'ag/f,f'fg/
a,a'ag/f,f'fg/agfd/bng8cdef/
8gfef4g,g/8,c'cdefgabn/
}

score {
; 77
$voice1
!key "-b"
!time "4/4"
t270
8='gecege'b,e/afcfaf'c,f/gecege'b,e/afcfafbf/
'cafaca'e-,a/dbfbdb'f,b/cafaca'e-,a/dbfbdb'f,b/
'g,c#bc'g,c'gd/ge,a'egegd/
 g,c#bc'g,c'gd/ge,a'egegd/
g,c#bc'g,c'gd/gfgefede/fg4a,ac#/8ddcbagfe/
8defgabnc#d/efgefede/fdc#bncdec/dagfgaba/
$voice2
!key "-b"
!time "4/4"
1r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/
$voice3
!key "-b"
!time "4/4"
4=cgec/'cafc/'cgec/8fcac4,fr/
4=,fcaf/'fdbf/'fcaf/8bfdf4,br/
4=,e8gf4ed/8c#dcbnabcd/
4=,e8gf4ed/8c#dcbnabcd/
efga4b,d/8c#abncdefg/agfg4a,a/8,d'defgabnc#/
4d2,,d8ef/gabnc#defg/4aaag/2fe/ ; There is a turn on the last f
}

score {
; 97
$voice1
!key "-b"
!time "4/4"
t270
4r='f<='d e<c# f<d/rf<d g<c# f<d/
4r='f<d e<c# f<d/rf<d g<c# f<d/
4e<c# d8cdef/2g__8ggfe/4faf8ed/2dr/;
$voice2
!key "-b"
!time "4/4"
1='b/a/
b/a/
4bagr/r='e2,a__/4a d<='a__ d<a c#<g__/8gagfgfef/
$voice3
!key "-b"
!time "4/4"
8=gdc#dgdfd/edc#dedfd/
 =gdc#dgdfd/edc#dedfd/
gdfdedc#bn/a'e,g'e,f'edc#/dafd4'a,a/d2=d4c/
}

score {
; 105
$voice1
!key "-b"
!time "4/4"
t270
8r='dcbcbac/2bbn/(8r'gfefedf)<(2.='c4bn)/4ef2g__/
8gcbabagb/4a b<=''g 2c__<a__/8c<a ,fe-dedce/2dc/
4b2,b8cd/e-fgabcde/4f f<='d f<c e-<c/2dc/
8rdcbcbac/4b 'g__<='e g<,c# f__<d/8ffededc#e/1,a__/
8aagfgfeg/2,c#r/8,fgabnc#def/gabnc#defg/
4a a<='f a<e g<e/2f<d e<c#/
$voice2
!key "-b"
!time "4/4"
4=d2g4f#/8rgfefedf/2ed/4='cd2e__/
4e2f4e/2f__f__/8fr2='b4a__/8abagagf#a/
4grrr/re-dc/8br4'baf/2b<=f a__<f/
4a2g4f#/2ga/1g__/8ggfefedf/
1,b__/8bbagagfe/1r/r/
4r='dc#a/2ar/
$voice3
!key "-b"
!time "4/4"
2=ba/1g__/g<(2=ed)/8=c,cbabagb/
4ad,gc/8,f=fe-dedce/2dc/4b=e-,ad__/
8d<=g ba-gagfa/2g4fe-/8dbcde-fga/bcde-fedf/
2,ba/8rgfefedf/4,bdge/c#ad,f/
gb,eg/aec#a/drrr/8r=,,fgabnc#de/
fdefgabnc#/defgafga/
}

score {
; 127
$voice1
!key "-b"
!time "4/4"
t270
1r/r/r/r/r/
4r8='g#f#4ga/1bn__/4bn8dc4df__/f8ed4ea__/
a8g#f#4ga/bn8ba4bc/1,d__/2.d4r/
8r=ef#g#abncd/4e e<=c e<bn d<bn/2c<a bn<g#/
$voice2
!key "-b"
!time "4/4"
8='fgfedcbna/g'f,gfgbncd/efedcbnag/f'e,fefabnc/dedcbnag#f#/
1e__/4e8ed4ef#/2.g#4a/2bn4ra/
bn2e8dc/4bnrrr/r8g#f#4gbn/2.,e4r/
1r/4r='ag#e/2ee/
$voice3
!key "-b"
!time "4/4"
4=d'afd/bndbg/c'gec/acaf/bn'fdb/
8g#'d,ede'd,f#'d/,g#'d,gf#g'dad/bndbabdad/,g#'d,gf#g'd,fn'd/
,e'd,ede'd,f#'d/,g#'d,gf#g'dad/bndbabdad/,g#'d,ef#gabnc/
dcbnag#f#ed/cabncdef#g#/abncdebg#e/
}

score {
; 143
$voice1
!key "-b"
!time "4/4"
t270
2='d4dc/2bn4bc/d ('ag#a)<(='cbna)/2.e<g# 4e<a/
dc2bn/8r4bnb8bag#/4a'ec8bna/4arrr/
2r8r=fga/2b<(8r='cde) 8='fgab/4c c<=''a c<g b<g/2a<f g<e/
1r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/r/
$voice2
!key "-b"
!time "4/4"
8r='ag#ar4a8a/rag#ar4a8a/r=ag#adaca/bnag#abaca/
r4='a8arag#f#/4ed2c__/4c e<='a<='c e<a d<g#/c<e rrr/
8rbnc__ c__<=d 2c__<e__/(2cb)<1e/8=f<=a r4='fec/2cc__/
8cafaca'e-,a/dbfbdb'f,b/cafaca'e-,a/dbfb2d__/
8dbngbdb'f,b/ecgcec'g,c/dbngbdb'f,b/ecgcecfc/
'gecege'b,e/afcfaf'c,f/gecege'b,e/afca2f__/
8fabcbagf/'e-c4d__8dbab/eb'f,b'g,bag/acbabaga/
$voice3
!key "-b"
!time "4/4"
8=,f'fef,f'f,e'e/,dfefd'd,e'e/2.,f4e/2.d4c/
f<=d edbn/g#e8abncd/edcd4e,e/8,a'abncdefg/
1a/1g/8=,f,fgabcde/fgabcdec/
4fcaf/'fdbf/'fcaf/2b__8bcba/
4gdbng/'gecg/'gdbng/8c'cbnagfed/
4cgec/'cafc/'cgec/2f__8ffga/
bcdefgab/cafabdcd/4=gbec/fcac/
}

score {
; 171
$voice1
!key "-b"
!time "4/4"
t270
4=faca/f8bc4d,f/gbec/8f,agf'dcbc/
1a__/8acbacbab/1g__/8gbagbaga/
1f__/8fagfagfg/2.e4e/2f4ra/
2.b4g/2.a4bn/1c/r/
8='ac4,f__8ffga/bcdefgab/4c c<=''a c<g b<g/2a<f g<e/
2a8rgec/2f8re-ca/2d8rcaf/2b8rbge/
cde'babcf/efgbabc,e-/def'cbagf/efge2c/
$voice2
!key "-b"
!time "4/4"
1r/r/r/r/
8r=fe-dedcd/4brrr/8rdcbdcbc/4arrr/
8rcbacbab/4grrr/4rgcb/ac2f__/
4f8ed2e__/4e8dc4df__/8fagfgfed/cdefgabg/
8r=g a__ a__<=b 2a<c/4=,fbag/8fr4='fec/2cc/
8rfed2c/8rdcb2a/8rbag2f__/8ffed2e/
1r/r/r/r/
$voice3
!key "-b"
!time "4/4"
8=,f,abcbagf/'e-c4d__8dbab/eb'e,b'g,bag/acbabaga/
4face-/dfdb/,egbd/ceca/
,dfac/bdbg/8=,,c'cbabaga/,c'bagagfg
/,c'agfgfef/c'gfefede/cfededcd/efgabcde/
2.f4e/2d4cb/8afgabcde/fgabcdec/
4f,fea/d,dcf/b,bad/g8,ga4gf/
egfa/g'ef,a/bd,gb/8cdefgabg/
}

score {
; 199
$voice1
!key "-b"
!time "4/4"
t270
4='f2,f8ga/bcdefgab/4c c<''a c<g b<g/2a<f g<e/
2=''b4ba/2g4ga/ 2=''b4ba/2g4ga/
t270
4ba2g/4,cb2a/4rca8gf/1f/
t120
$voice2
!key "-b"
!time "4/4"
2=ac/4,fbag/8fr4='fec/2cc/
8rfefr4f8f/8rfefr4f8f/8rfefr4f8f/8rfefr4f8f/
8r4f8frfed/8r4,g8grgfe/4f f<=c f<c e<b/1c<a/
$voice3
!key "-b"
!time "4/4"
2=,fe/d4cb/8afgabcde/fgabcdec/
4d,d'dc/b,b'bc/d,d'dc/b,b'bc/
dcbg/ecfc/8bagf 2'c<(4r=,,c)/1c<f/
}
SHAR_EOF
fi # end of overwriting check
#	End of shell archive
exit 0