forked from maca/scruby
/
example.live.rb
73 lines (61 loc) · 2.84 KB
/
example.live.rb
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
scruby = "#{File.expand_path( File.join( File.dirname( __FILE__), '..', 'scruby' ) )}"
require scruby
s = Server.new('localhost', 57140)
s.boot
require File.expand_path( File.join( File.dirname(__FILE__),'..','..', '..', 'Sequentiable', 'lib', 'metro' ) )
require File.expand_path( File.join( File.dirname(__FILE__),'..','..', '..', 'HumanGenome', 'lib', 'human_genome' ) )
sdef = SynthDef.new :melo, :values => [456, 0.34, 0.45] do |freq, amp, a, b, c|
gate = EnvGen.kr( Env.perc(0, 0.2) )
sig = SinOsc.ar( [freq, freq * 1.01], :mul => SinOsc.kr(40) * amp * 0.7, :add => SinOsc.kr(0.5, :mul => 2.5) ) * EnvGen.kr( Env.asr(2, 1, 3), gate, :doneAction => 2 )
sig = SinOsc.ar( [freq, freq * 1.01], :mul => SinOsc.kr(8) * amp * 0.3, :add => SinOsc.kr(0.5, :mul => 2.5) ) * EnvGen.kr( Env.asr(2, 1, 2), gate ) + sig
sig = SinOsc.ar( [freq * 0.25, freq * 0.251], :mul => SinOsc.kr(30) * amp * 0.3 ) * EnvGen.kr( Env.asr(2, 1, 3), gate ) + sig
sig = SinOsc.ar( freq * 2, :mul => SinOsc.kr(500, :mul => 0.1) * amp * 0.1 ) * EnvGen.kr( Env.asr(0, 1, 2), gate ) + sig
sig = SinOsc.ar( freq * 0.25, :mul => amp * 0.2 ) * EnvGen.kr( Env.asr(0, 1, 0.4), gate ) + sig
res = Resonz.ar( sig, EnvGen.kr( Env.asr(0.5, 3,c*2) )* a * 10000 )
Out.ar( 0, [res[0] * 6 + sig[1] * 0.8]*2 )
end
sdef.send
sleep 0.05
test = Synth.new :melo, :freq => 220, :amp => 0.5
# [1] * 2 = [1,1]
s.stop
sdef = SynthDef.new :perc, :values => [456, 0.34, 0.45] do |freq, amp, a, b|
dur = a
amp = amp * 0.25
freq = freq * 0.05
sig = SinOsc.ar( Line.kr( freq * 1.5, freq * 1.1, dur ), Math::PI/2, amp * 0.2 * SinOsc.kr(10) )
# sig = Resonz.ar( sig, EnvGen.kr( Env.asr(0.5, 3, 2) ) * 120, 0.5 )
# sig = LPF.ar( sig, 120 )
sig = HPF.ar( WhiteNoise.ar( amp * 0.1 ), freq * 10 ) * b * 0.8 + sig
# sig = Pan2.ar( sig, 0)
env = EnvGen.kr Env.perc( 0, dur ), :doneAction => 2
Out.ar 0, [sig*env]*2
end
sdef.send
sleep 0.05
test = Synth.new :perc, :freq => 1000, :amp => 0.5, :dur => rand
sdef = SynthDef.new :perc, :values => [456, 0.34, 0.45] do |freq, amp, a, b|
dur = a
amp = amp
freq = freq * 0.1
sig = SinOsc.ar( Line.kr( freq * 1.5, freq * 1.1, dur ), Math::PI/2, amp * 0.2 * SinOsc.kr(10) )
sig = HPF.ar( WhiteNoise.ar( amp * 0.1 ), freq * 10 ) * 0.8 + sig
env = EnvGen.kr Env.perc( 0, dur ), :doneAction => 2
Out.ar 0, [sig*env]*2
end
sdef.send
sleep 0.05
test = Synth.new :perc, :freq => 1000, :amp => 0.5, :dur => rand
sdef = SynthDef.new :perc, :values => [456, 0.34, 0.45] do |freq, amp, a, b|
gate = EnvGen.kr Env.perc(0,0.1)
env = EnvGen.kr Env.asr( 0.1, 4, 1 ), gate, :doneAction => 2
sig = DelayC.ar( SinOsc.ar(freq), 4, SinOsc.ar( SinOsc.ar( SinOsc.ar( 2 ) ) ) )
Out.ar( 0, [sig * env]*2 )
end
sdef.send
sleep 0.05
test = Synth.new :perc, :freq => 1000, :amp => 0.5, :dur => rand
# sleep 0.8
s.stop
sleep 0.05
test = Synth.new :test, :freq => 20, :amp => 1