@@ -504,6 +504,12 @@ pub async fn run(
504504 gate_out[ n] . set_low ( ) . await ;
505505 }
506506 }
507+ ClockEvent :: Stop => {
508+ for n in 0 ..4 {
509+ midi[ n] . send_note_off ( lastnote[ n] ) . await ;
510+ gate_out[ n] . set_low ( ) . await ;
511+ }
512+ }
507513 ClockEvent :: Tick => {
508514 for n in 0 ..=3 {
509515 if clockn. is_multiple_of ( clockres[ n] ) {
@@ -520,8 +526,7 @@ pub async fn run(
520526 as u32 )
521527 * 410
522528 / 4095 ) as u16
523- + ( storage. query ( |s| s. oct_fader [ n] ) / 1000 )
524- * 410 ,
529+ + ( storage. query ( |s| s. oct_fader [ n] ) / 1000 ) * 410 ,
525530 )
526531 . await ;
527532 lastnote[ n] = out. as_midi ( ) ;
@@ -634,23 +639,20 @@ struct AltUpdateContext<'a> {
634639 resolution : & ' a [ usize ; 8 ] ,
635640}
636641
637- fn apply_alt_update (
638- chan : usize ,
639- seq_idx : usize ,
640- value : u16 ,
641- ctx : & AltUpdateContext ,
642- ) {
642+ fn apply_alt_update ( chan : usize , seq_idx : usize , value : u16 , ctx : & AltUpdateContext ) {
643643 match chan {
644644 0 => {
645645 // Sequence length
646- ctx. storage . modify_and_save ( |s| s. length_fader [ seq_idx] = value) ;
646+ ctx. storage
647+ . modify_and_save ( |s| s. length_fader [ seq_idx] = value) ;
647648 let mut arr = ctx. seq_length_glob . get ( ) ;
648649 arr[ seq_idx] = ( value / 256 + 1 ) as u8 ;
649650 ctx. seq_length_glob . set ( arr) ;
650651 }
651652 1 => {
652653 // Gate length
653- ctx. storage . modify_and_save ( |s| s. gate_fader [ seq_idx] = value) ;
654+ ctx. storage
655+ . modify_and_save ( |s| s. gate_fader [ seq_idx] = value) ;
654656 let clockres = ctx. clockres_glob . get ( ) ;
655657 let mut arr = ctx. gatelength_glob . get ( ) ;
656658 arr[ seq_idx] = ( clockres[ seq_idx] * ( value as usize ) / 4096 ) as u8 ;
@@ -659,15 +661,18 @@ fn apply_alt_update(
659661 }
660662 2 => {
661663 // Octave
662- ctx. storage . modify_and_save ( |s| s. oct_fader [ seq_idx] = value) ;
664+ ctx. storage
665+ . modify_and_save ( |s| s. oct_fader [ seq_idx] = value) ;
663666 }
664667 3 => {
665668 // Range
666- ctx. storage . modify_and_save ( |s| s. range_fader [ seq_idx] = value) ;
669+ ctx. storage
670+ . modify_and_save ( |s| s. range_fader [ seq_idx] = value) ;
667671 }
668672 4 => {
669673 // Resolution
670- ctx. storage . modify_and_save ( |s| s. res_fader [ seq_idx] = value) ;
674+ ctx. storage
675+ . modify_and_save ( |s| s. res_fader [ seq_idx] = value) ;
671676 let res_index = ( value / 512 ) as usize ;
672677 let mut arr = ctx. clockres_glob . get ( ) ;
673678 arr[ seq_idx] = ctx. resolution [ res_index] ;
0 commit comments