@Override
	protected void paintComponent(Graphics g) {
		super.paintComponent(g);
		Graphics2D g2d = (Graphics2D) g;
		//g2d.setColor(Color.blue);
		g2d.setRenderingHint(
				RenderingHints.KEY_ANTIALIASING,
				RenderingHints.VALUE_ANTIALIAS_ON);
		g2d.setStroke(new BasicStroke(1,
				BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL));

		drawInterfaceBackground(g2d);
		drawGrids(g2d);

		if(!pressedNotes.isEmpty()) {
			Iterator<Map.Entry<Integer, Pointer>> it = pressedNotes.entrySet().iterator();
			while (it.hasNext()) {
				Entry<Integer, Pointer> temp = it.next();
				NoteIndex noteIndex = translatePointToNoteIndex(temp.getValue().getLocation());
				if(noteIndex != null&&!(temp.getValue().drawState()==INACTIVE)&&activeMenu[noteIndex.getPerson()]==NO_MENU) {
					drawNote(g2d, noteIndex.getPerson(), noteIndex.getColumn(), noteIndex.getNote(), 1.125d, 1.125d);
				}
			}
			// TODO Draw Instrument Menu if active here
		}
		for (int i = 0; i < player.getActiveGrids().size(); i++) {
			if (activeMenu[i] == INSTRUMENT_MENU) {
				drawInstrumentMenu(g2d, i);
			}
			if (activeMenu[i] == MENU_MENU) {
				drawMenuMenu(g2d, i);
			}
		}
	}