Created
March 29, 2012 22:55
-
-
Save jacobjoaquin/2244631 to your computer and use it in GitHub Desktop.
Swing transfer function
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<CsoundSynthesizer> | |
<CsInstruments> | |
sr = 44100 | |
kr = 44100 | |
ksmps = 1 | |
nchnls = 2 | |
0dbfs = 1.0 | |
instr 1 | |
p3 = 0.35 | |
idur = p3 | |
iamp = p4 * 0.478 | |
kenv1 expseg 900, 0.01, 50, idur - 0.01, 44 | |
asig1 oscil3 1, kenv1, 1 | |
kenv2 line 1, idur, 0 | |
asig1 = asig1 * kenv2 | |
asig2 gauss 1 | |
kenv5 expseg 800, 0.1, 50, idur - 0.1, 44 | |
asig2 tone asig2, kenv5 | |
amix = asig1 + asig2 | |
kenv5 expseg 500, 0.05, 60, idur - 0.05, 44 | |
amix rezzy amix, kenv5, 10 | |
kenv6 linseg 55, idur, 44 | |
aosc oscil3 1, kenv6, 1 | |
kenv4 expon 2, idur, 1 | |
kenv4 = kenv4 - 1 | |
amix = (amix * 0.8 + aosc * 1.2) * kenv4 * iamp | |
outs amix, amix | |
endin | |
instr 2 | |
p3 = 0.15 | |
idur = p3 | |
iamp = p4 * 0.358 | |
ivalue = p4 * 0.308 | |
atri oscil3 1, 111 + ivalue * 5, 2 | |
areal, aimag hilbert atri | |
ifshift = 175 | |
asin oscil3 1, ifshift, 1 | |
acos oscil3 1, ifshift, 1, .25 | |
amod1 = areal * acos | |
amod2 = aimag * asin | |
ashift1 = (amod1 + amod2) * 0.7 | |
ifshift2 = 224 | |
asin oscil3 1, ifshift2, 1 | |
acos oscil3 1, ifshift2, 1, .25 | |
amod1 = areal * acos | |
amod2 = aimag * asin | |
ashift2 = (amod1 + amod2) * 0.7 | |
kenv1 line 1, 0.15, 0 | |
ashiftmix = (ashift1 + ashift2) * kenv1 | |
aosc1 oscil3 1, 180, 1 | |
aosc2 oscil3 1, 330, 1 | |
kenv2 linseg 1, 0.08, 0, idur - 0.08, 0 | |
aoscmix = (aosc1 + aosc2) * kenv2 | |
anoise gauss 1 | |
anoise butterhp anoise, 2000 | |
anoise butterlp anoise, 3000 + ivalue * 3000 | |
anoise butterbr anoise, 4000, 200 | |
kenv3 expon 2, 0.15, 1 | |
anoise = anoise * (kenv3 - 1) | |
amix = aoscmix + ashiftmix + anoise * 4 | |
amix = amix * iamp | |
out amix, amix | |
endin | |
instr 3 | |
p3 = 0.07 | |
idur = p3 | |
iamp = p4 | |
ivalue = p4 | |
ifreq = 125 + ( 2 * ivalue ) | |
a1 oscil 1, ifreq * 1, 5 | |
a2 oscil 1, ifreq * 2.333, 5 | |
a3 oscil 1, ifreq * 3.578, 5 | |
a4 oscil 1, ifreq * 5.123, 5 | |
a5 oscil 1, ifreq * 7.632, 5 | |
a6 oscil 1, ifreq * 9.843, 5 | |
amix1 = a1 + a2 + a5 | |
amix2 = a3 + a4 + a6 | |
idecay1 = 0.08 + (0.03 * (1 - ivalue)) | |
kenv1 expseg 2, 0.01, 2, 0, 1.6, idecay1, 1, idur - idecay1 - 0.01, 1 | |
kenv1 = kenv1 - 1 | |
amix1 = amix1 * kenv1 | |
amix2 = amix2 * kenv1 | |
idecay2 = 0.11 + 0.05 * ivalue | |
kenv2 linseg 1, idecay2, 0, idur - idecay2, 0 | |
anoise gauss 1 | |
amix1 = (anoise * kenv2) + amix1 * 0.5 | |
amix1 butterhp amix1, 7000 | |
amix1 butterlp amix1, 9000 + ivalue * 3000 | |
amix2 = (anoise * kenv2) + amix2 * 0.5 | |
amix2 butterhp amix2, 7000 | |
amix2 butterlp amix2, 9000 + ivalue * 3000 | |
amix1 = amix1 * iamp | |
amix2 = amix2 * iamp | |
out amix1, amix2 | |
endin | |
</CsInstruments> | |
<CsScore bin="./pysco.py"> | |
# Import choice from python library | |
from random import choice | |
from math import sin | |
from math import pi | |
# Create wrapper functions for instruments. | |
def kick(amp=0.25): score('i 1 0 1 %f' % amp) | |
def snare(amp=0.25): score('i 2 0 1 %f' % amp) | |
def hat(amp=0.15): score('i 3 0 1 %f' % amp) | |
def pattern_1(): | |
'''Simple drum pattern''' | |
with t(0): kick() | |
with t(1): snare() | |
with t(2.5): kick() | |
with t(3): snare() | |
for i in range(8): | |
amp = i % 2 * 0.1 + 0.05 | |
with t(i * 0.5): hat(amp) | |
def pattern_2(r=0.5): | |
'''pattern_ plus extra random notes''' | |
times = [0.5, 0.75, 1.5, 2, 3.5, 3.75] | |
instrs = [kick, snare] | |
# Play pattern_1 | |
pattern_1() | |
for time in times: | |
if random() < r: | |
with t(time): | |
instr = choice(instrs) | |
instr(random() * 0.25) | |
def section_1(): | |
'''A 4-bar section''' | |
with t(0): pattern_1() | |
with t(4): pattern_2(0.25) | |
with t(8): pattern_1() | |
with t(12): pattern_2(0.9) | |
def swing_test(x): | |
int, frac = divmod(x, 1) | |
return int + sin(frac * (pi / 2.0)) | |
# f-tables and tempo | |
score(''' | |
f 1 0 [2^16+1] 10 1 | |
f 2 0 8192 -7 -1 4096 1 4096 -1 | |
f 5 0 8192 -7 1 200 1 0 -1 7912 -1 | |
t 0 120 | |
''') | |
# Same, except using the section | |
for i in range(0, 64, 16): | |
with t(i): section_1() | |
# "Turn it up!" - Abe Simpson | |
# Process amplitudes for instruments 1, 2, and 3. | |
pmap('i', [1], 4, lambda x: x * 2.5) | |
pmap('i', [2], 4, lambda x: x * 2.0) | |
pmap('i', [3], 4, lambda x: x * 1.5) | |
# Swing it! | |
pmap('i', [1, 2, 3], 2, swing_test) | |
</CsScore> | |
</CsoundSynthesizer> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<CsoundSynthesizer> | |
<CsInstruments> | |
sr = 44100 | |
kr = 44100 | |
ksmps = 1 | |
nchnls = 2 | |
0dbfs = 1.0 | |
instr 1 | |
p3 = 0.35 | |
idur = p3 | |
iamp = p4 * 0.478 | |
kenv1 expseg 900, 0.01, 50, idur - 0.01, 44 | |
asig1 oscil3 1, kenv1, 1 | |
kenv2 line 1, idur, 0 | |
asig1 = asig1 * kenv2 | |
asig2 gauss 1 | |
kenv5 expseg 800, 0.1, 50, idur - 0.1, 44 | |
asig2 tone asig2, kenv5 | |
amix = asig1 + asig2 | |
kenv5 expseg 500, 0.05, 60, idur - 0.05, 44 | |
amix rezzy amix, kenv5, 10 | |
kenv6 linseg 55, idur, 44 | |
aosc oscil3 1, kenv6, 1 | |
kenv4 expon 2, idur, 1 | |
kenv4 = kenv4 - 1 | |
amix = (amix * 0.8 + aosc * 1.2) * kenv4 * iamp | |
outs amix, amix | |
endin | |
instr 2 | |
p3 = 0.15 | |
idur = p3 | |
iamp = p4 * 0.358 | |
ivalue = p4 * 0.308 | |
atri oscil3 1, 111 + ivalue * 5, 2 | |
areal, aimag hilbert atri | |
ifshift = 175 | |
asin oscil3 1, ifshift, 1 | |
acos oscil3 1, ifshift, 1, .25 | |
amod1 = areal * acos | |
amod2 = aimag * asin | |
ashift1 = (amod1 + amod2) * 0.7 | |
ifshift2 = 224 | |
asin oscil3 1, ifshift2, 1 | |
acos oscil3 1, ifshift2, 1, .25 | |
amod1 = areal * acos | |
amod2 = aimag * asin | |
ashift2 = (amod1 + amod2) * 0.7 | |
kenv1 line 1, 0.15, 0 | |
ashiftmix = (ashift1 + ashift2) * kenv1 | |
aosc1 oscil3 1, 180, 1 | |
aosc2 oscil3 1, 330, 1 | |
kenv2 linseg 1, 0.08, 0, idur - 0.08, 0 | |
aoscmix = (aosc1 + aosc2) * kenv2 | |
anoise gauss 1 | |
anoise butterhp anoise, 2000 | |
anoise butterlp anoise, 3000 + ivalue * 3000 | |
anoise butterbr anoise, 4000, 200 | |
kenv3 expon 2, 0.15, 1 | |
anoise = anoise * (kenv3 - 1) | |
amix = aoscmix + ashiftmix + anoise * 4 | |
amix = amix * iamp | |
out amix, amix | |
endin | |
instr 3 | |
p3 = 0.07 | |
idur = p3 | |
iamp = p4 | |
ivalue = p4 | |
ifreq = 125 + ( 2 * ivalue ) | |
a1 oscil 1, ifreq * 1, 5 | |
a2 oscil 1, ifreq * 2.333, 5 | |
a3 oscil 1, ifreq * 3.578, 5 | |
a4 oscil 1, ifreq * 5.123, 5 | |
a5 oscil 1, ifreq * 7.632, 5 | |
a6 oscil 1, ifreq * 9.843, 5 | |
amix1 = a1 + a2 + a5 | |
amix2 = a3 + a4 + a6 | |
idecay1 = 0.08 + (0.03 * (1 - ivalue)) | |
kenv1 expseg 2, 0.01, 2, 0, 1.6, idecay1, 1, idur - idecay1 - 0.01, 1 | |
kenv1 = kenv1 - 1 | |
amix1 = amix1 * kenv1 | |
amix2 = amix2 * kenv1 | |
idecay2 = 0.11 + 0.05 * ivalue | |
kenv2 linseg 1, idecay2, 0, idur - idecay2, 0 | |
anoise gauss 1 | |
amix1 = (anoise * kenv2) + amix1 * 0.5 | |
amix1 butterhp amix1, 7000 | |
amix1 butterlp amix1, 9000 + ivalue * 3000 | |
amix2 = (anoise * kenv2) + amix2 * 0.5 | |
amix2 butterhp amix2, 7000 | |
amix2 butterlp amix2, 9000 + ivalue * 3000 | |
amix1 = amix1 * iamp | |
amix2 = amix2 * iamp | |
out amix1, amix2 | |
endin | |
</CsInstruments> | |
<CsScore> | |
f 1 0 [2^16+1] 10 1 | |
f 2 0 8192 -7 -1 4096 1 4096 -1 | |
f 5 0 8192 -7 1 200 1 0 -1 7912 -1 | |
t 0 120 | |
i 1 0.0 1 0.625 | |
i 2 1.0 1 0.5 | |
i 1 2.70710678119 1 0.625 | |
i 2 3.0 1 0.5 | |
i 3 0.0 1 0.075 | |
i 3 0.707106781187 1 0.225 | |
i 3 1.0 1 0.075 | |
i 3 1.70710678119 1 0.225 | |
i 3 2.0 1 0.075 | |
i 3 2.70710678119 1 0.225 | |
i 3 3.0 1 0.075 | |
i 3 3.70710678119 1 0.225 | |
i 1 4.0 1 0.625 | |
i 2 5.0 1 0.5 | |
i 1 6.70710678119 1 0.625 | |
i 2 7.0 1 0.5 | |
i 3 4.0 1 0.075 | |
i 3 4.70710678119 1 0.225 | |
i 3 5.0 1 0.075 | |
i 3 5.70710678119 1 0.225 | |
i 3 6.0 1 0.075 | |
i 3 6.70710678119 1 0.225 | |
i 3 7.0 1 0.075 | |
i 3 7.70710678119 1 0.225 | |
i 2 7.92387953251 1 0.27617 | |
i 1 8.0 1 0.625 | |
i 2 9.0 1 0.5 | |
i 1 10.7071067812 1 0.625 | |
i 2 11.0 1 0.5 | |
i 3 8.0 1 0.075 | |
i 3 8.70710678119 1 0.225 | |
i 3 9.0 1 0.075 | |
i 3 9.70710678119 1 0.225 | |
i 3 10.0 1 0.075 | |
i 3 10.7071067812 1 0.225 | |
i 3 11.0 1 0.075 | |
i 3 11.7071067812 1 0.225 | |
i 1 12.0 1 0.625 | |
i 2 13.0 1 0.5 | |
i 1 14.7071067812 1 0.625 | |
i 2 15.0 1 0.5 | |
i 3 12.0 1 0.075 | |
i 3 12.7071067812 1 0.225 | |
i 3 13.0 1 0.075 | |
i 3 13.7071067812 1 0.225 | |
i 3 14.0 1 0.075 | |
i 3 14.7071067812 1 0.225 | |
i 3 15.0 1 0.075 | |
i 3 15.7071067812 1 0.225 | |
i 2 12.7071067812 1 0.306666 | |
i 1 12.9238795325 1 0.4580325 | |
i 1 13.7071067812 1 0.57898 | |
i 2 14.0 1 0.045504 | |
i 1 15.7071067812 1 0.2135725 | |
i 2 15.9238795325 1 0.458144 | |
i 1 16.0 1 0.625 | |
i 2 17.0 1 0.5 | |
i 1 18.7071067812 1 0.625 | |
i 2 19.0 1 0.5 | |
i 3 16.0 1 0.075 | |
i 3 16.7071067812 1 0.225 | |
i 3 17.0 1 0.075 | |
i 3 17.7071067812 1 0.225 | |
i 3 18.0 1 0.075 | |
i 3 18.7071067812 1 0.225 | |
i 3 19.0 1 0.075 | |
i 3 19.7071067812 1 0.225 | |
i 1 20.0 1 0.625 | |
i 2 21.0 1 0.5 | |
i 1 22.7071067812 1 0.625 | |
i 2 23.0 1 0.5 | |
i 3 20.0 1 0.075 | |
i 3 20.7071067812 1 0.225 | |
i 3 21.0 1 0.075 | |
i 3 21.7071067812 1 0.225 | |
i 3 22.0 1 0.075 | |
i 3 22.7071067812 1 0.225 | |
i 3 23.0 1 0.075 | |
i 3 23.7071067812 1 0.225 | |
i 2 20.9238795325 1 0.170106 | |
i 1 24.0 1 0.625 | |
i 2 25.0 1 0.5 | |
i 1 26.7071067812 1 0.625 | |
i 2 27.0 1 0.5 | |
i 3 24.0 1 0.075 | |
i 3 24.7071067812 1 0.225 | |
i 3 25.0 1 0.075 | |
i 3 25.7071067812 1 0.225 | |
i 3 26.0 1 0.075 | |
i 3 26.7071067812 1 0.225 | |
i 3 27.0 1 0.075 | |
i 3 27.7071067812 1 0.225 | |
i 1 28.0 1 0.625 | |
i 2 29.0 1 0.5 | |
i 1 30.7071067812 1 0.625 | |
i 2 31.0 1 0.5 | |
i 3 28.0 1 0.075 | |
i 3 28.7071067812 1 0.225 | |
i 3 29.0 1 0.075 | |
i 3 29.7071067812 1 0.225 | |
i 3 30.0 1 0.075 | |
i 3 30.7071067812 1 0.225 | |
i 3 31.0 1 0.075 | |
i 3 31.7071067812 1 0.225 | |
i 2 28.7071067812 1 0.233624 | |
i 1 28.9238795325 1 0.0371225 | |
i 1 29.7071067812 1 0.05734 | |
i 2 30.0 1 0.473622 | |
i 1 31.7071067812 1 0.1254675 | |
i 1 32.0 1 0.625 | |
i 2 33.0 1 0.5 | |
i 1 34.7071067812 1 0.625 | |
i 2 35.0 1 0.5 | |
i 3 32.0 1 0.075 | |
i 3 32.7071067812 1 0.225 | |
i 3 33.0 1 0.075 | |
i 3 33.7071067812 1 0.225 | |
i 3 34.0 1 0.075 | |
i 3 34.7071067812 1 0.225 | |
i 3 35.0 1 0.075 | |
i 3 35.7071067812 1 0.225 | |
i 1 36.0 1 0.625 | |
i 2 37.0 1 0.5 | |
i 1 38.7071067812 1 0.625 | |
i 2 39.0 1 0.5 | |
i 3 36.0 1 0.075 | |
i 3 36.7071067812 1 0.225 | |
i 3 37.0 1 0.075 | |
i 3 37.7071067812 1 0.225 | |
i 3 38.0 1 0.075 | |
i 3 38.7071067812 1 0.225 | |
i 3 39.0 1 0.075 | |
i 3 39.7071067812 1 0.225 | |
i 2 36.9238795325 1 0.378592 | |
i 2 38.0 1 0.314172 | |
i 2 39.9238795325 1 0.130474 | |
i 1 40.0 1 0.625 | |
i 2 41.0 1 0.5 | |
i 1 42.7071067812 1 0.625 | |
i 2 43.0 1 0.5 | |
i 3 40.0 1 0.075 | |
i 3 40.7071067812 1 0.225 | |
i 3 41.0 1 0.075 | |
i 3 41.7071067812 1 0.225 | |
i 3 42.0 1 0.075 | |
i 3 42.7071067812 1 0.225 | |
i 3 43.0 1 0.075 | |
i 3 43.7071067812 1 0.225 | |
i 1 44.0 1 0.625 | |
i 2 45.0 1 0.5 | |
i 1 46.7071067812 1 0.625 | |
i 2 47.0 1 0.5 | |
i 3 44.0 1 0.075 | |
i 3 44.7071067812 1 0.225 | |
i 3 45.0 1 0.075 | |
i 3 45.7071067812 1 0.225 | |
i 3 46.0 1 0.075 | |
i 3 46.7071067812 1 0.225 | |
i 3 47.0 1 0.075 | |
i 3 47.7071067812 1 0.225 | |
i 2 44.7071067812 1 0.067014 | |
i 2 44.9238795325 1 0.01481 | |
i 2 45.7071067812 1 0.38608 | |
i 1 46.0 1 0.2299675 | |
i 2 47.7071067812 1 0.445666 | |
i 1 47.9238795325 1 0.542735 | |
i 1 48.0 1 0.625 | |
i 2 49.0 1 0.5 | |
i 1 50.7071067812 1 0.625 | |
i 2 51.0 1 0.5 | |
i 3 48.0 1 0.075 | |
i 3 48.7071067812 1 0.225 | |
i 3 49.0 1 0.075 | |
i 3 49.7071067812 1 0.225 | |
i 3 50.0 1 0.075 | |
i 3 50.7071067812 1 0.225 | |
i 3 51.0 1 0.075 | |
i 3 51.7071067812 1 0.225 | |
i 1 52.0 1 0.625 | |
i 2 53.0 1 0.5 | |
i 1 54.7071067812 1 0.625 | |
i 2 55.0 1 0.5 | |
i 3 52.0 1 0.075 | |
i 3 52.7071067812 1 0.225 | |
i 3 53.0 1 0.075 | |
i 3 53.7071067812 1 0.225 | |
i 3 54.0 1 0.075 | |
i 3 54.7071067812 1 0.225 | |
i 3 55.0 1 0.075 | |
i 3 55.7071067812 1 0.225 | |
i 2 52.7071067812 1 0.353484 | |
i 2 52.9238795325 1 0.197384 | |
i 1 56.0 1 0.625 | |
i 2 57.0 1 0.5 | |
i 1 58.7071067812 1 0.625 | |
i 2 59.0 1 0.5 | |
i 3 56.0 1 0.075 | |
i 3 56.7071067812 1 0.225 | |
i 3 57.0 1 0.075 | |
i 3 57.7071067812 1 0.225 | |
i 3 58.0 1 0.075 | |
i 3 58.7071067812 1 0.225 | |
i 3 59.0 1 0.075 | |
i 3 59.7071067812 1 0.225 | |
i 1 60.0 1 0.625 | |
i 2 61.0 1 0.5 | |
i 1 62.7071067812 1 0.625 | |
i 2 63.0 1 0.5 | |
i 3 60.0 1 0.075 | |
i 3 60.7071067812 1 0.225 | |
i 3 61.0 1 0.075 | |
i 3 61.7071067812 1 0.225 | |
i 3 62.0 1 0.075 | |
i 3 62.7071067812 1 0.225 | |
i 3 63.0 1 0.075 | |
i 3 63.7071067812 1 0.225 | |
i 2 60.7071067812 1 0.229802 | |
i 2 60.9238795325 1 0.033852 | |
i 1 61.7071067812 1 0.1626825 | |
i 1 62.0 1 0.327645 | |
i 1 63.7071067812 1 0.516445 | |
i 2 63.9238795325 1 0.157812 | |
</CsScore> | |
</CsoundSynthesizer> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment