private void paintRhythms(Graphics g) {
        // graph rhythms
        FontMetrics fm = g.getFontMetrics(f);
        int ascent = fm.getAscent();

        for (int i = 1; i < 65; i++) {
            if (i % 8 == 0) {
                g.setColor(Color.red);
            } else if (i % 8 == 4) {
                g.setColor(Color.orange);
            } else if (i % 8 == 2 || i % 8 == 6) {
                g.setColor(Color.blue);
            } else g.setColor(Color.black);
            g.fillRect(lableSpace, i * barWidth * 2 + lableSpace,
                    (int) ((double) rhythmValues[i] / (double) maxRhythmValue *
                            ((double) this.getSize().width - lableSpace)), barWidth * 2 - 1
            );
            if (i % 8 == 0) {
                g.setColor(Color.red);
                g.drawString("" + i / 8.0, 2, i * barWidth * 2 + ascent + lableSpace);
            }
            if (i % 8 == 4) {
                g.setColor(Color.orange);
                g.drawString("" + i / 8.0, 2, i * barWidth * 2 + ascent + lableSpace);
            }
            if (i % 8 == 2 || i % 8 == 6) {
                g.setColor(Color.blue);
                g.drawString("" + i / 8.0, 2, i * barWidth * 2 + ascent + lableSpace);
            }
        }
    }