class SPCore::SignalGenerator
Provides methods for generating a Signal
that contains test waveforms or noise.
Constants
- ARG_SPECS
used to process hashed args in initialize.
Attributes
sample_rate[R]
size[R]
Public Class Methods
new(args)
click to toggle source
A new instance of SignalGenerator
. @param [Hash] args Required keys are :sample_rate and :size.
# File lib/spcore/generation/signal_generator.rb, line 16 def initialize args hash_make args, ARG_SPECS end
Public Instance Methods
make_noise(amplitude = 1.0)
click to toggle source
Generate a Signal
object with noise data.
# File lib/spcore/generation/signal_generator.rb, line 21 def make_noise amplitude = 1.0 output = Array.new(@size) output.each_index do |i| output[i] = rand * amplitude end return Signal.new(:sample_rate => @sample_rate, :data => output) end
make_signal(freqs, extra_osc_args = {})
click to toggle source
Generate a Signal
object with waveform data at the given frequencies.
# File lib/spcore/generation/signal_generator.rb, line 31 def make_signal freqs, extra_osc_args = {} args = { :sample_rate => @sample_rate }.merge! extra_osc_args oscs = [] freqs.each do |freq| oscs.push Oscillator.new args.merge(:frequency => freq) end output = Array.new(@size, 0.0) @size.times do |n| oscs.each do |osc| output[n] += osc.sample end end return Signal.new(:sample_rate => @sample_rate, :data => output) end