diff --git a/src/waveform.rs b/src/waveform.rs index eca9b94..3a078c7 100644 --- a/src/waveform.rs +++ b/src/waveform.rs @@ -68,10 +68,10 @@ impl Waveform { } // Set function scoped last rows if previous_left_row.0 != self.rgba.height as usize && previous_left_row.1 != 0 { - last_rows.0 = if (previous_left_row.0 as f32 - 128f32).abs() < (previous_left_row.1 as f32 - 128f32).abs() {previous_left_row.0} else {previous_left_row.1}; + last_rows.0 = if (previous_left_row.0 as f32 - (self.rgba.height/2) as f32).abs() < (previous_left_row.1 as f32 - (self.rgba.height/2) as f32).abs() {previous_left_row.0} else {previous_left_row.1}; } if previous_right_row.0 != self.rgba.height as usize && previous_right_row.1 != 0 { - last_rows.1 = if (previous_right_row.0 as f32 - 128f32).abs() < (previous_right_row.1 as f32 - 128f32).abs() {previous_right_row.0} else {previous_right_row.1}; + last_rows.1 = if (previous_right_row.0 as f32 - (self.rgba.height/2) as f32).abs() < (previous_right_row.1 as f32 - (self.rgba.height/2) as f32).abs() {previous_right_row.0} else {previous_right_row.1}; } } else { @@ -84,7 +84,7 @@ impl Waveform { // LEFT CHANNEL let column_values : &[f32] = &left_samples[x*left_column_width..(x+1)*left_column_width]; let column_average : f32 = (column_values.iter().cloned().reduce(|acc, v| acc+v).unwrap_or(0f32) / column_values.len() as f32).clamp(-0.99, 0.99); - let row = (128f32 - (column_average * 128f32)).round() as usize; + let row = ((self.rgba.height/2) as f32 - (column_average * (self.rgba.height/2) as f32)).round() as usize; // Draw vertical lines from last row let range : Vec = if row <= last_rows.0 {(row..=last_rows.0).collect()} else {(last_rows.0..=row).rev().collect()}; @@ -98,7 +98,7 @@ impl Waveform { // RIGHT CHANNEL let column_values : &[f32] = &right_samples[x*right_column_width..(x+1)*right_column_width]; let column_average : f32 = (column_values.iter().cloned().reduce(|acc, v| acc+v).unwrap_or(0f32) / column_values.len() as f32).clamp(-0.99, 0.99); - let row = (128f32 - (column_average * 128f32)).round() as usize; + let row = ((self.rgba.height/2) as f32 - (column_average * (self.rgba.height/2) as f32)).round() as usize; // Draw vertical lines from last row let range : Vec = if row <= last_rows.1 {(row..=last_rows.1).collect()} else {(last_rows.1..=row).rev().collect()};