deftones 0.1.0

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 (135) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +5 -0
  3. data/CHANGELOG.md +12 -0
  4. data/LICENSE.txt +21 -0
  5. data/README.md +197 -0
  6. data/Rakefile +8 -0
  7. data/examples/poly_chord.rb +14 -0
  8. data/examples/render_sampler.rb +16 -0
  9. data/examples/render_sequence.rb +13 -0
  10. data/examples/render_synth.rb +18 -0
  11. data/lib/deftones/analysis/analyser.rb +162 -0
  12. data/lib/deftones/analysis/dc_meter.rb +56 -0
  13. data/lib/deftones/analysis/fft.rb +128 -0
  14. data/lib/deftones/analysis/meter.rb +83 -0
  15. data/lib/deftones/analysis/waveform.rb +93 -0
  16. data/lib/deftones/component/amplitude_envelope.rb +8 -0
  17. data/lib/deftones/component/biquad_filter.rb +7 -0
  18. data/lib/deftones/component/channel.rb +109 -0
  19. data/lib/deftones/component/compressor.rb +64 -0
  20. data/lib/deftones/component/convolver.rb +99 -0
  21. data/lib/deftones/component/cross_fade.rb +67 -0
  22. data/lib/deftones/component/envelope.rb +160 -0
  23. data/lib/deftones/component/eq3.rb +73 -0
  24. data/lib/deftones/component/feedback_comb_filter.rb +75 -0
  25. data/lib/deftones/component/filter.rb +75 -0
  26. data/lib/deftones/component/follower.rb +55 -0
  27. data/lib/deftones/component/frequency_envelope.rb +24 -0
  28. data/lib/deftones/component/gate.rb +46 -0
  29. data/lib/deftones/component/lfo.rb +88 -0
  30. data/lib/deftones/component/limiter.rb +11 -0
  31. data/lib/deftones/component/lowpass_comb_filter.rb +43 -0
  32. data/lib/deftones/component/merge.rb +45 -0
  33. data/lib/deftones/component/mid_side_compressor.rb +43 -0
  34. data/lib/deftones/component/mid_side_merge.rb +53 -0
  35. data/lib/deftones/component/mid_side_split.rb +54 -0
  36. data/lib/deftones/component/mono.rb +8 -0
  37. data/lib/deftones/component/multiband_compressor.rb +70 -0
  38. data/lib/deftones/component/multiband_split.rb +133 -0
  39. data/lib/deftones/component/one_pole_filter.rb +71 -0
  40. data/lib/deftones/component/pan_vol.rb +26 -0
  41. data/lib/deftones/component/panner.rb +75 -0
  42. data/lib/deftones/component/panner3d.rb +322 -0
  43. data/lib/deftones/component/solo.rb +56 -0
  44. data/lib/deftones/component/split.rb +47 -0
  45. data/lib/deftones/component/volume.rb +31 -0
  46. data/lib/deftones/context.rb +213 -0
  47. data/lib/deftones/core/audio_block.rb +82 -0
  48. data/lib/deftones/core/audio_node.rb +262 -0
  49. data/lib/deftones/core/clock.rb +91 -0
  50. data/lib/deftones/core/computed_signal.rb +69 -0
  51. data/lib/deftones/core/delay.rb +44 -0
  52. data/lib/deftones/core/effect.rb +66 -0
  53. data/lib/deftones/core/emitter.rb +51 -0
  54. data/lib/deftones/core/gain.rb +39 -0
  55. data/lib/deftones/core/instrument.rb +109 -0
  56. data/lib/deftones/core/param.rb +31 -0
  57. data/lib/deftones/core/signal.rb +452 -0
  58. data/lib/deftones/core/signal_operator_methods.rb +73 -0
  59. data/lib/deftones/core/signal_operators.rb +138 -0
  60. data/lib/deftones/core/signal_shapers.rb +83 -0
  61. data/lib/deftones/core/source.rb +213 -0
  62. data/lib/deftones/core/synced_signal.rb +88 -0
  63. data/lib/deftones/destination.rb +132 -0
  64. data/lib/deftones/draw.rb +100 -0
  65. data/lib/deftones/dsp/biquad.rb +129 -0
  66. data/lib/deftones/dsp/delay_line.rb +41 -0
  67. data/lib/deftones/dsp/helpers.rb +25 -0
  68. data/lib/deftones/effect/auto_filter.rb +92 -0
  69. data/lib/deftones/effect/auto_panner.rb +57 -0
  70. data/lib/deftones/effect/auto_wah.rb +98 -0
  71. data/lib/deftones/effect/bit_crusher.rb +38 -0
  72. data/lib/deftones/effect/chebyshev.rb +36 -0
  73. data/lib/deftones/effect/chorus.rb +73 -0
  74. data/lib/deftones/effect/distortion.rb +22 -0
  75. data/lib/deftones/effect/feedback_delay.rb +38 -0
  76. data/lib/deftones/effect/freeverb.rb +11 -0
  77. data/lib/deftones/effect/frequency_shifter.rb +89 -0
  78. data/lib/deftones/effect/jc_reverb.rb +11 -0
  79. data/lib/deftones/effect/modulation_control.rb +159 -0
  80. data/lib/deftones/effect/phaser.rb +72 -0
  81. data/lib/deftones/effect/ping_pong_delay.rb +40 -0
  82. data/lib/deftones/effect/pitch_shift.rb +156 -0
  83. data/lib/deftones/effect/reverb.rb +71 -0
  84. data/lib/deftones/effect/stereo_widener.rb +34 -0
  85. data/lib/deftones/effect/tremolo.rb +52 -0
  86. data/lib/deftones/effect/vibrato.rb +47 -0
  87. data/lib/deftones/event/callback_behavior.rb +61 -0
  88. data/lib/deftones/event/loop.rb +53 -0
  89. data/lib/deftones/event/part.rb +51 -0
  90. data/lib/deftones/event/pattern.rb +94 -0
  91. data/lib/deftones/event/sequence.rb +87 -0
  92. data/lib/deftones/event/tone_event.rb +77 -0
  93. data/lib/deftones/event/transport.rb +276 -0
  94. data/lib/deftones/instrument/am_synth.rb +56 -0
  95. data/lib/deftones/instrument/duo_synth.rb +68 -0
  96. data/lib/deftones/instrument/fm_synth.rb +60 -0
  97. data/lib/deftones/instrument/membrane_synth.rb +60 -0
  98. data/lib/deftones/instrument/metal_synth.rb +61 -0
  99. data/lib/deftones/instrument/mono_synth.rb +88 -0
  100. data/lib/deftones/instrument/noise_synth.rb +56 -0
  101. data/lib/deftones/instrument/pluck_synth.rb +41 -0
  102. data/lib/deftones/instrument/poly_synth.rb +96 -0
  103. data/lib/deftones/instrument/sampler.rb +97 -0
  104. data/lib/deftones/instrument/synth.rb +60 -0
  105. data/lib/deftones/io/buffer.rb +352 -0
  106. data/lib/deftones/io/buffers.rb +77 -0
  107. data/lib/deftones/io/recorder.rb +89 -0
  108. data/lib/deftones/listener.rb +120 -0
  109. data/lib/deftones/music/frequency.rb +128 -0
  110. data/lib/deftones/music/midi.rb +206 -0
  111. data/lib/deftones/music/note.rb +58 -0
  112. data/lib/deftones/music/ticks.rb +106 -0
  113. data/lib/deftones/music/time.rb +209 -0
  114. data/lib/deftones/music/transport_time.rb +94 -0
  115. data/lib/deftones/music/unit_helpers.rb +30 -0
  116. data/lib/deftones/offline_context.rb +46 -0
  117. data/lib/deftones/portaudio_support.rb +112 -0
  118. data/lib/deftones/source/am_oscillator.rb +42 -0
  119. data/lib/deftones/source/fat_oscillator.rb +49 -0
  120. data/lib/deftones/source/fm_oscillator.rb +47 -0
  121. data/lib/deftones/source/grain_player.rb +198 -0
  122. data/lib/deftones/source/karplus_strong.rb +51 -0
  123. data/lib/deftones/source/noise.rb +99 -0
  124. data/lib/deftones/source/omni_oscillator.rb +175 -0
  125. data/lib/deftones/source/oscillator.rb +74 -0
  126. data/lib/deftones/source/player.rb +228 -0
  127. data/lib/deftones/source/players.rb +133 -0
  128. data/lib/deftones/source/pulse_oscillator.rb +38 -0
  129. data/lib/deftones/source/pwm_oscillator.rb +49 -0
  130. data/lib/deftones/source/tone_buffer_source.rb +136 -0
  131. data/lib/deftones/source/tone_oscillator_node.rb +65 -0
  132. data/lib/deftones/source/user_media.rb +519 -0
  133. data/lib/deftones/version.rb +5 -0
  134. data/lib/deftones.rb +542 -0
  135. metadata +221 -0
