     for(uint8_t i = 0; i < 8; ++i)
     {
       // pitch
-      display_note(16 * i, 9, params.vals.stage_pitch[i], DUINO_SSD1306::White);
+      display_note(16 * i, 20, params.vals.stage_pitch[i], DUINO_SSD1306::White);
       // steps
-      for(uint8_t j = 0; j < params.vals.stage_steps[i]; ++j)
-      {
-        display->draw_hline(16 * i + 2, 40 - j * 2, 5, DUINO_SSD1306::White);
-        display->draw_hline(16 * i + 9, 40 - j * 2, 5, DUINO_SSD1306::White);
-      }
+      display_steps(16 * i, 35, params.vals.stage_steps[i], DUINO_SSD1306::White);
       // gate mode
       display->draw_icon_16(16 * i, 42, gate_mode_icons, (GateMode)params.vals.stage_gate[i], DUINO_SSD1306::White);
       // slew

        }
        break;
      case 2: // pitch
        display->fill_rect(16 * stage_selected, 10, 16, 15, DUINO_SSD1306::Inverse);
        break;
      case 3: // steps
        display->fill_rect(16 * stage_selected, 25, 16, 17, DUINO_SSD1306::Inverse);
        break;
      case 4: // gate
        display->fill_rect(16 * stage_selected, 42, 16, 16, DUINO_SSD1306::Inverse);

  void display_note(int16_t x, int16_t y, int8_t note, DUINO_SSD1306::SSD1306Color color)
  {
    // draw octave
    display->draw_char(x + 9, y + 7, '0' + note / 12, color);

    // draw note
    display->draw_char(x + 2, y + 4, semitone_lt[note % 12], color);
    
    // draw intonation symbol
    switch(semitone_in[note % 12])
    {
      case IF:
        display->draw_vline(x + 9, y + 1, 5, color);
        display->draw_pixel(x + 10, y + 3, color);
        display->draw_pixel(x + 10, y + 5, color);
        display->draw_vline(x + 11, y + 4, 2, color);
        break;
      case IS:
        display->draw_vline(x + 9, y + 1, 5, color);
        display->draw_pixel(x + 10, y + 2, color);
        display->draw_pixel(x + 10, y + 4, color);
        display->draw_vline(x + 11, y + 1, 5, color);
        break;
    }
  }

  void display_steps(int16_t x, int16_t y, int8_t steps, DUINO_SSD1306::SSD1306Color color)
  {
    // draw center line
    display->draw_hline(x + 1, y + 3, 14, color);

    // draw top pips
    for(uint8_t i = 0; i < 4; ++i)
    {
      if(i + 1 > steps)
      {
        break;
      }
      display->fill_rect(x + 1 + i * 4, y + 1, 2, 2, color);
    }

    // draw bottom pips
    for(uint8_t i = 0; i < 4; ++i)
    {
      if(i + 5 > steps)
      {
        break;
      }
      display->fill_rect(x + 13 - i * 4, y + 4, 2, 2, color);
    }
  }

