protected AreaChart<Number, Number> createChart() {
   final NumberAxis xAxis = new NumberAxis(0, 128, 8);
   final NumberAxis yAxis = new NumberAxis(0, 50, 10);
   final AreaChart<Number, Number> ac = new AreaChart<Number, Number>(xAxis, yAxis);
   // setup chart
   ac.setId("audioAreaDemo");
   ac.setLegendVisible(false);
   ac.setTitle("Live Audio Spectrum Data");
   ac.setAnimated(false);
   xAxis.setLabel("Frequency Bands");
   yAxis.setLabel("Magnitudes");
   yAxis.setTickLabelFormatter(new NumberAxis.DefaultFormatter(yAxis, null, "dB"));
   // add starting data
   XYChart.Series<Number, Number> series = new XYChart.Series<Number, Number>();
   series.setName("Audio Spectrum");
   //noinspection unchecked
   series1Data = new XYChart.Data[(int) xAxis.getUpperBound()];
   for (int i = 0; i < series1Data.length; i++) {
     series1Data[i] = new XYChart.Data<Number, Number>(i, 50);
     series.getData().add(series1Data[i]);
   }
   ac.getData().add(series);
   return ac;
 }