Loading src/main/java/ch15/BeatBox.java +27 −34 Changes for src/main/java/ch15/BeatBox.java: 27 added lines, 34 removed lines. Original line number Diff line number Diff line package ch15; import java.awt.*; import javax.swing.*; import javax.sound.midi.*; import java.util.*; import java.awt.event.*; import javax.swing.*; import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.Label; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; public class BeatBox { JPanel mainPanel; ArrayList<JCheckBox> checkboxList; Sequencer sequencer; Loading Loading @@ -76,14 +77,14 @@ public class BeatBox { c.setSelected(false); checkboxList.add(c); mainPanel.add(c); } // end loop } setUpMidi(); theFrame.setBounds(50, 50, 300, 300); theFrame.pack(); theFrame.setVisible(true); } // close method } public void setUpMidi() { Loading @@ -94,38 +95,31 @@ public class BeatBox { track = sequence.createTrack(); sequencer.setTempoInBPM(120); } catch(Exception e) {e.printStackTrace();} } catch (Exception e) { e.printStackTrace(); } } // close method public void buildTrackAndStart() { int[] trackList = null; int[] trackList; sequence.deleteTrack(track); track = sequence.createTrack(); for (int i = 0; i < 16; i++) { trackList = new int[16]; int key = instruments[i]; for (int j = 0; j < 16; j++) { JCheckBox jc = checkboxList.get(j + 16 * i); if (jc.isSelected()) { trackList[j] = key; } else { trackList[j] = 0; } } // close inner loop } makeTracks(trackList); track.add(makeEvent(176, 1, 127, 0, 16)); } // close outer } track.add(makeEvent(192, 9, 1, 0, 15)); try { Loading @@ -134,39 +128,36 @@ public class BeatBox { sequencer.setLoopCount(sequencer.LOOP_CONTINUOUSLY); sequencer.start(); sequencer.setTempoInBPM(120); } catch(Exception e) {e.printStackTrace();} } // close buildTrackAndStart method } catch (Exception e) { e.printStackTrace(); } } public class MyStartListener implements ActionListener { public void actionPerformed(ActionEvent a) { buildTrackAndStart(); } } // close inner class } public class MyStopListener implements ActionListener { public void actionPerformed(ActionEvent a) { sequencer.stop(); } } // close inner class } public class MyUpTempoListener implements ActionListener { public void actionPerformed(ActionEvent a) { float tempoFactor = sequencer.getTempoFactor(); sequencer.setTempoFactor((float) (tempoFactor * 1.03)); } } // close inner class } public class MyDownTempoListener implements ActionListener { public void actionPerformed(ActionEvent a) { float tempoFactor = sequencer.getTempoFactor(); sequencer.setTempoFactor((float) (tempoFactor * .97)); } } // close inner class } public void makeTracks(int[] list) { Loading @@ -187,8 +178,10 @@ public class BeatBox { a.setMessage(comd, chan, one, two); event = new MidiEvent(a, tick); } catch(Exception e) {e.printStackTrace(); } } catch (Exception e) { e.printStackTrace(); } return event; } } // close class } Loading
src/main/java/ch15/BeatBox.java +27 −34 Changes for src/main/java/ch15/BeatBox.java: 27 added lines, 34 removed lines. Original line number Diff line number Diff line package ch15; import java.awt.*; import javax.swing.*; import javax.sound.midi.*; import java.util.*; import java.awt.event.*; import javax.swing.*; import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.Label; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; public class BeatBox { JPanel mainPanel; ArrayList<JCheckBox> checkboxList; Sequencer sequencer; Loading Loading @@ -76,14 +77,14 @@ public class BeatBox { c.setSelected(false); checkboxList.add(c); mainPanel.add(c); } // end loop } setUpMidi(); theFrame.setBounds(50, 50, 300, 300); theFrame.pack(); theFrame.setVisible(true); } // close method } public void setUpMidi() { Loading @@ -94,38 +95,31 @@ public class BeatBox { track = sequence.createTrack(); sequencer.setTempoInBPM(120); } catch(Exception e) {e.printStackTrace();} } catch (Exception e) { e.printStackTrace(); } } // close method public void buildTrackAndStart() { int[] trackList = null; int[] trackList; sequence.deleteTrack(track); track = sequence.createTrack(); for (int i = 0; i < 16; i++) { trackList = new int[16]; int key = instruments[i]; for (int j = 0; j < 16; j++) { JCheckBox jc = checkboxList.get(j + 16 * i); if (jc.isSelected()) { trackList[j] = key; } else { trackList[j] = 0; } } // close inner loop } makeTracks(trackList); track.add(makeEvent(176, 1, 127, 0, 16)); } // close outer } track.add(makeEvent(192, 9, 1, 0, 15)); try { Loading @@ -134,39 +128,36 @@ public class BeatBox { sequencer.setLoopCount(sequencer.LOOP_CONTINUOUSLY); sequencer.start(); sequencer.setTempoInBPM(120); } catch(Exception e) {e.printStackTrace();} } // close buildTrackAndStart method } catch (Exception e) { e.printStackTrace(); } } public class MyStartListener implements ActionListener { public void actionPerformed(ActionEvent a) { buildTrackAndStart(); } } // close inner class } public class MyStopListener implements ActionListener { public void actionPerformed(ActionEvent a) { sequencer.stop(); } } // close inner class } public class MyUpTempoListener implements ActionListener { public void actionPerformed(ActionEvent a) { float tempoFactor = sequencer.getTempoFactor(); sequencer.setTempoFactor((float) (tempoFactor * 1.03)); } } // close inner class } public class MyDownTempoListener implements ActionListener { public void actionPerformed(ActionEvent a) { float tempoFactor = sequencer.getTempoFactor(); sequencer.setTempoFactor((float) (tempoFactor * .97)); } } // close inner class } public void makeTracks(int[] list) { Loading @@ -187,8 +178,10 @@ public class BeatBox { a.setMessage(comd, chan, one, two); event = new MidiEvent(a, tick); } catch(Exception e) {e.printStackTrace(); } } catch (Exception e) { e.printStackTrace(); } return event; } } // close class }