public Song(String filePath) {
		measures = new ArrayList<Measure>();
		titleCards = new ArrayList<String>();
		
		try {
			BufferedReader in = new BufferedReader(new FileReader(filePath));
			
			String line = null;

			while ((line = in.readLine()) != null) {
				if (line.length() > 0) {
					switch(line.charAt(0)) {
					case 'm':
					case 'r':
					case 's':
						measures.add(new Measure(line));
						break;
					case 't':
						parseTitleCard(line);
						break;
					}
				}
			}
			in.close();
		} catch (FileNotFoundException e) {
			System.err.println("Song file not found: " + filePath);
			e.printStackTrace();
		} catch (IOException e) {
			System.err.println("Problem loading song: " + filePath);
			e.printStackTrace();
		}
	}