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(&params.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), &params.osc_2_retrigger, &params.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,