Class: SynthBlocks::Synth::PolyVoice
- Inherits:
-
Object
- Object
- SynthBlocks::Synth::PolyVoice
- Defined in:
- lib/synth_blocks/synth/polysynth.rb
Overview
:nodoc:
Instance Method Summary collapse
-
#initialize(sfreq, parent, preset) ⇒ PolyVoice
constructor
A new instance of PolyVoice.
- #run(started, stopped, frequency, velocity) ⇒ Object
Constructor Details
#initialize(sfreq, parent, preset) ⇒ PolyVoice
Returns a new instance of PolyVoice.
9 10 11 12 13 14 15 16 17 |
# File 'lib/synth_blocks/synth/polysynth.rb', line 9 def initialize(sfreq, parent, preset) @sampling_frequency = sfreq @parent = parent @preset = preset @oscillator = SynthBlocks::Core::Oscillator.new(sfreq) @filter = SynthBlocks::Core::StateVariableFilter.new(sfreq) @amp_env = SynthBlocks::Mod::Adsr.new(@preset[:amp_env_attack], @preset[:amp_env_decay], @preset[:amp_env_sustain], @preset[:amp_env_release]) @flt_env = SynthBlocks::Mod::Adsr.new(@preset[:flt_env_attack], @preset[:flt_env_decay], @preset[:flt_env_sustain], @preset[:flt_env_release]) end |
Instance Method Details
#run(started, stopped, frequency, velocity) ⇒ Object
19 20 21 22 23 |
# File 'lib/synth_blocks/synth/polysynth.rb', line 19 def run(started, stopped, frequency, velocity) osc_out = @oscillator.run(frequency, waveform: @preset[:osc_waveform]) osc_out = @filter.run(osc_out, @parent.get(:flt_frequency, started) + @flt_env.run(started, stopped) * @parent.get(:flt_envmod, started), @preset[:flt_Q]) osc_out = osc_out * @amp_env.run(started, stopped) * velocity end |