scruby 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+