scruby 0.2.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. data/.gitignore +5 -0
  2. data/.rspec +1 -0
  3. data/Gemfile +4 -0
  4. data/Gemfile.lock +53 -0
  5. data/README.rdoc +65 -0
  6. data/Rakefile +10 -0
  7. data/TODO.markdown +3 -0
  8. data/examples/example.rb +73 -0
  9. data/lib/scruby/buffer.rb +153 -0
  10. data/lib/scruby/bus.rb +67 -0
  11. data/lib/scruby/control_name.rb +29 -0
  12. data/lib/scruby/core_ext/array.rb +44 -0
  13. data/lib/scruby/core_ext/delegator_array.rb +44 -0
  14. data/lib/scruby/core_ext/fixnum.rb +8 -0
  15. data/lib/scruby/core_ext/numeric.rb +25 -0
  16. data/lib/scruby/core_ext/object.rb +23 -0
  17. data/lib/scruby/core_ext/proc.rb +11 -0
  18. data/lib/scruby/core_ext/string.rb +5 -0
  19. data/lib/scruby/core_ext/symbol.rb +5 -0
  20. data/lib/scruby/core_ext/typed_array.rb +54 -0
  21. data/lib/scruby/env.rb +93 -0
  22. data/lib/scruby/group.rb +24 -0
  23. data/lib/scruby/node.rb +102 -0
  24. data/lib/scruby/server.rb +182 -0
  25. data/lib/scruby/synth.rb +50 -0
  26. data/lib/scruby/synthdef.rb +109 -0
  27. data/lib/scruby/ticker.rb +92 -0
  28. data/lib/scruby/ugens/buffer_read_write.rb +98 -0
  29. data/lib/scruby/ugens/demand.rb +9 -0
  30. data/lib/scruby/ugens/disk_in_out.rb +33 -0
  31. data/lib/scruby/ugens/env_gen.rb +38 -0
  32. data/lib/scruby/ugens/in_out.rb +46 -0
  33. data/lib/scruby/ugens/multi_out.rb +53 -0
  34. data/lib/scruby/ugens/operation_indices.yaml +92 -0
  35. data/lib/scruby/ugens/operation_ugens.rb +63 -0
  36. data/lib/scruby/ugens/panner.rb +137 -0
  37. data/lib/scruby/ugens/ugen.rb +173 -0
  38. data/lib/scruby/ugens/ugen_defs.yaml +3123 -0
  39. data/lib/scruby/ugens/ugen_operations.rb +57 -0
  40. data/lib/scruby/ugens/ugens.rb +95 -0
  41. data/lib/scruby/version.rb +3 -0
  42. data/lib/scruby.rb +65 -0
  43. data/scruby.gemspec +27 -0
  44. data/spec/buffer_read_write_spec.rb +333 -0
  45. data/spec/buffer_spec.rb +199 -0
  46. data/spec/bus_spec.rb +184 -0
  47. data/spec/core_ext/core_ext_spec.rb +120 -0
  48. data/spec/core_ext/delegator_array_spec.rb +144 -0
  49. data/spec/core_ext/typed_array_spec.rb +95 -0
  50. data/spec/demand_spec.rb +81 -0
  51. data/spec/disk_in_out_spec.rb +138 -0
  52. data/spec/env_gen_spec.rb +23 -0
  53. data/spec/env_spec.rb +73 -0
  54. data/spec/group_spec.rb +71 -0
  55. data/spec/helper.rb +20 -0
  56. data/spec/in_out_spec.rb +127 -0
  57. data/spec/integration_spec.rb +88 -0
  58. data/spec/multiout_ugen_spec.rb +86 -0
  59. data/spec/node_spec.rb +112 -0
  60. data/spec/operation_ugens_spec.rb +196 -0
  61. data/spec/panner_spec.rb +271 -0
  62. data/spec/server.rb +12 -0
  63. data/spec/server_spec.rb +198 -0
  64. data/spec/synth_spec.rb +103 -0
  65. data/spec/synthdef_spec.rb +267 -0
  66. data/spec/ugen_operations_spec.rb +100 -0
  67. data/spec/ugen_spec.rb +356 -0
  68. data/spec/ugens_spec.rb +65 -0
  69. metadata +207 -0
