private static StaffSequence populateSequence(String timeSig,
            ArrayList<String> songData, String tempo) {
        StaffSequence song = new StaffSequence();
        song.getTheLines().clear();
        song.setTempo(Double.parseDouble(tempo));
        int accum = 0;
        for (String s : songData) {
            if (accum >= Values.LINES_PER_MPC_SONG)
                break;
            accum++;
            StaffNoteLine sl = new StaffNoteLine();
            if (s.length() <= 1) {
                song.addLine(sl);
                continue;
            }
            ArrayList<String> inst = dice(s);
            int vol = parseVolume(s.charAt(s.length() - 2));
            for (String note : inst) {
                if (note.isEmpty())
                    continue;
                InstrumentIndex in = MPCInstrumentIndex.valueOf(note.charAt(0));
                int pos = 0;
                int acc = 0;
                if (note.length() == 3) {
                    if (note.substring(1).equals("17")) {
                        StaffNote mn = new StaffNote(in, pos, acc);
                        mn.setMuteNote(2);
                        sl.add(mn);
                        continue;
                    } else {
                        pos = parsePosition(note.charAt(1));
                        acc = parseAccidental(note.charAt(2));
                    }
                } else if (note.length() == 2) {
                    pos = parsePosition(note.charAt(1));
                    acc = 0;
                }
                StaffNote sn = new StaffNote(in, pos, acc);
                sl.add(sn);
            }
            sl.setVolume(vol);
            song.addLine(sl);
        }
        while (song.getTheLines().size() < Values.LINES_PER_MPC_SONG) {
            song.getTheLines().add(new StaffNoteLine());
        }
        return song;
    }