start_position_1_knob start_position_1_knob start_position_1_knob
SmoothStyle::Linear, SmoothStyle::Linear, SmoothStyle::Linear,
.with_width(HCURVE_BWIDTH) .with_width(HCURVE_BWIDTH)
ui.add( ui.add( ui.add( ui.add( ui.add( ui.add( ui.add(
osc_1_unison_knob osc_1_unison_knob osc_1_unison_knob
///////////////////////////////////////////////////////////
temp_unison_voice: temp_unison_voice: temp_unison_voice:
temp_osc_gain_multiplier: temp_osc_gain_multiplier:
voice.state voice.state voice.state voice.state voice.state
osc_unison: osc_unison: osc_unison: osc_unison: osc_unison:
VoiceType::Ramp VoiceType::Ramp VoiceType::Ramp VoiceType::Ramp
.osc_release .osc_release .osc_release .osc_release
//frequency: //frequency: //frequency: //frequency:
Smoother::new(SmoothingStyle::Linear(5.0)), Smoother::new(SmoothingStyle::Linear(5.0)),
AudioModuleType::Sampler AudioModuleType::Sampler
ui.vertical(|ui| ui.vertical(|ui| ui.vertical(|ui|
summed_voices_r summed_voices_r summed_voices_r summed_voices_r
.override_colors(DARK_GREY_UI_COLOR, .override_colors(DARK_GREY_UI_COLOR,
.set_line_color(SYNTH_MIDDLE_BLUE) .set_line_color(SYNTH_MIDDLE_BLUE)
voice.phase_delta voice.phase_delta voice.phase_delta
loaded_right loaded_right loaded_right loaded_right
mono/stereo mono/stereo mono/stereo mono/stereo mono/stereo
ui.add( ui.add( ui.add( ui.add( ui.add( ui.add( ui.add(
ui.add(VerticalParamSlider::for_param(¶ms.osc_1_decay,
sustain_scaled.clamp(0.0001, sustain_scaled.clamp(0.0001,
self.pitch_env_dec_curve_2 self.pitch_env_dec_curve_2
params.osc_2_semitones.value(); params.osc_2_semitones.value();
ui.add(osc_3_type_knob); ui.add(osc_3_type_knob);
unison_voice.osc_attack.steps_left() unison_voice.osc_attack.steps_left()
params.pitch_routing.value() params.pitch_routing.value()
osc_attack: osc_attack: osc_attack: osc_attack: osc_attack:
ui_knob::ArcKnob::for_param( ui_knob::ArcKnob::for_param(
uni_voice uni_voice uni_voice uni_voice uni_voice
next_grain_pos: next_grain_pos: next_grain_pos: next_grain_pos:
loaded_sample: loaded_sample: loaded_sample: loaded_sample:
pitch_mod_current pitch_mod_current pitch_mod_current
.with_width(VERT_BAR_WIDTH) .with_width(VERT_BAR_WIDTH)
.use_outline(true) .use_outline(true) .use_outline(true)
unison_voice.osc_decay.next() unison_voice.osc_decay.next()
self.osc_detune self.osc_detune self.osc_detune self.osc_detune
KNOB_SIZE) KNOB_SIZE) KNOB_SIZE) KNOB_SIZE) KNOB_SIZE)
params.pitch_env_dec_curve.value(); params.pitch_env_dec_curve.value();
self.osc_semitones self.osc_semitones self.osc_semitones
self.two_voice_stereo_flipper self.two_voice_stereo_flipper
.with_width(HCURVE_BWIDTH) .with_width(HCURVE_BWIDTH)
.set_reversed(true) .set_reversed(true) .set_reversed(true)
.color(FONT_COLOR), .color(FONT_COLOR), .color(FONT_COLOR),
self.sample_lib[usize_note][0].len(); self.sample_lib[usize_note][0].len();
pitch_env_rel_curve_2: pitch_env_rel_curve_2: pitch_env_rel_curve_2:
voice.pitch_release.steps_left() voice.pitch_release.steps_left()
self.pitch_env_atk_curve self.pitch_env_atk_curve
Oscillator::get_pulse(voice.phase) Oscillator::get_pulse(voice.phase)
44100.0, 44100.0, 44100.0, 44100.0, 44100.0, 44100.0,
Smoother<f32>; Smoother<f32>; Smoother<f32>; Smoother<f32>;
setter, setter, setter, setter, setter, setter, setter,
self.osc_release, self.osc_release, self.osc_release,
unison_voice.pitch_attack.next(); unison_voice.pitch_attack.next();
loop_toggle loop_toggle loop_toggle loop_toggle loop_toggle
.set_fill_color(DARK_GREY_UI_COLOR) .set_fill_color(DARK_GREY_UI_COLOR)
unison_voice.pitch_current_2; unison_voice.pitch_current_2;
spec.bits_per_sample spec.bits_per_sample spec.bits_per_sample
.color(FONT_COLOR), .color(FONT_COLOR), .color(FONT_COLOR),
¶ms.osc_2_retrigger, ¶ms.osc_2_retrigger,
A_BACKGROUND_COLOR_TOP, A_BACKGROUND_COLOR_TOP, A_BACKGROUND_COLOR_TOP,
A_BACKGROUND_COLOR_TOP, A_BACKGROUND_COLOR_TOP, A_BACKGROUND_COLOR_TOP,