Skip to content

Commit 270e859

Browse files
committed
refs #114, add control ui to adjust the octave of click sound
1 parent 0a55d97 commit 270e859

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

crates/notation_bevy/src/viewer/control_view.rs

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use notation_bevy_utils::prelude::{
99
};
1010
use float_eq::float_ne;
1111
use notation_midi::prelude::{MidiState, PlayControlEvent, MidiSettings, JumpToBarEvent};
12-
use notation_model::prelude::{Tab};
12+
use notation_model::prelude::{Tab, Octave};
1313

1414
use crate::settings::layout_settings::LayoutMode;
1515
use crate::ui::layout::NotationLayout;
@@ -168,6 +168,8 @@ impl ControlView {
168168
}
169169
pub fn midi_settings_ui(
170170
ui: &mut Ui,
171+
state: &mut NotationAppState,
172+
theme: &mut NotationTheme,
171173
midi_settings: &mut MidiSettings,
172174
midi_state: &mut MidiState,
173175
play_control_evts: &mut EventWriter<PlayControlEvent>,
@@ -186,6 +188,18 @@ impl ControlView {
186188
}
187189
if !midi_settings.bypass_hub {
188190
ui.separator();
191+
ui.horizontal(|ui| {
192+
ui.label(format!("Click Octave: {}", midi_settings.click_octave));
193+
ui.separator();
194+
if midi_settings.click_octave > Octave::P1 && ui.button("lower").clicked() {
195+
midi_settings.click_octave = midi_settings.click_octave.get_lower();
196+
Control::reload_tab(state, theme);
197+
}
198+
if midi_settings.click_octave < Octave::P7 && ui.button("higher").clicked() {
199+
midi_settings.click_octave = midi_settings.click_octave.get_higher();
200+
Control::reload_tab(state, theme);
201+
}
202+
});
189203
ui.horizontal(|ui| {
190204
ui.checkbox(&mut midi_settings.click_mute, "Mute");
191205
ui.add(Slider::new(&mut midi_settings.click_velocity, 0..=127).text("Click"));
@@ -609,7 +623,7 @@ impl ControlView {
609623
ui.separator();
610624
egui::ScrollArea::auto_sized().show(ui, |ui| {
611625
ui.vertical(|ui| {
612-
Self::midi_settings_ui(ui, &mut midi_settings, &mut midi_state, &mut play_control_evts);
626+
Self::midi_settings_ui(ui, &mut state, &mut theme, &mut midi_settings, &mut midi_state, &mut play_control_evts);
613627
Self::display_ui(ui, &mut state, &mut settings, &mut theme);
614628
ui.separator();
615629
Self::layout_ui(ui, &mut state, &mut settings, &mut theme);

crates/notation_core/src/octave.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,12 @@ impl Octave {
7070
_ => Self::N1,
7171
}
7272
}
73+
pub fn get_higher(&self) -> Self {
74+
(Semitones::from(*self) + Semitones(12)).into()
75+
}
76+
pub fn get_lower(&self) -> Self {
77+
(Semitones::from(*self) - Semitones(12)).into()
78+
}
7379
}
7480

7581
impl From<Octave> for Semitones {

0 commit comments

Comments
 (0)