Class: Vizcore::Audio::DummySineInput
- Defined in:
- lib/vizcore/audio/dummy_sine_input.rb
Overview
Deterministic sine-wave generator used for the explicit dummy source.
Constant Summary collapse
- DEFAULT_AMPLITUDE =
Default oscillator amplitude.
0.45- DEFAULT_FREQUENCY =
Default oscillator frequency in Hz.
220.0
Instance Attribute Summary
Attributes inherited from BaseInput
Instance Method Summary collapse
-
#initialize(sample_rate: 44_100, frequency: DEFAULT_FREQUENCY, amplitude: DEFAULT_AMPLITUDE) ⇒ DummySineInput
constructor
A new instance of DummySineInput.
-
#read(frame_size) ⇒ Array<Float>
Generated sine wave samples.
Methods inherited from BaseInput
Constructor Details
#initialize(sample_rate: 44_100, frequency: DEFAULT_FREQUENCY, amplitude: DEFAULT_AMPLITUDE) ⇒ DummySineInput
Returns a new instance of DummySineInput.
17 18 19 20 21 22 |
# File 'lib/vizcore/audio/dummy_sine_input.rb', line 17 def initialize(sample_rate: 44_100, frequency: DEFAULT_FREQUENCY, amplitude: DEFAULT_AMPLITUDE) super(sample_rate: sample_rate) @frequency = Float(frequency) @amplitude = Float(amplitude).clamp(0.0, 1.0) @phase = 0.0 end |
Instance Method Details
#read(frame_size) ⇒ Array<Float>
Returns generated sine wave samples.
26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/vizcore/audio/dummy_sine_input.rb', line 26 def read(frame_size) count = Integer(frame_size) return Array.new(count, 0.0) unless running? step = (2.0 * Math::PI * @frequency) / sample_rate Array.new(count) do value = Math.sin(@phase) * @amplitude @phase += step value end end |