File: schottstaedt.orc

package info (click to toggle)
csound-manual 1%3A6.18.0%2Bdfsg0-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 48,700 kB
  • sloc: xml: 163,282; makefile: 795; python: 747
file content (71 lines) | stat: -rw-r--r-- 1,975 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71



;===========================================================
;    schottstaedt.orc
;===========================================================

        sr      =       44100
        kr      =       2205
        ksmps   =       20
        nchnls  =       2


; functions for the schottstaedt string
giSineWave    ftgen    1, 0, 512, 10, 1
giTable1    ftgen    2, 0, 129, 7, 1, 129, 0
giVibEnvlp    ftgen    3, 0, 129, 5, .01, 129, 1
giPanLeft    ftgen    10, 0, 129, 9, .25, 1, 90
giPanRight    ftgen    11, 0, 129, 9, .25, 1, 0



        instr 1    ; a schottstaedt string instrument
;===========================================================
;   p4=amp(0-1)     p5=pitch(in oct)     p6=pan(0=l, 1=r)
;===========================================================
; set constants
iamp    =        32767*p4

icps    =        cpsoct(p5)

; check to see if pan is out of our range
ipanfac =         (p6 > 1 ? 1 : p6)
ipanfac =         (p6 < 0 ? 0 : ipanfac)
; map linear pan factor to more natural sqrt function
ilpan   tablei    ipanfac,10,1
irpan   tablei    ipanfac,11,1

indx1   =       7.5/log(icps)
indx2   =       (8.5-log(icps))/(3+icps*1000)
indx3   =       1.25/sqrt(icps)



;vibrato unit
krnd    randi   .0075,15
kvibe   oscil1i 0,.015,p3/4,3               ;envlp for vibrato
kvib    oscili  krnd+kvibe,5.5*kvibe,1

;attack noise
kgaten  oscil1i 0,iamp/5,.2,2
krnd    randi   kgaten,.2*icps
anoise  oscili  krnd,2000,1

;main unit
kgate   oscil1i 0,1,.2,2                 ;envlp for indicies to make
                                         ;chiff sound

amod1   oscili  (kgate+indx1)*icps,icps,1
amod2   oscili  (kgate+indx2)*3*icps,3*icps,1          ;modulators
amod3   oscili  (kgate+indx3)*4*icps,4*icps,1

amods   =       icps+amod1+amod2+amod3

asig    oscili  iamp,amods*(kvib+1),1               ;carrier oscil with vibrato

asigs   linen   asig+anoise,.2,p3,.2        ;final envlp for oscil+noise

        outs    asigs*ilpan,asigs*irpan

        endin