data/spec/ugen_spec.rb ADDED
@@ -0,0 +1,356 @@
1
+ require File.expand_path(File.dirname(__FILE__)) + "/helper"
2
+ require 'yaml'
3
+
4
+ require "scruby/control_name"
5
+ require "scruby/env"
6
+ require "scruby/ugens/ugen"
7
+ require "scruby/ugens/ugen_operations"
8
+ require "scruby/ugens/operation_ugens"
9
+ require "scruby/core_ext/object"
10
+ require "scruby/core_ext/numeric"
11
+ require "scruby/core_ext/string"
12
+ require "scruby/core_ext/fixnum"
13
+ require "scruby/core_ext/array"
14
+ require "scruby/core_ext/delegator_array"
15
+
16
+
17
+ include Scruby
18
+ include Ugens
19
+
20
+ class MockUgen < Ugen
21
+ class << self; public :new; end
22
+ end
23
+
24
+ class SinOsc < Ugen
25
+ class << self
26
+ def ar freq = 440.0, phase = 0.0 #not interested in muladd by now
27
+ new :audio, freq, phase
28
+ end
29
+
30
+ def kr freq = 440.0, phase = 0.0
31
+ new :control, freq, phase
32
+ end
33
+ end
34
+ end
35
+
36
+ class Scruby::Buffer
37
+ def as_ugen_input; 0; end
38
+ end
39
+
40
+
41
+ describe Ugen do
42
+
43
+ before do
44
+ @sdef = mock 'sdef', :children => []
45
+ end
46
+
47
+ it "should set constants " do
48
+ UgenOperations::UNARY.should_not be_nil
49
+ UgenOperations::BINARY.should_not be_nil
50
+ Ugen::RATES.should_not be_nil
51
+ end
52
+
53
+ it "should tell if valid input" do
54
+ cn = ControlName.new 'cn', 1, :audio, 0
55
+ Ugen.valid_input?( 440 ).should be_true
56
+ Ugen.valid_input?( 440.0 ).should be_true
57
+ Ugen.valid_input?( [4,4] ).should be_true
58
+ Ugen.valid_input?( SinOsc.ar ).should be_true
59
+ Ugen.valid_input?( SinOsc.ar ).should be_true
60
+ Ugen.valid_input?( Env.asr ).should be_true
61
+ Ugen.valid_input?( cn ).should be_true
62
+ Ugen.valid_input?( 'string' ).should be_false
63
+ end
64
+
65
+ it "should use buffnum as input when a buffer is passed" do
66
+ MockUgen.new( :audio, Buffer.new ).inputs.should == [0]
67
+ end
68
+
69
+ describe 'attributes' do
70
+ before do
71
+ @ugen = SinOsc.ar
72
+ end
73
+
74
+ it do
75
+ @ugen.should respond_to( :inputs )
76
+ end
77
+
78
+ it do
79
+ @ugen.should respond_to( :rate )
80
+ end
81
+ end
82
+
83
+ describe 'operations' do
84
+ before :all do
85
+ @op_ugen = mock( 'op_ugen' )
86
+ UnaryOpUGen = mock 'unary_op_ugen', :new => @op_ugen
87
+ end
88
+
89
+ before do
90
+ @ugen = SinOsc.ar
91
+ @ugen2 = SinOsc.ar
92
+ end
93
+
94
+ it do #this specs all binary operations
95
+ @ugen.should respond_to( :+ )
96
+ end
97
+
98
+ it "should sum" do
99
+ (@ugen + @ugen2).should be_a(BinaryOpUGen)
100
+ end
101
+ end
102
+
103
+ describe 'ugen graph in synth def' do
104
+ before do
105
+ Ugen.synthdef = nil
106
+ @ugen = MockUgen.new( :audio, 1, 2 )
107
+ @ugen2 = MockUgen.new( :audio, 1, 2 )
108
+ end
109
+
110
+ it "should not have synthdef" do
111
+ MockUgen.new( :audio, 1, 2 ).send( :synthdef ).should be_nil
112
+ end
113
+
114
+ it "should have 0 as index if not belonging to ugen" do
115
+ MockUgen.new( :audio, 1, 2 ).index.should be_zero
116
+ end
117
+
118
+ it "should have synthdef" do
119
+ Ugen.synthdef = @sdef
120
+ @ugen.send( :synthdef ).should == @sdef
121
+ end
122
+
123
+ it do
124
+ @ugen.should_not respond_to(:add_to_synthdef) #private method
125
+ end
126
+
127
+ it "should add to synth def on instantiation" do
128
+ Ugen.synthdef = @sdef
129
+ ugen = MockUgen.new( :audio, 1, 2)
130
+ ugen.send( :synthdef ).should == @sdef
131
+ @sdef.children.should == [ugen]
132
+ end
133
+
134
+ it "should add to synthdef and return synthdef.children size" do
135
+ Ugen.synthdef = @sdef
136
+ ugen, ugen2 = MockUgen.new(:audio, 1, 2), MockUgen.new(:audio, 1, 2)
137
+ @sdef.children.should eql( [ugen, ugen2] )
138
+ ugen.index.should == 0
139
+ ugen2.index.should == 1
140
+ end
141
+
142
+ it "should not add to synthdef" do
143
+ Ugen.synthdef = nil
144
+ @sdef.children.should_not_receive( :<< )
145
+ MockUgen.new( :audio, 1, 2 ).send( :add_to_synthdef ).should eql( nil )
146
+ end
147
+
148
+ it "should collect constants" do
149
+ MockUgen.new( :audio, 100, @ugen, 200 ).send( :collect_constants ).flatten.sort.should == [1, 2, 100, 200]
150
+ end
151
+
152
+ it "should collect constants on arrayed inputs" do
153
+ MockUgen.new( :audio, 100, [@ugen, [200, @ugen2, 100] ] ).send( :collect_constants ).flatten.uniq.sort.should == [1, 2, 100, 200]
154
+ end
155
+
156
+ end
157
+
158
+ describe 'initialization and inputs' do
159
+ before do
160
+ @ugen = MockUgen.new(:audio, 1, 2, 3)
161
+ end
162
+
163
+ it "should not accept non valid inputs" do
164
+ lambda{ @ugen = MockUgen.new(:audio, "hola") }.should raise_error( ArgumentError )
165
+ end
166
+
167
+ it "should require at least one argument" do
168
+ lambda { MockUgen.new }.should raise_error( ArgumentError )
169
+ end
170
+
171
+ it "should be a defined rate as the first argument" do
172
+ lambda { MockUgen.new( :not_a_rate, 1 ) }.should raise_error( ArgumentError )
173
+ end
174
+
175
+ it "should use the highest rate when passing an array" do
176
+ MockUgen.new([:audio, :control], 1).rate.should == :audio
177
+ end
178
+
179
+ it "should be a defined rate as array" do
180
+ lambda { MockUgen.new( [:not_a_rate, :audio], 1 ) }.should raise_error( ArgumentError )
181
+ end
182
+
183
+ it "should accept an empty array for inputs and inputs should be an empty array" do
184
+ MockUgen.new( :audio, [] ).inputs.should eql([])
185
+ end
186
+
187
+ it "should instantiate" do
188
+ MockUgen.new( :audio, 1, 2 ).should be_instance_of( MockUgen )
189
+ end
190
+
191
+ it "should accept any number of args" do
192
+ MockUgen.new( :audio, 1, 2 )
193
+ MockUgen.new( :audio, 1, 2, 3, 4 )
194
+ end
195
+
196
+ it "should set inputs" do
197
+ @ugen.inputs.should == [1, 2, 3]
198
+ end
199
+
200
+ it "should set rate" do
201
+ @ugen.rate.should == :audio
202
+ end
203
+
204
+ it "should have empty inputs" do
205
+ MockUgen.new( :audio ).inputs.should == []
206
+ MockUgen.new( :audio, [] ).inputs.should == []
207
+ end
208
+ end
209
+
210
+ describe 'initialization with array as argument' do
211
+
212
+ before :all do
213
+ @i_1 = 100, 210
214
+ @i_2 = 100, 220
215
+ @i_3 = 100, 230
216
+ @i_4 = 100, 240
217
+ end
218
+
219
+ it "should not care if an array was passed" do
220
+ MockUgen.new( :audio, [1, 2, 3] ).should be_instance_of(MockUgen)
221
+ end
222
+
223
+ it "should return an array of Ugens if an array as one arg is passed on instantiation" do
224
+ MockUgen.new( :audio, 1, [2, 3] ).should be_instance_of(DelegatorArray)
225
+ end
226
+
227
+ it do
228
+ MockUgen.new( :audio, 1, [2,3], [4,5] ).should have( 2 ).items
229
+ end
230
+
231
+ it do
232
+ MockUgen.new( :audio, 1, [2,3, 3], [4,5] ).should have( 3 ).items
233
+ end
234
+
235
+ it "should return an array of ugens" do
236
+ ugens = MockUgen.new( :audio, 100, [210, 220, 230, 240] )
237
+ ugens.each do |u|
238
+ u.should be_instance_of(MockUgen)
239
+ end
240
+ end
241
+
242
+ it "should return ugen" do
243
+ ugen = MockUgen.new( :audio, [1], [2] )
244
+ ugen.should be_instance_of( MockUgen )
245
+ ugen.inputs.should == [1, 2]
246
+ end
247
+
248
+ it "should return ugen" do
249
+ ugen = MockUgen.new( :audio, [1, 2] )
250
+ ugen.should be_instance_of( MockUgen )
251
+ ugen.inputs.should == [1, 2]
252
+ end
253
+
254
+ it "should make multichannel array (DelegatorArray)" do
255
+ multichannel = MockUgen.new( :audio, 100, [210, 220] )
256
+ multichannel.should be_a(DelegatorArray)
257
+ multichannel.should == d(MockUgen.new(:audio, 100, 210), MockUgen.new(:audio, 100, 220))
258
+ end
259
+
260
+ it "should accept DelegatorArray as inputs" do
261
+ multichannel = MockUgen.new( :audio, 100, d(210, 220) )
262
+ multichannel.should be_a(DelegatorArray)
263
+ multichannel.should == d(MockUgen.new(:audio, 100, 210), MockUgen.new(:audio, 100, 220))
264
+ end
265
+
266
+ it "should return an delegator array of ugens with correct inputs" do
267
+ ugens = MockUgen.new( :audio, 100, [210, 220, 230, 240] )
268
+ ugens.zip( [@i_1, @i_2, @i_3, @i_4] ).each do |e|
269
+ e.first.inputs.should eql( e.last )
270
+ end
271
+ end
272
+
273
+ it "should match the structure of the inputs array(s)" do
274
+ array = [ 200, [210, [220, 230] ] ]
275
+ ugens = MockUgen.new( :audio, 100, array )
276
+ last = lambda do |i|
277
+ if i.instance_of?(MockUgen)
278
+ i.inputs.first.should == 100
279
+ i.inputs.last
280
+ else
281
+ i.map{ |e| last.call(e) }
282
+ end
283
+ end
284
+ last.call(ugens).should == array
285
+ end
286
+
287
+ it "should return muladd" do
288
+ @ugen = MockUgen.new(:audio, 100, 100)
289
+ @ugen.muladd(0.5, 0.5).should be_a(MulAdd)
290
+ end
291
+
292
+ it "should return an arrayed muladd" do
293
+ @ugen = MockUgen.new(:audio, [100,100], 100)
294
+ @ugen.muladd(0.5, 0.5).should be_a(DelegatorArray)
295
+ end
296
+ end
297
+
298
+ describe Ugen, 'encoding' do
299
+ before do
300
+ args = [400.0, 0.0]
301
+ @sin = SinOsc.kr *args
302
+ @synthdef = mock 'synthdef', :constants => args
303
+ @sin.stub!( :index ).and_return 1 #as if was the first child of a synthdef
304
+ @sin.stub!( :synthdef ).and_return @synthdef
305
+
306
+ @encoded = [6, 83, 105, 110, 79, 115, 99, 1, 0, 2, 0, 1, 0, 0, -1, -1, 0, 0, -1, -1, 0, 1, 1].pack('C*')
307
+ end
308
+
309
+ it "should stub synthdef" do
310
+ @sin.send( :synthdef ).should == @synthdef
311
+ end
312
+
313
+ it "should encode have 0 as special index" do
314
+ @sin.send(:special_index).should == 0
315
+ end
316
+
317
+ it "should encode have 0 as output index" do
318
+ @sin.send(:output_index).should == 0
319
+ end
320
+
321
+ it "should encode have [1] as output index" do
322
+ @sin.send(:channels).should == [1]
323
+ end
324
+
325
+ it "should return input_specs" do
326
+ @sin.send( :input_specs, nil ).should == [1,0]
327
+ end
328
+
329
+ it "should collect input_specs" do
330
+ @sin.send(:collect_input_specs).should == [[-1, 0], [-1, 1]]
331
+ end
332
+
333
+ it "should encode class name" do
334
+ @sin.encode[0..6].should == @encoded[0..6]
335
+ end
336
+
337
+ it "should encode classname, rate" do
338
+ @sin.encode[0..7].should == @encoded[0..7]
339
+ end
340
+
341
+ it "should encode cn, rt, inputs, channels, special_index" do
342
+ @sin.encode[0..13].should == @encoded[0..13]
343
+ end
344
+
345
+ it "should encode cn, rt, in, out, si, collect_input_specs" do
346
+ @sin.encode.should == @encoded
347
+ end
348
+
349
+ it "should equal to a similar" do
350
+ MockUgen.new(:audio, 1, 2).should == MockUgen.new(:audio, 1, 2)
351
+ end
352
+ end
353
+ end
354
+
355
+
356
+
@@ -0,0 +1,65 @@
1
+ require File.expand_path(File.dirname(__FILE__)) + "/helper"
2
+
3
+ require "scruby/control_name"
4
+ require "scruby/env"
5
+ require "scruby/ugens/ugen"
6
+ require "scruby/ugens/ugen_operations"
7
+ require "scruby/ugens/operation_ugens"
8
+ require "scruby/ugens/ugens"
9
+
10
+
11
+ module UgenTest
12
+ end
13
+
14
+ class Klass
15
+ end
16
+
17
+ include Scruby
18
+ include Ugens
19
+
20
+
21
+ describe Ugens do
22
+
23
+ before do
24
+ @udefs = YAML::load( File.open( "#{ File.dirname __FILE__ }/../lib/scruby/ugens/ugen_defs.yaml" ) )
25
+ end
26
+
27
+ it 'should define Ugen classes' do
28
+ @udefs.each_pair { |key, val| eval(key).should_not be_nil }
29
+ end
30
+
31
+ it 'each ugen should be Ugen subclass' do
32
+ @udefs.each_pair { |key, val| eval(key).superclass.should eql( Scruby::Ugens::Ugen ) }
33
+ end
34
+
35
+ it 'should resond to :ar and :kr' do
36
+ Vibrato.should respond_to(:ar)
37
+ Vibrato.should respond_to(:kr)
38
+ end
39
+
40
+ it "should use default values and passed values" do
41
+ Gendy1.should_receive(:new).with( :audio, 10, 20, 1, 1, 550, 660, 0.5, 0.5, 12, 1 ).and_return( mock('ugen', :muladd => nil) )
42
+ Gendy1.ar 10, 20, :knum => 1, :minfreq => 550
43
+ end
44
+
45
+ it "should raise argumen error if not passed required" do
46
+ Gendy1.stub!(:new)
47
+ lambda { Gendy1.ar }.should raise_error(ArgumentError)
48
+ end
49
+
50
+ it "should not accept more than the required arguments" do
51
+ lambda { SinOsc.ar(1,2,3,4,5,6) }.should raise_error(ArgumentError)
52
+ end
53
+
54
+ it "should initialize using demand" do
55
+ Dbrown.new(1,2,3,4).inputs.should == [1,2,3,4]
56
+ end
57
+
58
+ it "should have public new method for scalar" do
59
+ ExpRand.new(1,2)
60
+ end
61
+
62
+ it "should output params"
63
+ end
64
+
65
+
metadata ADDED
@@ -0,0 +1,207 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: scruby
3
+ version: !ruby/object:Gem::Version
4
+ hash: 25
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 2
9
+ - 7
10
+ version: 0.2.7
11
+ platform: ruby
12
+ authors:
13
+ - Macario Ortega
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-03-21 00:00:00 -06:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: rspec
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 0
32
+ version: "0"
33
+ type: :development
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: bundler
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ hash: 3
44
+ segments:
45
+ - 0
46
+ version: "0"
47
+ type: :development
48
+ version_requirements: *id002
49
+ - !ruby/object:Gem::Dependency
50
+ name: ruby-osc
51
+ prerelease: false
52
+ requirement: &id003 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ~>
56
+ - !ruby/object:Gem::Version
57
+ hash: 13
58
+ segments:
59
+ - 0
60
+ - 3
61
+ version: "0.3"
62
+ type: :runtime
63
+ version_requirements: *id003
64
+ - !ruby/object:Gem::Dependency
65
+ name: arguments
66
+ prerelease: false
67
+ requirement: &id004 !ruby/object:Gem::Requirement
68
+ none: false
69
+ requirements:
70
+ - - ~>
71
+ - !ruby/object:Gem::Version
72
+ hash: 7
73
+ segments:
74
+ - 0
75
+ - 6
76
+ version: "0.6"
77
+ type: :runtime
78
+ version_requirements: *id004
79
+ - !ruby/object:Gem::Dependency
80
+ name: live
81
+ prerelease: false
82
+ requirement: &id005 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ~>
86
+ - !ruby/object:Gem::Version
87
+ hash: 9
88
+ segments:
89
+ - 0
90
+ - 1
91
+ version: "0.1"
92
+ type: :runtime
93
+ version_requirements: *id005
94
+ description: SuperCollider client for Ruby
95
+ email:
96
+ - macarui@gmail.com
97
+ executables: []
98
+
99
+ extensions: []
100
+
101
+ extra_rdoc_files: []
102
+
103
+ files:
104
+ - .gitignore
105
+ - .rspec
106
+ - Gemfile
107
+ - Gemfile.lock
108
+ - README.rdoc
109
+ - Rakefile
110
+ - TODO.markdown
111
+ - examples/example.rb
112
+ - lib/scruby.rb
113
+ - lib/scruby/buffer.rb
114
+ - lib/scruby/bus.rb
115
+ - lib/scruby/control_name.rb
116
+ - lib/scruby/core_ext/array.rb
117
+ - lib/scruby/core_ext/delegator_array.rb
118
+ - lib/scruby/core_ext/fixnum.rb
119
+ - lib/scruby/core_ext/numeric.rb
120
+ - lib/scruby/core_ext/object.rb
121
+ - lib/scruby/core_ext/proc.rb
122
+ - lib/scruby/core_ext/string.rb
123
+ - lib/scruby/core_ext/symbol.rb
124
+ - lib/scruby/core_ext/typed_array.rb
125
+ - lib/scruby/env.rb
126
+ - lib/scruby/group.rb
127
+ - lib/scruby/node.rb
128
+ - lib/scruby/server.rb
129
+ - lib/scruby/synth.rb
130
+ - lib/scruby/synthdef.rb
131
+ - lib/scruby/ticker.rb
132
+ - lib/scruby/ugens/buffer_read_write.rb
133
+ - lib/scruby/ugens/demand.rb
134
+ - lib/scruby/ugens/disk_in_out.rb
135
+ - lib/scruby/ugens/env_gen.rb
136
+ - lib/scruby/ugens/in_out.rb
137
+ - lib/scruby/ugens/multi_out.rb
138
+ - lib/scruby/ugens/operation_indices.yaml
139
+ - lib/scruby/ugens/operation_ugens.rb
140
+ - lib/scruby/ugens/panner.rb
141
+ - lib/scruby/ugens/ugen.rb
142
+ - lib/scruby/ugens/ugen_defs.yaml
143
+ - lib/scruby/ugens/ugen_operations.rb
144
+ - lib/scruby/ugens/ugens.rb
145
+ - lib/scruby/version.rb
146
+ - scruby.gemspec
147
+ - spec/buffer_read_write_spec.rb
148
+ - spec/buffer_spec.rb
149
+ - spec/bus_spec.rb
150
+ - spec/core_ext/core_ext_spec.rb
151
+ - spec/core_ext/delegator_array_spec.rb
152
+ - spec/core_ext/typed_array_spec.rb
153
+ - spec/demand_spec.rb
154
+ - spec/disk_in_out_spec.rb
155
+ - spec/env_gen_spec.rb
156
+ - spec/env_spec.rb
157
+ - spec/group_spec.rb
158
+ - spec/helper.rb
159
+ - spec/in_out_spec.rb
160
+ - spec/integration_spec.rb
161
+ - spec/multiout_ugen_spec.rb
162
+ - spec/node_spec.rb
163
+ - spec/operation_ugens_spec.rb
164
+ - spec/panner_spec.rb
165
+ - spec/server.rb
166
+ - spec/server_spec.rb
167
+ - spec/synth_spec.rb
168
+ - spec/synthdef_spec.rb
169
+ - spec/ugen_operations_spec.rb
170
+ - spec/ugen_spec.rb
171
+ - spec/ugens_spec.rb
172
+ has_rdoc: true
173
+ homepage: http://github.com/maca/scruby
174
+ licenses: []
175
+
176
+ post_install_message:
177
+ rdoc_options: []
178
+
179
+ require_paths:
180
+ - lib
181
+ required_ruby_version: !ruby/object:Gem::Requirement
182
+ none: false
183
+ requirements:
184
+ - - ">="
185
+ - !ruby/object:Gem::Version
186
+ hash: 3
187
+ segments:
188
+ - 0
189
+ version: "0"
190
+ required_rubygems_version: !ruby/object:Gem::Requirement
191
+ none: false
192
+ requirements:
193
+ - - ">="
194
+ - !ruby/object:Gem::Version
195
+ hash: 3
196
+ segments:
197
+ - 0
198
+ version: "0"
199
+ requirements: []
200
+
201
+ rubyforge_project: scruby
202
+ rubygems_version: 1.6.2
203
+ signing_key:
204
+ specification_version: 3
205
+ summary: SuperCollider client for Ruby
206
+ test_files: []
207
+