mirror of
https://github.com/eliasstepanik/strudel-docker.git
synced 2026-01-13 22:58:34 +00:00
- better timing - can now pass instrument to .csound(...) - can now write instruments with csound(...)
61 lines
1.1 KiB
JavaScript
61 lines
1.1 KiB
JavaScript
export function csd(code = '') {
|
|
return `
|
|
<CsoundSynthesizer>
|
|
<CsOptions>
|
|
-o dac --port=10000 --sample-accurate
|
|
</CsOptions>
|
|
<CsInstruments>
|
|
sr=48000
|
|
ksmps=64
|
|
nchnls=2
|
|
0dbfs=1
|
|
|
|
instr organ
|
|
iduration = p3
|
|
ifreq = p4
|
|
igain = p5
|
|
ioct = octcps(ifreq)
|
|
|
|
asig = vco2(igain, ifreq, 12, .5) ; my edit
|
|
kpwm = oscili(.1, 5)
|
|
asig = vco2(igain, ifreq, 4, .5 + kpwm)
|
|
asig += vco2(igain/4, ifreq * 2)
|
|
|
|
; filter
|
|
; idepth = 2
|
|
; acut = transegr:a(0, .005, 0, idepth, .06, -4.2, 0.001, .01, -4.2, 0) ; filter envelope
|
|
; asig = zdf_2pole(asig, cpsoct(ioct + acut), 0.5)
|
|
|
|
; amp envelope
|
|
iattack = .001
|
|
irelease = .05
|
|
asig *= linsegr:a(0, iattack, 1, iduration, 1, irelease, 0)
|
|
|
|
out(asig, asig)
|
|
|
|
endin
|
|
|
|
instr triangle
|
|
iduration = p3
|
|
ifreq = p4
|
|
igain = p5
|
|
ioct = octcps(ifreq)
|
|
|
|
asig = vco2(igain, ifreq, 12, .5)
|
|
|
|
; amp envelope
|
|
iattack = .001
|
|
irelease = .05
|
|
asig *= linsegr:a(0, iattack, 1, iduration, 1, irelease, 0)
|
|
|
|
out(asig, asig)
|
|
|
|
endin
|
|
|
|
${code}
|
|
|
|
</CsInstruments>
|
|
</CsoundSynthesizer>
|
|
`;
|
|
}
|