diff --git a/rust/pm-kit/src/main.rs b/rust/pm-kit/src/main.rs index 9091b73..ee9cae0 100644 --- a/rust/pm-kit/src/main.rs +++ b/rust/pm-kit/src/main.rs @@ -266,23 +266,12 @@ fn main() -> ! { // ---- draw: on change, and periodically (so a draw lost right after init reappears, and // the playhead advances). ~7 fps; partial/playhead-only redraw is the next optimization. ---- if full_redraw || now.wrapping_sub(last_draw_us) > 140_000 { - let lanes: Vec = track - .lanes - .iter() - .map(|l| pm_ui::LaneView { - name: &l.sound, - levels: &l.levels, - beats: l.groups.iter().map(|&g| g as u32).sum::().min(255) as u8, - poly: l.poly, - muted: l.mute, - }) - .collect(); - let screen = pm_ui::Screen { name: NAMES[idx], bpm: tempo, playing, phase, lanes: &lanes }; - if notation { - pm_ui::draw_notation(&mut display, &screen).ok(); - } else { - pm_ui::draw_metronome(&mut display, &screen).ok(); - } + // DIAGNOSTIC: draw the confirmed-working bring-up pattern instead of the metronome, + // to isolate whether the blank screen is draw_metronome or the heap/display path. + // If you see blue + 4 colored corners + "TL"/"PMK" → display+heap are fine and the + // bug is in draw_metronome. If still black → it's the heap/display, not the drawing. + let _ = (notation, idx, tempo, phase, &track); // keep state alive while diagnosing + pm_ui::draw_ui(&mut display).ok(); full_redraw = false; last_draw_us = now; }