Loading src/main/java/appA/BeatBoxFinal.java +65 −81 Changes for src/main/java/appA/BeatBoxFinal.java: 65 added lines, 81 removed lines. Original line number Diff line number Diff line Loading @@ -16,29 +16,27 @@ import java.util.Iterator; import java.util.Vector; public class BeatBoxFinal { JFrame theFrame; JPanel mainPanel; JList incomingList; JTextField userMessage; ArrayList<JCheckBox> checkboxList; int nextNum; Vector<String> listVector = new Vector<String>(); String userName; ObjectOutputStream out; ObjectInputStream in; HashMap<String, boolean[]> otherSeqsMap = new HashMap<String, boolean[]>(); Sequencer sequencer; Sequence sequence; Sequence mySequence = null; Track track; String[] instrumentNames = {" Bass Drum", " Closed Hi-Hat", " Open Hi-Hat", "Acoustic Snare", " Crash Cymbal", " Hand Clap", " High Tom", " Hi Bongo", "Maracas", "Whistle", " Low Conga", "Cowbell", "Vibraslap", "Low- mid Tom", " High Agogo", " Open Hi Conga"}; private JList<String> incomingList; private JTextField userMessage; private ArrayList<JCheckBox> checkboxList; private int nextNum; private final Vector<String> listVector = new Vector<>(); private String userName; private ObjectOutputStream out; private ObjectInputStream in; private final HashMap<String, boolean[]> otherSeqsMap = new HashMap<>(); private Sequencer sequencer; private Sequence sequence; private final Sequence mySequence = null; private Track track; String[] instrumentNames = {"Bass Drum", "Closed Hi-Hat", "Open Hi-Hat", "Acoustic Snare", "Crash Cymbal", "Hand Clap", "High Tom", "Hi Bongo", "Maracas", "Whistle", "Low Conga", "Cowbell", "Vibraslap", "Low-mid Tom", "High Agogo", "Open Hi Conga"}; int[] instruments = {35, 42, 46, 38, 49, 39, 50, 60, 70, 72, 64, 56, 58, 47, 67, 63}; public static void main(String[] args) { new BeatBoxFinal().startUp(args[0]); // args[0] is your user ID/screen name } Loading @@ -53,20 +51,19 @@ public class BeatBoxFinal { Thread remote = new Thread(new RemoteReader()); remote.start(); } catch (Exception ex) { System.out.println("couldn’t connect-you’ll have to play alone."); System.out.println("Couldn't connect-you'll have to play alone."); } setUpMidi(); buildGUI(); } // close startUp } public void buildGUI() { theFrame = new JFrame("Cyber BeatBox"); JFrame theFrame = new JFrame("Cyber BeatBox"); BorderLayout layout = new BorderLayout(); JPanel background = new JPanel(layout); background.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); checkboxList = new ArrayList<JCheckBox>(); checkboxList = new ArrayList<>(); Box buttonBox = new Box(BoxLayout.Y_AXIS); JButton start = new JButton("Start"); Loading @@ -93,7 +90,7 @@ public class BeatBoxFinal { buttonBox.add(userMessage); incomingList = new JList(); incomingList = new JList<>(); incomingList.addListSelectionListener(new MyListSelectionListener()); incomingList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); JScrollPane theList = new JScrollPane(incomingList); Loading @@ -112,7 +109,7 @@ public class BeatBoxFinal { GridLayout grid = new GridLayout(16, 16); grid.setVgap(1); grid.setHgap(2); mainPanel = new JPanel(grid); JPanel mainPanel = new JPanel(grid); background.add(BorderLayout.CENTER, mainPanel); for (int i = 0; i < 256; i++) { Loading @@ -120,12 +117,12 @@ public class BeatBoxFinal { c.setSelected(false); checkboxList.add(c); mainPanel.add(c); } // end loop } theFrame.setBounds(50, 50, 300, 300); theFrame.pack(); theFrame.setVisible(true); } // close buildGUI } public void setUpMidi() { try { Loading @@ -137,24 +134,21 @@ public class BeatBoxFinal { } catch (Exception e) { e.printStackTrace(); } } // close setUpMidi } public void buildTrackAndStart() { ArrayList<Integer> trackList = null; // this will hold the instruments for each ArrayList<Integer> trackList; // this will hold the instruments for each sequence.deleteTrack(track); track = sequence.createTrack(); for (int i = 0; i < 16; i++) { trackList = new ArrayList<Integer>(); trackList = new ArrayList<>(); for (int j = 0; j < 16; j++) { JCheckBox jc = (JCheckBox) checkboxList.get(j + (16 * i)); JCheckBox jc = checkboxList.get(j + (16 * i)); if (jc.isSelected()) { int key = instruments[i]; trackList.add(new Integer(key)); trackList.add(key); } else { trackList.add(null); // because this slot should be empty in the track } Loading @@ -170,27 +164,26 @@ public class BeatBoxFinal { } catch (Exception e) { e.printStackTrace(); } } // close method } public class MyStartListener implements ActionListener { public void actionPerformed(ActionEvent a) { buildTrackAndStart(); } // close actionPerformed } // close inner class } } public class MyStopListener implements ActionListener { public void actionPerformed(ActionEvent a) { sequencer.stop(); } // close actionPerformed } // close inner class } } public class MyUpTempoListener implements ActionListener { public void actionPerformed(ActionEvent a) { float tempoFactor = sequencer.getTempoFactor(); sequencer.setTempoFactor((float) (tempoFactor * 1.03)); } // close actionPerformed } // close inner class } } public class MyDownTempoListener implements ActionListener { public void actionPerformed(ActionEvent a) { Loading @@ -204,12 +197,11 @@ public class BeatBoxFinal { // make an arraylist of just the STATE of the checkboxes boolean[] checkboxState = new boolean[256]; for (int i = 0; i < 256; i++) { JCheckBox check = (JCheckBox) checkboxList.get(i); JCheckBox check = checkboxList.get(i); if (check.isSelected()) { checkboxState[i] = true; } } // close loop String messageToSend = null; } try { out.writeObject(userName + nextNum++ + ": " + userMessage.getText()); out.writeObject(checkboxState); Loading @@ -217,28 +209,26 @@ public class BeatBoxFinal { System.out.println("Sorry dude. Could not send it to the server."); } userMessage.setText(""); } // close actionPerformed } // close inner class } } public class MyListSelectionListener implements ListSelectionListener { public void valueChanged(ListSelectionEvent le) { if (!le.getValueIsAdjusting()) { String selected = (String) incomingList.getSelectedValue(); String selected = incomingList.getSelectedValue(); if (selected != null) { // now go to the map, and change the sequence boolean[] selectedState = (boolean[]) otherSeqsMap.get(selected); boolean[] selectedState = otherSeqsMap.get(selected); changeSequence(selectedState); sequencer.stop(); buildTrackAndStart(); } } } // close valueChanged } // close inner class } } public class RemoteReader implements Runnable { boolean[] checkboxState = null; String nameToShow = null; Object obj = null; public void run() { Loading @@ -251,44 +241,38 @@ public class BeatBoxFinal { otherSeqsMap.put(nameToShow, checkboxState); listVector.add(nameToShow); incomingList.setListData(listVector); } // close while } } catch (Exception ex) { ex.printStackTrace(); } } // close run } // close inner class } } public class MyPlayMineListener implements ActionListener { public void actionPerformed(ActionEvent a) { if (mySequence != null) { sequence = mySequence; // restore to my original sequence = mySequence; } } } } // close actionPerformed } // close inner class public void changeSequence(boolean[] checkboxState) { for (int i = 0; i < 256; i++) { JCheckBox check = (JCheckBox) checkboxList.get(i); if (checkboxState[i]) { check.setSelected(true); } else { check.setSelected(false); JCheckBox check = checkboxList.get(i); check.setSelected(checkboxState[i]); } } } // close loop } // close changeSequence public void makeTracks(ArrayList list) { Iterator it = list.iterator(); public void makeTracks(ArrayList<Integer> list) { Iterator<Integer> it = list.iterator(); for (int i = 0; i < 16; i++) { Integer num = (Integer) it.next(); Integer num = it.next(); if (num != null) { int numKey = num.intValue(); track.add(makeEvent(144, 9, numKey, 100, i)); track.add(makeEvent(128, 9, numKey, 100, i + 1)); track.add(makeEvent(144, 9, num, 100, i)); track.add(makeEvent(128, 9, num, 100, i + 1)); } } } } // close loop } // close makeTracks() public MidiEvent makeEvent(int comd, int chan, int one, int two, int tick) { MidiEvent event = null; Loading @@ -296,12 +280,12 @@ public class BeatBoxFinal { ShortMessage a = new ShortMessage(); a.setMessage(comd, chan, one, two); event = new MidiEvent(a, tick); } catch (Exception e) { } catch (Exception ignored) { } return event; } // close makeEvent } } // close class } Loading Loading
src/main/java/appA/BeatBoxFinal.java +65 −81 Changes for src/main/java/appA/BeatBoxFinal.java: 65 added lines, 81 removed lines. Original line number Diff line number Diff line Loading @@ -16,29 +16,27 @@ import java.util.Iterator; import java.util.Vector; public class BeatBoxFinal { JFrame theFrame; JPanel mainPanel; JList incomingList; JTextField userMessage; ArrayList<JCheckBox> checkboxList; int nextNum; Vector<String> listVector = new Vector<String>(); String userName; ObjectOutputStream out; ObjectInputStream in; HashMap<String, boolean[]> otherSeqsMap = new HashMap<String, boolean[]>(); Sequencer sequencer; Sequence sequence; Sequence mySequence = null; Track track; String[] instrumentNames = {" Bass Drum", " Closed Hi-Hat", " Open Hi-Hat", "Acoustic Snare", " Crash Cymbal", " Hand Clap", " High Tom", " Hi Bongo", "Maracas", "Whistle", " Low Conga", "Cowbell", "Vibraslap", "Low- mid Tom", " High Agogo", " Open Hi Conga"}; private JList<String> incomingList; private JTextField userMessage; private ArrayList<JCheckBox> checkboxList; private int nextNum; private final Vector<String> listVector = new Vector<>(); private String userName; private ObjectOutputStream out; private ObjectInputStream in; private final HashMap<String, boolean[]> otherSeqsMap = new HashMap<>(); private Sequencer sequencer; private Sequence sequence; private final Sequence mySequence = null; private Track track; String[] instrumentNames = {"Bass Drum", "Closed Hi-Hat", "Open Hi-Hat", "Acoustic Snare", "Crash Cymbal", "Hand Clap", "High Tom", "Hi Bongo", "Maracas", "Whistle", "Low Conga", "Cowbell", "Vibraslap", "Low-mid Tom", "High Agogo", "Open Hi Conga"}; int[] instruments = {35, 42, 46, 38, 49, 39, 50, 60, 70, 72, 64, 56, 58, 47, 67, 63}; public static void main(String[] args) { new BeatBoxFinal().startUp(args[0]); // args[0] is your user ID/screen name } Loading @@ -53,20 +51,19 @@ public class BeatBoxFinal { Thread remote = new Thread(new RemoteReader()); remote.start(); } catch (Exception ex) { System.out.println("couldn’t connect-you’ll have to play alone."); System.out.println("Couldn't connect-you'll have to play alone."); } setUpMidi(); buildGUI(); } // close startUp } public void buildGUI() { theFrame = new JFrame("Cyber BeatBox"); JFrame theFrame = new JFrame("Cyber BeatBox"); BorderLayout layout = new BorderLayout(); JPanel background = new JPanel(layout); background.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); checkboxList = new ArrayList<JCheckBox>(); checkboxList = new ArrayList<>(); Box buttonBox = new Box(BoxLayout.Y_AXIS); JButton start = new JButton("Start"); Loading @@ -93,7 +90,7 @@ public class BeatBoxFinal { buttonBox.add(userMessage); incomingList = new JList(); incomingList = new JList<>(); incomingList.addListSelectionListener(new MyListSelectionListener()); incomingList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); JScrollPane theList = new JScrollPane(incomingList); Loading @@ -112,7 +109,7 @@ public class BeatBoxFinal { GridLayout grid = new GridLayout(16, 16); grid.setVgap(1); grid.setHgap(2); mainPanel = new JPanel(grid); JPanel mainPanel = new JPanel(grid); background.add(BorderLayout.CENTER, mainPanel); for (int i = 0; i < 256; i++) { Loading @@ -120,12 +117,12 @@ public class BeatBoxFinal { c.setSelected(false); checkboxList.add(c); mainPanel.add(c); } // end loop } theFrame.setBounds(50, 50, 300, 300); theFrame.pack(); theFrame.setVisible(true); } // close buildGUI } public void setUpMidi() { try { Loading @@ -137,24 +134,21 @@ public class BeatBoxFinal { } catch (Exception e) { e.printStackTrace(); } } // close setUpMidi } public void buildTrackAndStart() { ArrayList<Integer> trackList = null; // this will hold the instruments for each ArrayList<Integer> trackList; // this will hold the instruments for each sequence.deleteTrack(track); track = sequence.createTrack(); for (int i = 0; i < 16; i++) { trackList = new ArrayList<Integer>(); trackList = new ArrayList<>(); for (int j = 0; j < 16; j++) { JCheckBox jc = (JCheckBox) checkboxList.get(j + (16 * i)); JCheckBox jc = checkboxList.get(j + (16 * i)); if (jc.isSelected()) { int key = instruments[i]; trackList.add(new Integer(key)); trackList.add(key); } else { trackList.add(null); // because this slot should be empty in the track } Loading @@ -170,27 +164,26 @@ public class BeatBoxFinal { } catch (Exception e) { e.printStackTrace(); } } // close method } public class MyStartListener implements ActionListener { public void actionPerformed(ActionEvent a) { buildTrackAndStart(); } // close actionPerformed } // close inner class } } public class MyStopListener implements ActionListener { public void actionPerformed(ActionEvent a) { sequencer.stop(); } // close actionPerformed } // close inner class } } public class MyUpTempoListener implements ActionListener { public void actionPerformed(ActionEvent a) { float tempoFactor = sequencer.getTempoFactor(); sequencer.setTempoFactor((float) (tempoFactor * 1.03)); } // close actionPerformed } // close inner class } } public class MyDownTempoListener implements ActionListener { public void actionPerformed(ActionEvent a) { Loading @@ -204,12 +197,11 @@ public class BeatBoxFinal { // make an arraylist of just the STATE of the checkboxes boolean[] checkboxState = new boolean[256]; for (int i = 0; i < 256; i++) { JCheckBox check = (JCheckBox) checkboxList.get(i); JCheckBox check = checkboxList.get(i); if (check.isSelected()) { checkboxState[i] = true; } } // close loop String messageToSend = null; } try { out.writeObject(userName + nextNum++ + ": " + userMessage.getText()); out.writeObject(checkboxState); Loading @@ -217,28 +209,26 @@ public class BeatBoxFinal { System.out.println("Sorry dude. Could not send it to the server."); } userMessage.setText(""); } // close actionPerformed } // close inner class } } public class MyListSelectionListener implements ListSelectionListener { public void valueChanged(ListSelectionEvent le) { if (!le.getValueIsAdjusting()) { String selected = (String) incomingList.getSelectedValue(); String selected = incomingList.getSelectedValue(); if (selected != null) { // now go to the map, and change the sequence boolean[] selectedState = (boolean[]) otherSeqsMap.get(selected); boolean[] selectedState = otherSeqsMap.get(selected); changeSequence(selectedState); sequencer.stop(); buildTrackAndStart(); } } } // close valueChanged } // close inner class } } public class RemoteReader implements Runnable { boolean[] checkboxState = null; String nameToShow = null; Object obj = null; public void run() { Loading @@ -251,44 +241,38 @@ public class BeatBoxFinal { otherSeqsMap.put(nameToShow, checkboxState); listVector.add(nameToShow); incomingList.setListData(listVector); } // close while } } catch (Exception ex) { ex.printStackTrace(); } } // close run } // close inner class } } public class MyPlayMineListener implements ActionListener { public void actionPerformed(ActionEvent a) { if (mySequence != null) { sequence = mySequence; // restore to my original sequence = mySequence; } } } } // close actionPerformed } // close inner class public void changeSequence(boolean[] checkboxState) { for (int i = 0; i < 256; i++) { JCheckBox check = (JCheckBox) checkboxList.get(i); if (checkboxState[i]) { check.setSelected(true); } else { check.setSelected(false); JCheckBox check = checkboxList.get(i); check.setSelected(checkboxState[i]); } } } // close loop } // close changeSequence public void makeTracks(ArrayList list) { Iterator it = list.iterator(); public void makeTracks(ArrayList<Integer> list) { Iterator<Integer> it = list.iterator(); for (int i = 0; i < 16; i++) { Integer num = (Integer) it.next(); Integer num = it.next(); if (num != null) { int numKey = num.intValue(); track.add(makeEvent(144, 9, numKey, 100, i)); track.add(makeEvent(128, 9, numKey, 100, i + 1)); track.add(makeEvent(144, 9, num, 100, i)); track.add(makeEvent(128, 9, num, 100, i + 1)); } } } } // close loop } // close makeTracks() public MidiEvent makeEvent(int comd, int chan, int one, int two, int tick) { MidiEvent event = null; Loading @@ -296,12 +280,12 @@ public class BeatBoxFinal { ShortMessage a = new ShortMessage(); a.setMessage(comd, chan, one, two); event = new MidiEvent(a, tick); } catch (Exception e) { } catch (Exception ignored) { } return event; } // close makeEvent } } // close class } Loading