data/lib/deftones.rb ADDED
@@ -0,0 +1,542 @@
1
+ # frozen_string_literal: true
2
+
3
+ begin
4
+ require "portaudio"
5
+ rescue LoadError
6
+ nil
7
+ end
8
+
9
+ begin
10
+ require "wavify/errors"
11
+ require "wavify/core/format"
12
+ require "wavify/core/duration"
13
+ require "wavify/core/sample_buffer"
14
+ require "wavify/codecs/base"
15
+ require "wavify/codecs/wav"
16
+ rescue LoadError
17
+ nil
18
+ end
19
+
20
+ require_relative "deftones/version"
21
+ require_relative "deftones/portaudio_support"
22
+ require_relative "deftones/context"
23
+ require_relative "deftones/offline_context"
24
+ require_relative "deftones/dsp/helpers"
25
+ require_relative "deftones/dsp/delay_line"
26
+ require_relative "deftones/dsp/biquad"
27
+ require_relative "deftones/event/callback_behavior"
28
+ require_relative "deftones/event/transport"
29
+ require_relative "deftones/event/tone_event"
30
+ require_relative "deftones/event/loop"
31
+ require_relative "deftones/event/part"
32
+ require_relative "deftones/event/sequence"
33
+ require_relative "deftones/event/pattern"
34
+ require_relative "deftones/music/note"
35
+ require_relative "deftones/music/unit_helpers"
36
+ require_relative "deftones/music/frequency"
37
+ require_relative "deftones/music/midi"
38
+ require_relative "deftones/music/time"
39
+ require_relative "deftones/music/transport_time"
40
+ require_relative "deftones/music/ticks"
41
+ require_relative "deftones/destination"
42
+ require_relative "deftones/draw"
43
+ require_relative "deftones/listener"
44
+ require_relative "deftones/io/buffer"
45
+ require_relative "deftones/io/buffers"
46
+ require_relative "deftones/io/recorder"
47
+ require_relative "deftones/core/audio_block"
48
+ require_relative "deftones/core/audio_node"
49
+ require_relative "deftones/core/emitter"
50
+ require_relative "deftones/core/signal_operator_methods"
51
+ require_relative "deftones/core/source"
52
+ require_relative "deftones/core/signal"
53
+ require_relative "deftones/core/synced_signal"
54
+ require_relative "deftones/core/computed_signal"
55
+ require_relative "deftones/core/signal_operators"
56
+ require_relative "deftones/core/signal_shapers"
57
+ require_relative "deftones/core/clock"
58
+ require_relative "deftones/core/delay"
59
+ require_relative "deftones/core/gain"
60
+ require_relative "deftones/core/param"
61
+ require_relative "deftones/core/instrument"
62
+ require_relative "deftones/core/effect"
63
+ require_relative "deftones/source/oscillator"
64
+ require_relative "deftones/source/noise"
65
+ require_relative "deftones/source/user_media"
66
+ require_relative "deftones/source/pulse_oscillator"
67
+ require_relative "deftones/source/fm_oscillator"
68
+ require_relative "deftones/source/am_oscillator"
69
+ require_relative "deftones/source/fat_oscillator"
70
+ require_relative "deftones/source/pwm_oscillator"
71
+ require_relative "deftones/source/omni_oscillator"
72
+ require_relative "deftones/source/karplus_strong"
73
+ require_relative "deftones/source/player"
74
+ require_relative "deftones/source/players"
75
+ require_relative "deftones/source/grain_player"
76
+ require_relative "deftones/source/tone_buffer_source"
77
+ require_relative "deftones/source/tone_oscillator_node"
78
+ require_relative "deftones/component/envelope"
79
+ require_relative "deftones/component/amplitude_envelope"
80
+ require_relative "deftones/component/frequency_envelope"
81
+ require_relative "deftones/component/filter"
82
+ require_relative "deftones/component/biquad_filter"
83
+ require_relative "deftones/component/follower"
84
+ require_relative "deftones/component/feedback_comb_filter"
85
+ require_relative "deftones/component/lfo"
86
+ require_relative "deftones/component/lowpass_comb_filter"
87
+ require_relative "deftones/component/one_pole_filter"
88
+ require_relative "deftones/component/volume"
89
+ require_relative "deftones/component/panner"
90
+ require_relative "deftones/component/panner3d"
91
+ require_relative "deftones/component/convolver"
92
+ require_relative "deftones/component/pan_vol"
93
+ require_relative "deftones/component/solo"
94
+ require_relative "deftones/component/channel"
95
+ require_relative "deftones/component/cross_fade"
96
+ require_relative "deftones/component/merge"
97
+ require_relative "deftones/component/mid_side_compressor"
98
+ require_relative "deftones/component/mid_side_merge"
99
+ require_relative "deftones/component/mid_side_split"
100
+ require_relative "deftones/component/mono"
101
+ require_relative "deftones/component/multiband_compressor"
102
+ require_relative "deftones/component/multiband_split"
103
+ require_relative "deftones/component/split"
104
+ require_relative "deftones/component/eq3"
105
+ require_relative "deftones/component/compressor"
106
+ require_relative "deftones/component/limiter"
107
+ require_relative "deftones/component/gate"
108
+ require_relative "deftones/analysis/fft"
109
+ require_relative "deftones/analysis/waveform"
110
+ require_relative "deftones/analysis/analyser"
111
+ require_relative "deftones/analysis/meter"
112
+ require_relative "deftones/analysis/dc_meter"
113
+ require_relative "deftones/effect/modulation_control"
114
+ require_relative "deftones/effect/distortion"
115
+ require_relative "deftones/effect/bit_crusher"
116
+ require_relative "deftones/effect/chebyshev"
117
+ require_relative "deftones/effect/feedback_delay"
118
+ require_relative "deftones/effect/ping_pong_delay"
119
+ require_relative "deftones/effect/reverb"
120
+ require_relative "deftones/effect/freeverb"
121
+ require_relative "deftones/effect/jc_reverb"
122
+ require_relative "deftones/effect/chorus"
123
+ require_relative "deftones/effect/phaser"
124
+ require_relative "deftones/effect/tremolo"
125
+ require_relative "deftones/effect/vibrato"
126
+ require_relative "deftones/effect/auto_filter"
127
+ require_relative "deftones/effect/auto_panner"
128
+ require_relative "deftones/effect/auto_wah"
129
+ require_relative "deftones/effect/frequency_shifter"
130
+ require_relative "deftones/effect/pitch_shift"
131
+ require_relative "deftones/effect/stereo_widener"
132
+ require_relative "deftones/instrument/synth"
133
+ require_relative "deftones/instrument/mono_synth"
134
+ require_relative "deftones/instrument/fm_synth"
135
+ require_relative "deftones/instrument/am_synth"
136
+ require_relative "deftones/instrument/duo_synth"
137
+ require_relative "deftones/instrument/noise_synth"
138
+ require_relative "deftones/instrument/pluck_synth"
139
+ require_relative "deftones/instrument/membrane_synth"
140
+ require_relative "deftones/instrument/metal_synth"
141
+ require_relative "deftones/instrument/sampler"
142
+ require_relative "deftones/instrument/poly_synth"
143
+
144
+ module Deftones
145
+ class Error < StandardError; end
146
+ class MissingRealtimeBackendError < Error; end
147
+
148
+ class << self
149
+ def context
150
+ @context ||= Context.new
151
+ end
152
+
153
+ def start(use_realtime: true)
154
+ context.start(use_realtime: use_realtime)
155
+ end
156
+
157
+ def output
158
+ context.output
159
+ end
160
+
161
+ def set_context(new_context)
162
+ raise ArgumentError, "context is required" if new_context.nil?
163
+
164
+ @context&.stop if @context && @context != new_context
165
+ @context = new_context
166
+ Destination.reset!
167
+ self
168
+ end
169
+
170
+ def get_context
171
+ context
172
+ end
173
+
174
+ def destination
175
+ Destination.node(context: context)
176
+ end
177
+
178
+ def get_destination
179
+ destination
180
+ end
181
+
182
+ def draw
183
+ Draw.instance
184
+ end
185
+
186
+ def get_draw
187
+ draw
188
+ end
189
+
190
+ def listener
191
+ @listener ||= Listener.new
192
+ end
193
+
194
+ def get_listener
195
+ listener
196
+ end
197
+
198
+ def now
199
+ context.current_time
200
+ end
201
+
202
+ def transport
203
+ @transport ||= Event::Transport.new
204
+ end
205
+
206
+ def get_transport
207
+ transport
208
+ end
209
+
210
+ def render(duration:, sample_rate: Context::DEFAULT_SAMPLE_RATE, channels: 2,
211
+ buffer_size: Context::DEFAULT_BUFFER_SIZE, &block)
212
+ ctx = OfflineContext.new(
213
+ duration: duration,
214
+ sample_rate: sample_rate,
215
+ channels: channels,
216
+ buffer_size: buffer_size
217
+ )
218
+ block&.call(ctx)
219
+ ctx.render
220
+ end
221
+
222
+ def offline(duration:, sample_rate: Context::DEFAULT_SAMPLE_RATE, channels: 2,
223
+ buffer_size: Context::DEFAULT_BUFFER_SIZE, &block)
224
+ render(duration: duration, sample_rate: sample_rate, channels: channels, buffer_size: buffer_size, &block)
225
+ end
226
+
227
+ def Offline(duration:, sample_rate: Context::DEFAULT_SAMPLE_RATE, channels: 2,
228
+ buffer_size: Context::DEFAULT_BUFFER_SIZE, &block)
229
+ offline(duration: duration, sample_rate: sample_rate, channels: channels, buffer_size: buffer_size, &block)
230
+ end
231
+
232
+ def render_to_file(path, duration:, format: nil, **options, &block)
233
+ ctx = OfflineContext.new(duration: duration, **options)
234
+ block&.call(ctx)
235
+ ctx.render_to_file(path, format: format)
236
+ end
237
+
238
+ def loaded
239
+ true
240
+ end
241
+
242
+ def immediate
243
+ now
244
+ end
245
+
246
+ def version
247
+ VERSION
248
+ end
249
+
250
+ def reset!
251
+ @context&.stop
252
+ @context = nil
253
+ Destination.reset!
254
+ Draw.reset!
255
+ @listener = nil
256
+ @transport = nil
257
+ end
258
+
259
+ def portaudio_available?
260
+ Deftones::PortAudioSupport.available?
261
+ end
262
+
263
+ def wavify_available?
264
+ !!defined?(Wavify::Core::SampleBuffer) && !!defined?(Wavify::Codecs::Wav)
265
+ end
266
+
267
+ def supported?
268
+ true
269
+ end
270
+
271
+ def connect_series(*nodes)
272
+ nodes.each_cons(2) { |source, destination_node| source.connect(destination_node) }
273
+ nodes.last
274
+ end
275
+
276
+ def connect(source, destination_node, output_index: 0, input_index: 0)
277
+ source.connect(destination_node, output_index: output_index, input_index: input_index)
278
+ destination_node
279
+ end
280
+
281
+ def disconnect(source, destination_node = nil)
282
+ source.disconnect(destination_node)
283
+ source
284
+ end
285
+
286
+ def connect_signal(source, destination_node)
287
+ source.connect(destination_node)
288
+ destination_node
289
+ end
290
+
291
+ def fan_in(destination_node, *sources)
292
+ sources.each { |source| source.connect(destination_node) }
293
+ destination_node
294
+ end
295
+
296
+ def db_to_gain(value)
297
+ 10.0**(value.to_f / 20.0)
298
+ end
299
+
300
+ def gain_to_db(value)
301
+ gain = value.to_f
302
+ return -Float::INFINITY if gain <= 0.0
303
+
304
+ 20.0 * Math.log10(gain)
305
+ end
306
+
307
+ def ftom(value)
308
+ Frequency.to_midi(value)
309
+ end
310
+
311
+ def mtof(value)
312
+ Note.to_frequency(Note.from_midi(value))
313
+ end
314
+
315
+ def interval_to_frequency_ratio(value)
316
+ 2.0**(value.to_f / 12.0)
317
+ end
318
+
319
+ def is_array(value)
320
+ value.is_a?(Array)
321
+ end
322
+
323
+ def is_boolean(value)
324
+ value == true || value == false
325
+ end
326
+
327
+ def is_defined(value)
328
+ !value.nil?
329
+ end
330
+
331
+ def is_function(value)
332
+ value.respond_to?(:call)
333
+ end
334
+
335
+ def is_note(value)
336
+ Note.to_midi(value)
337
+ true
338
+ rescue StandardError
339
+ false
340
+ end
341
+
342
+ def is_number(value)
343
+ value.is_a?(Numeric)
344
+ end
345
+
346
+ def is_object(value)
347
+ return false if value.nil? || is_array(value) || is_string(value) || is_number(value) || is_boolean(value)
348
+
349
+ true
350
+ end
351
+
352
+ def is_string(value)
353
+ value.is_a?(String)
354
+ end
355
+
356
+ def is_undef(value)
357
+ value.nil?
358
+ end
359
+
360
+ def master
361
+ destination
362
+ end
363
+
364
+ def frequency(value)
365
+ Music::Frequency.new(value)
366
+ end
367
+
368
+ def midi(value)
369
+ Music::Midi.new(value)
370
+ end
371
+
372
+ def time(value)
373
+ Music::Time.new(value)
374
+ end
375
+
376
+ def ticks(value, transport: self.transport)
377
+ Music::Ticks.new(value, transport: transport)
378
+ end
379
+
380
+ def transport_time(value, transport: self.transport)
381
+ Music::TransportTime.new(value, transport: transport)
382
+ end
383
+
384
+ alias wavefile_available? wavify_available?
385
+ alias supported supported?
386
+ alias dbToGain db_to_gain
387
+ alias gainToDb gain_to_db
388
+ alias getContext get_context
389
+ alias getDestination get_destination
390
+ alias getDraw get_draw
391
+ alias getListener get_listener
392
+ alias getTransport get_transport
393
+ alias setContext set_context
394
+ alias connect connect
395
+ alias disconnect disconnect
396
+ alias connectSeries connect_series
397
+ alias connectSignal connect_signal
398
+ alias fanIn fan_in
399
+ alias intervalToFrequencyRatio interval_to_frequency_ratio
400
+ alias isArray is_array
401
+ alias isBoolean is_boolean
402
+ alias isDefined is_defined
403
+ alias isFunction is_function
404
+ alias isNote is_note
405
+ alias isNumber is_number
406
+ alias isObject is_object
407
+ alias isString is_string
408
+ alias isUndef is_undef
409
+ alias transportTime transport_time
410
+ end
411
+
412
+ AudioNode = Core::AudioNode
413
+ ToneAudioNode = Core::AudioNode
414
+ Effect = Core::Effect
415
+ Emitter = Core::Emitter
416
+ Gain = Core::Gain
417
+ Delay = Core::Delay
418
+ Clock = Core::Clock
419
+ Param = Core::Param
420
+ Signal = Core::Signal
421
+ SyncedSignal = Core::SyncedSignal
422
+ Abs = Core::Abs
423
+ Add = Core::Add
424
+ AudioToGain = Core::AudioToGain
425
+ EqualPowerGain = Core::EqualPowerGain
426
+ GainToAudio = Core::GainToAudio
427
+ GreaterThan = Core::GreaterThan
428
+ GreaterThanZero = Core::GreaterThanZero
429
+ Modulo = Core::Modulo
430
+ Multiply = Core::Multiply
431
+ Negate = Core::Negate
432
+ Normalize = Core::Normalize
433
+ Pow = Core::Pow
434
+ Scale = Core::Scale
435
+ ScaleExp = Core::ScaleExp
436
+ Subtract = Core::Subtract
437
+ WaveShaper = Core::WaveShaper
438
+ Zero = Core::Zero
439
+ Oscillator = Source::Oscillator
440
+ Noise = Source::Noise
441
+ UserMedia = Source::UserMedia
442
+ PulseOscillator = Source::PulseOscillator
443
+ FMOscillator = Source::FMOscillator
444
+ AMOscillator = Source::AMOscillator
445
+ FatOscillator = Source::FatOscillator
446
+ PWMOscillator = Source::PWMOscillator
447
+ OmniOscillator = Source::OmniOscillator
448
+ Player = Source::Player
449
+ Players = Source::Players
450
+ BufferSource = Source::ToneBufferSource
451
+ GrainPlayer = Source::GrainPlayer
452
+ ToneBufferSource = Source::ToneBufferSource
453
+ ToneOscillatorNode = Source::ToneOscillatorNode
454
+ Envelope = Component::Envelope
455
+ AmplitudeEnvelope = Component::AmplitudeEnvelope
456
+ FrequencyEnvelope = Component::FrequencyEnvelope
457
+ BiquadFilter = Component::BiquadFilter
458
+ FeedbackCombFilter = Component::FeedbackCombFilter
459
+ Filter = Component::Filter
460
+ Follower = Component::Follower
461
+ LFO = Component::LFO
462
+ LowpassCombFilter = Component::LowpassCombFilter
463
+ OnePoleFilter = Component::OnePoleFilter
464
+ Volume = Component::Volume
465
+ Panner = Component::Panner
466
+ Panner3D = Component::Panner3D
467
+ Convolver = Component::Convolver
468
+ PanVol = Component::PanVol
469
+ Solo = Component::Solo
470
+ Channel = Component::Channel
471
+ CrossFade = Component::CrossFade
472
+ Merge = Component::Merge
473
+ MidSideCompressor = Component::MidSideCompressor
474
+ MidSideMerge = Component::MidSideMerge
475
+ MidSideSplit = Component::MidSideSplit
476
+ Mono = Component::Mono
477
+ MultibandCompressor = Component::MultibandCompressor
478
+ MultibandSplit = Component::MultibandSplit
479
+ Split = Component::Split
480
+ EQ3 = Component::EQ3
481
+ Compressor = Component::Compressor
482
+ Limiter = Component::Limiter
483
+ Gate = Component::Gate
484
+ Analyser = Analysis::Analyser
485
+ Meter = Analysis::Meter
486
+ FFT = Analysis::FFT
487
+ Waveform = Analysis::Waveform
488
+ DCMeter = Analysis::DCMeter
489
+ Distortion = Effects::Distortion
490
+ BitCrusher = Effects::BitCrusher
491
+ Chebyshev = Effects::Chebyshev
492
+ FeedbackDelay = Effects::FeedbackDelay
493
+ PingPongDelay = Effects::PingPongDelay
494
+ Reverb = Effects::Reverb
495
+ Freeverb = Effects::Freeverb
496
+ JCReverb = Effects::JCReverb
497
+ Chorus = Effects::Chorus
498
+ Phaser = Effects::Phaser
499
+ Tremolo = Effects::Tremolo
500
+ Vibrato = Effects::Vibrato
501
+ AutoFilter = Effects::AutoFilter
502
+ AutoPanner = Effects::AutoPanner
503
+ AutoWah = Effects::AutoWah
504
+ FrequencyShifter = Effects::FrequencyShifter
505
+ PitchShift = Effects::PitchShift
506
+ StereoWidener = Effects::StereoWidener
507
+ Synth = Instrument::Synth
508
+ MonoSynth = Instrument::MonoSynth
509
+ FMSynth = Instrument::FMSynth
510
+ AMSynth = Instrument::AMSynth
511
+ DuoSynth = Instrument::DuoSynth
512
+ NoiseSynth = Instrument::NoiseSynth
513
+ PluckSynth = Instrument::PluckSynth
514
+ MembraneSynth = Instrument::MembraneSynth
515
+ MetalSynth = Instrument::MetalSynth
516
+ Sampler = Instrument::Sampler
517
+ PolySynth = Instrument::PolySynth
518
+ Buffer = IO::Buffer
519
+ Buffers = IO::Buffers
520
+ ToneAudioBuffer = IO::Buffer
521
+ ToneAudioBuffers = IO::Buffers
522
+ Recorder = IO::Recorder
523
+ BaseContext = Context
524
+ Note = Music::Note
525
+ Frequency = Music::Frequency
526
+ FrequencyClass = Music::Frequency
527
+ Midi = Music::Midi
528
+ MidiClass = Music::Midi
529
+ Ticks = Music::Ticks
530
+ TicksClass = Music::Ticks
531
+ Time = Music::Time
532
+ TimeClass = Music::Time
533
+ TransportTime = Music::TransportTime
534
+ TransportTimeClass = Music::TransportTime
535
+ Transport = Event::Transport
536
+ ToneEvent = Event::ToneEvent
537
+ Loop = Event::Loop
538
+ Part = Event::Part
539
+ Sequence = Event::Sequence
540
+ Pattern = Event::Pattern
541
+ Master = Destination
542
+ end