commit 5a6ca8046c6e0f4751182a15a476dfa32661dc59 Author: Rik Veenboer Date: Sun Jul 3 12:28:35 2016 +0100 Move files in anticipation of move to modular system diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a4bf388 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/bin +/.settings +/sound diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..8536a8e --- /dev/null +++ b/build.gradle @@ -0,0 +1,10 @@ +dependencies { + compile 'commons-io:commons-io:2.+' + compile 'commons-cli:commons-cli:1.+' + compile 'commons-pool:commons-pool:1.+' + compile 'org.slf4j:slf4j-api:1.+' + compile 'org.slf4j:slf4j-log4j12:1.7.5' + compile 'org.ostermiller:utils:1.+' + compile 'com.googlecode.soundlibs:jlayer:1.+' + compile 'net.sf.javamusictag:jid3lib:0.+' +} \ No newline at end of file diff --git a/src/main/java/old/Converter.java b/src/main/java/old/Converter.java new file mode 100644 index 0000000..f1548a0 --- /dev/null +++ b/src/main/java/old/Converter.java @@ -0,0 +1,187 @@ +package old; + +import java.io.BufferedInputStream; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; + +import javazoom.jl.decoder.Bitstream; +import javazoom.jl.decoder.BitstreamException; +import sound.util.Utils; +import base.exception.worker.ActivateException; +import base.exception.worker.DeactivateException; +import base.work.Work; + +import com.Ostermiller.util.CircularByteBuffer; + +public class Converter extends Work { + public static final String COMMAND = "lame --mp3input --cbr %s - - --quiet"; + public static final int BYTES = 4096; // bytes + public static final int BUFFER = 30000; // milliseconds + public static final int BUFFERING = 1000; // milliseconds + + protected int targetRate; + protected int rate; + protected int buffer; + protected boolean convert; + + protected Process process; + protected InputStream sourceInputStream, processInputStream, inputStream; + protected OutputStream processOutputStream; + protected CircularByteBuffer circularByteBuffer; + protected BufferWorker bufferWorker; + + public Converter(InputStream inputStream) { + this(inputStream, -1); + } + + public Converter(InputStream inputStream, int targetRate) { + super(); + this.sourceInputStream = inputStream; + this.targetRate = targetRate; + bufferWorker = new BufferWorker(); + convert = false; + } + + public void exit() { + super.exit(); + bufferWorker.exit(); + } + + public synchronized void activate() throws ActivateException { + /* Read bitrate */ + BufferedInputStream bufferedInputStream = new BufferedInputStream(sourceInputStream); + Bitstream bitStream = new Bitstream(bufferedInputStream); + try { + rate = bitStream.readFrame().bitrate() / 1000; + buffer = BUFFER * rate / 8; + } catch (BitstreamException e) { + logger.error("", e); + throw new ActivateException(); + } + + /* Check for need to convert */ + if (targetRate < 0 || rate == targetRate) { + logger.debug("No conversion required"); + inputStream = sourceInputStream; + } else { + logger.debug("Converting from " + rate + "kbps to " + targetRate + "kbps"); + try { + String command = String.format(COMMAND, rate > targetRate ? "-B " + targetRate : "-F -b " + targetRate); + logger.debug("Starting process: " + command); + process = Runtime.getRuntime().exec(command); + processInputStream = process.getInputStream(); + processOutputStream = process.getOutputStream(); + + /* Buffer output */ + circularByteBuffer = new CircularByteBuffer(CircularByteBuffer.INFINITE_SIZE); + inputStream = circularByteBuffer.getInputStream(); + bufferWorker.start(); + convert = true; + } catch (IOException e) { + logger.error("", e); + throw new ActivateException(); + } + } + super.activate(); + notifyAll(); + } + + public void deactivate() throws DeactivateException { + super.deactivate(); + try { + sourceInputStream.close(); + bufferWorker.stop(); + if (convert) { + circularByteBuffer.clear(); + convert = false; + } + inputStream.close(); + } catch (IOException e) { + logger.error("", e); + throw new DeactivateException(); + } + } + + public void work() { + if (!convert) { + try { + synchronized (this) { + wait(); + } + } catch (InterruptedException e) { + logger.error("", e); + } + return; + } + byte[] bytes = new byte[BYTES]; + int read = 0; + try { + logger.debug("Writing input to process"); + // Should be interrupted by stop()/exit() + while ((read = sourceInputStream.read(bytes)) > 0) { + /* Limit buffer size */ + while (inputStream.available() > buffer) { + int progress = (int) ((1 - (inputStream.available() - buffer) / (float) buffer) * 100); + logger.trace("Waiting for buffer to empty: " + progress + "%"); + sleep(BUFFERING); + } + processOutputStream.write(bytes, 0, read); + } + processOutputStream.close(); + logger.debug("Stopped writing input to process"); + process.waitFor(); + logger.debug("Process finished"); + } catch (IOException e) { + } catch (InterruptedException e) { + logger.error("", e); + } + stop(); + } + + public synchronized InputStream getInputStream() { + if (!active()) { + start(); + try { + wait(); + } catch (InterruptedException e) { + logger.error("", e); + } + } + return inputStream; + } + + public synchronized void setInputStream(InputStream inputStream) { + this.inputStream = inputStream; + } + + class BufferWorker extends Work { + public void work() { + byte[] bytes = new byte[BYTES]; + int read = 0; + try { + OutputStream bufferOutputStream = circularByteBuffer.getOutputStream(); + logger.debug("Start buffering process output"); + while ((read = processInputStream.read(bytes, 0, BYTES)) > 0) { + bufferOutputStream.write(bytes, 0, read); + } + logger.debug("Finished buffering process output"); + bufferOutputStream.close(); + } catch (IOException e) {} + stop(); + } + } + + public static void main(String[] args) { + Mp3 mp3 = new Mp3(new File("stream.mp3"), 128); + InputStream inputStream = mp3.getInputStream(); + + /* Play */ + //Utils.play(inputStream); + + /* Write to file */ + Utils.write(inputStream, new File("output.mp3")); + mp3.exit(); + } +} diff --git a/src/main/java/old/List.java b/src/main/java/old/List.java new file mode 100644 index 0000000..d026fb9 --- /dev/null +++ b/src/main/java/old/List.java @@ -0,0 +1,201 @@ +package old; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.Scanner; + +import sound.consumer.Shoutcast; +import base.exception.worker.ActivateException; +import base.work.Work; + +import com.Ostermiller.util.BufferOverflowException; +import com.Ostermiller.util.CircularByteBuffer; +import com.Ostermiller.util.CircularObjectBuffer; + +public class List extends Work { + public static final int STEP = 80; // milliseconds + public static final int RATE = 192; // kbps + public static final int OVERLAP = 20000; // milliseconds + + protected File file; + protected String[] fileArray; + + protected int rate; + protected int chunk; + protected int overlap; + protected byte[] bytes; + protected boolean next; + protected Mp3 mp3, nextMp3; + + protected InputStream mp3InputStream; + protected OutputStream audioOutputStream; + protected CircularByteBuffer circularByteBuffer; + protected CircularObjectBuffer circularStringBuffer; + + public List(File file) { + this(file, RATE); + } + + public List(File file, int rate) { + this.file = file; + this.rate = rate; + chunk = STEP * rate / 8; + overlap = OVERLAP * RATE / 8; + bytes = new byte[chunk]; + next = true; + } + + public void exit() { + super.exit(); + if (mp3 != null) { + mp3.exit(); + } + if (nextMp3 != null) { + nextMp3.exit(); + } + } + + public synchronized void activate() throws ActivateException { + try { + Scanner scanner = new Scanner(file); + ArrayList fileList = new ArrayList(); + while (scanner.hasNextLine()) { + fileList.add(scanner.nextLine()); + } + scanner.close(); + if (fileList.size() > 0) { + fileArray = fileList.toArray(new String[0]); + + circularByteBuffer = new CircularByteBuffer(CircularByteBuffer.INFINITE_SIZE); + audioOutputStream = circularByteBuffer.getOutputStream(); + + circularStringBuffer = new CircularObjectBuffer(CircularByteBuffer.INFINITE_SIZE); + setNext(); + super.activate(); + notifyAll(); + return; + } + } catch (FileNotFoundException e) { + logger.error("", e); + } + throw new ActivateException(); + } + + public synchronized void work() { + try { + int left = chunk; + while (left > 0) { + /* Check for need to load next mp3 */ + int available = mp3InputStream == null ? -1 : mp3InputStream.available(); + boolean expect = mp3 == null ? false : mp3.active(); + + /* Act when no more data is expected */ + if (!expect) { + if (available < overlap) { + setNext(); + next = false; + nextMp3.start(); + } + if (available < 1) { + swap(); + } + } + + /* Transfer data */ + int read = mp3InputStream.read(bytes, 0, left); + left -= read; + audioOutputStream.write(bytes, 0, read); + } + } catch (IOException e) { + /* Swap to next if stream has stopped */ + setNext(); + swap(); + } catch (IllegalStateException e) { + logger.error("", e); + } + sleep(STEP); + } + + protected File getRandomFile() { + return new File(fileArray[(int) (Math.random() * fileArray.length)]); + } + + public synchronized void setNext() { + if (nextMp3 == null) { + logger.debug("Initialize next mp3"); + nextMp3 = new Mp3(getRandomFile(), rate); + } else if (next) { + logger.debug("Load next mp3"); + nextMp3.setFile(getRandomFile()); + } + } + + public synchronized void next() { + logger.debug("Stop current mp3"); + mp3.stop(); + } + + public void swap() { + logger.debug("Swap to next mp3"); + Mp3 swapMp3 = mp3; + mp3 = nextMp3; + nextMp3 = swapMp3; + next = true; + + /* Swap stream and announce title */ + mp3InputStream = mp3.getInputStream(); + try { + circularStringBuffer.write(mp3.getTitle()); + } catch (BufferOverflowException e) { + logger.error("", e); + } catch (IllegalStateException e) { + logger.error("", e); + } catch (InterruptedException e) { + logger.error("", e); + } + } + + public synchronized InputStream getInputStream() { + if (circularByteBuffer == null) { + start(); + try { + wait(); + } catch (InterruptedException e) { + logger.error("", e); + } + } + return circularByteBuffer.getInputStream(); + } + + public synchronized CircularObjectBuffer getMetaBuffer() { + if (circularStringBuffer == null) { + start(); + try { + wait(); + } catch (InterruptedException e) { + logger.error("", e); + } + } + return circularStringBuffer; + } + + public static void main(String[] args) throws Exception { + int rate = 192; + List list = new List(new File(List.class.getClassLoader().getResource("txt/mp3").toURI()), rate); + Shoutcast shoutcast = new Shoutcast(rate, 9876); + + shoutcast.setInputStream(list.getInputStream()); + shoutcast.setMetaBuffer(list.getMetaBuffer()); + shoutcast.start(); + while (true) { + try { + Thread.sleep(15000); + list.next(); + } catch (InterruptedException e) {} + } + } +} diff --git a/src/main/java/old/Mp3.java b/src/main/java/old/Mp3.java new file mode 100644 index 0000000..445d4d4 --- /dev/null +++ b/src/main/java/old/Mp3.java @@ -0,0 +1,80 @@ +package old; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; + +import org.farng.mp3.MP3File; +import org.farng.mp3.TagException; + +import sound.util.Utils; +import base.exception.worker.ActivateException; + +public class Mp3 extends Converter { + protected File file; + protected String title; + + public Mp3(File file) { + this(file, -1); + } + + public Mp3(File file, int targetRate) { + super(null, targetRate); + setFile(file); + title = ""; + } + + public synchronized void activate() throws ActivateException { + /* Open file */ + try { + sourceInputStream = new FileInputStream(file); + } catch (FileNotFoundException e) { + logger.error("", e); + throw new ActivateException(); + } + + /* Read ID3V2 tags */ + try { + MP3File mp3File = new MP3File(file); + String album = clean(mp3File.getID3v2Tag().getAlbumTitle()); + String artist = clean(mp3File.getID3v2Tag().getLeadArtist()); + String track = clean(mp3File.getID3v2Tag().getSongTitle()); + if (album.isEmpty()) { + title = String.format("%s - %s", artist, track, album); + } else { + title = String.format("%s - %s {%s}", artist, track, album); + } + logger.debug("Title: " + title); + } catch (IOException e) { + logger.error("", e); + } catch (TagException e) { + logger.error("", e); + } + try { + sourceInputStream.skip(100000); + } catch (IOException e) {} + super.activate(); + } + + protected String clean(String input) { + String output = input.replace("\0", ""); + return output.replace("ÿþ", ""); + } + + public String getTitle() { + return title; + } + + public void setFile(File file) { + this.file = file; + } + + public static void main(String[] args) { + final Mp3 mp3 = new Mp3(new File("input.mp3"), 128); + Utils.write(mp3.getInputStream(), new File("one.mp3")); + mp3.setFile(new File("stream.mp3")); + Utils.write(mp3.getInputStream(), new File("two.mp3")); + mp3.exit(); + } +} diff --git a/src/main/java/old/Transducer.java b/src/main/java/old/Transducer.java new file mode 100644 index 0000000..c7618a8 --- /dev/null +++ b/src/main/java/old/Transducer.java @@ -0,0 +1,16 @@ +package old; + +import sound.Consumer; +import sound.Producer; + +public abstract class Transducer implements Consumer, Producer { + public int rate; + + public Transducer(Producer producer) { + //setProducer(producer); + } + + public int getRate() { + return rate; + } +} diff --git a/src/main/java/pipe/Client.java b/src/main/java/pipe/Client.java new file mode 100644 index 0000000..1ef5c26 --- /dev/null +++ b/src/main/java/pipe/Client.java @@ -0,0 +1,24 @@ +package pipe; + +import java.io.RandomAccessFile; + +public class Client { + public static void main(String[] args) { + try { + // Connect to the pipe + RandomAccessFile pipe = new RandomAccessFile("\\\\.\\pipe\\detest", "rw"); + String echoText = "Hello word\n"; + + // write to pipe + pipe.write(echoText.getBytes()); + + // read response + String echoResponse = pipe.readLine(); + System.out.println(echoResponse); + pipe.close(); + } catch (Exception e) { + e.printStackTrace(); + } + + } +} diff --git a/src/main/java/pipe/Pipe.java b/src/main/java/pipe/Pipe.java new file mode 100644 index 0000000..3bb3805 --- /dev/null +++ b/src/main/java/pipe/Pipe.java @@ -0,0 +1,54 @@ +package pipe; + +/** + * @author Vikram S Khatri vikram.khatri@us.ibm.com + */ +public class Pipe { + static final int ERROR_PIPE_CONNECTED = 535; + static final int ERROR_BROKEN_PIPE = 109; + static final int PIPE_ACCESS_DUPLEX = 0x00000003; + static final int PIPE_WAIT = 0x00000000; + + static { + System.loadLibrary("pipe"); + } + + public static final native int CreateNamedPipe( + String pipeName, + int ppenMode, + int pipeMode, + int maxInstances, + int outBufferSize, + int inBufferSize, + int defaultTimeOut, + int securityAttributes); + + public static final native boolean ConnectNamedPipe(int namedPipeHandle, int overlapped); + + public static final native int GetLastError(); + + public static final native boolean CloseHandle(int bbject); + + public static final native byte[] ReadFile(int file, int numberOfBytesToRead); + + public static final native int WriteFile(int file, byte[] buffer, int numberOfBytesToWrite); + + public static final native boolean FlushFileBuffers(int file); + + public static final native boolean DisconnectNamedPipe(int namedPipeHandle); + + public static final native int CreateFile( + String fileName, + int desiredAccess, + int shareMode, + int securityAttributes, + int creationDisposition, + int flagsAndAttributes, + int templateFile); + + public static final native boolean WaitNamedPipe(String namedPipeName, int timeOut); + + public static final native String FormatMessage(int errorCode); + + public static final native void Print(String message); +} diff --git a/src/main/java/pipe/TestPipe.java b/src/main/java/pipe/TestPipe.java new file mode 100644 index 0000000..9d1ec66 --- /dev/null +++ b/src/main/java/pipe/TestPipe.java @@ -0,0 +1,87 @@ +package pipe; + +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; + +public class TestPipe { + + private int namedPipeHandle; + private String pipeName, srcFile; + private int pipeBuffer = 131072, fileBuffer = 8192; + + public TestPipe(String pipeName, String srcFile) { + this.pipeName = pipeName; + this.srcFile = srcFile; + } + + private void log(String message) { + System.out.println(message); + } + + private boolean createPipe() { + namedPipeHandle = Pipe.CreateNamedPipe( + pipeName, + Pipe.PIPE_ACCESS_DUPLEX, + Pipe.PIPE_WAIT, + 5, + pipeBuffer, + pipeBuffer, + 0xffffffff, + 0); + if (namedPipeHandle == -1) { + log("CreateNamedPipe failed for " + pipeName + " for error Message " + Pipe.FormatMessage(Pipe.GetLastError())); + } else { + log("Named Pipe " + pipeName + " created successfully Handle=" + namedPipeHandle); + } + return namedPipeHandle != -1; + } + + private boolean connectToPipe() { + log("Waiting for a client to connect to pipe " + pipeName); + boolean connected = Pipe.ConnectNamedPipe(namedPipeHandle, 0); + if (!connected) { + int lastError = Pipe.GetLastError(); + if (lastError == Pipe.ERROR_PIPE_CONNECTED) + connected = true; + } + log((connected ? "Connected to the pipe " : "Falied to connect to the pipe ") + pipeName); + return connected; + } + + public void runPipe() { + if (createPipe() && connectToPipe()) { + log("Client connected."); + try { + File f1 = new File(this.srcFile); + InputStream in = new FileInputStream(f1); + log("Sending data to the pipe"); + byte[] buf = new byte[fileBuffer]; + int len, bytesWritten; + while ((len = in.read(buf)) > 0) { + bytesWritten = Pipe.WriteFile(namedPipeHandle, buf, len); + log("Sent " + len + "/" + bytesWritten + " bytes to the pipe"); + if (bytesWritten == -1) { + int errorNumber = Pipe.GetLastError(); + log("Error Writing to pipe " + Pipe.FormatMessage(errorNumber)); + } + } + in.close(); + Pipe.FlushFileBuffers(namedPipeHandle); + Pipe.CloseHandle(namedPipeHandle); + Pipe.DisconnectNamedPipe(namedPipeHandle); + log("Writing to the pipe completed."); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + public static void main(String[] args) { + String pipeName = "\\\\.\\pipe\\detest"; + String fileName = "txt/bla.txt"; + //fileName = "C:\\Users\\Rik\\Music\\Artists\\+44\\When Your Heart Stops Beating\\+44 - 155.mp3"; + TestPipe testPipe = new TestPipe(pipeName, fileName); + testPipe.runPipe(); + } +} diff --git a/src/main/java/sound/Consumer.java b/src/main/java/sound/Consumer.java new file mode 100644 index 0000000..cc6c28c --- /dev/null +++ b/src/main/java/sound/Consumer.java @@ -0,0 +1,7 @@ +package sound; + +public interface Consumer { + public void start(Producer producer); + public void stop(); + public void exit(); +} diff --git a/src/main/java/sound/Format.java b/src/main/java/sound/Format.java new file mode 100644 index 0000000..4de19dc --- /dev/null +++ b/src/main/java/sound/Format.java @@ -0,0 +1,13 @@ +package sound; + +import javax.sound.sampled.AudioFormat; + +public interface Format extends Cloneable { + public interface Standard extends Format { + public AudioFormat getAudioFormat(); + } + + public interface Mp3 extends Format { + public int getRate(); + } +} \ No newline at end of file diff --git a/src/main/java/sound/Producer.java b/src/main/java/sound/Producer.java new file mode 100644 index 0000000..0c5ff9f --- /dev/null +++ b/src/main/java/sound/Producer.java @@ -0,0 +1,10 @@ +package sound; + +import java.io.InputStream; + +public interface Producer extends Format { + public InputStream getInputStream(); + public void start(); + public void stop(); + public void exit(); +} \ No newline at end of file diff --git a/src/main/java/sound/Source.java b/src/main/java/sound/Source.java new file mode 100644 index 0000000..8d558d1 --- /dev/null +++ b/src/main/java/sound/Source.java @@ -0,0 +1,161 @@ +package sound; + +import java.io.IOException; +import java.io.InputStream; + +import javax.sound.sampled.AudioFormat; +import javax.sound.sampled.LineUnavailableException; +import javax.sound.sampled.SourceDataLine; + +import javazoom.jl.decoder.JavaLayerException; +import javazoom.jl.player.Player; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import sound.util.Tool; +import base.exception.worker.ActivateException; +import base.exception.worker.DeactivateException; +import base.work.Work; + +public class Source implements Consumer { + protected Logger logger = LoggerFactory.getLogger(getClass()); + + protected static final int BUFFER_SIZE = 1024 * 4; // in bytes + protected static final int FRAMES = 10; // count + + protected String name; + protected Producer producer; + protected InputStream producerInputStream; + protected Work work; + + public Source(String name) throws LineUnavailableException { + this.name = name; + } + + public void start() { + if (work != null) { + work.start(); + } + } + + public void start(Producer producer) { + this.producer = producer; + producerInputStream = producer.getInputStream(); + if (work != null) { + work.exit(); + } + if (producer instanceof Format.Standard) { + logger.debug("Format.Standard"); + work = new DefaultWorker((Format.Standard) producer); + } else if (producer instanceof Format.Mp3) { + logger.debug("Format.Mp3"); + work = new Mp3Worker((Format.Mp3) producer); + } + start(); + } + + public void stop() { + if (work != null) { + work.stop(); + } + } + + public void exit() { + if (work != null) { + work.exit(); + } + } + + protected class DefaultWorker extends Work { + protected Format.Standard format; + protected SourceDataLine line; + + public DefaultWorker(Format.Standard format) { + this.format = format; + } + + public void activate() throws ActivateException { + AudioFormat audioFormat = format.getAudioFormat(); + try { + if (line == null) { + line = Tool.getSourceDataLine(name, audioFormat); + } + if (!line.isOpen()) { + line.open(); + } + } catch (LineUnavailableException e) { + logger.error("", e); + throw new ActivateException(); + } + if (!line.isRunning()) { + line.start(); + } + super.activate(); + } + + public void deactivate() throws DeactivateException { + super.deactivate(); + line.flush(); + } + + public void exit() { + super.exit(); + line.close(); + } + + public void work() { + try { + byte[] buffer = new byte[BUFFER_SIZE]; + int read = producerInputStream.read(buffer, 0, buffer.length); + if (read > 0) { + line.write(buffer, 0, read); + } else { + exit(); + } + } catch (IOException e) { + logger.error("", e); + exit(); + } + } + } + + protected class Mp3Worker extends Work { + protected Format.Mp3 format; + protected Player player; + + public Mp3Worker(Format.Mp3 format) { + this.format = format; + } + + public void activate() throws ActivateException { + producer.start(); + super.activate(); + } + + public void deactivate() throws DeactivateException { + super.deactivate(); + producer.stop(); + } + + public void exit() { + super.exit(); + player.close(); + } + + public void work() { + try { + if (player == null) { + player = new Player(producerInputStream); + sleep(100); + } + player.play(FRAMES); + } catch (JavaLayerException e) { + logger.error("", e); + } + if (player.isComplete()) { + stop(); + } + } + } +} diff --git a/src/main/java/sound/consumer/Port.java b/src/main/java/sound/consumer/Port.java new file mode 100644 index 0000000..5e3cf48 --- /dev/null +++ b/src/main/java/sound/consumer/Port.java @@ -0,0 +1,121 @@ +package sound.consumer; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; + +import javax.sound.sampled.AudioFormat; + +import sound.Consumer; +import sound.Format; +import sound.Format.Standard; +import sound.Producer; +import sound.util.SoxBuilder; +import sound.util.SoxBuilder.File; +import sound.util.SoxBuilder.File.Type; +import sound.util.SoxBuilder.Option; +import base.exception.worker.ActivateException; +import base.exception.worker.DeactivateException; +import base.work.Work; + +public class Port extends Work implements Consumer { + protected static final int BUFFER_SIZE = 1024 * 4; // in bytes + + protected String device; + protected Producer producer; + protected Process process; + protected InputStream producerInputStream; + protected OutputStream processOutputStream; + protected ProcessBuilder processBuilder; + + public Port() { + this("0"); + } + + public Port(String device) { + this.device = device; + } + + public void start(Producer producer) { + start(producer); + } + + @SuppressWarnings("static-access") + public void start(Producer producer, boolean thread) { + this.producer = producer; + producerInputStream = producer.getInputStream(); + + String command = ""; + if (producer instanceof Standard) { + AudioFormat audioFormat = ((Standard) producer).getAudioFormat(); + SoxBuilder.addFile(File.setType(Type.STANDARD).setOptions(audioFormat)); + } else if (producer instanceof Format.Mp3) { + SoxBuilder.addFile(File.setType(Type.STANDARD).setOption(File.Format.MP3)); + } + command = SoxBuilder + .setOption(Option.QUIET) + .addFile(File.setType(Type.DEVICE)) + .build(); + + logger.debug(String.format("Build process (\"%s\")", command)); + processBuilder = new ProcessBuilder(command.split(" ")); + processBuilder.environment().put("AUDIODEV", device); + + start(); + } + + public void activate() throws ActivateException { + producer.start(); + if (process == null) { + try { + process = processBuilder.start(); + } catch (IOException e) { + logger.error("", e); + throw new ActivateException(); + } + processOutputStream = process.getOutputStream(); + } + super.activate(); + } + + public void deactivate() throws DeactivateException { + super.deactivate(); + try { + processOutputStream.flush(); + } catch (IOException e) { + logger.error("", e); + throw new DeactivateException(); + } + } + + public void exit() { + try { + logger.debug("close process output stream"); + processOutputStream.close(); + + logger.debug("wait for process to terminate"); + process.waitFor(); + } catch (IOException e) { + logger.error("", e); + } catch (InterruptedException e) { + logger.error("", e); + } finally { + process = null; + } + } + + public void work() { + try { + byte[] buffer = new byte[BUFFER_SIZE]; + int read = producerInputStream.read(buffer, 0, buffer.length); + if (read > 0) { + processOutputStream.write(buffer, 0, read); + } else { + exit(); + } + } catch (IOException e) { + logger.error("", e); + exit(); + } + } +} diff --git a/src/main/java/sound/consumer/Shoutcast.java b/src/main/java/sound/consumer/Shoutcast.java new file mode 100644 index 0000000..3644459 --- /dev/null +++ b/src/main/java/sound/consumer/Shoutcast.java @@ -0,0 +1,296 @@ +package sound.consumer; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.io.OutputStreamWriter; +import java.net.ServerSocket; +import java.net.Socket; +import java.net.SocketException; +import java.util.HashMap; +import java.util.Map.Entry; +import java.util.concurrent.ConcurrentLinkedQueue; + +import sound.Consumer; +import sound.Producer; +import sound.data.Data; +import sound.util.Buffer; +import base.exception.worker.ActivateException; +import base.exception.worker.DeactivateException; +import base.work.Listen; +import base.work.Work; + +import com.Ostermiller.util.CircularObjectBuffer; + +public class Shoutcast extends Work implements Consumer { + public static final int PORT = 9876; + public static final int RATE = 192; // in kbps + public static final int META = 8192; // in bytes + public static final int STEP = 80; // in milliseconds + public static final int BUFFER = 2000; // in bytes + public static final int BUFFERING = 500; // in milliseconds + public static final String DATA = "StreamTitle='%s';StreamUrl='%s';"; + protected int rate; + protected int port; + protected Server server; + protected HashMap headerMap; + protected ConcurrentLinkedQueue clientList; + protected InputStream producerInputStream; + protected int chunk; + protected Buffer buffer; + protected byte[] bytes; + protected Data data; + protected String metaData; + private CircularObjectBuffer circularStringBuffer; + + public Shoutcast() { + this(RATE, PORT); + } + + public Shoutcast(int rate) { + this(rate, PORT); + } + + public Shoutcast(int rate, int port) { + this.rate = rate; + this.port = port; + clientList = new ConcurrentLinkedQueue(); + metaData = ""; + + chunk = STEP * rate / 8; + bytes = new byte[chunk]; + buffer = new Buffer(BUFFER * rate / 8); + + headerMap = new HashMap(); + headerMap.put("icy-notice1", "This stream requires Winamp"); + headerMap.put("icy-notice2", "Java SHOUTcast Server"); + headerMap.put("icy-name", "Java Radio"); + headerMap.put("icy-genre", "Java"); + headerMap.put("icy-url", "http://localhost"); + headerMap.put("content-type:", "audio/mpeg"); + headerMap.put("icy-pub", "0"); + headerMap.put("icy-metaint", String.valueOf(META)); + headerMap.put("icy-br", String.valueOf(rate)); + } + + public void activate() throws ActivateException { + logger.trace("Activate Server"); + server = new Server(port); + server.start(); + super.activate(); + } + + public boolean active() { + return server.active(); + } + + public void deactivate() throws DeactivateException { + super.deactivate(); + server.stop(); + } + + public void work() { + int progress; + try { + int read = 0; + if (producerInputStream != null) { + while (producerInputStream.available() < buffer.capacity) { + progress = (int) (producerInputStream.available() / (buffer.capacity / 100.0F)); + logger.debug("Filling buffer: " + progress + "%"); + sleep(BUFFERING); + } + read = producerInputStream.read(bytes); + } + data = new Data(bytes, read); + buffer.write(bytes, 0, read); + } catch (IOException e) { + logger.error(e.getMessage()); + } + + for (Client client : clientList) { + if (client.active) { + client.add(data); + } + } + sleep(STEP); + } + + public void setMetaBuffer(CircularObjectBuffer circularStringBuffer) { + logger.debug("Set meta input stream"); + this.circularStringBuffer = circularStringBuffer; + } + + public void setMeta(String meta) { + logger.debug("Set meta string: " + meta); + metaData = meta; + } + + protected class Client extends Listen { + protected Socket socket; + protected InputStream inputStream; + protected OutputStream outputStream; + protected boolean writeMeta; + protected int untilMeta; + protected boolean active; + + public Client(Socket socket) throws IOException { + this.socket = socket; + inputStream = socket.getInputStream(); + outputStream = socket.getOutputStream(); + active = false; + clientList.add(this); + } + + public void activate() throws ActivateException { + BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); + try { + String line; + while ((line = bufferedReader.readLine()) != null) { + if (line.startsWith("Icy-MetaData")) { + writeMeta = Integer.valueOf(line.substring(line.indexOf(":") + 1).trim()).intValue() == 1; + untilMeta = META; + } else if (line.equals("")) { + break; + } + } + logger.debug(String.format("Client accept meta: %s", Boolean.valueOf(writeMeta))); + + OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream); + outputStreamWriter.write("ICY 200 OK\r\n"); + for (Entry header : headerMap.entrySet()) { + outputStreamWriter.write(String.format("%s: %s\r\n", header.getKey(), header.getValue())); + } + outputStreamWriter.write("\r\n"); + outputStreamWriter.flush(); + + add(new Data(buffer.get())); + active = true; + } catch (IOException e) { + logger.error(e.getMessage()); + throw new ActivateException(); + } + super.activate(); + } + + public void exit() { + logger.debug("Client exit"); + super.exit(); + clientList.remove(this); + try { + inputStream.close(); + outputStream.close(); + socket.close(); + } catch (IOException e) { + logger.error(e.getMessage()); + } + } + + public void input(Data data) { + try { + byte[] bytes = data.get(); + if (writeMeta) { + int offset = 0; + while (data.length() - offset >= untilMeta) { + outputStream.write(bytes, offset, untilMeta); + writeMeta(); + offset += untilMeta; + untilMeta = META; + } + int length = data.length() - offset; + outputStream.write(bytes, offset, length); + untilMeta -= length; + } else { + outputStream.write(bytes); + } + } catch (SocketException e) { + exit(); + } catch (IOException e) { + exit(); + } + } + + protected void writeMeta() throws IOException { + if ((circularStringBuffer != null) + && (circularStringBuffer.getAvailable() > 0)) { + try { + String newMetaData = circularStringBuffer.read(); + if (!newMetaData.isEmpty() && !newMetaData.equals(metaData)) { + metaData = newMetaData; + } + } catch (InterruptedException e) { + logger.error(e.getMessage()); + } + } + + String meta = String.format("StreamTitle='%s';StreamUrl='%s';", metaData, "???"); + byte[] metaBytes = meta.getBytes(); + + int length = (int) Math.ceil(metaBytes.length / 16.0F); + outputStream.write(length); + outputStream.write(metaBytes); + + int padding = 16 * length - metaBytes.length; + outputStream.write(new byte[padding], 0, padding); + } + } + + protected class Server extends Work { + protected int port; + protected ServerSocket serverSocket; + + public Server(int port) { + this.port = port; + } + + public boolean active() { + return serverSocket.isClosed() ? false : true; + } + + public void activate() throws ActivateException { + try { + serverSocket = new ServerSocket(port); + logger.debug("Server listening at port " + port); + } catch (IOException e) { + logger.error("", e); + throw new ActivateException(); + } + super.activate(); + } + + public void work() { + try { + Socket socket = serverSocket.accept(); + logger.trace("Client connected: " + socket.getInetAddress().toString()); + Shoutcast.Client client = new Shoutcast.Client(socket); + client.start(); + } catch (IOException e) { + logger.error(e.getMessage()); + } + } + + public void deactivate() throws DeactivateException { + logger.debug("Server deactivate"); + super.deactivate(); + try { + serverSocket.close(); + } catch (IOException e) { + logger.error(e.getMessage()); + } + for (Shoutcast.Client client : clientList) { + client.stop(); + } + } + } + + public void start(Producer producer) { + producerInputStream = producer.getInputStream(); + producer.start(); + super.start(); + } + + public void setInputStream(InputStream inputStream) { + producerInputStream = inputStream; + } +} diff --git a/src/main/java/sound/data/Data.java b/src/main/java/sound/data/Data.java new file mode 100644 index 0000000..645cccc --- /dev/null +++ b/src/main/java/sound/data/Data.java @@ -0,0 +1,23 @@ +package sound.data; + +public class Data { + protected byte[] bytes; + protected int length; + + public Data(byte[] bytes) { + this(bytes, bytes.length); + } + + public Data(byte[] bytes, int length) { + this.bytes = bytes; + this.length = length; + } + + public byte[] get() { + return this.bytes; + } + + public int length() { + return this.length; + } +} \ No newline at end of file diff --git a/src/main/java/sound/producer/Stream.java b/src/main/java/sound/producer/Stream.java new file mode 100644 index 0000000..dbe6f6d --- /dev/null +++ b/src/main/java/sound/producer/Stream.java @@ -0,0 +1,200 @@ +package sound.producer; + +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.net.Socket; +import java.net.URL; + +import sound.Format; +import sound.Producer; +import sound.stream.HoardedInputStream; +import base.exception.worker.ActivateException; +import base.exception.worker.DeactivateException; +import base.work.Work; + +import com.Ostermiller.util.CircularByteBuffer; +import com.Ostermiller.util.CircularObjectBuffer; + +public class Stream extends Work implements Producer, Format.Mp3 { + public static final int STEP = 80; // in milliseconds + + protected String http; + protected Socket socket; + protected InputStream socketInputStream; + protected OutputStreamWriter socketOutputStreamWriter; + protected HoardedInputStream hoardedInputStream; + protected int meta; + protected int rate; + protected int chunk; + protected int untilMeta; + protected CircularByteBuffer audioCircularByteBuffer; + protected CircularObjectBuffer metaCircularObjectBuffer; + protected String metaData; + + public Stream(String http) { + super(); + this.http = http; + meta = -1; + rate = -1; + audioCircularByteBuffer = new CircularByteBuffer(CircularByteBuffer.INFINITE_SIZE); + metaCircularObjectBuffer = new CircularObjectBuffer(); + } + + protected void connect(URL url) { + try { + /* Open socket communication */ + socket = new Socket(url.getHost(), url.getPort()); + socketInputStream = socket.getInputStream(); + socketOutputStreamWriter = new OutputStreamWriter(socket.getOutputStream()); + + /* Write stream request */ + if (url.getFile().equals("")) { + socketOutputStreamWriter.write("GET / HTTP/1.1\r\n"); + } else { + socketOutputStreamWriter.write("GET " + url.getFile() + " HTTP/1.1\r\n"); + } + socketOutputStreamWriter.write("Host: " + url.getHost() + "\r\n"); + //socketOutputStreamWriter.write("Icy-MetaData: 1\r\n"); + socketOutputStreamWriter.write("Connection: close\r\n"); + socketOutputStreamWriter.write("\r\n"); + socketOutputStreamWriter.flush(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public void activate() throws ActivateException { + try { + /* Initialize connection */ + URL url = new URL(http); + + /* Parse headers */ + connect(url); + InputStreamReader inputStreamReader = new InputStreamReader(socketInputStream); + StringBuffer stringBuffer = new StringBuffer(); + char character; + int skip = 0; + while ((character = (char) inputStreamReader.read()) > 0) { + ++skip; + if (character == '\n') { + /* Fetch relevant headers */ + String line = stringBuffer.toString().trim(); + if (line.startsWith("icy-metaint")) { + meta = Integer.valueOf(line.substring(line.indexOf(":") + 1).trim()); + } else if (line.startsWith("icy-br")) { + rate = Integer.valueOf(line.substring(line.indexOf(":") + 1).trim()); + } else if (line.equals("")) { + break; + } + stringBuffer = new StringBuffer(); + } else { + stringBuffer.append(character); + } + } + inputStreamReader.close(); + + /* Reconnect to bypass pre-buffering problems */ + connect(url); + socketInputStream = socket.getInputStream(); + socketInputStream.skip(skip); + } catch (IOException e) { + e.printStackTrace(); + } catch (NumberFormatException e) { + e.printStackTrace(); + } + + /* Calculate streaming parameters */ + //untilMeta = meta; + chunk = STEP * rate / 8; + super.activate(); + } + + public void deactivate() throws DeactivateException { + super.deactivate(); + audioCircularByteBuffer.clear(); + metaCircularObjectBuffer.clear(); + try { + hoardedInputStream.clear(); + } catch (IOException e) { + logger.error("", e); + throw new DeactivateException(); + } + } + + public void work() { + int left = chunk; + + /* Handle media at appropriate times * + while (meta > 0 && left >= untilMeta) { + stream(untilMeta); + left -= untilMeta; + meta(); + untilMeta = meta; + }*/ + + /* Stream at fixed rate */ + stream(left); + //untilMeta -= left; + sleep(STEP); + } + + protected void stream(int length) { + try { + byte[] bytes = new byte[length]; + int read = 0; + while (length > 0 && (read = socketInputStream.read(bytes)) > 0) { + length -= read; + audioCircularByteBuffer.getOutputStream().write(bytes); + } + } catch (IOException e) { + logger.error(e.getMessage()); + stop(); + } + } + + protected void meta() { + try { + /* Retrieve data length */ + byte[] data = new byte[1]; + socketInputStream.read(data); + + int length = 16 * data[0]; + data = new byte[length]; + socketInputStream.read(data); + + /* Check for new data */ + String newMetaData = new String(data); + if (!newMetaData.isEmpty() && !newMetaData.equals(metaData)) { + metaData = newMetaData; + metaCircularObjectBuffer.write(new String(data)); + logger.debug("data: " + metaData); + } + return; + } catch (IOException e) { + logger.error("", e); + } catch (IllegalStateException e) { + logger.error("", e); + } catch (InterruptedException e) { + logger.error("", e); + } + stop(); + return; + } + + public InputStream getInputStream() { + if (hoardedInputStream == null) { + hoardedInputStream = new HoardedInputStream(audioCircularByteBuffer.getInputStream()); + } + return hoardedInputStream; + } + + public CircularObjectBuffer getMetaBufferStream() { + return metaCircularObjectBuffer; + } + + public int getRate() { + return rate; + } +} diff --git a/src/main/java/sound/producer/Target.java b/src/main/java/sound/producer/Target.java new file mode 100644 index 0000000..35c592b --- /dev/null +++ b/src/main/java/sound/producer/Target.java @@ -0,0 +1,97 @@ +package sound.producer; + +import java.io.IOException; +import java.io.InputStream; + +import javax.sound.sampled.AudioFormat; +import javax.sound.sampled.LineUnavailableException; +import javax.sound.sampled.TargetDataLine; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import sound.Format; +import sound.Producer; +import sound.stream.HoardedInputStream; +import sound.util.Tool; + +public class Target implements Producer, Format.Standard { + protected Logger logger = LoggerFactory.getLogger(getClass()); + + protected Standard format; + + protected TargetDataLine line; + protected InputStream targetInputStream; + protected HoardedInputStream hoardedInputStream; + + protected AudioFormat audioFormat; + + public Target(String name) throws LineUnavailableException { + logger.debug(String.format("Target \"%s\" without format", name)); + line = Tool.getTargetDataLine(name); + audioFormat = line.getFormat(); + targetInputStream = new TargetInputStream(); + } + + public Target(String name, AudioFormat audioFormat) throws LineUnavailableException { + logger.debug(String.format("Target \"%s\" with format: %s", name, audioFormat)); + this.audioFormat = audioFormat; + line = Tool.getTargetDataLine(name, audioFormat); + targetInputStream = new TargetInputStream(); + } + + public AudioFormat getAudioFormat() { + return audioFormat; + } + + public InputStream getInputStream() { + return targetInputStream; + } + + public class TargetInputStream extends InputStream { + protected boolean open; + + public TargetInputStream() { + open = false; + } + + public int read() throws IOException { + start(); + byte[] buffer = new byte[1]; + line.read(buffer, 0, 1); + return (int) buffer[0]; + } + + public int read(byte[] buffer, int offset, int length) { + start(); + line.read(buffer, offset, length); + return length; + } + + public int available() { + start(); + return line.available(); + } + } + + public void start() { + if (!line.isOpen()) { + try { + line.open(); + } catch (LineUnavailableException e) { + logger.error("", e); + } + } + if (!line.isRunning()) { + line.start(); + } + } + + public void stop() { + line.flush(); + } + + public void exit() { + line.close(); + } +} diff --git a/src/main/java/sound/stream/HoardedInputStream.java b/src/main/java/sound/stream/HoardedInputStream.java new file mode 100644 index 0000000..fd6924c --- /dev/null +++ b/src/main/java/sound/stream/HoardedInputStream.java @@ -0,0 +1,76 @@ +package sound.stream; + +import java.io.BufferedInputStream; +import java.io.IOException; +import java.io.InputStream; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class HoardedInputStream extends BufferedInputStream { + protected Logger logger = LoggerFactory.getLogger(getClass()); + + protected static final int SLEEP = 500; // in milliseconds + protected static final int BUFFER_SIZE = 30000; // in bytes + protected static final int MINIMUM_SIZE = 1000; // in bytes + + protected int bufferSize; + protected int minimumSize; + protected boolean hoard; + + public HoardedInputStream(InputStream inputStream) { + this(inputStream, BUFFER_SIZE, MINIMUM_SIZE); + } + + public HoardedInputStream(InputStream inputStream, int bufferSize) { + super(inputStream, bufferSize); + this.bufferSize = bufferSize; + hoard = true; + } + + public HoardedInputStream(InputStream inputStream, int bufferSize, int minimumSize) { + this(inputStream, bufferSize); + this.minimumSize = minimumSize; + } + + public int read() throws IOException { + hoard(); + byte[] buffer = new byte[1]; + in.read(buffer, 0, 1); + return (int) buffer[0]; + } + + public int read(byte[] buffer, int offset, int length) throws IOException { + hoard(); + in.read(buffer, offset, length); + return length; + } + + public void hoard() throws IOException { + int available = available(); + if (hoard && available < MINIMUM_SIZE) { + long time = System.currentTimeMillis(); + do { + try { + Thread.sleep(SLEEP); + } catch (InterruptedException e) { + logger.warn("", e); + } + } while (available() < BUFFER_SIZE); + logger.debug(String.format("Buffered %d bytes in %s milliseconds", BUFFER_SIZE - available, System.currentTimeMillis() - time)); + } + } + + public void clear() throws IOException { + this.buf = new byte[buf.length]; + reset(); + } + + public void drain() { + drain(true); + } + + public void drain(boolean drain) { + hoard = !drain; + } +} diff --git a/src/main/java/sound/util/Buffer.java b/src/main/java/sound/util/Buffer.java new file mode 100644 index 0000000..2beb9fc --- /dev/null +++ b/src/main/java/sound/util/Buffer.java @@ -0,0 +1,41 @@ +package sound.util; + +public class Buffer { + protected byte[] elements; + public int capacity; + protected int index; + protected int size; + + public Buffer(int capacity) { + elements = new byte[capacity]; + this.capacity = capacity; + index = 0; + size = 0; + } + + public synchronized void add(byte[] elements) { + for (byte element : elements) { + elements[index++ % capacity] = element; + if (size < capacity) { + ++size; + } + } + } + + public synchronized void write(byte[] elements, int offset, int length) { + for (int i = offset; i < length; ++i) { + this.elements[(index++ % capacity)] = elements[i]; + if (size < capacity) { + ++size; + } + } + } + + public synchronized byte[] get() { + byte[] elements = new byte[size]; + for (int i = 0; i < size; i++) { + elements[i] = elements[((index + i) % size)]; + } + return elements; + } +} \ No newline at end of file diff --git a/src/main/java/sound/util/SoxBuilder.java b/src/main/java/sound/util/SoxBuilder.java new file mode 100644 index 0000000..0ea367d --- /dev/null +++ b/src/main/java/sound/util/SoxBuilder.java @@ -0,0 +1,321 @@ +package sound.util; + +import java.util.HashMap; +import java.util.Map.Entry; + +import javax.sound.sampled.AudioFormat; + +import sound.util.SoxBuilder.Option.Combine; +import sound.util.SoxBuilder.Option.Replay; + +public final class SoxBuilder { + protected static SoxBuilder instance; + protected static HashMap optionMap; + protected static String files; + protected static String effects; + + static { + instance = new SoxBuilder(); + reset(); + } + + public static void reset() { + optionMap = new HashMap(); + files = ""; + effects = ""; + } + + public static SoxBuilder setOption(Option option, String value) { + optionMap.put(option.getCode(), value); + return instance; + } + + public static SoxBuilder setOption(Option option) { + return SoxBuilder.setOption(option, ""); + } + + public static SoxBuilder setOption(Option option, int value) { + return SoxBuilder.setOption(option, String.valueOf(value)); + } + + public static SoxBuilder setOption(Option option, Combine combine) { + return SoxBuilder.setOption(option, combine.getCode()); + } + + public static SoxBuilder setOption(Combine combine) { + return SoxBuilder.setOption(Option.COMBINE, combine); + } + + public static SoxBuilder setOption(Option option, Replay replay) { + return SoxBuilder.setOption(option, replay.toString().toLowerCase()); + } + + public static SoxBuilder setOption(Replay replay) { + return SoxBuilder.setOption(Option.REPLAY, replay); + } + + public static SoxBuilder addFile(File file) { + files = String.format("%s %s", files, file.build()); + return instance; + } + + public static SoxBuilder addEffect(Effect effect) { + effects = String.format("%s %s", effects, effect.build()); + return instance; + } + + public String build() { + String build = "sox"; + for (Entry entry : optionMap.entrySet()) { + String value = entry.getValue(); + if (value.equals("")) { + build = String.format("%s %s", build, entry.getKey()); + } else { + String option = String.format("%s %s", entry.getKey(), value); + build = String.format("%s %s", build, option); + } + } + build = String.format("%s%s%s", build, files, effects); + reset(); + return build; + } + + public enum Environment { + AUDIODRIVER, AUDIODEV + } + + public enum Option { + BUFFER ("--buffer"), // default=8192 + INPUT_BUFFER ("--input-buffer"), + CLOBBER ("--clobber"), + COMBINE ("--combine"), // |Combine| + NO_DITHER ("--no-dither"), // (-D) + EFFECTS_FILE ("--efects-file"), + GUARD ("--guard"), // (-G) + MIX ("-m"), // (--combine mix) + MERGE ("-M"), // (--combine merge) + MAGIC ("--magic"), + MULTI_THREADED ("--multi-threaded"), + SINGLE_THREADED ("--single-threaded"), + NORM ("--norm"), // [=dB-level] + PLAY_RATE_ARG ("--play-rate-arg"), + QUIET ("--no-show-progress"), // (-q) + REPEATABLE ("-R"), + REPLAY ("--replay-gain"), // |Replay| + MULTIPLY ("-T"), // (--combine multiply) + TEMP ("--temp"); + + protected String code; + + private Option(String code) { + this.code = code; + } + + public String getCode() { + return code; + } + + public enum Combine { + CONCATENATE ("concatenate"), + MERGE ("merge"), // (-M) + MIX ("mix"), // (-m) + MIX_POWER ("mix-power"), + MULTIPLY ("multiply"), // (-T) + SEQUENCE ("sequence"); + + protected String code; + + private Combine(String code) { + this.code = code; + } + + public String getCode() { + return code; + } + } + + public enum Replay { + TRACK, ALBUM, OFF + } + } + + public static class File { + protected static File instance; + + protected static HashMap optionMap; + protected static Type type; + + static { + instance = new File(); + reset(); + } + + public static void reset() { + optionMap = new HashMap(); + type = Type.PIPE; + } + + public static File setOption(Option option, String value) { + optionMap.put(option.getCode(), value); + return instance; + } + + public static File setOption(Option option) { + return File.setOption(option, ""); + } + + public static File setOption(Option option, int value) { + return File.setOption(option, String.valueOf(value)); + } + + public static File setOption(Option option, Encoding encoding) { + return File.setOption(option, encoding.getCode()); + } + + public static File setOption(Encoding encoding) { + return File.setOption(Option.ENCODING, encoding); + } + + public static File setOption(Option option, Format format) { + return File.setOption(option, format.toString().toLowerCase()); + } + + public static File setOption( Format format) { + return File.setOption(Option.FORMAT, format); + } + + public static File setOption(Option option, Endian endian) { + return File.setOption(option, endian.toString().toLowerCase()); + } + + public static File setOption(Endian endian) { + return File.setOption(Option.ENDIAN, endian); + } + + public File setOptions(AudioFormat audioFormat) { + setOption(Option.CHANNELS, audioFormat.getChannels()); + setOption(Option.RATE, String.format("%sk", String.valueOf(audioFormat.getSampleRate() / 1000f))); + AudioFormat.Encoding encoding = audioFormat.getEncoding(); + int bits = audioFormat.getSampleSizeInBits(); + if (encoding.equals(AudioFormat.Encoding.ALAW)) { + setOption(Format.AL); + setOption(Encoding.A_LAW); + } else if (encoding.equals(AudioFormat.Encoding.ULAW)) { + setOption(Format.UL); + setOption(Encoding.U_LAW); + } else if (encoding.equals(AudioFormat.Encoding.PCM_SIGNED)) { + setOption(Format.valueOf(String.format("S%d", bits))); + setOption(Encoding.SIGNED_INTEGER); + } else if (encoding.equals(AudioFormat.Encoding.PCM_UNSIGNED)) { + setOption(Format.valueOf(String.format("U%d", bits))); + setOption(Encoding.UNSIGNED_INTEGER); + } + setOption(audioFormat.isBigEndian() ? Endian.BIG : Endian.LITTLE); + return instance; + } + + public static File setType(Type type) { + File.type = type; + return instance; + } + + public String build() { + String build = type.getCode(); + for (Entry entry : optionMap.entrySet()) { + String value = entry.getValue(); + if (value.equals("")) { + build = String.format("%s %s", entry.getKey(), build); + } else { + String option = String.format("%s %s", entry.getKey(), value); + build = String.format("%s %s", option, build); + } + } + reset(); + return build; + } + + public enum Option { + BITS ("--bits"), // (-b) + CHANNELS ("--channels"), // (-c) + ENCODING ("--encoding"), // (-e), |Encoding| + NO_GLOB ("--no-glob"), + RATE ("--rate"), // (-r) + FORMAT ("--type"), // (-t), |Format| + ENDIAN ("--endian"), // (-L, -B, -x), |Endian| + REVERSE_NIBBLES ("--reverse-nibbles"), // (-N) + REVERSE_BITS ("--reverse-bits"), // (-X) + /* Input only */ + IGNORE_LENGTH ("--ignore-length"), + VOLUME ("--volume"), // (-v) + /* Output only */ + ADD_COMMENT ("--add-comment"), + COMMENT ("--comment"), + COMMENT_FILE ("--comment-file"), + COMPRESSION ("--compression"); // -C + + protected String code; + + private Option(String code) { + this.code = code; + } + + public String getCode() { + return code; + } + } + + public enum Encoding { + SIGNED_INTEGER ("signed-integer"), // PCM data stored as signed integers + UNSIGNED_INTEGER ("unsigned-integer"), // PCM data stored as unsigned integers + FLOATING_POINT ("floating-point"), // PCM data stored as single precision (32-bit) or double precision (64-bit) floating-point numbers + A_LAW ("a-lawW"), // International telephony standard for logarithmic encoding to 8 bits per sample (~13-bit PCM) + U_LAW ("u-law"), // North American telephony standard for logarithmic encoding to 8 bits per sample (~14-bit PCM) + MU_LAW ("mu-law"), // alias for u-law (~14-bit PCM) + OKI_ADPCM ("oki-adpcm"), // OKI (VOX, Dialogic or Intel) 4-bit ADPCM (~12-bit PCM) + IMA_ADPCM ("ima-adpcm"), // IMA (DVI) 4-bit ADPCM (~13-bit PCM) + MS_ADPCM ("ms-adpcm"), // Microsoft 4-bit ADPCM (~14-bit PCM) + GSM_FULL_RATE ("gsm-full-rate"); // Several audio formats used for digital wireless telephone calls + + protected String code; + + private Encoding(String code) { + this.code = code; + } + + public String getCode() { + return code; + } + } + + public enum Format { + AIF, AIFC, AIFF, AIFFC, AL, AMB, AMR, ANY, ARL, AU, AVR, BIN, CAF, CDDA, CDR, CVS, CVSD, CVU, DAT, DVMS, EDU, F32, F64, FAP, FLAC, FSSD, GSM, GSRT, HCOM, HTK, IMA, IRCAM, LA, LPC, LPC10, LU, M3U, M4A, MAT, MAT4, MAT5, MAUD, MP2, MP3, MP4, NIST, OGG, PAF, PLS, PRC, PVF, RAW, S16, S24, S32, S8, SD2, SDS, SF, SLN, SMP, SND, SNDR, SNDT, SOU, SOX, SPH, TXW, U16, U24, U32, U8, UL, VMS, VOC, VORBIS, VOX, W64, WAV, WAVPCM, WV, WVE, XA, XI; + } + + public enum Endian { + LITTLE, BIG, SWAP; + } + + public enum Type { + STANDARD ("-"), // -t must be given + PIPE ("-p"), // (--sox-pipe) + DEVICE ("-d"), // (--default-device) + NULL ("-n"); // (--null) + + protected String code; + + private Type(String code) { + this.code = code; + } + + public String getCode() { + return code; + } + } + } + + public class Effect { + public String build() { + return null; + } + } +} diff --git a/src/main/java/sound/util/Tool.java b/src/main/java/sound/util/Tool.java new file mode 100644 index 0000000..5b08471 --- /dev/null +++ b/src/main/java/sound/util/Tool.java @@ -0,0 +1,140 @@ +package sound.util; + +import java.util.ArrayList; +import java.util.HashMap; + +import javax.sound.sampled.AudioFormat; +import javax.sound.sampled.AudioSystem; +import javax.sound.sampled.DataLine; +import javax.sound.sampled.Line; +import javax.sound.sampled.LineUnavailableException; +import javax.sound.sampled.Mixer; +import javax.sound.sampled.Port; +import javax.sound.sampled.Port.Info; +import javax.sound.sampled.SourceDataLine; +import javax.sound.sampled.TargetDataLine; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class Tool { + protected static Logger logger = LoggerFactory.getLogger(Tool.class); + + protected static HashMap> targetMap; + protected static HashMap> sourceMap; + protected static ArrayList portList; + + protected static ArrayList targetList; + protected static ArrayList sourceList; + + static { + Tool tool = new Tool(); + + targetMap = new HashMap>(); + sourceMap = new HashMap>(); + targetList = new ArrayList(); + sourceList = new ArrayList(); + portList = new ArrayList(); + + for (Mixer.Info mixerInfo : AudioSystem.getMixerInfo()) { + String name = mixerInfo.getName(); + Mixer mixer = AudioSystem.getMixer(mixerInfo); + + for (Line.Info lineInfo : mixer.getSourceLineInfo()) { + String lineClassName = lineInfo.getLineClass().getName(); + if (lineClassName.equals("javax.sound.sampled.SourceDataLine")) { + if (mixer.isLineSupported(lineInfo)) { + logger.debug(" " + name); + sourceMap.put(name, tool.new Device(mixer, lineInfo)); + } + } + } + for (Line.Info lineInfo : mixer.getTargetLineInfo()) { + String lineClassName = lineInfo.getLineClass().getName(); + if (lineClassName.equals("javax.sound.sampled.TargetDataLine")) { + if (mixer.isLineSupported(lineInfo)) { + logger.debug(" " + name); + targetMap.put(name, tool.new Device(mixer, lineInfo)); + } + } else if (lineClassName.equals("javax.sound.sampled.Port")) { + name = name.substring(5); + try { + Port port = (Port) mixer.getLine(lineInfo); + Port.Info portInfo = (Info) port.getLineInfo(); + if (!targetMap.containsKey(name) || portInfo.equals(Port.Info.LINE_OUT) || portInfo.equals(Port.Info.SPEAKER)) { + logger.debug(" " + name); + portList.add(name); + } + } catch (LineUnavailableException e) { + logger.error("", e); + } + } + } + } + } + + public static String[] getTargets() { + return targetMap.keySet().toArray(new String[0]); + } + + public static String[] getSources() { + return sourceMap.keySet().toArray(new String[0]); + } + + public static String[] getPorts() { + return portList.toArray(new String[0]); + } + + public static TargetDataLine getTargetDataLine(String name) throws LineUnavailableException { + if (targetMap.containsKey(name)) { + return targetMap.get(name).getLine(); + } else { + throw new LineUnavailableException(); + } + } + + public static TargetDataLine getTargetDataLine(String name, AudioFormat audioFormat) throws LineUnavailableException { + if (targetMap.containsKey(name)) { + return targetMap.get(name).getLine(audioFormat); + } else { + throw new LineUnavailableException(); + } + } + + public static SourceDataLine getSourceDataLine(String name) throws LineUnavailableException { + if (sourceMap.containsKey(name)) { + return sourceMap.get(name).getLine(); + } else { + throw new LineUnavailableException(); + } + } + + public static SourceDataLine getSourceDataLine(String name, AudioFormat audioFormat) throws LineUnavailableException { + if (sourceMap.containsKey(name)) { + return sourceMap.get(name).getLine(audioFormat); + } else { + throw new LineUnavailableException(); + } + } + + public class Device { + protected Mixer mixer; + protected Line.Info lineInfo; + + public Device(Mixer mixer, Line.Info lineInfo) { + this.mixer = mixer; + this.lineInfo = lineInfo; + } + + @SuppressWarnings("unchecked") + public T getLine() throws LineUnavailableException { + return (T) mixer.getLine(lineInfo); + } + + @SuppressWarnings("unchecked") + public T getLine(AudioFormat audioFormat) throws LineUnavailableException { + DataLine.Info dataLineInfo = new DataLine.Info(lineInfo.getLineClass(), audioFormat); + return (T) mixer.getLine(dataLineInfo); + } + } +} diff --git a/src/main/java/sound/util/Utils.java b/src/main/java/sound/util/Utils.java new file mode 100644 index 0000000..5c535a0 --- /dev/null +++ b/src/main/java/sound/util/Utils.java @@ -0,0 +1,39 @@ +package sound.util; + +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; + +import javazoom.jl.decoder.JavaLayerException; +import javazoom.jl.player.Player; + +public class Utils { + public static final int BUFFER = 2048; // bytes + + public static void play(InputStream inputStream) { + try { + new Player(new BufferedInputStream(inputStream)).play(); + } catch (JavaLayerException e) { + e.printStackTrace(); + } + } + + public static void write(InputStream inputStream, File file) { + byte[] bytes = new byte[BUFFER]; + int read = 0; + try { + FileOutputStream fileOutputStream = new FileOutputStream(file); + while ((read = inputStream.read(bytes)) > 0) { + fileOutputStream.write(bytes, 0, read); + } + fileOutputStream.close(); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff --git a/src/main/java/test/SoundAudit.java b/src/main/java/test/SoundAudit.java new file mode 100644 index 0000000..9510034 --- /dev/null +++ b/src/main/java/test/SoundAudit.java @@ -0,0 +1,55 @@ +package test; + +import javax.sound.sampled.*; +public class SoundAudit { + public static void main(String[] args) { try { + System.out.println("OS: "+System.getProperty("os.name")+" "+ + System.getProperty("os.version")+"/"+ + System.getProperty("os.arch")+"\nJava: "+ + System.getProperty("java.version")+" ("+ + System.getProperty("java.vendor")+")\n"); + for (Mixer.Info thisMixerInfo : AudioSystem.getMixerInfo()) { + System.out.println("Mixer: "+thisMixerInfo.getDescription()+ + " ["+thisMixerInfo.getName()+"]"); + Mixer thisMixer = AudioSystem.getMixer(thisMixerInfo); + for (Line.Info thisLineInfo:thisMixer.getSourceLineInfo()) { + if (thisLineInfo.getLineClass().getName().equals( + "javax.sound.sampled.Port")) { + Line thisLine = thisMixer.getLine(thisLineInfo); + thisLine.open(); + System.out.println(" Source Port: " + +thisLineInfo.toString()); + for (Control thisControl : thisLine.getControls()) { + System.out.println(AnalyzeControl(thisControl));} + thisLine.close();}} + for (Line.Info thisLineInfo:thisMixer.getTargetLineInfo()) { + if (thisLineInfo.getLineClass().getName().equals( + "javax.sound.sampled.Port")) { + Line thisLine = thisMixer.getLine(thisLineInfo); + thisLine.open(); + System.out.println(" Target Port: " + +thisLineInfo.toString()); + for (Control thisControl : thisLine.getControls()) { + System.out.println(AnalyzeControl(thisControl));} + thisLine.close();}}} + } catch (Exception e) {e.printStackTrace();}} + public static String AnalyzeControl(Control thisControl) { + String type = thisControl.getType().toString(); + if (thisControl instanceof BooleanControl) { + return " Control: "+type+" (boolean)"; } + if (thisControl instanceof CompoundControl) { + System.out.println(" Control: "+type+ + " (compound - values below)"); + String toReturn = ""; + for (Control children: + ((CompoundControl)thisControl).getMemberControls()) { + toReturn+=" "+AnalyzeControl(children)+"\n";} + return toReturn.substring(0, toReturn.length()-1);} + if (thisControl instanceof EnumControl) { + return " Control:"+type+" (enum: "+thisControl.toString()+")";} + if (thisControl instanceof FloatControl) { + return " Control: "+type+" (float: from "+ + ((FloatControl) thisControl).getMinimum()+" to "+ + ((FloatControl) thisControl).getMaximum()+")";} + return " Control: unknown type";} +} diff --git a/src/main/java/test/Test.java b/src/main/java/test/Test.java new file mode 100644 index 0000000..892471c --- /dev/null +++ b/src/main/java/test/Test.java @@ -0,0 +1,40 @@ +package test; + +import javax.sound.sampled.AudioFormat; + +import sound.Consumer; +import sound.Producer; +import sound.Source; +import sound.consumer.Port; +import sound.consumer.Shoutcast; +import sound.producer.Stream; + +public class Test { + public static void main(String[] args) { + AudioFormat audioFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, 48000f, 16, 2, 4, 48000f, true); + try { + //Producer p1 = new Target("Line-In (Creative SB X-Fi)"); + //Producer p2 = new Target("Line 1 (Virtual Audio Cable)", audioFormat); + //p2.start(); + Producer p3 = new Stream("http://ics2gss.omroep.nl:80/3fm-bb-mp3"); + Producer p4 = new Stream("http://sc7.mystreamserver.com:8004"); + + Consumer c1 = new Source("Java Sound Audio Engine"); + Consumer c2 = new Port("Speakers (Creative SB X-Fi)"); + Consumer c3 = new Shoutcast(); + //Consumer c4 = new Player(); + //Consumer c5 = new Writer(new File("stream.out")); + + //Utils.write(p3.getInputStream(), new File("stream.out")); + //Utils.play(p3.getInputStream()); + c3.start(p4); + + //while (true) { + //Thread.sleep(300000); + //c1.stop(); + //} + } catch (Exception e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/src/main/java/test/lines/Main.java b/src/main/java/test/lines/Main.java new file mode 100644 index 0000000..5209436 --- /dev/null +++ b/src/main/java/test/lines/Main.java @@ -0,0 +1,34 @@ +package test.lines; + +import javax.sound.sampled.AudioFormat; +import javax.sound.sampled.AudioSystem; +import javax.sound.sampled.Line; +import javax.sound.sampled.LineUnavailableException; +import javax.sound.sampled.Mixer; +import javax.sound.sampled.SourceDataLine; +import javax.sound.sampled.TargetDataLine; + +public class Main { + public static void main(String[] args) { + System.out.println(System.getProperty("javax.sound.sampled.SourceDataLine")); + + new AudioFormat(44100, 16, 2, true, false); + + for (Mixer.Info mixerInfo : AudioSystem.getMixerInfo()) { + Mixer mixer = AudioSystem.getMixer(mixerInfo); + for (Line.Info lineInfo : mixer.getTargetLineInfo()) { + try { + Line line = mixer.getLine(lineInfo); + if (mixer.isLineSupported(lineInfo)) { + if (line instanceof TargetDataLine) { + new TargetLine(mixer, (TargetDataLine) line); + }/* else if (line instanceof SourceDataLine) { + new SourceLine(mixer, (SourceDataLine) line); + }*/ + } + } catch (LineUnavailableException e) {} + } + + } + } +} diff --git a/src/main/java/test/lines/SourceLine.java b/src/main/java/test/lines/SourceLine.java new file mode 100644 index 0000000..56092d5 --- /dev/null +++ b/src/main/java/test/lines/SourceLine.java @@ -0,0 +1,19 @@ +package test.lines; + +import javax.sound.sampled.Mixer; +import javax.sound.sampled.SourceDataLine; + +public class SourceLine { + //private Mixer mixer; + private SourceDataLine line; + + public SourceLine(Mixer mixer, SourceDataLine line) { + //this.mixer = mixer; + this.line = line; + System.out.println("SOURCE " + mixer.getMixerInfo().getName() + " || " + line.getLineInfo()); + } + + public int write(byte[] bytes, int offset, int length) { + return line.write(bytes, offset, length); + } +} diff --git a/src/main/java/test/lines/TargetLine.java b/src/main/java/test/lines/TargetLine.java new file mode 100644 index 0000000..c0c7d1e --- /dev/null +++ b/src/main/java/test/lines/TargetLine.java @@ -0,0 +1,19 @@ +package test.lines; + +import javax.sound.sampled.Mixer; +import javax.sound.sampled.TargetDataLine; + +public class TargetLine { + //private Mixer mixer; + private TargetDataLine line; + + public TargetLine(Mixer mixer, TargetDataLine line) { + //this.mixer = mixer; + this.line = line; + System.out.println("TARGET " + mixer.getMixerInfo().getName() + " || " + line.getLineInfo()); + } + + public int read(byte[] bytes, int offset, int length) { + return line.read(bytes, offset, length); + } +} diff --git a/src/main/resources/txt/keuze.txt b/src/main/resources/txt/keuze.txt new file mode 100644 index 0000000..7e9581d --- /dev/null +++ b/src/main/resources/txt/keuze.txt @@ -0,0 +1,13 @@ +from pcm: + +-r -s [--unsigned] [--big-endian] + +to mp3: +--cbr -b + + +mp3 to pcm: +--decode + +always: + - - --quiet \ No newline at end of file diff --git a/src/main/resources/txt/mp3 b/src/main/resources/txt/mp3 new file mode 100644 index 0000000..daf87ab --- /dev/null +++ b/src/main/resources/txt/mp3 @@ -0,0 +1,1357 @@ +C:/Users/Rik/Music/Artists/+44/When Your Heart Stops Beating/+44 - 155.mp3 +C:/Users/Rik/Music/Artists/+44/When Your Heart Stops Beating/+44 - Baby Come On.mp3 +C:/Users/Rik/Music/Artists/+44/When Your Heart Stops Beating/+44 - Chapter 13.mp3 +C:/Users/Rik/Music/Artists/+44/When Your Heart Stops Beating/+44 - Cliff Diving.mp3 +C:/Users/Rik/Music/Artists/+44/When Your Heart Stops Beating/+44 - Interlude.mp3 +C:/Users/Rik/Music/Artists/+44/When Your Heart Stops Beating/+44 - Lillian.mp3 +C:/Users/Rik/Music/Artists/+44/When Your Heart Stops Beating/+44 - Little Death.mp3 +C:/Users/Rik/Music/Artists/+44/When Your Heart Stops Beating/+44 - Lycanthrope.mp3 +C:/Users/Rik/Music/Artists/+44/When Your Heart Stops Beating/+44 - Make You Smile.mp3 +C:/Users/Rik/Music/Artists/+44/When Your Heart Stops Beating/+44 - No, It Isn't.mp3 +C:/Users/Rik/Music/Artists/+44/When Your Heart Stops Beating/+44 - Weatherman.mp3 +C:/Users/Rik/Music/Artists/+44/When Your Heart Stops Beating/+44 - When Your Heart Stops Beating.mp3 +C:/Users/Rik/Music/Artists/10 Years Feeding/Feeding the Wolves/10 Years - Chasing the Rapture.mp3 +C:/Users/Rik/Music/Artists/10 Years Feeding/Feeding the Wolves/10 Years - Dead In the Water.mp3 +C:/Users/Rik/Music/Artists/10 Years Feeding/Feeding the Wolves/10 Years - Fade Into the Dream.mp3 +C:/Users/Rik/Music/Artists/10 Years Feeding/Feeding the Wolves/10 Years - Fix Me.mp3 +C:/Users/Rik/Music/Artists/10 Years Feeding/Feeding the Wolves/10 Years - Now Is the Time.mp3 +C:/Users/Rik/Music/Artists/10 Years Feeding/Feeding the Wolves/10 Years - One More Day.mp3 +C:/Users/Rik/Music/Artists/10 Years Feeding/Feeding the Wolves/10 Years - The Wicked Ones.mp3 +C:/Users/Rik/Music/Artists/10 Years Feeding/Feeding the Wolves/10 Years - Waking Up the Ghost.mp3 +C:/Users/Rik/Music/Artists/30 Seconds To Mars/A Beautiful Lie/30 Seconds to Mars - A Beautiful Lie.mp3 +C:/Users/Rik/Music/Artists/30 Seconds To Mars/A Beautiful Lie/30 Seconds to Mars - Attack.mp3 +C:/Users/Rik/Music/Artists/30 Seconds To Mars/A Beautiful Lie/30 Seconds to Mars - Battle of One.mp3 +C:/Users/Rik/Music/Artists/30 Seconds To Mars/A Beautiful Lie/30 Seconds to Mars - From Yesterday.mp3 +C:/Users/Rik/Music/Artists/30 Seconds To Mars/A Beautiful Lie/30 Seconds to Mars - R-Evolve.mp3 +C:/Users/Rik/Music/Artists/30 Seconds To Mars/A Beautiful Lie/30 Seconds to Mars - Savior.mp3 +C:/Users/Rik/Music/Artists/30 Seconds To Mars/A Beautiful Lie/30 Seconds to Mars - The Fantasy.mp3 +C:/Users/Rik/Music/Artists/30 Seconds To Mars/A Beautiful Lie/30 Seconds to Mars - Was It a Dream.mp3 +C:/Users/Rik/Music/Artists/30 Seconds To Mars/This Is War/30 Seconds to Mars - A Call to Arms.mp3 +C:/Users/Rik/Music/Artists/30 Seconds To Mars/This Is War/30 Seconds to Mars - Closer to the Edge.mp3 +C:/Users/Rik/Music/Artists/30 Seconds To Mars/This Is War/30 Seconds to Mars - Equinox.mp3 +C:/Users/Rik/Music/Artists/30 Seconds To Mars/This Is War/30 Seconds to Mars - Escape.mp3 +C:/Users/Rik/Music/Artists/30 Seconds To Mars/This Is War/30 Seconds to Mars - Hurricane.mp3 +C:/Users/Rik/Music/Artists/30 Seconds To Mars/This Is War/30 Seconds to Mars - Kings and Queens.mp3 +C:/Users/Rik/Music/Artists/30 Seconds To Mars/This Is War/30 Seconds to Mars - Night of the Hunter (Flood Remix).mp3 +C:/Users/Rik/Music/Artists/30 Seconds To Mars/This Is War/30 Seconds to Mars - Night of the Hunter.mp3 +C:/Users/Rik/Music/Artists/30 Seconds To Mars/This Is War/30 Seconds to Mars - Search & Destroy.mp3 +C:/Users/Rik/Music/Artists/30 Seconds To Mars/This Is War/30 Seconds to Mars - This Is War.mp3 +C:/Users/Rik/Music/Artists/All Time Low/Nothing Personal/All Time Low - A Party Song (The Walk of Shame).mp3 +C:/Users/Rik/Music/Artists/All Time Low/Nothing Personal/All Time Low - Break Your Little Heart.mp3 +C:/Users/Rik/Music/Artists/All Time Low/Nothing Personal/All Time Low - Damned If I Do Ya (Damned If I Don't).mp3 +C:/Users/Rik/Music/Artists/All Time Low/Nothing Personal/All Time Low - Hello Brooklyn.mp3 +C:/Users/Rik/Music/Artists/All Time Low/Nothing Personal/All Time Low - Keep the Change, You Filthy Animal.mp3 +C:/Users/Rik/Music/Artists/All Time Low/Nothing Personal/All Time Low - Lost In Stereo.mp3 +C:/Users/Rik/Music/Artists/All Time Low/Nothing Personal/All Time Low - Sick Little Games.mp3 +C:/Users/Rik/Music/Artists/All Time Low/Nothing Personal/All Time Low - Stella.mp3 +C:/Users/Rik/Music/Artists/All Time Low/Nothing Personal/All Time Low - Therapy.mp3 +C:/Users/Rik/Music/Artists/All Time Low/Nothing Personal/All Time Low - Too Much.mp3 +C:/Users/Rik/Music/Artists/All Time Low/Nothing Personal/All Time Low - Walls.mp3 +C:/Users/Rik/Music/Artists/All Time Low/Nothing Personal/All Time Low - Weightless.mp3 +C:/Users/Rik/Music/Artists/Anberlin/Dark Is The Way, Light Is A Place/Anberlin - Art of War.mp3 +C:/Users/Rik/Music/Artists/Anberlin/Dark Is The Way, Light Is A Place/Anberlin - Closer.mp3 +C:/Users/Rik/Music/Artists/Anberlin/Dark Is The Way, Light Is A Place/Anberlin - Depraved.mp3 +C:/Users/Rik/Music/Artists/Anberlin/Dark Is The Way, Light Is A Place/Anberlin - Down.mp3 +C:/Users/Rik/Music/Artists/Anberlin/Dark Is The Way, Light Is A Place/Anberlin - Impossible.mp3 +C:/Users/Rik/Music/Artists/Anberlin/Dark Is The Way, Light Is A Place/Anberlin - Pray Tell.mp3 +C:/Users/Rik/Music/Artists/Anberlin/Dark Is The Way, Light Is A Place/Anberlin - Take Me (As You Found Me).mp3 +C:/Users/Rik/Music/Artists/Anberlin/Dark Is The Way, Light Is A Place/Anberlin - To the Wolves.mp3 +C:/Users/Rik/Music/Artists/Anberlin/Dark Is The Way, Light Is A Place/Anberlin - We Owe This to Ourselves.mp3 +C:/Users/Rik/Music/Artists/Anberlin/Dark Is The Way, Light Is A Place/Anberlin - You Belong Here.mp3 +C:/Users/Rik/Music/Artists/Angels & Airwaves/Love/Angels & Airwaves - Clever Love.mp3 +C:/Users/Rik/Music/Artists/Angels & Airwaves/Love/Angels & Airwaves - Epic Holiday.mp3 +C:/Users/Rik/Music/Artists/Angels & Airwaves/Love/Angels & Airwaves - Et Ducit Mundum Per Luce.mp3 +C:/Users/Rik/Music/Artists/Angels & Airwaves/Love/Angels & Airwaves - Hallucinations.mp3 +C:/Users/Rik/Music/Artists/Angels & Airwaves/Love/Angels & Airwaves - Letters to God, Part Ii.mp3 +C:/Users/Rik/Music/Artists/Angels & Airwaves/Love/Angels & Airwaves - Shove.mp3 +C:/Users/Rik/Music/Artists/Angels & Airwaves/Love/Angels & Airwaves - Some Origins of Fire.mp3 +C:/Users/Rik/Music/Artists/Angels & Airwaves/Love/Angels & Airwaves - Soul Survivor (...2012).mp3 +C:/Users/Rik/Music/Artists/Angels & Airwaves/Love/Angels & Airwaves - The Flight of Apollo.mp3 +C:/Users/Rik/Music/Artists/Angels & Airwaves/Love/Angels & Airwaves - The Moon-Atomic (...Fragments and Fictions).mp3 +C:/Users/Rik/Music/Artists/Angels & Airwaves/Love/Angels & Airwaves - Young London.mp3 +C:/Users/Rik/Music/Artists/Arcade Fire/The Suburbs/Arcade Fire - City With No Children.mp3 +C:/Users/Rik/Music/Artists/Arcade Fire/The Suburbs/Arcade Fire - Empty Room.mp3 +C:/Users/Rik/Music/Artists/Arcade Fire/The Suburbs/Arcade Fire - Half Light Ii (No Celebration).mp3 +C:/Users/Rik/Music/Artists/Arcade Fire/The Suburbs/Arcade Fire - Modern Man.mp3 +C:/Users/Rik/Music/Artists/Arcade Fire/The Suburbs/Arcade Fire - Month of May.mp3 +C:/Users/Rik/Music/Artists/Arcade Fire/The Suburbs/Arcade Fire - Suburban War.mp3 +C:/Users/Rik/Music/Artists/Blink-182/Greatest Hits/Blink-182 - Adam's Song.mp3 +C:/Users/Rik/Music/Artists/Blink-182/Greatest Hits/Blink-182 - All the Small Things.mp3 +C:/Users/Rik/Music/Artists/Blink-182/Greatest Hits/Blink-182 - Always.mp3 +C:/Users/Rik/Music/Artists/Blink-182/Greatest Hits/Blink-182 - Another Girl Another Planet.mp3 +C:/Users/Rik/Music/Artists/Blink-182/Greatest Hits/Blink-182 - Carousel.mp3 +C:/Users/Rik/Music/Artists/Blink-182/Greatest Hits/Blink-182 - Dammit.mp3 +C:/Users/Rik/Music/Artists/Blink-182/Greatest Hits/Blink-182 - Down.mp3 +C:/Users/Rik/Music/Artists/Blink-182/Greatest Hits/Blink-182 - Feelin' This.mp3 +C:/Users/Rik/Music/Artists/Blink-182/Greatest Hits/Blink-182 - First Date.mp3 +C:/Users/Rik/Music/Artists/Blink-182/Greatest Hits/Blink-182 - Josie.mp3 +C:/Users/Rik/Music/Artists/Blink-182/Greatest Hits/Blink-182 - M&m's.mp3 +C:/Users/Rik/Music/Artists/Blink-182/Greatest Hits/Blink-182 - Man Overboard (Live).mp3 +C:/Users/Rik/Music/Artists/Blink-182/Greatest Hits/Blink-182 - Miss You.mp3 +C:/Users/Rik/Music/Artists/Blink-182/Greatest Hits/Blink-182 - Not Now.mp3 +C:/Users/Rik/Music/Artists/Blink-182/Greatest Hits/Blink-182 - Rock Show.mp3 +C:/Users/Rik/Music/Artists/Blink-182/Greatest Hits/Blink-182 - Stay Together For the Kids.mp3 +C:/Users/Rik/Music/Artists/Blink-182/Greatest Hits/Blink-182 - What's My Age Again.mp3 +C:/Users/Rik/Music/Artists/Coldplay/Coldplay - Clocks.mp3 +C:/Users/Rik/Music/Artists/Coldplay/Coldplay - In My Place.mp3 +C:/Users/Rik/Music/Artists/Coldplay/Coldplay - Life In Technicolor Ii.mp3 +C:/Users/Rik/Music/Artists/Coldplay/Coldplay - Speed of Sound.mp3 +C:/Users/Rik/Music/Artists/Coldplay/Coldplay - Talk.mp3 +C:/Users/Rik/Music/Artists/Coldplay/Viva la Vida or Death and All His Friends/Coldplay - Life In Technicolor.mp3 +C:/Users/Rik/Music/Artists/Coldplay/Viva la Vida or Death and All His Friends/Coldplay - Lost!.mp3 +C:/Users/Rik/Music/Artists/Coldplay/Viva la Vida or Death and All His Friends/Coldplay - Lovers In Japan Reign of Love.mp3 +C:/Users/Rik/Music/Artists/Coldplay/Viva la Vida or Death and All His Friends/Coldplay - Viva La Vida.mp3 +C:/Users/Rik/Music/Artists/Counting Crows/Counting Crows - Accidentally In Love.mp3 +C:/Users/Rik/Music/Artists/Counting Crows/Films About Ghosts - The Best Of/Counting Crows - American Girls.mp3 +C:/Users/Rik/Music/Artists/Counting Crows/Films About Ghosts - The Best Of/Counting Crows - Angels of the Silences.mp3 +C:/Users/Rik/Music/Artists/Counting Crows/Films About Ghosts - The Best Of/Counting Crows - Big Yellow Taxi.mp3 +C:/Users/Rik/Music/Artists/Counting Crows/Films About Ghosts - The Best Of/Counting Crows - Einstein On the Beach (For An Eggman).mp3 +C:/Users/Rik/Music/Artists/Counting Crows/Films About Ghosts - The Best Of/Counting Crows - Friend of the Devil.mp3 +C:/Users/Rik/Music/Artists/Counting Crows/Films About Ghosts - The Best Of/Counting Crows - Hanginaround.mp3 +C:/Users/Rik/Music/Artists/Counting Crows/Films About Ghosts - The Best Of/Counting Crows - Mr. Jones.mp3 +C:/Users/Rik/Music/Artists/Counting Crows/Films About Ghosts - The Best Of/Counting Crows - Mrs. Potter's Lullaby.mp3 +C:/Users/Rik/Music/Artists/Counting Crows/Films About Ghosts - The Best Of/Counting Crows - Omaha.mp3 +C:/Users/Rik/Music/Artists/Counting Crows/Films About Ghosts - The Best Of/Counting Crows - Rain King.mp3 +C:/Users/Rik/Music/Artists/Counting Crows/Films About Ghosts - The Best Of/Counting Crows - Recovering the Satellites.mp3 +C:/Users/Rik/Music/Artists/Counting Crows/Films About Ghosts - The Best Of/Counting Crows - She Don't Want Nobody Near.mp3 +C:/Users/Rik/Music/Artists/Destine/Lightspeed/Destine - Am I So Blind.mp3 +C:/Users/Rik/Music/Artists/Destine/Lightspeed/Destine - Burn.mp3 +C:/Users/Rik/Music/Artists/Destine/Lightspeed/Destine - California Summer.mp3 +C:/Users/Rik/Music/Artists/Destine/Lightspeed/Destine - Everything In Me.mp3 +C:/Users/Rik/Music/Artists/Destine/Lightspeed/Destine - Forget About Me.mp3 +C:/Users/Rik/Music/Artists/Destine/Lightspeed/Destine - In the End.mp3 +C:/Users/Rik/Music/Artists/Destine/Lightspeed/Destine - In Your Arms.mp3 +C:/Users/Rik/Music/Artists/Destine/Lightspeed/Destine - Sinking Sand.mp3 +C:/Users/Rik/Music/Artists/Destine/Lightspeed/Destine - Spiders.mp3 +C:/Users/Rik/Music/Artists/Destine/Lightspeed/Destine - Stars.mp3 +C:/Users/Rik/Music/Artists/Destine/Lightspeed/Destine - Wake Me.mp3 +C:/Users/Rik/Music/Artists/Destine/Lightspeed/Destine - Where Are You Now.mp3 +C:/Users/Rik/Music/Artists/Di-Rect/Di-Rect - Hungry For Love.mp3 +C:/Users/Rik/Music/Artists/Di-Rect/Di-Rect - She.mp3 +C:/Users/Rik/Music/Artists/Di-Rect/Di-Rect/Di-Rect - A Good Thing.mp3 +C:/Users/Rik/Music/Artists/Di-Rect/Di-Rect/Di-Rect - A Whole New Era.mp3 +C:/Users/Rik/Music/Artists/Di-Rect/Di-Rect/Di-Rect - Break Us In Two.mp3 +C:/Users/Rik/Music/Artists/Di-Rect/Di-Rect/Di-Rect - Bring Down Tomorrow.mp3 +C:/Users/Rik/Music/Artists/Di-Rect/Di-Rect/Di-Rect - Don't Look Back.mp3 +C:/Users/Rik/Music/Artists/Di-Rect/Di-Rect/Di-Rect - I Juct Can't Stand.mp3 +C:/Users/Rik/Music/Artists/Di-Rect/Di-Rect/Di-Rect - It Feels.mp3 +C:/Users/Rik/Music/Artists/Di-Rect/Di-Rect/Di-Rect - Johny.mp3 +C:/Users/Rik/Music/Artists/Di-Rect/Di-Rect/Di-Rect - Lucky.mp3 +C:/Users/Rik/Music/Artists/Di-Rect/Di-Rect/Di-Rect - One Step Closer.mp3 +C:/Users/Rik/Music/Artists/Di-Rect/Di-Rect/Di-Rect - Over and Over.mp3 +C:/Users/Rik/Music/Artists/Di-Rect/Di-Rect/Di-Rect - Someday.mp3 +C:/Users/Rik/Music/Artists/Dropout Year/Best Friends For Never/Dropout Year - A Coming of Age Story.mp3 +C:/Users/Rik/Music/Artists/Dropout Year/Best Friends For Never/Dropout Year - As You Wish.mp3 +C:/Users/Rik/Music/Artists/Dropout Year/Best Friends For Never/Dropout Year - Best Friends For Never.mp3 +C:/Users/Rik/Music/Artists/Dropout Year/Best Friends For Never/Dropout Year - Biggest Fan.mp3 +C:/Users/Rik/Music/Artists/Dropout Year/Best Friends For Never/Dropout Year - Confetti.mp3 +C:/Users/Rik/Music/Artists/Dropout Year/Best Friends For Never/Dropout Year - From Across the Room.mp3 +C:/Users/Rik/Music/Artists/Dropout Year/Best Friends For Never/Dropout Year - It Wasn't Over, It Still Isn't Over.mp3 +C:/Users/Rik/Music/Artists/Fall Out Boy/Folie A Deux/Fall Out Boy - (Coffee's For Closers).mp3 +C:/Users/Rik/Music/Artists/Fall Out Boy/Folie A Deux/Fall Out Boy - 20 Dollar Nose Bleed.mp3 +C:/Users/Rik/Music/Artists/Fall Out Boy/Folie A Deux/Fall Out Boy - 27.mp3 +C:/Users/Rik/Music/Artists/Fall Out Boy/Folie A Deux/Fall Out Boy - America's Suitehearts.mp3 +C:/Users/Rik/Music/Artists/Fall Out Boy/Folie A Deux/Fall Out Boy - Disloyal Order of Water Buffaloes.mp3 +C:/Users/Rik/Music/Artists/Fall Out Boy/Folie A Deux/Fall Out Boy - Headfirst Slide Into Coopestown On a Bad Bet.mp3 +C:/Users/Rik/Music/Artists/Fall Out Boy/Folie A Deux/Fall Out Boy - I Don't Care.mp3 +C:/Users/Rik/Music/Artists/Fall Out Boy/Folie A Deux/Fall Out Boy - She's My Winona.mp3 +C:/Users/Rik/Music/Artists/Fall Out Boy/Folie A Deux/Fall Out Boy - Tiffany Blews.mp3 +C:/Users/Rik/Music/Artists/Fall Out Boy/Folie A Deux/Fall Out Boy - West Coast Smoker.mp3 +C:/Users/Rik/Music/Artists/Fall Out Boy/Folie A Deux/Fall Out Boy - What a Catch, Donnie.mp3 +C:/Users/Rik/Music/Artists/Foo Fighters/Greatest Hits/Foo Fighters - All My Life.mp3 +C:/Users/Rik/Music/Artists/Foo Fighters/Greatest Hits/Foo Fighters - Best of You.mp3 +C:/Users/Rik/Music/Artists/Foo Fighters/Greatest Hits/Foo Fighters - Big Me.mp3 +C:/Users/Rik/Music/Artists/Foo Fighters/Greatest Hits/Foo Fighters - Breakout.mp3 +C:/Users/Rik/Music/Artists/Foo Fighters/Greatest Hits/Foo Fighters - Everlong.mp3 +C:/Users/Rik/Music/Artists/Foo Fighters/Greatest Hits/Foo Fighters - Learn to Fly.mp3 +C:/Users/Rik/Music/Artists/Foo Fighters/Greatest Hits/Foo Fighters - Long Road to Ruin.mp3 +C:/Users/Rik/Music/Artists/Foo Fighters/Greatest Hits/Foo Fighters - Monkey Wrench.mp3 +C:/Users/Rik/Music/Artists/Foo Fighters/Greatest Hits/Foo Fighters - My Hero.mp3 +C:/Users/Rik/Music/Artists/Foo Fighters/Greatest Hits/Foo Fighters - The Pretender.mp3 +C:/Users/Rik/Music/Artists/Foo Fighters/Greatest Hits/Foo Fighters - This Is a Call.mp3 +C:/Users/Rik/Music/Artists/Foo Fighters/Greatest Hits/Foo Fighters - Times Like These.mp3 +C:/Users/Rik/Music/Artists/Foo Fighters/Greatest Hits/Foo Fighters - Wheels.mp3 +C:/Users/Rik/Music/Artists/Foo Fighters/Greatest Hits/Foo Fighters - Word Forward.mp3 +C:/Users/Rik/Music/Artists/Foo Fighters/Wasting Light/Foo Fighters - A Matter of Time.mp3 +C:/Users/Rik/Music/Artists/Foo Fighters/Wasting Light/Foo Fighters - Arlandria.mp3 +C:/Users/Rik/Music/Artists/Foo Fighters/Wasting Light/Foo Fighters - Back & Forth.mp3 +C:/Users/Rik/Music/Artists/Foo Fighters/Wasting Light/Foo Fighters - Bridge Burning.mp3 +C:/Users/Rik/Music/Artists/Foo Fighters/Wasting Light/Foo Fighters - Dear Rosemary.mp3 +C:/Users/Rik/Music/Artists/Foo Fighters/Wasting Light/Foo Fighters - Miss the Misery.mp3 +C:/Users/Rik/Music/Artists/Foo Fighters/Wasting Light/Foo Fighters - Rope.mp3 +C:/Users/Rik/Music/Artists/Foo Fighters/Wasting Light/Foo Fighters - These Days.mp3 +C:/Users/Rik/Music/Artists/Foo Fighters/Wasting Light/Foo Fighters - Walk.mp3 +C:/Users/Rik/Music/Artists/Go Back To The Zoo/Benny Blisto/Go Back to the Zoo - Beam Me Up.mp3 +C:/Users/Rik/Music/Artists/Go Back To The Zoo/Benny Blisto/Go Back to the Zoo - Electric.mp3 +C:/Users/Rik/Music/Artists/Go Back To The Zoo/Benny Blisto/Go Back to the Zoo - Fuck You.mp3 +C:/Users/Rik/Music/Artists/Go Back To The Zoo/Benny Blisto/Go Back to the Zoo - Hey Dj.mp3 +C:/Users/Rik/Music/Artists/Go Back To The Zoo/Benny Blisto/Go Back to the Zoo - I Lov It.mp3 +C:/Users/Rik/Music/Artists/Go Back To The Zoo/Benny Blisto/Go Back to the Zoo - I'm the Night (See You Later).mp3 +C:/Users/Rik/Music/Artists/Go Back To The Zoo/Benny Blisto/Go Back to the Zoo - Nicer.mp3 +C:/Users/Rik/Music/Artists/Go Back To The Zoo/Benny Blisto/Go Back to the Zoo - Oh No (We Stayed).mp3 +C:/Users/Rik/Music/Artists/Go Back To The Zoo/Benny Blisto/Go Back to the Zoo - Sweet World.mp3 +C:/Users/Rik/Music/Artists/Good Charlotte/Cardiology/Good Charlotte - 1979.mp3 +C:/Users/Rik/Music/Artists/Good Charlotte/Cardiology/Good Charlotte - Alive.mp3 +C:/Users/Rik/Music/Artists/Good Charlotte/Cardiology/Good Charlotte - Cardiology.mp3 +C:/Users/Rik/Music/Artists/Good Charlotte/Cardiology/Good Charlotte - Counting the Days.mp3 +C:/Users/Rik/Music/Artists/Good Charlotte/Cardiology/Good Charlotte - Harlow's Song (Can't Dream Without You).mp3 +C:/Users/Rik/Music/Artists/Good Charlotte/Cardiology/Good Charlotte - Interlude (The Fifth Chamber).mp3 +C:/Users/Rik/Music/Artists/Good Charlotte/Cardiology/Good Charlotte - Introduction to Cardiology.mp3 +C:/Users/Rik/Music/Artists/Good Charlotte/Cardiology/Good Charlotte - Last Night.mp3 +C:/Users/Rik/Music/Artists/Good Charlotte/Cardiology/Good Charlotte - Let the Music Play.mp3 +C:/Users/Rik/Music/Artists/Good Charlotte/Cardiology/Good Charlotte - Like It's Her Birthday.mp3 +C:/Users/Rik/Music/Artists/Good Charlotte/Cardiology/Good Charlotte - Right Where I Belong.mp3 +C:/Users/Rik/Music/Artists/Good Charlotte/Cardiology/Good Charlotte - Sex On the Radio.mp3 +C:/Users/Rik/Music/Artists/Good Charlotte/Cardiology/Good Charlotte - Silver Screen Romance.mp3 +C:/Users/Rik/Music/Artists/Good Charlotte/Cardiology/Good Charlotte - Standing Ovation.mp3 +C:/Users/Rik/Music/Artists/Good Charlotte/Cardiology/Good Charlotte - There She Goes.mp3 +C:/Users/Rik/Music/Artists/Green Day/21st Century Breakdown/Green Day - 21 Guns.mp3 +C:/Users/Rik/Music/Artists/Green Day/21st Century Breakdown/Green Day - 21st Century Breakdown.mp3 +C:/Users/Rik/Music/Artists/Green Day/21st Century Breakdown/Green Day - American Eulogy.mp3 +C:/Users/Rik/Music/Artists/Green Day/21st Century Breakdown/Green Day - Before the Lobotomy.mp3 +C:/Users/Rik/Music/Artists/Green Day/21st Century Breakdown/Green Day - Christian's Inferno.mp3 +C:/Users/Rik/Music/Artists/Green Day/21st Century Breakdown/Green Day - East Jesus Nowhere.mp3 +C:/Users/Rik/Music/Artists/Green Day/21st Century Breakdown/Green Day - Horseshoes and Handgrenades.mp3 +C:/Users/Rik/Music/Artists/Green Day/21st Century Breakdown/Green Day - Know Your Enemy.mp3 +C:/Users/Rik/Music/Artists/Green Day/21st Century Breakdown/Green Day - Last Night On Earth.mp3 +C:/Users/Rik/Music/Artists/Green Day/21st Century Breakdown/Green Day - Last of the American Girls.mp3 +C:/Users/Rik/Music/Artists/Green Day/21st Century Breakdown/Green Day - Murder City.mp3 +C:/Users/Rik/Music/Artists/Green Day/21st Century Breakdown/Green Day - Peacemaker.mp3 +C:/Users/Rik/Music/Artists/Green Day/21st Century Breakdown/Green Day - Restless Heart Syndrome.mp3 +C:/Users/Rik/Music/Artists/Green Day/21st Century Breakdown/Green Day - See the Light.mp3 +C:/Users/Rik/Music/Artists/Green Day/21st Century Breakdown/Green Day - The Static Age.mp3 +C:/Users/Rik/Music/Artists/Green Day/21st Century Breakdown/Green Day - Viva La Gloria (Little Girl).mp3 +C:/Users/Rik/Music/Artists/Green Day/American Idiot/Green Day - American Idiot.mp3 +C:/Users/Rik/Music/Artists/Green Day/American Idiot/Green Day - Are We the Waiting.mp3 +C:/Users/Rik/Music/Artists/Green Day/American Idiot/Green Day - Boulevard of Broken Dreams.mp3 +C:/Users/Rik/Music/Artists/Green Day/American Idiot/Green Day - Extraordinary Girl.mp3 +C:/Users/Rik/Music/Artists/Green Day/American Idiot/Green Day - Give Me Novacaine.mp3 +C:/Users/Rik/Music/Artists/Green Day/American Idiot/Green Day - Holiday.mp3 +C:/Users/Rik/Music/Artists/Green Day/American Idiot/Green Day - Homecoming.mp3 +C:/Users/Rik/Music/Artists/Green Day/American Idiot/Green Day - Jesus of Suburbia.mp3 +C:/Users/Rik/Music/Artists/Green Day/American Idiot/Green Day - Letterbomb.mp3 +C:/Users/Rik/Music/Artists/Green Day/American Idiot/Green Day - She's a Rebel.mp3 +C:/Users/Rik/Music/Artists/Green Day/American Idiot/Green Day - St. Jimmy.mp3 +C:/Users/Rik/Music/Artists/Green Day/American Idiot/Green Day - Wake Me Up When September Ends.mp3 +C:/Users/Rik/Music/Artists/Green Day/American Idiot/Green Day - Whatsername.mp3 +C:/Users/Rik/Music/Artists/Green Day/Greatest Hits/Green Day - All the Time.mp3 +C:/Users/Rik/Music/Artists/Green Day/Greatest Hits/Green Day - Armatage Shanks.mp3 +C:/Users/Rik/Music/Artists/Green Day/Greatest Hits/Green Day - Bascet Case.mp3 +C:/Users/Rik/Music/Artists/Green Day/Greatest Hits/Green Day - Brat.mp3 +C:/Users/Rik/Music/Artists/Green Day/Greatest Hits/Green Day - Burnout.mp3 +C:/Users/Rik/Music/Artists/Green Day/Greatest Hits/Green Day - Chump.mp3 +C:/Users/Rik/Music/Artists/Green Day/Greatest Hits/Green Day - Church On Sunday.mp3 +C:/Users/Rik/Music/Artists/Green Day/Greatest Hits/Green Day - Coming Clean.mp3 +C:/Users/Rik/Music/Artists/Green Day/Greatest Hits/Green Day - Desensitized.mp3 +C:/Users/Rik/Music/Artists/Green Day/Greatest Hits/Green Day - Emenius Sleepus.mp3 +C:/Users/Rik/Music/Artists/Green Day/Greatest Hits/Green Day - Fashion Victim.mp3 +C:/Users/Rik/Music/Artists/Green Day/Greatest Hits/Green Day - Geek Stink Breath.mp3 +C:/Users/Rik/Music/Artists/Green Day/Greatest Hits/Green Day - Good Riddance (Time of Your Life).mp3 +C:/Users/Rik/Music/Artists/Green Day/Greatest Hits/Green Day - In the End.mp3 +C:/Users/Rik/Music/Artists/Green Day/Greatest Hits/Green Day - J.A.R. (Jason Andrew Relva).mp3 +C:/Users/Rik/Music/Artists/Green Day/Greatest Hits/Green Day - Jaded.mp3 +C:/Users/Rik/Music/Artists/Green Day/Greatest Hits/Green Day - Maria.mp3 +C:/Users/Rik/Music/Artists/Green Day/Greatest Hits/Green Day - Nice Guys Finish Last.mp3 +C:/Users/Rik/Music/Artists/Green Day/Greatest Hits/Green Day - Poprocks & Coke.mp3 +C:/Users/Rik/Music/Artists/Green Day/Greatest Hits/Green Day - Redundant.mp3 +C:/Users/Rik/Music/Artists/Green Day/Greatest Hits/Green Day - Scumbag.mp3 +C:/Users/Rik/Music/Artists/Green Day/Greatest Hits/Green Day - She.mp3 +C:/Users/Rik/Music/Artists/Green Day/Greatest Hits/Green Day - Stuck With Me.mp3 +C:/Users/Rik/Music/Artists/Green Day/Greatest Hits/Green Day - Suffocate.mp3 +C:/Users/Rik/Music/Artists/Green Day/Greatest Hits/Green Day - The Grouch.mp3 +C:/Users/Rik/Music/Artists/Green Day/Greatest Hits/Green Day - The Saints Are Coming.mp3 +C:/Users/Rik/Music/Artists/Green Day/Greatest Hits/Green Day - Waiting.mp3 +C:/Users/Rik/Music/Artists/Green Day/Greatest Hits/Green Day - Walking Alone.mp3 +C:/Users/Rik/Music/Artists/Green Day/Greatest Hits/Green Day - Walking Contradiction.mp3 +C:/Users/Rik/Music/Artists/Green Day/Greatest Hits/Green Day - Warning.mp3 +C:/Users/Rik/Music/Artists/Green Day/Greatest Hits/Green Day - Welcome to Paradise.mp3 +C:/Users/Rik/Music/Artists/Kaiser Chiefs/Off With Their Heads/Kaiser Chiefs - Addicted to Drugs.mp3 +C:/Users/Rik/Music/Artists/Kaiser Chiefs/Off With Their Heads/Kaiser Chiefs - Always Happens Like That.mp3 +C:/Users/Rik/Music/Artists/Kaiser Chiefs/Off With Their Heads/Kaiser Chiefs - Can't Say What I Mean.mp3 +C:/Users/Rik/Music/Artists/Kaiser Chiefs/Off With Their Heads/Kaiser Chiefs - Good Days Bad Days.mp3 +C:/Users/Rik/Music/Artists/Kaiser Chiefs/Off With Their Heads/Kaiser Chiefs - Half the Truth.mp3 +C:/Users/Rik/Music/Artists/Kaiser Chiefs/Off With Their Heads/Kaiser Chiefs - Like It Too Much.mp3 +C:/Users/Rik/Music/Artists/Kaiser Chiefs/Off With Their Heads/Kaiser Chiefs - Never Miss a Beat.mp3 +C:/Users/Rik/Music/Artists/Kaiser Chiefs/Off With Their Heads/Kaiser Chiefs - Spanish Metal.mp3 +C:/Users/Rik/Music/Artists/Kaiser Chiefs/Off With Their Heads/Kaiser Chiefs - Tomato In the Rain.mp3 +C:/Users/Rik/Music/Artists/Kaiser Chiefs/Off With Their Heads/Kaiser Chiefs - You Want History.mp3 +C:/Users/Rik/Music/Artists/Kaiser Chiefs/Yours Truly, Angry Mob/Kaiser Chiefs - Boxing Champ.mp3 +C:/Users/Rik/Music/Artists/Kaiser Chiefs/Yours Truly, Angry Mob/Kaiser Chiefs - Everything Is Average Nowadays.mp3 +C:/Users/Rik/Music/Artists/Kaiser Chiefs/Yours Truly, Angry Mob/Kaiser Chiefs - Heat Dies Down.mp3 +C:/Users/Rik/Music/Artists/Kaiser Chiefs/Yours Truly, Angry Mob/Kaiser Chiefs - Highroyds.mp3 +C:/Users/Rik/Music/Artists/Kaiser Chiefs/Yours Truly, Angry Mob/Kaiser Chiefs - I Can Do Without You.mp3 +C:/Users/Rik/Music/Artists/Kaiser Chiefs/Yours Truly, Angry Mob/Kaiser Chiefs - Learnt My Lesson Well.mp3 +C:/Users/Rik/Music/Artists/Kaiser Chiefs/Yours Truly, Angry Mob/Kaiser Chiefs - Love's Not a Competition (But I'm Winning).mp3 +C:/Users/Rik/Music/Artists/Kaiser Chiefs/Yours Truly, Angry Mob/Kaiser Chiefs - My Kind of Guy.mp3 +C:/Users/Rik/Music/Artists/Kaiser Chiefs/Yours Truly, Angry Mob/Kaiser Chiefs - Retirement.mp3 +C:/Users/Rik/Music/Artists/Kaiser Chiefs/Yours Truly, Angry Mob/Kaiser Chiefs - Ruby.mp3 +C:/Users/Rik/Music/Artists/Kaiser Chiefs/Yours Truly, Angry Mob/Kaiser Chiefs - Thank You Very Much.mp3 +C:/Users/Rik/Music/Artists/Kaiser Chiefs/Yours Truly, Angry Mob/Kaiser Chiefs - The Angry Mob.mp3 +C:/Users/Rik/Music/Artists/Kaiser Chiefs/Yours Truly, Angry Mob/Kaiser Chiefs - Try Your Best.mp3 +C:/Users/Rik/Music/Artists/Keane/Keane - Everybody's Changing.mp3 +C:/Users/Rik/Music/Artists/Keane/Keane - Is It Any Wonder.mp3 +C:/Users/Rik/Music/Artists/Keane/Keane - Somewhere Only We Know.mp3 +C:/Users/Rik/Music/Artists/Keane/Keane - This Is the Last Time.mp3 +C:/Users/Rik/Music/Artists/Keane/Perfect Symmetry/Keane - Again & Again.mp3 +C:/Users/Rik/Music/Artists/Keane/Perfect Symmetry/Keane - Better Than This.mp3 +C:/Users/Rik/Music/Artists/Keane/Perfect Symmetry/Keane - Black Burning Heart.mp3 +C:/Users/Rik/Music/Artists/Keane/Perfect Symmetry/Keane - Lovers Are Losing.mp3 +C:/Users/Rik/Music/Artists/Keane/Perfect Symmetry/Keane - Perfect Symmetry.mp3 +C:/Users/Rik/Music/Artists/Keane/Perfect Symmetry/Keane - Playing Along.mp3 +C:/Users/Rik/Music/Artists/Keane/Perfect Symmetry/Keane - Pretend That You're Alone.mp3 +C:/Users/Rik/Music/Artists/Keane/Perfect Symmetry/Keane - Spiralling.mp3 +C:/Users/Rik/Music/Artists/Keane/Perfect Symmetry/Keane - You Don't See Me.mp3 +C:/Users/Rik/Music/Artists/Kensington/Borders/Kensington - All That I Know.mp3 +C:/Users/Rik/Music/Artists/Kensington/Borders/Kensington - Franklin Exits.mp3 +C:/Users/Rik/Music/Artists/Kensington/Borders/Kensington - I Was Too Scared.mp3 +C:/Users/Rik/Music/Artists/Kensington/Borders/Kensington - Not As Bright.mp3 +C:/Users/Rik/Music/Artists/Kensington/Borders/Kensington - So Am I.mp3 +C:/Users/Rik/Music/Artists/Kensington/Borders/Kensington - The Heart of It.mp3 +C:/Users/Rik/Music/Artists/Kensington/Borders/Kensington - Thieves and Murderers.mp3 +C:/Users/Rik/Music/Artists/Kensington/Borders/Kensington - Waiting For a Sign.mp3 +C:/Users/Rik/Music/Artists/Kensington/Borders/Kensington - What's Gotten Into Us.mp3 +C:/Users/Rik/Music/Artists/Kensington/Borders/Kensington - When It All Falls Down.mp3 +C:/Users/Rik/Music/Artists/Kensington/Borders/Kensington - Youth.mp3 +C:/Users/Rik/Music/Artists/Kings of Leon/Come Around Sundown/Kings of Leon - Back Down South.mp3 +C:/Users/Rik/Music/Artists/Kings of Leon/Come Around Sundown/Kings of Leon - Beach Side.mp3 +C:/Users/Rik/Music/Artists/Kings of Leon/Come Around Sundown/Kings of Leon - Birthday.mp3 +C:/Users/Rik/Music/Artists/Kings of Leon/Come Around Sundown/Kings of Leon - Mary.mp3 +C:/Users/Rik/Music/Artists/Kings of Leon/Come Around Sundown/Kings of Leon - Mi Amigo.mp3 +C:/Users/Rik/Music/Artists/Kings of Leon/Come Around Sundown/Kings of Leon - No Money.mp3 +C:/Users/Rik/Music/Artists/Kings of Leon/Come Around Sundown/Kings of Leon - Pickup Truck.mp3 +C:/Users/Rik/Music/Artists/Kings of Leon/Come Around Sundown/Kings of Leon - Pony Up.mp3 +C:/Users/Rik/Music/Artists/Kings of Leon/Come Around Sundown/Kings of Leon - Pyro.mp3 +C:/Users/Rik/Music/Artists/Kings of Leon/Come Around Sundown/Kings of Leon - Radioactive.mp3 +C:/Users/Rik/Music/Artists/Kings of Leon/Come Around Sundown/Kings of Leon - The End.mp3 +C:/Users/Rik/Music/Artists/Kings of Leon/Come Around Sundown/Kings of Leon - The Face.mp3 +C:/Users/Rik/Music/Artists/Kings of Leon/Come Around Sundown/Kings of Leon - The Immortals.mp3 +C:/Users/Rik/Music/Artists/Kings of Leon/Only By The Night/Kings of Leon - Be Somebody.mp3 +C:/Users/Rik/Music/Artists/Kings of Leon/Only By The Night/Kings of Leon - Closer.mp3 +C:/Users/Rik/Music/Artists/Kings of Leon/Only By The Night/Kings of Leon - Crawl.mp3 +C:/Users/Rik/Music/Artists/Kings of Leon/Only By The Night/Kings of Leon - I Want You.mp3 +C:/Users/Rik/Music/Artists/Kings of Leon/Only By The Night/Kings of Leon - Manhattan.mp3 +C:/Users/Rik/Music/Artists/Kings of Leon/Only By The Night/Kings of Leon - Notion.mp3 +C:/Users/Rik/Music/Artists/Kings of Leon/Only By The Night/Kings of Leon - Sex On Fire.mp3 +C:/Users/Rik/Music/Artists/Kings of Leon/Only By The Night/Kings of Leon - Use Somebody.mp3 +C:/Users/Rik/Music/Artists/Lifehouse/Smoke & Mirrors/Lifehouse - All In.mp3 +C:/Users/Rik/Music/Artists/Lifehouse/Smoke & Mirrors/Lifehouse - All That I'm Asking For.mp3 +C:/Users/Rik/Music/Artists/Lifehouse/Smoke & Mirrors/Lifehouse - By Your Side.mp3 +C:/Users/Rik/Music/Artists/Lifehouse/Smoke & Mirrors/Lifehouse - Crash and Burn.mp3 +C:/Users/Rik/Music/Artists/Lifehouse/Smoke & Mirrors/Lifehouse - Falling In.mp3 +C:/Users/Rik/Music/Artists/Lifehouse/Smoke & Mirrors/Lifehouse - From Where You Are.mp3 +C:/Users/Rik/Music/Artists/Lifehouse/Smoke & Mirrors/Lifehouse - Had Enough.mp3 +C:/Users/Rik/Music/Artists/Lifehouse/Smoke & Mirrors/Lifehouse - Halfway Gone.mp3 +C:/Users/Rik/Music/Artists/Lifehouse/Smoke & Mirrors/Lifehouse - In Your Skin.mp3 +C:/Users/Rik/Music/Artists/Lifehouse/Smoke & Mirrors/Lifehouse - It Is What It Is.mp3 +C:/Users/Rik/Music/Artists/Lifehouse/Smoke & Mirrors/Lifehouse - Smoke & Mirrors.mp3 +C:/Users/Rik/Music/Artists/Lifehouse/Smoke & Mirrors/Lifehouse - Wrecking Ball.mp3 +C:/Users/Rik/Music/Artists/Lifehouse/Who We Are/Lifehouse - Bridges.mp3 +C:/Users/Rik/Music/Artists/Lifehouse/Who We Are/Lifehouse - Disarray.mp3 +C:/Users/Rik/Music/Artists/Lifehouse/Who We Are/Lifehouse - Easier to Be.mp3 +C:/Users/Rik/Music/Artists/Lifehouse/Who We Are/Lifehouse - First Time.mp3 +C:/Users/Rik/Music/Artists/Lifehouse/Who We Are/Lifehouse - Learn You Inside Out.mp3 +C:/Users/Rik/Music/Artists/Lifehouse/Who We Are/Lifehouse - Make Me Over.mp3 +C:/Users/Rik/Music/Artists/Lifehouse/Who We Are/Lifehouse - Mesmerized.mp3 +C:/Users/Rik/Music/Artists/Lifehouse/Who We Are/Lifehouse - Storm.mp3 +C:/Users/Rik/Music/Artists/Lifehouse/Who We Are/Lifehouse - Whatever It Takes.mp3 +C:/Users/Rik/Music/Artists/Lifehouse/Who We Are/Lifehouse - Who We Are.mp3 +C:/Users/Rik/Music/Artists/Linking Park/Hybrid Theory/Linkin Park - A Place For My Head.mp3 +C:/Users/Rik/Music/Artists/Linking Park/Hybrid Theory/Linkin Park - Crawling.mp3 +C:/Users/Rik/Music/Artists/Linking Park/Hybrid Theory/Linkin Park - Forgotten.mp3 +C:/Users/Rik/Music/Artists/Linking Park/Hybrid Theory/Linkin Park - In the End.mp3 +C:/Users/Rik/Music/Artists/Linking Park/Hybrid Theory/Linkin Park - One Step Closer.mp3 +C:/Users/Rik/Music/Artists/Linking Park/Hybrid Theory/Linkin Park - Papercut.mp3 +C:/Users/Rik/Music/Artists/Linking Park/Hybrid Theory/Linkin Park - Points of Authority.mp3 +C:/Users/Rik/Music/Artists/Linking Park/Hybrid Theory/Linkin Park - Pushing Me Away.mp3 +C:/Users/Rik/Music/Artists/Linking Park/Hybrid Theory/Linkin Park - Runaway.mp3 +C:/Users/Rik/Music/Artists/Linking Park/Hybrid Theory/Linkin Park - With You.mp3 +C:/Users/Rik/Music/Artists/Lostprophets/Liberation Transmission/Lostprophets - 4am Forever.mp3 +C:/Users/Rik/Music/Artists/Lostprophets/Liberation Transmission/Lostprophets - A Town Called Hypocrisy.mp3 +C:/Users/Rik/Music/Artists/Lostprophets/Liberation Transmission/Lostprophets - Always All Ways (Apologies, Glances and Messed Up Chances).mp3 +C:/Users/Rik/Music/Artists/Lostprophets/Liberation Transmission/Lostprophets - Broken Hearts, Torn Up Letters and the Story of a Lonely Girl.mp3 +C:/Users/Rik/Music/Artists/Lostprophets/Liberation Transmission/Lostprophets - Can't Catch Tomorrow (Good Shoes Won't Save You This Time).mp3 +C:/Users/Rik/Music/Artists/Lostprophets/Liberation Transmission/Lostprophets - Can't Stop, Gotta Date With Hate.mp3 +C:/Users/Rik/Music/Artists/Lostprophets/Liberation Transmission/Lostprophets - Everybody's Screaming !!!.mp3 +C:/Users/Rik/Music/Artists/Lostprophets/Liberation Transmission/Lostprophets - Everyday Combat.mp3 +C:/Users/Rik/Music/Artists/Lostprophets/Liberation Transmission/Lostprophets - For All These Times Son, For All These Times.mp3 +C:/Users/Rik/Music/Artists/Lostprophets/Liberation Transmission/Lostprophets - Heaven For the Weather, Hell For the Company.mp3 +C:/Users/Rik/Music/Artists/Lostprophets/Liberation Transmission/Lostprophets - Rooftops (A Liberation Broadcast).mp3 +C:/Users/Rik/Music/Artists/Lostprophets/Liberation Transmission/Lostprophets - The New Transmission.mp3 +C:/Users/Rik/Music/Artists/Matchbook Romance/Voices/Matchbook Romance - Goody, Like Two Shoes.mp3 +C:/Users/Rik/Music/Artists/Matchbook Romance/Voices/Matchbook Romance - Monsters.mp3 +C:/Users/Rik/Music/Artists/Matchbook Romance/Voices/Matchbook Romance - My Mannequin Can Dance.mp3 +C:/Users/Rik/Music/Artists/Matchbook Romance/Voices/Matchbook Romance - Portrait.mp3 +C:/Users/Rik/Music/Artists/Matchbook Romance/Voices/Matchbook Romance - Singing Bridges (We All Fall).mp3 +C:/Users/Rik/Music/Artists/Matchbook Romance/Voices/Matchbook Romance - Surrender.mp3 +C:/Users/Rik/Music/Artists/Matchbook Romance/Voices/Matchbook Romance - What a Sight.mp3 +C:/Users/Rik/Music/Artists/Neon Trees/Habits/Neon Trees - 1983.mp3 +C:/Users/Rik/Music/Artists/Neon Trees/Habits/Neon Trees - Animal.mp3 +C:/Users/Rik/Music/Artists/Neon Trees/Habits/Neon Trees - In the Next Room.mp3 +C:/Users/Rik/Music/Artists/Neon Trees/Habits/Neon Trees - Sins of My Youth.mp3 +C:/Users/Rik/Music/Artists/Neon Trees/Habits/Neon Trees - Your Surrender.mp3 +C:/Users/Rik/Music/Artists/Nickelback/Dark Horse/Nickelback - Gotta Be Somebody.mp3 +C:/Users/Rik/Music/Artists/Nickelback/Dark Horse/Nickelback - I'd Come For You.mp3 +C:/Users/Rik/Music/Artists/Nickelback/Dark Horse/Nickelback - If Today Was Your Last Day.mp3 +C:/Users/Rik/Music/Artists/Nickelback/Dark Horse/Nickelback - Just to Get High.mp3 +C:/Users/Rik/Music/Artists/Nickelback/Dark Horse/Nickelback - Never Gonna Be Alone.mp3 +C:/Users/Rik/Music/Artists/Nickelback/Dark Horse/Nickelback - This Afternoon.mp3 +C:/Users/Rik/Music/Artists/Nickelback/Nickelback - How You Remind Me.mp3 +C:/Users/Rik/Music/Artists/Nickelback/Nickelback - Photograph.mp3 +C:/Users/Rik/Music/Artists/OneRepublic/Waking Up/Onerepublic - All the Right Moves.mp3 +C:/Users/Rik/Music/Artists/OneRepublic/Waking Up/Onerepublic - Fear.mp3 +C:/Users/Rik/Music/Artists/OneRepublic/Waking Up/Onerepublic - Good Life.mp3 +C:/Users/Rik/Music/Artists/OneRepublic/Waking Up/Onerepublic - Secrets.mp3 +C:/Users/Rik/Music/Artists/Plain White T's/All That We Needed/Plain White T's - All That We Needed.mp3 +C:/Users/Rik/Music/Artists/Plain White T's/All That We Needed/Plain White T's - Anything.mp3 +C:/Users/Rik/Music/Artists/Plain White T's/All That We Needed/Plain White T's - Breakdown.mp3 +C:/Users/Rik/Music/Artists/Plain White T's/All That We Needed/Plain White T's - Faster.mp3 +C:/Users/Rik/Music/Artists/Plain White T's/All That We Needed/Plain White T's - Last Call.mp3 +C:/Users/Rik/Music/Artists/Plain White T's/All That We Needed/Plain White T's - Lazy Day Afternoon.mp3 +C:/Users/Rik/Music/Artists/Plain White T's/All That We Needed/Plain White T's - My Only One.mp3 +C:/Users/Rik/Music/Artists/Plain White T's/All That We Needed/Plain White T's - Revenge.mp3 +C:/Users/Rik/Music/Artists/Plain White T's/All That We Needed/Plain White T's - Sad Story.mp3 +C:/Users/Rik/Music/Artists/Plain White T's/All That We Needed/Plain White T's - Sing My Best.mp3 +C:/Users/Rik/Music/Artists/Plain White T's/All That We Needed/Plain White T's - Take Me Away.mp3 +C:/Users/Rik/Music/Artists/Plain White T's/All That We Needed/Plain White T's - What More Do You Want.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Greatest Hits/Red Hot Chili Peppers - Breaking the Girl.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Greatest Hits/Red Hot Chili Peppers - By the Way.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Greatest Hits/Red Hot Chili Peppers - Californication.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Greatest Hits/Red Hot Chili Peppers - Fortune Faded.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Greatest Hits/Red Hot Chili Peppers - Give It Away.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Greatest Hits/Red Hot Chili Peppers - Higher Ground.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Greatest Hits/Red Hot Chili Peppers - My Friends.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Greatest Hits/Red Hot Chili Peppers - Otherside.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Greatest Hits/Red Hot Chili Peppers - Parallel Universe.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Greatest Hits/Red Hot Chili Peppers - Save the Population.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Greatest Hits/Red Hot Chili Peppers - Scar Tissue.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Greatest Hits/Red Hot Chili Peppers - Soul to Squeeze.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Greatest Hits/Red Hot Chili Peppers - Under the Bridge.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Greatest Hits/Red Hot Chili Peppers - Universally Speaking.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Stadium Arcadium/Red Hot Chili Peppers - Animal Bar.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Stadium Arcadium/Red Hot Chili Peppers - Charlie.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Stadium Arcadium/Red Hot Chili Peppers - C'mon Girl.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Stadium Arcadium/Red Hot Chili Peppers - Dani California.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Stadium Arcadium/Red Hot Chili Peppers - Death of a Martian.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Stadium Arcadium/Red Hot Chili Peppers - Desecration Smile.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Stadium Arcadium/Red Hot Chili Peppers - Especially In Michigan.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Stadium Arcadium/Red Hot Chili Peppers - Hard to Concentrate.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Stadium Arcadium/Red Hot Chili Peppers - Hey.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Stadium Arcadium/Red Hot Chili Peppers - If.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Stadium Arcadium/Red Hot Chili Peppers - Make You Feel Better.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Stadium Arcadium/Red Hot Chili Peppers - She Looks to Me.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Stadium Arcadium/Red Hot Chili Peppers - She's Only 18.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Stadium Arcadium/Red Hot Chili Peppers - Slow Cheetah.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Stadium Arcadium/Red Hot Chili Peppers - Snow (Hey Oh).mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Stadium Arcadium/Red Hot Chili Peppers - So Much I.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Stadium Arcadium/Red Hot Chili Peppers - Stadium Arcadium.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Stadium Arcadium/Red Hot Chili Peppers - Storm In a Teacup.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Stadium Arcadium/Red Hot Chili Peppers - Strip My Mind.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Stadium Arcadium/Red Hot Chili Peppers - Tell Me Baby.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Stadium Arcadium/Red Hot Chili Peppers - Torture Me.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Stadium Arcadium/Red Hot Chili Peppers - Turn It Again.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Stadium Arcadium/Red Hot Chili Peppers - Warlocks.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Stadium Arcadium/Red Hot Chili Peppers - We Believe.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/Stadium Arcadium/Red Hot Chili Peppers - Wet Sand.mp3 +C:/Users/Rik/Music/Artists/Rooney/Calling The World/Rooney - All In Your Head.mp3 +C:/Users/Rik/Music/Artists/Rooney/Calling The World/Rooney - Are You Afraid.mp3 +C:/Users/Rik/Music/Artists/Rooney/Calling The World/Rooney - Believe In Me.mp3 +C:/Users/Rik/Music/Artists/Rooney/Calling The World/Rooney - Calling the World.mp3 +C:/Users/Rik/Music/Artists/Rooney/Calling The World/Rooney - Don't Come Around Again.mp3 +C:/Users/Rik/Music/Artists/Rooney/Calling The World/Rooney - I Should've Been After You.mp3 +C:/Users/Rik/Music/Artists/Rooney/Calling The World/Rooney - Love Me Or Leave Me.mp3 +C:/Users/Rik/Music/Artists/Rooney/Calling The World/Rooney - Paralyzed.mp3 +C:/Users/Rik/Music/Artists/Rooney/Calling The World/Rooney - What For.mp3 +C:/Users/Rik/Music/Artists/Savage Garden/Savage Garden/Savage Garden - A Thousand Words.mp3 +C:/Users/Rik/Music/Artists/Savage Garden/Savage Garden/Savage Garden - Break Me Shake Me.mp3 +C:/Users/Rik/Music/Artists/Savage Garden/Savage Garden/Savage Garden - Carry On Dancing.mp3 +C:/Users/Rik/Music/Artists/Savage Garden/Savage Garden/Savage Garden - I Want You.mp3 +C:/Users/Rik/Music/Artists/Savage Garden/Savage Garden/Savage Garden - To the Moon and Back.mp3 +C:/Users/Rik/Music/Artists/Savage Garden/Savage Garden/Savage Garden - Truly Madly Deeply.mp3 +C:/Users/Rik/Music/Artists/Savage Garden/Savage Garden/Savage Garden - Violet.mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Simple Plan/Simple Plan - Generation.mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Simple Plan/Simple Plan - I Can Wait Forever.mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Simple Plan/Simple Plan - No Love.mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Simple Plan/Simple Plan - Running Out of Time.mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Simple Plan/Simple Plan - Save You.mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Simple Plan/Simple Plan - Take My Hand.mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Simple Plan/Simple Plan - The End.mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Simple Plan/Simple Plan - Time to Say Goodbye.mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Simple Plan/Simple Plan - What If.mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Simple Plan/Simple Plan - When I'm Gone (Acoustic).mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Simple Plan/Simple Plan - When I'm Gone.mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Simple Plan/Simple Plan - Your Love Is a Lie.mp3 +C:/Users/Rik/Music/Artists/Snow Patrol/A Hundred Million Suns/Snow Patrol - Crack the Shutters.mp3 +C:/Users/Rik/Music/Artists/Snow Patrol/A Hundred Million Suns/Snow Patrol - Disaster Button.mp3 +C:/Users/Rik/Music/Artists/Snow Patrol/A Hundred Million Suns/Snow Patrol - Engines.mp3 +C:/Users/Rik/Music/Artists/Snow Patrol/A Hundred Million Suns/Snow Patrol - If There's a Rocket Tie Me to It.mp3 +C:/Users/Rik/Music/Artists/Snow Patrol/A Hundred Million Suns/Snow Patrol - Please Just Take These Photos From My Hands.mp3 +C:/Users/Rik/Music/Artists/Snow Patrol/A Hundred Million Suns/Snow Patrol - Take Back the City.mp3 +C:/Users/Rik/Music/Artists/Snow Patrol/Eyes Open/Snow Patrol - Chasing Cars.mp3 +C:/Users/Rik/Music/Artists/Snow Patrol/Eyes Open/Snow Patrol - Hands Open .mp3 +C:/Users/Rik/Music/Artists/Snow Patrol/Eyes Open/Snow Patrol - Headlights On Dark Roads.mp3 +C:/Users/Rik/Music/Artists/Snow Patrol/Eyes Open/Snow Patrol - In My Arms.mp3 +C:/Users/Rik/Music/Artists/Snow Patrol/Eyes Open/Snow Patrol - It's Beginning to Get to Me.mp3 +C:/Users/Rik/Music/Artists/Snow Patrol/Eyes Open/Snow Patrol - Open Your Eyes .mp3 +C:/Users/Rik/Music/Artists/Snow Patrol/Eyes Open/Snow Patrol - Shut Your Eyes .mp3 +C:/Users/Rik/Music/Artists/Snow Patrol/Eyes Open/Snow Patrol - Warmer Climate.mp3 +C:/Users/Rik/Music/Artists/Snow Patrol/Eyes Open/Snow Patrol - You're All I Have.mp3 +C:/Users/Rik/Music/Artists/Snow Patrol/Snow Patrol - Chocolate.mp3 +C:/Users/Rik/Music/Artists/Snow Patrol/Snow Patrol - Just Say Yes.mp3 +C:/Users/Rik/Music/Artists/Snow Patrol/Snow Patrol - Run.mp3 +C:/Users/Rik/Music/Artists/So They Say/Antidote for Irony/So They Say - Anxiety Is Setting In.mp3 +C:/Users/Rik/Music/Artists/So They Say/Antidote for Irony/So They Say - Good-Bye.mp3 +C:/Users/Rik/Music/Artists/So They Say/Antidote for Irony/So They Say - In Essence We Are Falling.mp3 +C:/Users/Rik/Music/Artists/So They Say/Antidote for Irony/So They Say - In Loving Memory Of....mp3 +C:/Users/Rik/Music/Artists/So They Say/Antidote for Irony/So They Say - Over Exposed Photo.mp3 +C:/Users/Rik/Music/Artists/So They Say/Antidote for Irony/So They Say - Talking In Circles.mp3 +C:/Users/Rik/Music/Artists/So They Say/Antidote for Irony/So They Say - The Burden.mp3 +C:/Users/Rik/Music/Artists/So They Say/Antidote for Irony/So They Say - You Asked, Where Are You Now.mp3 +C:/Users/Rik/Music/Artists/Stone Sour/Audio Secrecy/Stone Sour - Anna.mp3 +C:/Users/Rik/Music/Artists/Stone Sour/Audio Secrecy/Stone Sour - Dying.mp3 +C:/Users/Rik/Music/Artists/Stone Sour/Audio Secrecy/Stone Sour - Hate Not Gone.mp3 +C:/Users/Rik/Music/Artists/Stone Sour/Audio Secrecy/Stone Sour - Hesitate.mp3 +C:/Users/Rik/Music/Artists/Stone Sour/Audio Secrecy/Stone Sour - Home Again.mp3 +C:/Users/Rik/Music/Artists/Stone Sour/Audio Secrecy/Stone Sour - Imperfect.mp3 +C:/Users/Rik/Music/Artists/Stone Sour/Audio Secrecy/Stone Sour - Let's Be Honest.mp3 +C:/Users/Rik/Music/Artists/Stone Sour/Audio Secrecy/Stone Sour - Miracles.mp3 +C:/Users/Rik/Music/Artists/Stone Sour/Audio Secrecy/Stone Sour - Mission Statement.mp3 +C:/Users/Rik/Music/Artists/Stone Sour/Audio Secrecy/Stone Sour - Nylon 66.mp3 +C:/Users/Rik/Music/Artists/Stone Sour/Audio Secrecy/Stone Sour - Pieces.mp3 +C:/Users/Rik/Music/Artists/Stone Sour/Audio Secrecy/Stone Sour - Say You'll Haunt Me.mp3 +C:/Users/Rik/Music/Artists/Stone Sour/Audio Secrecy/Stone Sour - The Bitter End.mp3 +C:/Users/Rik/Music/Artists/Stone Sour/Audio Secrecy/Stone Sour - Threadbare.mp3 +C:/Users/Rik/Music/Artists/Stone Sour/Audio Secrecy/Stone Sour - Unfinished.mp3 +C:/Users/Rik/Music/Artists/Sum 41/Screaming Bloody Murder/Sum 41 - Baby You Don't Wanna Know.mp3 +C:/Users/Rik/Music/Artists/Sum 41/Screaming Bloody Murder/Sum 41 - Back Where I Belong.mp3 +C:/Users/Rik/Music/Artists/Sum 41/Screaming Bloody Murder/Sum 41 - Blood In My Eyes.mp3 +C:/Users/Rik/Music/Artists/Sum 41/Screaming Bloody Murder/Sum 41 - Crash.mp3 +C:/Users/Rik/Music/Artists/Sum 41/Screaming Bloody Murder/Sum 41 - Exit Song.mp3 +C:/Users/Rik/Music/Artists/Sum 41/Screaming Bloody Murder/Sum 41 - Happiness Machine.mp3 +C:/Users/Rik/Music/Artists/Sum 41/Screaming Bloody Murder/Sum 41 - Holy Image of Lies.mp3 +C:/Users/Rik/Music/Artists/Sum 41/Screaming Bloody Murder/Sum 41 - Jessica Kill.mp3 +C:/Users/Rik/Music/Artists/Sum 41/Screaming Bloody Murder/Sum 41 - Reason to Believe (Acoustic).mp3 +C:/Users/Rik/Music/Artists/Sum 41/Screaming Bloody Murder/Sum 41 - Reason to Believe.mp3 +C:/Users/Rik/Music/Artists/Sum 41/Screaming Bloody Murder/Sum 41 - Screaming Bloody Murder.mp3 +C:/Users/Rik/Music/Artists/Sum 41/Screaming Bloody Murder/Sum 41 - Sick of Everyone.mp3 +C:/Users/Rik/Music/Artists/Sum 41/Screaming Bloody Murder/Sum 41 - Skumfuk.mp3 +C:/Users/Rik/Music/Artists/Sum 41/Screaming Bloody Murder/Sum 41 - Time For You to Go.mp3 +C:/Users/Rik/Music/Artists/Sum 41/Screaming Bloody Murder/Sum 41 - What Am I to Say.mp3 +C:/Users/Rik/Music/Artists/Sum 41/Underclass Hero/Sum 41 - Best of Me.mp3 +C:/Users/Rik/Music/Artists/Sum 41/Underclass Hero/Sum 41 - Confusion and Frustration In Modern Times.mp3 +C:/Users/Rik/Music/Artists/Sum 41/Underclass Hero/Sum 41 - Count Your Last Blessings.mp3 +C:/Users/Rik/Music/Artists/Sum 41/Underclass Hero/Sum 41 - Dear Father.mp3 +C:/Users/Rik/Music/Artists/Sum 41/Underclass Hero/Sum 41 - King of Contradiction.mp3 +C:/Users/Rik/Music/Artists/Sum 41/Underclass Hero/Sum 41 - March of the Dogs.mp3 +C:/Users/Rik/Music/Artists/Sum 41/Underclass Hero/Sum 41 - Pull the Curtain.mp3 +C:/Users/Rik/Music/Artists/Sum 41/Underclass Hero/Sum 41 - So Long Goodbye.mp3 +C:/Users/Rik/Music/Artists/Sum 41/Underclass Hero/Sum 41 - Speak of the Devil.mp3 +C:/Users/Rik/Music/Artists/Sum 41/Underclass Hero/Sum 41 - The Jester.mp3 +C:/Users/Rik/Music/Artists/Sum 41/Underclass Hero/Sum 41 - Underclass Hero.mp3 +C:/Users/Rik/Music/Artists/Sum 41/Underclass Hero/Sum 41 - Walking Disaster.mp3 +C:/Users/Rik/Music/Artists/Sum 41/Underclass Hero/Sum 41 - With Me.mp3 +C:/Users/Rik/Music/Artists/The Academy Is/Almost Here/The Academy Is... - Almost Here.mp3 +C:/Users/Rik/Music/Artists/The Academy Is/Almost Here/The Academy Is... - Attention.mp3 +C:/Users/Rik/Music/Artists/The Academy Is/Almost Here/The Academy Is... - Black Mamba.mp3 +C:/Users/Rik/Music/Artists/The Academy Is/Almost Here/The Academy Is... - Checkmarks.mp3 +C:/Users/Rik/Music/Artists/The Academy Is/Almost Here/The Academy Is... - Classifieds.mp3 +C:/Users/Rik/Music/Artists/The Academy Is/Almost Here/The Academy Is... - Down and Out.mp3 +C:/Users/Rik/Music/Artists/The Academy Is/Almost Here/The Academy Is... - Season.mp3 +C:/Users/Rik/Music/Artists/The Academy Is/Almost Here/The Academy Is... - Skeptics and True Believers.mp3 +C:/Users/Rik/Music/Artists/The Academy Is/Almost Here/The Academy Is... - The Phrase That Pays.mp3 +C:/Users/Rik/Music/Artists/The All-American Rejects/Move Along/The All-American Rejects - 11.11 P.M.mp3 +C:/Users/Rik/Music/Artists/The All-American Rejects/Move Along/The All-American Rejects - Change Your Mind.mp3 +C:/Users/Rik/Music/Artists/The All-American Rejects/Move Along/The All-American Rejects - Dance Inside.mp3 +C:/Users/Rik/Music/Artists/The All-American Rejects/Move Along/The All-American Rejects - Dirty Little Secret.mp3 +C:/Users/Rik/Music/Artists/The All-American Rejects/Move Along/The All-American Rejects - I'm Waiting.mp3 +C:/Users/Rik/Music/Artists/The All-American Rejects/Move Along/The All-American Rejects - Move Along.mp3 +C:/Users/Rik/Music/Artists/The All-American Rejects/Move Along/The All-American Rejects - Stab My Back.mp3 +C:/Users/Rik/Music/Artists/The All-American Rejects/Move Along/The All-American Rejects - Top of the World.mp3 +C:/Users/Rik/Music/Artists/The All-American Rejects/When The World Comes Down/The All-American Rejects - Another Heart Calls.mp3 +C:/Users/Rik/Music/Artists/The All-American Rejects/When The World Comes Down/The All-American Rejects - Back to Me.mp3 +C:/Users/Rik/Music/Artists/The All-American Rejects/When The World Comes Down/The All-American Rejects - Believe.mp3 +C:/Users/Rik/Music/Artists/The All-American Rejects/When The World Comes Down/The All-American Rejects - Breakin'.mp3 +C:/Users/Rik/Music/Artists/The All-American Rejects/When The World Comes Down/The All-American Rejects - Damn Girl.mp3 +C:/Users/Rik/Music/Artists/The All-American Rejects/When The World Comes Down/The All-American Rejects - Fallin' Apart.mp3 +C:/Users/Rik/Music/Artists/The All-American Rejects/When The World Comes Down/The All-American Rejects - Gives You Hell.mp3 +C:/Users/Rik/Music/Artists/The All-American Rejects/When The World Comes Down/The All-American Rejects - I Wanna.mp3 +C:/Users/Rik/Music/Artists/The All-American Rejects/When The World Comes Down/The All-American Rejects - Mona Lisa.mp3 +C:/Users/Rik/Music/Artists/The All-American Rejects/When The World Comes Down/The All-American Rejects - Real World.mp3 +C:/Users/Rik/Music/Artists/The All-American Rejects/When The World Comes Down/The All-American Rejects - Sunshine.mp3 +C:/Users/Rik/Music/Artists/The All-American Rejects/When The World Comes Down/The All-American Rejects - The Wind Blows.mp3 +C:/Users/Rik/Music/Artists/The Fray/How To Save A Life/The Fray - All At Once.mp3 +C:/Users/Rik/Music/Artists/The Fray/How To Save A Life/The Fray - Dead Wrong.mp3 +C:/Users/Rik/Music/Artists/The Fray/How To Save A Life/The Fray - Fall Away.mp3 +C:/Users/Rik/Music/Artists/The Fray/How To Save A Life/The Fray - Heaven Forbid.mp3 +C:/Users/Rik/Music/Artists/The Fray/How To Save A Life/The Fray - How to Save a Life.mp3 +C:/Users/Rik/Music/Artists/The Fray/How To Save A Life/The Fray - Hundred.mp3 +C:/Users/Rik/Music/Artists/The Fray/How To Save A Life/The Fray - Little House.mp3 +C:/Users/Rik/Music/Artists/The Fray/How To Save A Life/The Fray - Look After You.mp3 +C:/Users/Rik/Music/Artists/The Fray/How To Save A Life/The Fray - Over My Head (Cable Car).mp3 +C:/Users/Rik/Music/Artists/The Fray/How To Save A Life/The Fray - She Is.mp3 +C:/Users/Rik/Music/Artists/The Fray/How To Save A Life/The Fray - Trust Me.mp3 +C:/Users/Rik/Music/Artists/The Hoosiers/The Illusion Of Safety/The Hoosiers - Bumpy Ride.mp3 +C:/Users/Rik/Music/Artists/The Hoosiers/The Illusion Of Safety/The Hoosiers - Choices.mp3 +C:/Users/Rik/Music/Artists/The Hoosiers/The Illusion Of Safety/The Hoosiers - Giddy Up.mp3 +C:/Users/Rik/Music/Artists/The Hoosiers/The Illusion Of Safety/The Hoosiers - Glorious.mp3 +C:/Users/Rik/Music/Artists/The Hoosiers/The Illusion Of Safety/The Hoosiers - Live By the Ocean.mp3 +C:/Users/Rik/Music/Artists/The Hoosiers/The Illusion Of Safety/The Hoosiers - Made to Measure.mp3 +C:/Users/Rik/Music/Artists/The Hoosiers/The Illusion Of Safety/The Hoosiers - Sarajevo.mp3 +C:/Users/Rik/Music/Artists/The Hoosiers/The Illusion Of Safety/The Hoosiers - Unlikely Hero.mp3 +C:/Users/Rik/Music/Artists/The Hoosiers/The Illusion Of Safety/The Hoosiers - Who Said Anything (About Falling In Love).mp3 +C:/Users/Rik/Music/Artists/The Killers/Day & Age/The Killers - A Crippling Blow.mp3 +C:/Users/Rik/Music/Artists/The Killers/Day & Age/The Killers - A Dustland Fairytale.mp3 +C:/Users/Rik/Music/Artists/The Killers/Day & Age/The Killers - Human.mp3 +C:/Users/Rik/Music/Artists/The Killers/Day & Age/The Killers - I Can't Stay.mp3 +C:/Users/Rik/Music/Artists/The Killers/Day & Age/The Killers - Joy Ride.mp3 +C:/Users/Rik/Music/Artists/The Killers/Day & Age/The Killers - Losing Touch.mp3 +C:/Users/Rik/Music/Artists/The Killers/Day & Age/The Killers - Neon Tiger.mp3 +C:/Users/Rik/Music/Artists/The Killers/Day & Age/The Killers - Spaceman.mp3 +C:/Users/Rik/Music/Artists/The Killers/Day & Age/The Killers - The World We Live In.mp3 +C:/Users/Rik/Music/Artists/The Killers/Day & Age/The Killers - This Is Your Life.mp3 +C:/Users/Rik/Music/Artists/The Killers/Hot Fuss/The Killers - All These Things That I've Done.mp3 +C:/Users/Rik/Music/Artists/The Killers/Hot Fuss/The Killers - Andy, You're a Star.mp3 +C:/Users/Rik/Music/Artists/The Killers/Hot Fuss/The Killers - Believe Me Natalie.mp3 +C:/Users/Rik/Music/Artists/The Killers/Hot Fuss/The Killers - Everything Will Be Alright.mp3 +C:/Users/Rik/Music/Artists/The Killers/Hot Fuss/The Killers - Glamorous Indie Rock & Roll.mp3 +C:/Users/Rik/Music/Artists/The Killers/Hot Fuss/The Killers - Indie Rock & Roll.mp3 +C:/Users/Rik/Music/Artists/The Killers/Hot Fuss/The Killers - Jenny Was a Friend of Mine.mp3 +C:/Users/Rik/Music/Artists/The Killers/Hot Fuss/The Killers - Midnight Show.mp3 +C:/Users/Rik/Music/Artists/The Killers/Hot Fuss/The Killers - Mr Brightside.mp3 +C:/Users/Rik/Music/Artists/The Killers/Hot Fuss/The Killers - Mr. Brightside.mp3 +C:/Users/Rik/Music/Artists/The Killers/Hot Fuss/The Killers - On Top.mp3 +C:/Users/Rik/Music/Artists/The Killers/Hot Fuss/The Killers - Smile Like You Mean It.mp3 +C:/Users/Rik/Music/Artists/The Killers/Hot Fuss/The Killers - The Ballad of Michael Valentine (Bonus).mp3 +C:/Users/Rik/Music/Artists/The Killers/Hot Fuss/The Killers - Under the Gun (Bonus).mp3 +C:/Users/Rik/Music/Artists/The Killers/Hot Fuss/The Killers - Who Let You Go (Bonus).mp3 +C:/Users/Rik/Music/Artists/The Offspring/Greatest Hits/The Offspring - (Can't Get My) Head Around You.mp3 +C:/Users/Rik/Music/Artists/The Offspring/Greatest Hits/The Offspring - All I Want.mp3 +C:/Users/Rik/Music/Artists/The Offspring/Greatest Hits/The Offspring - Can't Repeat.mp3 +C:/Users/Rik/Music/Artists/The Offspring/Greatest Hits/The Offspring - Come Out and Play (Keep 'em Separated).mp3 +C:/Users/Rik/Music/Artists/The Offspring/Greatest Hits/The Offspring - Defy You.mp3 +C:/Users/Rik/Music/Artists/The Offspring/Greatest Hits/The Offspring - Gone Away.mp3 +C:/Users/Rik/Music/Artists/The Offspring/Greatest Hits/The Offspring - Gotta Get Away.mp3 +C:/Users/Rik/Music/Artists/The Offspring/Greatest Hits/The Offspring - Hit That.mp3 +C:/Users/Rik/Music/Artists/The Offspring/Greatest Hits/The Offspring - Original Prankster.mp3 +C:/Users/Rik/Music/Artists/The Offspring/Greatest Hits/The Offspring - Pretty Fly (For a White Guy).mp3 +C:/Users/Rik/Music/Artists/The Offspring/Greatest Hits/The Offspring - Self Esteem.mp3 +C:/Users/Rik/Music/Artists/The Offspring/Greatest Hits/The Offspring - The Kids Aren't Alright.mp3 +C:/Users/Rik/Music/Artists/The Offspring/Greatest Hits/The Offspring - Want You Bad.mp3 +C:/Users/Rik/Music/Artists/The Offspring/Greatest Hits/The Offspring - Why Don't You Get a Job.mp3 +C:/Users/Rik/Music/Artists/The Script/Science & Faith/The Script - Dead Man Walking.mp3 +C:/Users/Rik/Music/Artists/The Script/Science & Faith/The Script - Exit Wounds.mp3 +C:/Users/Rik/Music/Artists/The Script/Science & Faith/The Script - For the First Time.mp3 +C:/Users/Rik/Music/Artists/The Script/Science & Faith/The Script - If You Ever Come Back.mp3 +C:/Users/Rik/Music/Artists/The Script/Science & Faith/The Script - Long Gone and Moved On.mp3 +C:/Users/Rik/Music/Artists/The Script/Science & Faith/The Script - Nothing.mp3 +C:/Users/Rik/Music/Artists/The Script/Science & Faith/The Script - Science & Faith.mp3 +C:/Users/Rik/Music/Artists/The Script/Science & Faith/The Script - This = Love.mp3 +C:/Users/Rik/Music/Artists/The Script/Science & Faith/The Script - You Won't Feel a Thing.mp3 +C:/Users/Rik/Music/Artists/The Script/The Script/The Script - Before the Worst.mp3 +C:/Users/Rik/Music/Artists/The Script/The Script/The Script - Breakeven.mp3 +C:/Users/Rik/Music/Artists/The Script/The Script/The Script - Fall For Anything.mp3 +C:/Users/Rik/Music/Artists/The Script/The Script/The Script - Rusty Halo.mp3 +C:/Users/Rik/Music/Artists/The Script/The Script/The Script - Talk You Down.mp3 +C:/Users/Rik/Music/Artists/The Script/The Script/The Script - The End Is Where I Begin.mp3 +C:/Users/Rik/Music/Artists/The Script/The Script/The Script - The Man Who Can't Be Moved.mp3 +C:/Users/Rik/Music/Artists/Three Days Grace/Life Starts Now/Three Days Grace - Bitter Taste.mp3 +C:/Users/Rik/Music/Artists/Three Days Grace/Life Starts Now/Three Days Grace - Break.mp3 +C:/Users/Rik/Music/Artists/Three Days Grace/Life Starts Now/Three Days Grace - Goin' Down.mp3 +C:/Users/Rik/Music/Artists/Three Days Grace/Life Starts Now/Three Days Grace - Last to Know.mp3 +C:/Users/Rik/Music/Artists/Three Days Grace/Life Starts Now/Three Days Grace - Life Starts Now.mp3 +C:/Users/Rik/Music/Artists/Three Days Grace/Life Starts Now/Three Days Grace - Lost In You.mp3 +C:/Users/Rik/Music/Artists/Three Days Grace/Life Starts Now/Three Days Grace - No More.mp3 +C:/Users/Rik/Music/Artists/Three Days Grace/Life Starts Now/Three Days Grace - Someone Who Cares.mp3 +C:/Users/Rik/Music/Artists/Three Days Grace/Life Starts Now/Three Days Grace - The Good Life.mp3 +C:/Users/Rik/Music/Artists/Three Days Grace/Life Starts Now/Three Days Grace - Without You.mp3 +C:/Users/Rik/Music/Artists/U2/No Line On The Horizon/U2 - Breathe.mp3 +C:/Users/Rik/Music/Artists/U2/No Line On The Horizon/U2 - Get On Your Boots.mp3 +C:/Users/Rik/Music/Artists/U2/No Line On The Horizon/U2 - I'll Go Crazy If I Don't Go Crazy Tonight.mp3 +C:/Users/Rik/Music/Artists/U2/No Line On The Horizon/U2 - Magnificent.mp3 +C:/Users/Rik/Music/Artists/U2/No Line On The Horizon/U2 - No Line On the Horizon.mp3 +C:/Users/Rik/Music/Artists/U2/No Line On The Horizon/U2 - Stand Up Comedy.mp3 +C:/Users/Rik/Music/Artists/U2/No Line On The Horizon/U2 - Unknown Caller.mp3 +C:/Users/Rik/Music/Artists/U2/No Line On The Horizon/U2 - White As Snow.mp3 +C:/Users/Rik/Music/Artists/U2/U2 - Beautiful Day.mp3 +C:/Users/Rik/Music/Artists/U2/U2 - Elevation.mp3 +C:/Users/Rik/Music/Artists/U2/U2 - I Still Haven't Found What I'm Looking For.mp3 +C:/Users/Rik/Music/Artists/U2/U2 - New Year's Day.mp3 +C:/Users/Rik/Music/Artists/U2/U2 - One.mp3 +C:/Users/Rik/Music/Artists/U2/U2 - Stuck In a Moment You Can't Get Out of.mp3 +C:/Users/Rik/Music/Artists/U2/U2 - Sunday Bloody Sunday .mp3 +C:/Users/Rik/Music/Artists/U2/U2 - Sweetest Thing.mp3 +C:/Users/Rik/Music/Artists/U2/U2 - The City of Blinding Lights.mp3 +C:/Users/Rik/Music/Artists/U2/U2 - Vertigo.mp3 +C:/Users/Rik/Music/Artists/U2/U2 - Where the Streets Have No Name.mp3 +C:/Users/Rik/Music/Artists/U2/U2 - With Or Without You.mp3 +C:/Users/Rik/Music/Artists/Weezer/Hurley/Weezer - All My Friends Are Insects (Bonus Track).mp3 +C:/Users/Rik/Music/Artists/Weezer/Hurley/Weezer - Brave New World.mp3 +C:/Users/Rik/Music/Artists/Weezer/Hurley/Weezer - Hang On.mp3 +C:/Users/Rik/Music/Artists/Weezer/Hurley/Weezer - I Want to Be Something (Bonus Track).mp3 +C:/Users/Rik/Music/Artists/Weezer/Hurley/Weezer - Memories.mp3 +C:/Users/Rik/Music/Artists/Weezer/Hurley/Weezer - Represent (Rocked Out Mix) %5Bbonus Track%5D.mp3 +C:/Users/Rik/Music/Artists/Weezer/Hurley/Weezer - Ruling Me.mp3 +C:/Users/Rik/Music/Artists/Weezer/Hurley/Weezer - Run Away.mp3 +C:/Users/Rik/Music/Artists/Weezer/Hurley/Weezer - Smart Girls.mp3 +C:/Users/Rik/Music/Artists/Weezer/Hurley/Weezer - Time Flies.mp3 +C:/Users/Rik/Music/Artists/Weezer/Hurley/Weezer - Trainwrecks.mp3 +C:/Users/Rik/Music/Artists/Weezer/Hurley/Weezer - Unspoken.mp3 +C:/Users/Rik/Music/Artists/Weezer/Hurley/Weezer - Viva La Vida (Bonus Track).mp3 +C:/Users/Rik/Music/Artists/Weezer/Hurley/Weezer - Where's My Sex.mp3 +C:/Users/Rik/Music/Artists/Yellowcard/Paper Walls/Yellowcard - Afraid.mp3 +C:/Users/Rik/Music/Artists/Yellowcard/Paper Walls/Yellowcard - Cut Me, Mick.mp3 +C:/Users/Rik/Music/Artists/Yellowcard/Paper Walls/Yellowcard - Date Line (I Am Gone).mp3 +C:/Users/Rik/Music/Artists/Yellowcard/Paper Walls/Yellowcard - Dear Bobbie.mp3 +C:/Users/Rik/Music/Artists/Yellowcard/Paper Walls/Yellowcard - Fighting.mp3 +C:/Users/Rik/Music/Artists/Yellowcard/Paper Walls/Yellowcard - Five Become Four.mp3 +C:/Users/Rik/Music/Artists/Yellowcard/Paper Walls/Yellowcard - Keeper.mp3 +C:/Users/Rik/Music/Artists/Yellowcard/Paper Walls/Yellowcard - Light Up the Sky.mp3 +C:/Users/Rik/Music/Artists/Yellowcard/Paper Walls/Yellowcard - Paper Walls.mp3 +C:/Users/Rik/Music/Artists/Yellowcard/Paper Walls/Yellowcard - Shadows and Regrets.mp3 +C:/Users/Rik/Music/Artists/Yellowcard/Paper Walls/Yellowcard - Shrink the World.mp3 +C:/Users/Rik/Music/Artists/Yellowcard/Paper Walls/Yellowcard - The Takedown.mp3 +C:/Users/Rik/Music/Artists/Yellowcard/Paper Walls/Yellowcard - You and Me and One Spotlight.mp3 +C:/Users/Rik/Music/Artists/Yellowcard/Yellowcard - October Nights.mp3 +C:/Users/Rik/Music/Artists/You Me At Six/Hold Me Down/You Me At Six - Contagious Chemistry.mp3 +C:/Users/Rik/Music/Artists/You Me At Six/Hold Me Down/You Me At Six - Fireworks.mp3 +C:/Users/Rik/Music/Artists/You Me At Six/Hold Me Down/You Me At Six - Hard to Swallow.mp3 +C:/Users/Rik/Music/Artists/You Me At Six/Hold Me Down/You Me At Six - Liquid Confidence.mp3 +C:/Users/Rik/Music/Artists/You Me At Six/Hold Me Down/You Me At Six - Playing the Blame Game.mp3 +C:/Users/Rik/Music/Artists/You Me At Six/Hold Me Down/You Me At Six - Safer to Hate Her.mp3 +C:/Users/Rik/Music/Artists/You Me At Six/Hold Me Down/You Me At Six - Stay With Me.mp3 +C:/Users/Rik/Music/Artists/You Me At Six/Hold Me Down/You Me At Six - Take Your Breath Away.mp3 +C:/Users/Rik/Music/Artists/You Me At Six/Hold Me Down/You Me At Six - There's No Such Thing As Accident.mp3 +C:/Users/Rik/Music/Artists/You Me At Six/Hold Me Down/You Me At Six - Trophy Eyes.mp3 +C:/Users/Rik/Music/Artists/You Me At Six/Hold Me Down/You Me At Six - Underdog.mp3 +C:/Users/Rik/Music/Old/Bad English - Time Stood Still.mp3 +C:/Users/Rik/Music/Old/Bon Jovi/Bon Jovi - In These Arms.mp3 +C:/Users/Rik/Music/Old/Bon Jovi/Bon Jovi - Livin' On a Prayer.mp3 +C:/Users/Rik/Music/Old/Don Henley - The Boys of Summer.mp3 +C:/Users/Rik/Music/Old/Duran Duran/Duran Duran - Ordinary World.mp3 +C:/Users/Rik/Music/Old/Duran Duran/Duran Duran - The Reflex.mp3 +C:/Users/Rik/Music/Old/Europe - The Final Countdown.mp3 +C:/Users/Rik/Music/Old/Genesis/Genesis - Land of Confusion.mp3 +C:/Users/Rik/Music/Old/Midnight Oil - Beds Are Burning.mp3 +C:/Users/Rik/Music/Old/No Doubt/No Doubt - It's My Life.mp3 +C:/Users/Rik/Music/Old/Survivor - Eye of the Tiger.mp3 +C:/Users/Rik/Music/Various/3 Doors Down/3 Doors Down - Here Without You.mp3 +C:/Users/Rik/Music/Various/3 Doors Down/3 Doors Down - Kryptonite.mp3 +C:/Users/Rik/Music/Various/A Silent Express - Will I Be Around.mp3 +C:/Users/Rik/Music/Various/Adam Lambert - Whataya Want From Me.mp3 +C:/Users/Rik/Music/Various/Alphabeat - The Spell.mp3 +C:/Users/Rik/Music/Various/Anouk/Anouk - Girl.mp3 +C:/Users/Rik/Music/Various/Anouk/Anouk - Nobody's Wife.mp3 +C:/Users/Rik/Music/Various/Anouk/Anouk - R U Kiddin' Me.mp3 +C:/Users/Rik/Music/Various/Avril Lavigne/Avril Lavigne - What the Hell.mp3 +C:/Users/Rik/Music/Various/Biffy Clyro - Many of Horror.mp3 +C:/Users/Rik/Music/Various/Brandon Flowers - Crossfire.mp3 +C:/Users/Rik/Music/Various/Carolina Liar - Show Me What Im Looking For.mp3 +C:/Users/Rik/Music/Various/Chumbawamba - Tubthumping.mp3 +C:/Users/Rik/Music/Various/Eagle Eye Cherry - Save Tonight.mp3 +C:/Users/Rik/Music/Various/Esm%C3%A9e Denters - Outta Here.mp3 +C:/Users/Rik/Music/Various/Falco Luneau - Nobody.mp3 +C:/Users/Rik/Music/Various/Freemasons - Uninvited.mp3 +C:/Users/Rik/Music/Various/Gavin DeGraw/Gavin Degraw - Chariot.mp3 +C:/Users/Rik/Music/Various/Gavin DeGraw/Gavin Degraw - Follow Through.mp3 +C:/Users/Rik/Music/Various/Gavin DeGraw/Gavin Degraw - In Love With a Girl.mp3 +C:/Users/Rik/Music/Various/Intwine - Happy.mp3 +C:/Users/Rik/Music/Various/Jaap - Don't Stop Believin'.mp3 +C:/Users/Rik/Music/Various/Jonas Brothers - Burnin' Up.mp3 +C:/Users/Rik/Music/Various/Joshua Radin - I'd Rather Be With You.mp3 +C:/Users/Rik/Music/Various/Kevin Rudolf - Let It Rock.mp3 +C:/Users/Rik/Music/Various/Kid Rock - All Summer Long.mp3 +C:/Users/Rik/Music/Various/Kylie Minogue/Kylie Minogue - All the Lovers.mp3 +C:/Users/Rik/Music/Various/Kylie Minogue/Kylie Minogue - Get Outta My Way.mp3 +C:/Users/Rik/Music/Various/Kylie Minogue/Kylie Minogue - Love At First Sight.mp3 +C:/Users/Rik/Music/Various/Kylie Minogue/Kylie Minogue - Wow.mp3 +C:/Users/Rik/Music/Various/Lenny Kravitz/Lenny Kravitz - Again.mp3 +C:/Users/Rik/Music/Various/Lenny Kravitz/Lenny Kravitz - Fly Away.mp3 +C:/Users/Rik/Music/Various/Liquido - Narcotic.mp3 +C:/Users/Rik/Music/Various/Live/Live - Heaven.mp3 +C:/Users/Rik/Music/Various/Live/Live - Overcome.mp3 +C:/Users/Rik/Music/Various/Live/Live - Run to the Water.mp3 +C:/Users/Rik/Music/Various/Live/Live - Selling the Drama.mp3 +C:/Users/Rik/Music/Various/Live/Live - The River.mp3 +C:/Users/Rik/Music/Various/Mando Diao - Dance With Somebody.mp3 +C:/Users/Rik/Music/Various/Maroon 5/Maroon 5 - Misery.mp3 +C:/Users/Rik/Music/Various/Maroon 5/Maroon 5 - Won't Go Home Without You.mp3 +C:/Users/Rik/Music/Various/Melee/Melee - Built to Last.mp3 +C:/Users/Rik/Music/Various/Melee/Melee - Imitation.mp3 +C:/Users/Rik/Music/Various/Mike Posner - Cooler Than Me.mp3 +C:/Users/Rik/Music/Various/Novastar/Novastar - Because.mp3 +C:/Users/Rik/Music/Various/Novastar/Novastar - Waiting So Long.mp3 +C:/Users/Rik/Music/Various/Oasis - Wonderwall.mp3 +C:/Users/Rik/Music/Various/One Night Only - Just For Tonight.mp3 +C:/Users/Rik/Music/Various/Robyn - With Every Heartbeat.mp3 +C:/Users/Rik/Music/Various/Roxette/Roxette - How Do You Do!.mp3 +C:/Users/Rik/Music/Various/Roxette/Roxette - It Must Have Been Love.mp3 +C:/Users/Rik/Music/Various/Roxette/Roxette - Joyride.mp3 +C:/Users/Rik/Music/Various/Roxette/Roxette - Listen to Your Heart.mp3 +C:/Users/Rik/Music/Various/Roxette/Roxette - The Look.mp3 +C:/Users/Rik/Music/Various/Scissor Sisters - Fire With Fire.mp3 +C:/Users/Rik/Music/Various/Scouting For Girls - Take a Change On Us.mp3 +C:/Users/Rik/Music/Various/Scouting for Girls/Scouting For Girls - Famous.mp3 +C:/Users/Rik/Music/Various/Scouting for Girls/Scouting For Girls - This Ain't a Love Song.mp3 +C:/Users/Rik/Music/Various/September/September - Can't Get Over.mp3 +C:/Users/Rik/Music/Various/September/September - Cry For You.mp3 +C:/Users/Rik/Music/Various/Sick Puppies - Maybe.mp3 +C:/Users/Rik/Music/Various/Simple Minds - Don't You (Forget About Me).mp3 +C:/Users/Rik/Music/Various/Spin Doctors - Two Princes.mp3 +C:/Users/Rik/Music/Various/Swedish House Mafia - One (Your Name).mp3 +C:/Users/Rik/Music/Various/Taio Cruz - Break Your Heart.mp3 +C:/Users/Rik/Music/Various/The Calling - Wherever You Will Go.mp3 +C:/Users/Rik/Music/Various/The Naked & Famous - Young Blood.mp3 +C:/Users/Rik/Music/Various/The Rasmus - In the Shadows.mp3 +C:/Users/Rik/Music/Various/Train/Train - Drops of Jupiter.mp3 +C:/Users/Rik/Music/Various/Train/Train - Hey, Soul Sister.mp3 +C:/Users/Rik/Music/Various/Train/Train - If It's Love.mp3 +C:/Users/Rik/Music/Various/Wheatus - Teenage Dirtbag.mp3 +C:/Users/Rik/Music/Various/Within Temptation - Faster.mp3 +C:/Users/Rik/Music/Various/Jason Derulo - In My Head.mp3 +C:/Users/Rik/Music/Artists/Foo Fighters/Wasting Light/Foo Fighters - Better Off.mp3 +C:/Users/Rik/Music/Artists/Foo Fighters/Wasting Light/Foo Fighters - I Should Have Known.mp3 +C:/Users/Rik/Music/Artists/Jimmy Eat World/Chase The Light/Jimmy Eat World - Always Be.mp3 +C:/Users/Rik/Music/Artists/Jimmy Eat World/Chase The Light/Jimmy Eat World - Big Casino.mp3 +C:/Users/Rik/Music/Artists/Jimmy Eat World/Chase The Light/Jimmy Eat World - Carry You.mp3 +C:/Users/Rik/Music/Artists/Jimmy Eat World/Chase The Light/Jimmy Eat World - Chase This Light.mp3 +C:/Users/Rik/Music/Artists/Jimmy Eat World/Chase The Light/Jimmy Eat World - Dizzy.mp3 +C:/Users/Rik/Music/Artists/Jimmy Eat World/Chase The Light/Jimmy Eat World - Electable (Give It Up).mp3 +C:/Users/Rik/Music/Artists/Jimmy Eat World/Chase The Light/Jimmy Eat World - Feeling Lucky.mp3 +C:/Users/Rik/Music/Artists/Jimmy Eat World/Chase The Light/Jimmy Eat World - Firefight.mp3 +C:/Users/Rik/Music/Artists/Jimmy Eat World/Chase The Light/Jimmy Eat World - Gotta Be Somebody's Blues.mp3 +C:/Users/Rik/Music/Artists/Jimmy Eat World/Chase The Light/Jimmy Eat World - Here It Goes.mp3 +C:/Users/Rik/Music/Artists/Jimmy Eat World/Chase The Light/Jimmy Eat World - Let It Happen.mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Still Not Getting Any/Simple Plan - Crazy.mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Still Not Getting Any/Simple Plan - Everytime.mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Still Not Getting Any/Simple Plan - Jump.mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Still Not Getting Any/Simple Plan - Me Against The World.mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Still Not Getting Any/Simple Plan - One.mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Still Not Getting Any/Simple Plan - Perfect World.mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Still Not Getting Any/Simple Plan - Promise.mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Still Not Getting Any/Simple Plan - Shut Up.mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Still Not Getting Any/Simple Plan - Thank You.mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Still Not Getting Any/Simple Plan - Untitled.mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Still Not Getting Any/Simple Plan - Welcome To My Life.mp3 +C:/Users/Rik/Music/Artists/Volbeat/Beyond Hell-Above Heaven/Volbeat - 16 Dollars.mp3 +C:/Users/Rik/Music/Artists/Volbeat/Beyond Hell-Above Heaven/Volbeat - 7 Shots.mp3 +C:/Users/Rik/Music/Artists/Volbeat/Beyond Hell-Above Heaven/Volbeat - A Better Believer.mp3 +C:/Users/Rik/Music/Artists/Volbeat/Beyond Hell-Above Heaven/Volbeat - A New Day.mp3 +C:/Users/Rik/Music/Artists/Volbeat/Beyond Hell-Above Heaven/Volbeat - A Warrior's Call.mp3 +C:/Users/Rik/Music/Artists/Volbeat/Beyond Hell-Above Heaven/Volbeat - Being 1.mp3 +C:/Users/Rik/Music/Artists/Volbeat/Beyond Hell-Above Heaven/Volbeat - Fallen.mp3 +C:/Users/Rik/Music/Artists/Volbeat/Beyond Hell-Above Heaven/Volbeat - Heaven Nor Hell.mp3 +C:/Users/Rik/Music/Artists/Volbeat/Beyond Hell-Above Heaven/Volbeat - Magic Zone.mp3 +C:/Users/Rik/Music/Artists/Volbeat/Beyond Hell-Above Heaven/Volbeat - Thanks.mp3 +C:/Users/Rik/Music/Artists/Volbeat/Beyond Hell-Above Heaven/Volbeat - The Mirror and the Ripper.mp3 +C:/Users/Rik/Music/Artists/Volbeat/Beyond Hell-Above Heaven/Volbeat - Who They Are.mp3 +C:/Users/Rik/Music/Various/Beady Eye - The Roller.mp3 +C:/Users/Rik/Music/Various/Depeche Mode - Just Can't Get Enough.mp3 +C:/Users/Rik/Music/Various/Kelly Clarkson/Kelly Clarkson - Because of You.mp3 +C:/Users/Rik/Music/Various/Kelly Clarkson/Kelly Clarkson - Behind These Hazel Eyes.mp3 +C:/Users/Rik/Music/Various/Kelly Clarkson/Kelly Clarkson - Since U Been Gone.mp3 +C:/Users/Rik/Music/Artists/The Gaslight Anthem/American Slang/The Gaslight Anthem - American Slang.mp3 +C:/Users/Rik/Music/Artists/The Gaslight Anthem/American Slang/The Gaslight Anthem - Boxer.mp3 +C:/Users/Rik/Music/Artists/The Gaslight Anthem/American Slang/The Gaslight Anthem - Bring It On.mp3 +C:/Users/Rik/Music/Artists/The Gaslight Anthem/American Slang/The Gaslight Anthem - Old Haunts.mp3 +C:/Users/Rik/Music/Artists/The Gaslight Anthem/American Slang/The Gaslight Anthem - Orphans.mp3 +C:/Users/Rik/Music/Artists/The Gaslight Anthem/American Slang/The Gaslight Anthem - Stay Lucky.mp3 +C:/Users/Rik/Music/Artists/The Gaslight Anthem/American Slang/The Gaslight Anthem - The Diamond Church Street Choir.mp3 +C:/Users/Rik/Music/Artists/The Gaslight Anthem/American Slang/The Gaslight Anthem - The Queen Of Lower Chelsea.mp3 +C:/Users/Rik/Music/Artists/The Gaslight Anthem/American Slang/The Gaslight Anthem - The Spirit Of Jazz.mp3 +C:/Users/Rik/Music/Artists/The Gaslight Anthem/American Slang/The Gaslight Anthem - We Did It When We Were Young.mp3 +C:/Users/Rik/Music/Artists/Blind/Blind/Blind - Break Away.mp3 +C:/Users/Rik/Music/Artists/Blind/Blind/Blind - Every You Every Me.mp3 +C:/Users/Rik/Music/Artists/Blind/Blind/Blind - Jesus Only Knows.mp3 +C:/Users/Rik/Music/Artists/Blind/Blind/Blind - Love Is Gone.mp3 +C:/Users/Rik/Music/Artists/Blind/Blind/Blind - Ordinary Day.mp3 +C:/Users/Rik/Music/Artists/Blind/Blind/Blind - People.mp3 +C:/Users/Rik/Music/Artists/Blind/Blind/Blind - Save Me Now.mp3 +C:/Users/Rik/Music/Artists/Blind/Blind/Blind - These Are the Days.mp3 +C:/Users/Rik/Music/Artists/Blind/Blind/Blind - Today I Break Loose.mp3 +C:/Users/Rik/Music/Artists/Blind/Blind/Blind - Triple X.mp3 +C:/Users/Rik/Music/Artists/Blind/Blind/Blind - Wake Me Up.mp3 +C:/Users/Rik/Music/Artists/Blind/Blind/Blind - We Can Stay.mp3 +C:/Users/Rik/Music/Artists/Blind/Blind/Blind - You.mp3 +C:/Users/Rik/Music/Artists/Cute Is What We Aim For/Rotation/Cute Is What We Aim For - Do What You Do.mp3 +C:/Users/Rik/Music/Artists/Cute Is What We Aim For/Rotation/Cute Is What We Aim For - Doctor.mp3 +C:/Users/Rik/Music/Artists/Cute Is What We Aim For/Rotation/Cute Is What We Aim For - Hollywood.mp3 +C:/Users/Rik/Music/Artists/Cute Is What We Aim For/Rotation/Cute Is What We Aim For - Loser.mp3 +C:/Users/Rik/Music/Artists/Cute Is What We Aim For/Rotation/Cute Is What We Aim For - Marriage to Millions.mp3 +C:/Users/Rik/Music/Artists/Cute Is What We Aim For/Rotation/Cute Is What We Aim For - Miss Sobriety.mp3 +C:/Users/Rik/Music/Artists/Cute Is What We Aim For/Rotation/Cute Is What We Aim For - Navigate Me.mp3 +C:/Users/Rik/Music/Artists/Cute Is What We Aim For/Rotation/Cute Is What We Aim For - Practice Makes Perfect.mp3 +C:/Users/Rik/Music/Artists/Cute Is What We Aim For/Rotation/Cute Is What We Aim For - Safe Ride.mp3 +C:/Users/Rik/Music/Artists/Cute Is What We Aim For/Rotation/Cute Is What We Aim For - The Lock Down Denial.mp3 +C:/Users/Rik/Music/Artists/Cute Is What We Aim For/Rotation/Cute Is What We Aim For - Time.mp3 +C:/Users/Rik/Music/Artists/Kids In Glass Houses/Dirt/Kids In Glass Houses - Artbreaker I.mp3 +C:/Users/Rik/Music/Artists/Kids In Glass Houses/Dirt/Kids In Glass Houses - Artbreaker II.mp3 +C:/Users/Rik/Music/Artists/Kids In Glass Houses/Dirt/Kids In Glass Houses - For Better Or Hearse.mp3 +C:/Users/Rik/Music/Artists/Kids In Glass Houses/Dirt/Kids In Glass Houses - Giving Up.mp3 +C:/Users/Rik/Music/Artists/Kids In Glass Houses/Dirt/Kids In Glass Houses - Hunt the Haunted.mp3 +C:/Users/Rik/Music/Artists/Kids In Glass Houses/Dirt/Kids In Glass Houses - Lilli Rose.mp3 +C:/Users/Rik/Music/Artists/Kids In Glass Houses/Dirt/Kids In Glass Houses - Matters At All.mp3 +C:/Users/Rik/Music/Artists/Kids In Glass Houses/Dirt/Kids In Glass Houses - Maybe Tomorrow.mp3 +C:/Users/Rik/Music/Artists/Kids In Glass Houses/Dirt/Kids In Glass Houses - Sunshine.mp3 +C:/Users/Rik/Music/Artists/Kids In Glass Houses/Dirt/Kids In Glass Houses - The Best Is Yet To Come.mp3 +C:/Users/Rik/Music/Artists/Kids In Glass Houses/Dirt/Kids In Glass Houses - The Morning Afterlife.mp3 +C:/Users/Rik/Music/Artists/Kids In Glass Houses/Dirt/Kids In Glass Houses - Undercover Lover.mp3 +C:/Users/Rik/Music/Artists/Kids In Glass Houses/Dirt/Kids In Glass Houses - Youngblood (Let It Out).mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Get Your Heart On!/Simple Plan - Anywhere Else But Here.mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Get Your Heart On!/Simple Plan - Astronaut.mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Get Your Heart On!/Simple Plan - Can't Keep My Hands Off You.mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Get Your Heart On!/Simple Plan - Freaking Me Out.mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Get Your Heart On!/Simple Plan - Gone Too Soon.mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Get Your Heart On!/Simple Plan - Jet Lag.mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Get Your Heart On!/Simple Plan - Last One Standing.mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Get Your Heart On!/Simple Plan - Loser Of The Year.mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Get Your Heart On!/Simple Plan - This Song Saved My Life.mp3 +C:/Users/Rik/Music/Artists/Simple Plan/Get Your Heart On!/Simple Plan - You Suck At Love.mp3 +C:/Users/Rik/Music/Various/The Von Bondies - C%60Mon C%60Mon.mp3 +C:/Users/Rik/Music/Various/White Stripes - Seven Nation Army.mp3 +C:/Users/Rik/Music/Artists/Futures/The Holiday/Futures - 16.mp3 +C:/Users/Rik/Music/Artists/Futures/The Holiday/Futures - Holiday.mp3 +C:/Users/Rik/Music/Artists/Futures/The Holiday/Futures - Sal Paradise.mp3 +C:/Users/Rik/Music/Artists/Futures/The Holiday/Futures - Take Me Home.mp3 +C:/Users/Rik/Music/Artists/Futures/The Holiday/Futures - Thank You.mp3 +C:/Users/Rik/Music/Artists/Futures/The Holiday/Futures - The Boy Who Cried Wolf.mp3 +C:/Users/Rik/Music/Artists/Futures/The Holiday/Futures - The Summer.mp3 +C:/Users/Rik/Music/Artists/Rise Against/Appeal To Reason/Rise Against - Audience of One.mp3 +C:/Users/Rik/Music/Artists/Rise Against/Appeal To Reason/Rise Against - Collapse (Post-Amerika).mp3 +C:/Users/Rik/Music/Artists/Rise Against/Appeal To Reason/Rise Against - Elective Amnesia.mp3 +C:/Users/Rik/Music/Artists/Rise Against/Appeal To Reason/Rise Against - Entertainment.mp3 +C:/Users/Rik/Music/Artists/Rise Against/Appeal To Reason/Rise Against - From Heads Unworthy.mp3 +C:/Users/Rik/Music/Artists/Rise Against/Appeal To Reason/Rise Against - Hairline Fracture.mp3 +C:/Users/Rik/Music/Artists/Rise Against/Appeal To Reason/Rise Against - Hero of War.mp3 +C:/Users/Rik/Music/Artists/Rise Against/Appeal To Reason/Rise Against - Kotov Syndrome.mp3 +C:/Users/Rik/Music/Artists/Rise Against/Appeal To Reason/Rise Against - Long Forgotten Sons.mp3 +C:/Users/Rik/Music/Artists/Rise Against/Appeal To Reason/Rise Against - Prayer of the Refugee.mp3 +C:/Users/Rik/Music/Artists/Rise Against/Appeal To Reason/Rise Against - Re-Education (Through Labor).mp3 +C:/Users/Rik/Music/Artists/Rise Against/Appeal To Reason/Rise Against - Savior.mp3 +C:/Users/Rik/Music/Artists/Rise Against/Appeal To Reason/Rise Against - The Dirt Whispered.mp3 +C:/Users/Rik/Music/Artists/Rise Against/Appeal To Reason/Rise Against - The Strength to Go On.mp3 +C:/Users/Rik/Music/Artists/Rise Against/Appeal To Reason/Rise Against - Whereabouts Unknown.mp3 +C:/Users/Rik/Music/Artists/White Lies/To Lose My Life/White Lies - A Place To Hide.mp3 +C:/Users/Rik/Music/Artists/White Lies/To Lose My Life/White Lies - Death.mp3 +C:/Users/Rik/Music/Artists/White Lies/To Lose My Life/White Lies - E.S.T..mp3 +C:/Users/Rik/Music/Artists/White Lies/To Lose My Life/White Lies - Farewell To The Fairground.mp3 +C:/Users/Rik/Music/Artists/White Lies/To Lose My Life/White Lies - Fifty On Our Foreheads.mp3 +C:/Users/Rik/Music/Artists/White Lies/To Lose My Life/White Lies - From The Stars.mp3 +C:/Users/Rik/Music/Artists/White Lies/To Lose My Life/White Lies - Nothing To Give.mp3 +C:/Users/Rik/Music/Artists/White Lies/To Lose My Life/White Lies - The Price Of Love.mp3 +C:/Users/Rik/Music/Artists/White Lies/To Lose My Life/White Lies - To Lose My Life.mp3 +C:/Users/Rik/Music/Artists/White Lies/To Lose My Life/White Lies - Unfinished Business.mp3 +C:/Users/Rik/Music/Artists/Yellowcard/When You're Through Thinking, Say Yes/Yellowcard - Be the Young.mp3 +C:/Users/Rik/Music/Artists/Yellowcard/When You're Through Thinking, Say Yes/Yellowcard - For You and Your Denial.mp3 +C:/Users/Rik/Music/Artists/Yellowcard/When You're Through Thinking, Say Yes/Yellowcard - Hang You Up.mp3 +C:/Users/Rik/Music/Artists/Yellowcard/When You're Through Thinking, Say Yes/Yellowcard - Hide.mp3 +C:/Users/Rik/Music/Artists/Yellowcard/When You're Through Thinking, Say Yes/Yellowcard - Life of Leaving Home.mp3 +C:/Users/Rik/Music/Artists/Yellowcard/When You're Through Thinking, Say Yes/Yellowcard - Promises.mp3 +C:/Users/Rik/Music/Artists/Yellowcard/When You're Through Thinking, Say Yes/Yellowcard - See Me Smiling.mp3 +C:/Users/Rik/Music/Artists/Yellowcard/When You're Through Thinking, Say Yes/Yellowcard - Sing for Me (Acoustic).mp3 +C:/Users/Rik/Music/Artists/Yellowcard/When You're Through Thinking, Say Yes/Yellowcard - Sing for Me.mp3 +C:/Users/Rik/Music/Artists/Yellowcard/When You're Through Thinking, Say Yes/Yellowcard - Soundtrack.mp3 +C:/Users/Rik/Music/Artists/Yellowcard/When You're Through Thinking, Say Yes/Yellowcard - The Sound of You and Me.mp3 +C:/Users/Rik/Music/Artists/Yellowcard/When You're Through Thinking, Say Yes/Yellowcard - With You Around.mp3 +C:/Users/Rik/Music/Artists/Fall Out Boy/Infinity On High/Fall Out Boy - Bang The Doldrums.mp3 +C:/Users/Rik/Music/Artists/Fall Out Boy/Infinity On High/Fall Out Boy - Don't You Know Who I Think I Am.mp3 +C:/Users/Rik/Music/Artists/Fall Out Boy/Infinity On High/Fall Out Boy - Fame.mp3 +C:/Users/Rik/Music/Artists/Fall Out Boy/Infinity On High/Fall Out Boy - Hum Hallelujah.mp3 +C:/Users/Rik/Music/Artists/Fall Out Boy/Infinity On High/Fall Out Boy - I'm Like A Lawyer With The Way I'm Always Trying To Get You Off (me+you).mp3 +C:/Users/Rik/Music/Artists/Fall Out Boy/Infinity On High/Fall Out Boy - I've Got All This Ringing In My Ears And None On My Fingers.mp3 +C:/Users/Rik/Music/Artists/Fall Out Boy/Infinity On High/Fall Out Boy - Thanks For The Memories.mp3 +C:/Users/Rik/Music/Artists/Fall Out Boy/Infinity On High/Fall Out Boy - The (After) Life Of The Party.mp3 +C:/Users/Rik/Music/Artists/Fall Out Boy/Infinity On High/Fall Out Boy - The Carpal Tunnel Of Love.mp3 +C:/Users/Rik/Music/Artists/Fall Out Boy/Infinity On High/Fall Out Boy - The Take Over, The Breaks Over.mp3 +C:/Users/Rik/Music/Artists/Fall Out Boy/Infinity On High/Fall Out Boy - This Ain't A Scene, It's An Arms Race.mp3 +C:/Users/Rik/Music/Artists/Fall Out Boy/Infinity On High/Fall Out Boy - Thriller.mp3 +C:/Users/Rik/Music/Artists/Fall Out Boy/Infinity On High/Fall Out Boy - You're Crashing, But You're No Wave.mp3 +C:/Users/Rik/Music/Artists/Jimmy Eat World/Invented/Jimmy Eat World - Action Needs An Audience.mp3 +C:/Users/Rik/Music/Artists/Jimmy Eat World/Invented/Jimmy Eat World - Coffee And Cigarettes.mp3 +C:/Users/Rik/Music/Artists/Jimmy Eat World/Invented/Jimmy Eat World - Cut.mp3 +C:/Users/Rik/Music/Artists/Jimmy Eat World/Invented/Jimmy Eat World - Evidence.mp3 +C:/Users/Rik/Music/Artists/Jimmy Eat World/Invented/Jimmy Eat World - Heart Is Hard To Find.mp3 +C:/Users/Rik/Music/Artists/Jimmy Eat World/Invented/Jimmy Eat World - Higher Devotion.mp3 +C:/Users/Rik/Music/Artists/Jimmy Eat World/Invented/Jimmy Eat World - Invented.mp3 +C:/Users/Rik/Music/Artists/Jimmy Eat World/Invented/Jimmy Eat World - Littlething.mp3 +C:/Users/Rik/Music/Artists/Jimmy Eat World/Invented/Jimmy Eat World - Mixtape.mp3 +C:/Users/Rik/Music/Artists/Jimmy Eat World/Invented/Jimmy Eat World - Movielike.mp3 +C:/Users/Rik/Music/Artists/Jimmy Eat World/Invented/Jimmy Eat World - My Best Theory.mp3 +C:/Users/Rik/Music/Artists/Jimmy Eat World/Invented/Jimmy Eat World - Stop.mp3 +C:/Users/Rik/Music/Artists/Red/Until We Have Faces/Red - Best Is Yet to Come.mp3 +C:/Users/Rik/Music/Artists/Red/Until We Have Faces/Red - Buried Beneath.mp3 +C:/Users/Rik/Music/Artists/Red/Until We Have Faces/Red - Faceless.mp3 +C:/Users/Rik/Music/Artists/Red/Until We Have Faces/Red - Feed the Machine.mp3 +C:/Users/Rik/Music/Artists/Red/Until We Have Faces/Red - Hymn for the Missing.mp3 +C:/Users/Rik/Music/Artists/Red/Until We Have Faces/Red - Let It Burn.mp3 +C:/Users/Rik/Music/Artists/Red/Until We Have Faces/Red - Lie to Me (Denial).mp3 +C:/Users/Rik/Music/Artists/Red/Until We Have Faces/Red - Not Alone.mp3 +C:/Users/Rik/Music/Artists/Red/Until We Have Faces/Red - The Outside.mp3 +C:/Users/Rik/Music/Artists/Red/Until We Have Faces/Red - Watch You Crawl.mp3 +C:/Users/Rik/Music/Artists/Red/Until We Have Faces/Red - Who We Are.mp3 +C:/Users/Rik/Music/Artists/Framing Hanley/A Promise To Burn/Framing Hanley - Back To Go Again.mp3 +C:/Users/Rik/Music/Artists/Framing Hanley/A Promise To Burn/Framing Hanley - Bittersweet Sundown.mp3 +C:/Users/Rik/Music/Artists/Framing Hanley/A Promise To Burn/Framing Hanley - Fool With Dreams.mp3 +C:/Users/Rik/Music/Artists/Framing Hanley/A Promise To Burn/Framing Hanley - Intro.mp3 +C:/Users/Rik/Music/Artists/Framing Hanley/A Promise To Burn/Framing Hanley - Livin' So Divine.mp3 +C:/Users/Rik/Music/Artists/Framing Hanley/A Promise To Burn/Framing Hanley - Photographs & Gasoline.mp3 +C:/Users/Rik/Music/Artists/Framing Hanley/A Promise To Burn/Framing Hanley - The Burn.mp3 +C:/Users/Rik/Music/Artists/Framing Hanley/A Promise To Burn/Framing Hanley - The Promise.mp3 +C:/Users/Rik/Music/Artists/Framing Hanley/A Promise To Burn/Framing Hanley - Wake Up.mp3 +C:/Users/Rik/Music/Artists/Framing Hanley/A Promise To Burn/Framing Hanley - WarZone.mp3 +C:/Users/Rik/Music/Artists/Framing Hanley/A Promise To Burn/Framing Hanley - Weight of The World.mp3 +C:/Users/Rik/Music/Artists/Framing Hanley/A Promise To Burn/Framing Hanley - You Stupid Girl.mp3 +C:/Users/Rik/Music/Artists/Framing Hanley/A Promise To Burn/Framing Hanley - You.mp3 +C:/Users/Rik/Music/Artists/Anberlin/Cities/Anberlin - (Fin).mp3 +C:/Users/Rik/Music/Artists/Anberlin/Cities/Anberlin - A Whisper & A Clamour.mp3 +C:/Users/Rik/Music/Artists/Anberlin/Cities/Anberlin - Adelaide.mp3 +C:/Users/Rik/Music/Artists/Anberlin/Cities/Anberlin - Alexithymia.mp3 +C:/Users/Rik/Music/Artists/Anberlin/Cities/Anberlin - Debut.mp3 +C:/Users/Rik/Music/Artists/Anberlin/Cities/Anberlin - Dismantle. Repair.mp3 +C:/Users/Rik/Music/Artists/Anberlin/Cities/Anberlin - Godspeed.mp3 +C:/Users/Rik/Music/Artists/Anberlin/Cities/Anberlin - Hello Alone.mp3 +C:/Users/Rik/Music/Artists/Anberlin/Cities/Anberlin - Inevitable.mp3 +C:/Users/Rik/Music/Artists/Anberlin/Cities/Anberlin - Reclusion.mp3 +C:/Users/Rik/Music/Artists/Anberlin/Cities/Anberlin - The Promise.mp3 +C:/Users/Rik/Music/Artists/Anberlin/Cities/Anberlin - The Unwinding Cable Car.mp3 +C:/Users/Rik/Music/Artists/Anberlin/Cities/Anberlin - There Is A Light That Never Goes Dope.mp3 +C:/Users/Rik/Music/Artists/Anberlin/Cities/Anberlin - There Is No Mathematics To Love And Loss.mp3 +C:/Users/Rik/Music/Artists/Anberlin/Cities/Anberlin - Uncanny.mp3 +C:/Users/Rik/Music/Artists/Anberlin/New Surrender/Anberlin - Blame Me! Blame Me!.mp3 +C:/Users/Rik/Music/Artists/Anberlin/New Surrender/Anberlin - Breaking.mp3 +C:/Users/Rik/Music/Artists/Anberlin/New Surrender/Anberlin - Breathe.mp3 +C:/Users/Rik/Music/Artists/Anberlin/New Surrender/Anberlin - Burn Out Brighter (Northern Lights).mp3 +C:/Users/Rik/Music/Artists/Anberlin/New Surrender/Anberlin - Disappear.mp3 +C:/Users/Rik/Music/Artists/Anberlin/New Surrender/Anberlin - Feel Good Drag.mp3 +C:/Users/Rik/Music/Artists/Anberlin/New Surrender/Anberlin - Haight St.mp3 +C:/Users/Rik/Music/Artists/Anberlin/New Surrender/Anberlin - Misearbile Visu (Ex Malo Bonum).mp3 +C:/Users/Rik/Music/Artists/Anberlin/New Surrender/Anberlin - Retrace.mp3 +C:/Users/Rik/Music/Artists/Anberlin/New Surrender/Anberlin - Soft Skeletons.mp3 +C:/Users/Rik/Music/Artists/Anberlin/New Surrender/Anberlin - The Resistance.mp3 +C:/Users/Rik/Music/Artists/Anberlin/New Surrender/Anberlin - Younglife.mp3 +C:/Users/Rik/Music/Artists/Arcade Fire/Neon Bible/Arcade Fire - Antichrist Television Blues.mp3 +C:/Users/Rik/Music/Artists/Arcade Fire/Neon Bible/Arcade Fire - Black Mirror.mp3 +C:/Users/Rik/Music/Artists/Arcade Fire/Neon Bible/Arcade Fire - Black WaveBad Vibrations.mp3 +C:/Users/Rik/Music/Artists/Arcade Fire/Neon Bible/Arcade Fire - Intervention.mp3 +C:/Users/Rik/Music/Artists/Arcade Fire/Neon Bible/Arcade Fire - Keep The Car Running.mp3 +C:/Users/Rik/Music/Artists/Arcade Fire/Neon Bible/Arcade Fire - No Cars Go.mp3 +C:/Users/Rik/Music/Artists/Arcade Fire/Neon Bible/Arcade Fire - Ocean Of Noise.mp3 +C:/Users/Rik/Music/Artists/Arcade Fire/Neon Bible/Arcade Fire - Well & The Lighthouse, The.mp3 +C:/Users/Rik/Music/Artists/Arcade Fire/Neon Bible/Arcade Fire - Windowsill.mp3 +C:/Users/Rik/Music/Artists/Green Day/21st Century Breakdown/Green Day - %C2%A1Viva la Gloria!.mp3 +C:/Users/Rik/Music/Artists/The Gaslight Anthem/Sink or Swim/The Gaslight Anthem - 1990.mp3 +C:/Users/Rik/Music/Artists/The Gaslight Anthem/Sink or Swim/The Gaslight Anthem - Angry Johnny and the Radio.mp3 +C:/Users/Rik/Music/Artists/The Gaslight Anthem/Sink or Swim/The Gaslight Anthem - Bomboxes and Dictionaries.mp3 +C:/Users/Rik/Music/Artists/The Gaslight Anthem/Sink or Swim/The Gaslight Anthem - Drive.mp3 +C:/Users/Rik/Music/Artists/The Gaslight Anthem/Sink or Swim/The Gaslight Anthem - I Coul'da Been a Contender.mp3 +C:/Users/Rik/Music/Artists/The Gaslight Anthem/Sink or Swim/The Gaslight Anthem - I'da Called You Woody, Joe.mp3 +C:/Users/Rik/Music/Artists/The Gaslight Anthem/Sink or Swim/The Gaslight Anthem - Red in the Morning.mp3 +C:/Users/Rik/Music/Artists/The Gaslight Anthem/Sink or Swim/The Gaslight Anthem - We Came to Dance.mp3 +C:/Users/Rik/Music/Artists/The Gaslight Anthem/Sink or Swim/The Gaslight Anthem - We're Getting A Divorce, You Keep The Dinner.mp3 +C:/Users/Rik/Music/Artists/The Gaslight Anthem/Sink or Swim/The Gaslight Anthem - Wooderson.mp3 +C:/Users/Rik/Music/Artists/Volbeat/Guitar Gangsters & Cadillac Blood/Volbeat - Back To Prom.mp3 +C:/Users/Rik/Music/Artists/Volbeat/Guitar Gangsters & Cadillac Blood/Volbeat - Broken Man And The Dawn.mp3 +C:/Users/Rik/Music/Artists/Volbeat/Guitar Gangsters & Cadillac Blood/Volbeat - End Of The Road.mp3 +C:/Users/Rik/Music/Artists/Volbeat/Guitar Gangsters & Cadillac Blood/Volbeat - Find That Soul.mp3 +C:/Users/Rik/Music/Artists/Volbeat/Guitar Gangsters & Cadillac Blood/Volbeat - Guitar Gangsters & Cadillac Blood.mp3 +C:/Users/Rik/Music/Artists/Volbeat/Guitar Gangsters & Cadillac Blood/Volbeat - Hallelujah Goat.mp3 +C:/Users/Rik/Music/Artists/Volbeat/Guitar Gangsters & Cadillac Blood/Volbeat - I'm So Lonesome I Could Cry.mp3 +C:/Users/Rik/Music/Artists/Volbeat/Guitar Gangsters & Cadillac Blood/Volbeat - Light A Way.mp3 +C:/Users/Rik/Music/Artists/Volbeat/Guitar Gangsters & Cadillac Blood/Volbeat - Making Believe.mp3 +C:/Users/Rik/Music/Artists/Volbeat/Guitar Gangsters & Cadillac Blood/Volbeat - Mary Ann' s Place.mp3 +C:/Users/Rik/Music/Artists/Volbeat/Guitar Gangsters & Cadillac Blood/Volbeat - Maybellene I Hofteholder.mp3 +C:/Users/Rik/Music/Artists/Volbeat/Guitar Gangsters & Cadillac Blood/Volbeat - Still Counting.mp3 +C:/Users/Rik/Music/Artists/Volbeat/Guitar Gangsters & Cadillac Blood/Volbeat - We.mp3 +C:/Users/Rik/Music/Artists/Volbeat/Guitar Gangsters & Cadillac Blood/Volbeat - Wild Rover Of Hell.mp3 +C:/Users/Rik/Music/Artists/My Chemical Romance/Danger Days - The True Lives Of The Fabulous Killjoys/My Chemical Romance - Bulletproof Heart.mp3 +C:/Users/Rik/Music/Artists/My Chemical Romance/Danger Days - The True Lives Of The Fabulous Killjoys/My Chemical Romance - Destroya.mp3 +C:/Users/Rik/Music/Artists/My Chemical Romance/Danger Days - The True Lives Of The Fabulous Killjoys/My Chemical Romance - Party Poison.mp3 +C:/Users/Rik/Music/Artists/My Chemical Romance/Danger Days - The True Lives Of The Fabulous Killjoys/My Chemical Romance - Planetary (Go!).mp3 +C:/Users/Rik/Music/Artists/My Chemical Romance/Danger Days - The True Lives Of The Fabulous Killjoys/My Chemical Romance - Save Yourself- I'll Hold Them Back.mp3 +C:/Users/Rik/Music/Artists/My Chemical Romance/Danger Days - The True Lives Of The Fabulous Killjoys/My Chemical Romance - S-C-A-R-E-C-R-O-W.mp3 +C:/Users/Rik/Music/Artists/My Chemical Romance/Danger Days - The True Lives Of The Fabulous Killjoys/My Chemical Romance - Sing.mp3 +C:/Users/Rik/Music/Artists/My Chemical Romance/Danger Days - The True Lives Of The Fabulous Killjoys/My Chemical Romance - Summertime.mp3 +C:/Users/Rik/Music/Artists/My Chemical Romance/Danger Days - The True Lives Of The Fabulous Killjoys/My Chemical Romance - The Kids From Yesterday.mp3 +C:/Users/Rik/Music/Artists/My Chemical Romance/Danger Days - The True Lives Of The Fabulous Killjoys/My Chemical Romance - The Only Hope For Me Is You.mp3 +C:/Users/Rik/Music/Artists/My Chemical Romance/Danger Days - The True Lives Of The Fabulous Killjoys/My Chemical Romance - Vampire Money.mp3 +C:/Users/Rik/Music/Artists/Longwave/Secrets Are Sinister/Longwave - Eyes Like Headlights.mp3 +C:/Users/Rik/Music/Artists/Longwave/Secrets Are Sinister/Longwave - I Don't Dare.mp3 +C:/Users/Rik/Music/Artists/Longwave/Secrets Are Sinister/Longwave - It's True.mp3 +C:/Users/Rik/Music/Artists/Longwave/Secrets Are Sinister/Longwave - Life Is Wrong.mp3 +C:/Users/Rik/Music/Artists/Longwave/Secrets Are Sinister/Longwave - No Direction.mp3 +C:/Users/Rik/Music/Artists/Longwave/Secrets Are Sinister/Longwave - Satellites.mp3 +C:/Users/Rik/Music/Artists/Longwave/Secrets Are Sinister/Longwave - Secrets Are Sinister.mp3 +C:/Users/Rik/Music/Artists/Longwave/Secrets Are Sinister/Longwave - Shining Hours.mp3 +C:/Users/Rik/Music/Artists/Longwave/Secrets Are Sinister/Longwave - Sideways Sideways Rain.mp3 +C:/Users/Rik/Music/Artists/Longwave/Secrets Are Sinister/Longwave - Sirens In The Deep Sea.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/I'm With You/Red Hot Chili Peppers - Annie Wants a Baby.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/I'm With You/Red Hot Chili Peppers - Brendan's Death Song.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/I'm With You/Red Hot Chili Peppers - Dance, Dance, Dance.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/I'm With You/Red Hot Chili Peppers - Did I Let You Know.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/I'm With You/Red Hot Chili Peppers - Ethiopia.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/I'm With You/Red Hot Chili Peppers - Even You Brutus.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/I'm With You/Red Hot Chili Peppers - Factory of Faith.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/I'm With You/Red Hot Chili Peppers - Goodbye Hooray.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/I'm With You/Red Hot Chili Peppers - Happiness Loves Company.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/I'm With You/Red Hot Chili Peppers - Look Around.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/I'm With You/Red Hot Chili Peppers - Meet Me At the Corner.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/I'm With You/Red Hot Chili Peppers - Monarchy of Roses.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/I'm With You/Red Hot Chili Peppers - Police Station.mp3 +C:/Users/Rik/Music/Artists/Red Hot Chili Peppers/I'm With You/Red Hot Chili Peppers - The Adventures of Rain Dance Maggie.mp3 +C:/Users/Rik/Music/Artists/Amber Pacific/Virtues/Amber Pacific - An Anthem For The Young At Heart.mp3 +C:/Users/Rik/Music/Artists/Amber Pacific/Virtues/Amber Pacific - Burdens Of The Past.mp3 +C:/Users/Rik/Music/Artists/Amber Pacific/Virtues/Amber Pacific - Conviction.mp3 +C:/Users/Rik/Music/Artists/Amber Pacific/Virtues/Amber Pacific - Shine.mp3 +C:/Users/Rik/Music/Artists/Amber Pacific/Virtues/Amber Pacific - Something To Be Said.mp3 +C:/Users/Rik/Music/Artists/Amber Pacific/Virtues/Amber Pacific - The Best Mistake.mp3 +C:/Users/Rik/Music/Artists/Amber Pacific/Virtues/Amber Pacific - The Girl Who Destroys.mp3 +C:/Users/Rik/Music/Artists/Amber Pacific/Virtues/Amber Pacific - The Good Life.mp3 +C:/Users/Rik/Music/Artists/Amber Pacific/Virtues/Amber Pacific - Three Words.mp3 +C:/Users/Rik/Music/Artists/Amber Pacific/Virtues/Amber Pacific - We Can't Fake This.mp3 +C:/Users/Rik/Music/Artists/Amber Pacific/Virtues/Amber Pacific - What Matters Most.mp3 +C:/Users/Rik/Music/Old/Nirvana - Smells Like Teen Spirit.mp3 +C:/Users/Rik/Music/Artists/10 Years Feeding/Feeding the Wolves/10 Years - Don't Fight It.mp3 +C:/Users/Rik/Music/Artists/Cold War Kids/Mine Is Yours/Cold War Kids - Broken Open.mp3 +C:/Users/Rik/Music/Artists/Cold War Kids/Mine Is Yours/Cold War Kids - Bulldozer.mp3 +C:/Users/Rik/Music/Artists/Cold War Kids/Mine Is Yours/Cold War Kids - Cold Toes On The Cold Floor.mp3 +C:/Users/Rik/Music/Artists/Cold War Kids/Mine Is Yours/Cold War Kids - Finally Begin.mp3 +C:/Users/Rik/Music/Artists/Cold War Kids/Mine Is Yours/Cold War Kids - Louder Than Ever.mp3 +C:/Users/Rik/Music/Artists/Cold War Kids/Mine Is Yours/Cold War Kids - Mine Is Yours.mp3 +C:/Users/Rik/Music/Artists/Cold War Kids/Mine Is Yours/Cold War Kids - Out Of The Wilderness.mp3 +C:/Users/Rik/Music/Artists/Cold War Kids/Mine Is Yours/Cold War Kids - Royal Blue.mp3 +C:/Users/Rik/Music/Artists/Cold War Kids/Mine Is Yours/Cold War Kids - Sensitive Kid.mp3 +C:/Users/Rik/Music/Artists/Cold War Kids/Mine Is Yours/Cold War Kids - Skip The Charades.mp3 +C:/Users/Rik/Music/Artists/Sum 41/Screaming Bloody Murder/Sum 41 - We're the Same.mp3 +C:/Users/Rik/Music/Artists/Maximo Park/Our Earthly Pleasures/Maximo Park - A Fortnight's Time.mp3 +C:/Users/Rik/Music/Artists/Maximo Park/Our Earthly Pleasures/Maximo Park - Books From Boxes.mp3 +C:/Users/Rik/Music/Artists/Maximo Park/Our Earthly Pleasures/Maximo Park - By The Monument.mp3 +C:/Users/Rik/Music/Artists/Maximo Park/Our Earthly Pleasures/Maximo Park - Girls Who Play Guitars.mp3 +C:/Users/Rik/Music/Artists/Maximo Park/Our Earthly Pleasures/Maximo Park - Karaoke Plays.mp3 +C:/Users/Rik/Music/Artists/Maximo Park/Our Earthly Pleasures/Maximo Park - Nosebleed.mp3 +C:/Users/Rik/Music/Artists/Maximo Park/Our Earthly Pleasures/Maximo Park - Our Velocity.mp3 +C:/Users/Rik/Music/Artists/Maximo Park/Our Earthly Pleasures/Maximo Park - Parisian Skies.mp3 +C:/Users/Rik/Music/Artists/Maximo Park/Our Earthly Pleasures/Maximo Park - Russian Literature.mp3 +C:/Users/Rik/Music/Artists/Maximo Park/Our Earthly Pleasures/Maximo Park - Sandblasted And Set Free.mp3 +C:/Users/Rik/Music/Artists/Maximo Park/Our Earthly Pleasures/Maximo Park - The Unshockable.mp3 +C:/Users/Rik/Music/Artists/Maximo Park/Our Earthly Pleasures/Maximo Park - Your Urge.mp3 +C:/Users/Rik/Music/Artists/Stereophonics/Keep Calm and Carry On/Stereophonics - 100MPH.mp3 +C:/Users/Rik/Music/Artists/Stereophonics/Keep Calm and Carry On/Stereophonics - Beerbottle.mp3 +C:/Users/Rik/Music/Artists/Stereophonics/Keep Calm and Carry On/Stereophonics - Could You Be The One.mp3 +C:/Users/Rik/Music/Artists/Stereophonics/Keep Calm and Carry On/Stereophonics - I Got Your Number.mp3 +C:/Users/Rik/Music/Artists/Stereophonics/Keep Calm and Carry On/Stereophonics - Innocent.mp3 +C:/Users/Rik/Music/Artists/Stereophonics/Keep Calm and Carry On/Stereophonics - Live 'N' Love.mp3 +C:/Users/Rik/Music/Artists/Stereophonics/Keep Calm and Carry On/Stereophonics - She's Alright.mp3 +C:/Users/Rik/Music/Artists/Stereophonics/Keep Calm and Carry On/Stereophonics - Show Me How.mp3 +C:/Users/Rik/Music/Artists/Stereophonics/Keep Calm and Carry On/Stereophonics - Stuck In A Rut.mp3 +C:/Users/Rik/Music/Artists/Stereophonics/Keep Calm and Carry On/Stereophonics - Trouble.mp3 +C:/Users/Rik/Music/Artists/Stereophonics/Keep Calm and Carry On/Stereophonics - Uppercut.mp3 +C:/Users/Rik/Music/Artists/Stereophonics/Keep Calm and Carry On/Stereophonics - Wonder.mp3 +C:/Users/Rik/Music/Artists/Foo Fighters/Greatest Hits/Foo Fighters - Everlong (Acoustic).mp3 +C:/Users/Rik/Music/Artists/Lifehouse/Smoke & Mirrors/Lifehouse - Everything (Live).mp3 +C:/Users/Rik/Music/Artists/Amber Pacific/Virtues/Amber Pacific - Forever.mp3 +C:/Users/Rik/Music/Artists/Blink-182/Neighborhoods/Blink-182 - After Midnight.mp3 +C:/Users/Rik/Music/Artists/Blink-182/Neighborhoods/Blink-182 - Even If She Falls.mp3 +C:/Users/Rik/Music/Artists/Blink-182/Neighborhoods/Blink-182 - Fighting the Gravity.mp3 +C:/Users/Rik/Music/Artists/Blink-182/Neighborhoods/Blink-182 - Ghost On The Dance Floor.mp3 +C:/Users/Rik/Music/Artists/Blink-182/Neighborhoods/Blink-182 - Heart's All Gone (Interlude).mp3 +C:/Users/Rik/Music/Artists/Blink-182/Neighborhoods/Blink-182 - Heart's All Gone.mp3 +C:/Users/Rik/Music/Artists/Blink-182/Neighborhoods/Blink-182 - Kaleidoscope.mp3 +C:/Users/Rik/Music/Artists/Blink-182/Neighborhoods/Blink-182 - Love Is Dangerous.mp3 +C:/Users/Rik/Music/Artists/Blink-182/Neighborhoods/Blink-182 - Mh 4.18.2011.mp3 +C:/Users/Rik/Music/Artists/Blink-182/Neighborhoods/Blink-182 - Natives.mp3 +C:/Users/Rik/Music/Artists/Blink-182/Neighborhoods/Blink-182 - Snake Charmer.mp3 +C:/Users/Rik/Music/Artists/Blink-182/Neighborhoods/Blink-182 - This Is Home.mp3 +C:/Users/Rik/Music/Artists/Blink-182/Neighborhoods/Blink-182 - Up All Night.mp3 +C:/Users/Rik/Music/Artists/Blink-182/Neighborhoods/Blink-182 - Wishing Well.mp3 +C:/Users/Rik/Music/Artists/Longwave/Secrets Are Sinister/Longwave - The Devil And The Liar.mp3 +C:/Users/Rik/Music/Artists/Kane/Singles Only/Kane - All I Can Do.mp3 +C:/Users/Rik/Music/Artists/Kane/Singles Only/Kane - Believe It.mp3 +C:/Users/Rik/Music/Artists/Kane/Singles Only/Kane - Can You Handle Me.mp3 +C:/Users/Rik/Music/Artists/Kane/Singles Only/Kane - Catwalk Criminal.mp3 +C:/Users/Rik/Music/Artists/Kane/Singles Only/Kane - Damn Those Eyes.mp3 +C:/Users/Rik/Music/Artists/Kane/Singles Only/Kane - Dreamer.mp3 +C:/Users/Rik/Music/Artists/Kane/Singles Only/Kane - Fearless.mp3 +C:/Users/Rik/Music/Artists/Kane/Singles Only/Kane - Hold On to the World.mp3 +C:/Users/Rik/Music/Artists/Kane/Singles Only/Kane - I Will Keep My Head Down.mp3 +C:/Users/Rik/Music/Artists/Kane/Singles Only/Kane - In Over My Head.mp3 +C:/Users/Rik/Music/Artists/Kane/Singles Only/Kane - It's London Calling.mp3 +C:/Users/Rik/Music/Artists/Kane/Singles Only/Kane - Let It Be.mp3 +C:/Users/Rik/Music/Artists/Kane/Singles Only/Kane - Love Over Healing.mp3 +C:/Users/Rik/Music/Artists/Kane/Singles Only/Kane - My Best Wasn't Good Enough.mp3 +C:/Users/Rik/Music/Artists/Kane/Singles Only/Kane - No Surrender.mp3 +C:/Users/Rik/Music/Artists/Kane/Singles Only/Kane - Rain Down On Me.mp3 +C:/Users/Rik/Music/Artists/Kane/Singles Only/Kane - Scream.mp3 +C:/Users/Rik/Music/Artists/Kane/Singles Only/Kane - Shot of a Gun.mp3 +C:/Users/Rik/Music/Artists/Kane/Singles Only/Kane - So Glad You Made It.mp3 +C:/Users/Rik/Music/Artists/Kane/Singles Only/Kane - Something to Say.mp3 +C:/Users/Rik/Music/Artists/Kane/Singles Only/Kane - Wanna Make It Happen.mp3 +C:/Users/Rik/Music/Artists/Kane/Singles Only/Kane - Where Do I Go Now.mp3 +C:/Users/Rik/Music/Artists/Coldplay/Mylo Xyloto/Coldplay - A Hopeful Transmission.mp3 +C:/Users/Rik/Music/Artists/Coldplay/Mylo Xyloto/Coldplay - Charlie Brown.mp3 +C:/Users/Rik/Music/Artists/Coldplay/Mylo Xyloto/Coldplay - Don't Let It Break Your Heart.mp3 +C:/Users/Rik/Music/Artists/Coldplay/Mylo Xyloto/Coldplay - Every Teardrop Is a Waterfall.mp3 +C:/Users/Rik/Music/Artists/Coldplay/Mylo Xyloto/Coldplay - Hurts Like Heaven.mp3 +C:/Users/Rik/Music/Artists/Coldplay/Mylo Xyloto/Coldplay - M.M.I.X..mp3 +C:/Users/Rik/Music/Artists/Coldplay/Mylo Xyloto/Coldplay - Major Minus.mp3 +C:/Users/Rik/Music/Artists/Coldplay/Mylo Xyloto/Coldplay - Mylo Xyloto.mp3 +C:/Users/Rik/Music/Artists/Coldplay/Mylo Xyloto/Coldplay - Paradise.mp3 +C:/Users/Rik/Music/Artists/Coldplay/Mylo Xyloto/Coldplay - Princess of China.mp3 +C:/Users/Rik/Music/Artists/Coldplay/Mylo Xyloto/Coldplay - U.F.O..mp3 +C:/Users/Rik/Music/Artists/Coldplay/Mylo Xyloto/Coldplay - Up in Flames.mp3 +C:/Users/Rik/Music/Artists/Coldplay/Mylo Xyloto/Coldplay - Up with the Birds.mp3 +C:/Users/Rik/Music/Artists/Coldplay/Mylo Xyloto/Coldplay - Us Against the World.mp3 +C:/Users/Rik/Music/Artists/Kane/Singles Only/Kane - High Places.mp3 +C:/Users/Rik/Music/Artists/White Lies/Ritual/White Lies - Bad Love.mp3 +C:/Users/Rik/Music/Artists/White Lies/Ritual/White Lies - Bigger Than Us.mp3 +C:/Users/Rik/Music/Artists/White Lies/Ritual/White Lies - Come Down.mp3 +C:/Users/Rik/Music/Artists/White Lies/Ritual/White Lies - Holy Ghost.mp3 +C:/Users/Rik/Music/Artists/White Lies/Ritual/White Lies - Is Love.mp3 +C:/Users/Rik/Music/Artists/White Lies/Ritual/White Lies - Peace & Quiet.mp3 +C:/Users/Rik/Music/Artists/White Lies/Ritual/White Lies - Strangers.mp3 +C:/Users/Rik/Music/Artists/White Lies/Ritual/White Lies - Streetlights.mp3 +C:/Users/Rik/Music/Artists/White Lies/Ritual/White Lies - The Power & The Glory.mp3 +C:/Users/Rik/Music/Artists/White Lies/Ritual/White Lies - Turn The Bells.mp3 +C:/Users/Rik/Music/Artists/Destine/Destine - Thousand Miles.mp3 +C:/Users/Rik/Music/Artists/The Seer/Heading for the Sun/The Seer - Dive Into The Blue Sky.mp3 +C:/Users/Rik/Music/Artists/The Seer/Heading for the Sun/The Seer - Eyes Gone Blind.mp3 +C:/Users/Rik/Music/Artists/The Seer/Heading for the Sun/The Seer - Fallen Leaves.mp3 +C:/Users/Rik/Music/Artists/The Seer/Heading for the Sun/The Seer - Rain Down On Me.mp3 +C:/Users/Rik/Music/Artists/The Seer/Heading for the Sun/The Seer - Raining.mp3 +C:/Users/Rik/Music/Artists/The Seer/Heading for the Sun/The Seer - Setting Sails.mp3 +C:/Users/Rik/Music/Artists/The Seer/Heading for the Sun/The Seer - The Borderline.mp3 +C:/Users/Rik/Music/Artists/The Seer/Heading for the Sun/The Seer - The Enemy.mp3 +C:/Users/Rik/Music/Artists/The Seer/Heading for the Sun/The Seer - Wasted.mp3 +C:/Users/Rik/Music/Artists/The Seer/Heading for the Sun/The Seer - What We Are.mp3 +C:/Users/Rik/Music/Artists/The Seer/Heading for the Sun/The Seer - Where Do We Go.mp3 +C:/Users/Rik/Music/Artists/The Seer/Heading for the Sun/The Seer - Wishful Thinking.mp3 +C:/Users/Rik/Music/Old/Bruce Springsteen/Bruce Springsteen - The River.mp3 +C:/Users/Rik/Music/Archive/Artists/Snow Patrol/Fallen Empires/Snow Patrol - Called Out In The Dark.mp3 +C:/Users/Rik/Music/Archive/Artists/Snow Patrol/Fallen Empires/Snow Patrol - This Isn't Everything You Are.mp3 +C:/Users/Rik/Music/Archive/Artists/The Wombats/This Modern Glitch/The Wombats - Techno Fan.mp3 +C:/Users/Rik/Music/Archive/Artists/The Wombats/This Modern Glitch/The Wombats - Tokyo (Vampires & Wolves).mp3 +C:/Users/Rik/Music/Artists/The Offspring/Rise and Fall Rage and Grace/The Offspring - A Lot Like Me.mp3 +C:/Users/Rik/Music/Artists/The Offspring/Rise and Fall Rage and Grace/The Offspring - Fix You.mp3 +C:/Users/Rik/Music/Artists/The Offspring/Rise and Fall Rage and Grace/The Offspring - Half-Truism.mp3 +C:/Users/Rik/Music/Artists/The Offspring/Rise and Fall Rage and Grace/The Offspring - Hammerhead.mp3 +C:/Users/Rik/Music/Artists/The Offspring/Rise and Fall Rage and Grace/The Offspring - Kristy, Are You Doing Okay.mp3 +C:/Users/Rik/Music/Artists/The Offspring/Rise and Fall Rage and Grace/The Offspring - Let's Hear It For Rock Bottom.mp3 +C:/Users/Rik/Music/Artists/The Offspring/Rise and Fall Rage and Grace/The Offspring - Nothingtown.mp3 +C:/Users/Rik/Music/Artists/The Offspring/Rise and Fall Rage and Grace/The Offspring - O.C. Life.mp3 +C:/Users/Rik/Music/Artists/The Offspring/Rise and Fall Rage and Grace/The Offspring - Rise And Fall.mp3 +C:/Users/Rik/Music/Artists/The Offspring/Rise and Fall Rage and Grace/The Offspring - Stuff Is Messed Up.mp3 +C:/Users/Rik/Music/Artists/The Offspring/Rise and Fall Rage and Grace/The Offspring - Takes Me Nowhere.mp3 +C:/Users/Rik/Music/Artists/The Offspring/Rise and Fall Rage and Grace/The Offspring - Trust In You.mp3 +C:/Users/Rik/Music/Artists/The Offspring/Rise and Fall Rage and Grace/The Offspring - You're Gonna Go Far, Kid.mp3 +C:/Users/Rik/Music/Artists/Nickelback/Here and Now/Nickelback - Bottoms Up.mp3 +C:/Users/Rik/Music/Artists/Nickelback/Here and Now/Nickelback - Don't Ever Let It End.mp3 +C:/Users/Rik/Music/Artists/Nickelback/Here and Now/Nickelback - Everything I Wanna Do.mp3 +C:/Users/Rik/Music/Artists/Nickelback/Here and Now/Nickelback - Gotta Get Me Some.mp3 +C:/Users/Rik/Music/Artists/Nickelback/Here and Now/Nickelback - Holding On to Heaven.mp3 +C:/Users/Rik/Music/Artists/Nickelback/Here and Now/Nickelback - Kiss It Goodbye.mp3 +C:/Users/Rik/Music/Artists/Nickelback/Here and Now/Nickelback - Lullaby.mp3 +C:/Users/Rik/Music/Artists/Nickelback/Here and Now/Nickelback - Midnight Queen.mp3 +C:/Users/Rik/Music/Artists/Nickelback/Here and Now/Nickelback - This Means War.mp3 +C:/Users/Rik/Music/Artists/Nickelback/Here and Now/Nickelback - Trying Not to Love You.mp3 +C:/Users/Rik/Music/Artists/Nickelback/Here and Now/Nickelback - When We Stand Together.mp3 +C:/Users/Rik/Music/Artists/The Vaccines/What Did You Expect From The Vaccines/The Vaccines - A Lack of Understanding.mp3 +C:/Users/Rik/Music/Artists/The Vaccines/What Did You Expect From The Vaccines/The Vaccines - All in White.mp3 +C:/Users/Rik/Music/Artists/The Vaccines/What Did You Expect From The Vaccines/The Vaccines - Blow It Up.mp3 +C:/Users/Rik/Music/Artists/The Vaccines/What Did You Expect From The Vaccines/The Vaccines - Family Friend.mp3 +C:/Users/Rik/Music/Artists/The Vaccines/What Did You Expect From The Vaccines/The Vaccines - If You Wanna.mp3 +C:/Users/Rik/Music/Artists/The Vaccines/What Did You Expect From The Vaccines/The Vaccines - N%C3%B8rgaard.mp3 +C:/Users/Rik/Music/Artists/The Vaccines/What Did You Expect From The Vaccines/The Vaccines - Post Break-Up Sex.mp3 +C:/Users/Rik/Music/Artists/The Vaccines/What Did You Expect From The Vaccines/The Vaccines - Under Your Thumb.mp3 +C:/Users/Rik/Music/Artists/The Vaccines/What Did You Expect From The Vaccines/The Vaccines - Westsuit.mp3 +C:/Users/Rik/Music/Artists/The Vaccines/What Did You Expect From The Vaccines/The Vaccines - Wolf Pack.mp3 +C:/Users/Rik/Music/Artists/The Vaccines/What Did You Expect From The Vaccines/The Vaccines - Wreckin' Bar.mp3 +C:/Users/Rik/Music/Artists/Daughtry/Leave This Town/Daughtry - Call Your Name.mp3 +C:/Users/Rik/Music/Artists/Daughtry/Leave This Town/Daughtry - Every Time You Turn Around.mp3 +C:/Users/Rik/Music/Artists/Daughtry/Leave This Town/Daughtry - Ghost Of Me.mp3 +C:/Users/Rik/Music/Artists/Daughtry/Leave This Town/Daughtry - Learn My Lesson.mp3 +C:/Users/Rik/Music/Artists/Daughtry/Leave This Town/Daughtry - Life After You.mp3 +C:/Users/Rik/Music/Artists/Daughtry/Leave This Town/Daughtry - No Surprise.mp3 +C:/Users/Rik/Music/Artists/Daughtry/Leave This Town/Daughtry - Open Up Your Eyes.mp3 +C:/Users/Rik/Music/Artists/Daughtry/Leave This Town/Daughtry - September.mp3 +C:/Users/Rik/Music/Artists/Daughtry/Leave This Town/Daughtry - Supernatural.mp3 +C:/Users/Rik/Music/Artists/Daughtry/Leave This Town/Daughtry - Tennessee Line.mp3 +C:/Users/Rik/Music/Artists/Daughtry/Leave This Town/Daughtry - What I Meant To Say.mp3 +C:/Users/Rik/Music/Artists/Daughtry/Leave This Town/Daughtry - You Don't Belong.mp3 +C:/Users/Rik/Music/Artists/Moke/The Long & Dangerous Sea/Moke - Black And Blue.mp3 +C:/Users/Rik/Music/Artists/Moke/The Long & Dangerous Sea/Moke - Ghost.mp3 +C:/Users/Rik/Music/Artists/Moke/The Long & Dangerous Sea/Moke - Heaven.mp3 +C:/Users/Rik/Music/Artists/Moke/The Long & Dangerous Sea/Moke - Lament.mp3 +C:/Users/Rik/Music/Artists/Moke/The Long & Dangerous Sea/Moke - Love My Life.mp3 +C:/Users/Rik/Music/Artists/Moke/The Long & Dangerous Sea/Moke - Nobody's Listening.mp3 +C:/Users/Rik/Music/Artists/Moke/The Long & Dangerous Sea/Moke - Switch.mp3 +C:/Users/Rik/Music/Artists/Moke/The Long & Dangerous Sea/Moke - Terrible End.mp3 +C:/Users/Rik/Music/Artists/Moke/The Long & Dangerous Sea/Moke - The Long & Dangerous Sea.mp3 +C:/Users/Rik/Music/Artists/Moke/The Long & Dangerous Sea/Moke - Windows Of Hope.mp3 +C:/Users/Rik/Music/Artists/Placebo/Battle for the Sun/Placebo - Ashtray Heart.mp3 +C:/Users/Rik/Music/Artists/Placebo/Battle for the Sun/Placebo - Battle for the Sun.mp3 +C:/Users/Rik/Music/Artists/Placebo/Battle for the Sun/Placebo - Breathe Underwater.mp3 +C:/Users/Rik/Music/Artists/Placebo/Battle for the Sun/Placebo - Bright Lights.mp3 +C:/Users/Rik/Music/Artists/Placebo/Battle for the Sun/Placebo - Come Undone.mp3 +C:/Users/Rik/Music/Artists/Placebo/Battle for the Sun/Placebo - Devil in the Details.mp3 +C:/Users/Rik/Music/Artists/Placebo/Battle for the Sun/Placebo - For What It's Worth.mp3 +C:/Users/Rik/Music/Artists/Placebo/Battle for the Sun/Placebo - Happy You're Gone.mp3 +C:/Users/Rik/Music/Artists/Placebo/Battle for the Sun/Placebo - Julien.mp3 +C:/Users/Rik/Music/Artists/Placebo/Battle for the Sun/Placebo - Kings of Medicine.mp3 +C:/Users/Rik/Music/Artists/Placebo/Battle for the Sun/Placebo - Kitty Litter.mp3 +C:/Users/Rik/Music/Artists/Placebo/Battle for the Sun/Placebo - Speak in Tongues.mp3 +C:/Users/Rik/Music/Artists/Placebo/Battle for the Sun/Placebo - The Never-Ending Why.mp3 +C:/Users/Rik/Music/Artists/Keane/Night Train/Keane - Back In Time.mp3 +C:/Users/Rik/Music/Artists/Keane/Night Train/Keane - Clear Skies.mp3 +C:/Users/Rik/Music/Artists/Keane/Night Train/Keane - House Lights.mp3 +C:/Users/Rik/Music/Artists/Keane/Night Train/Keane - Ishin Denshin (You've Got To Help Yourself).mp3 +C:/Users/Rik/Music/Artists/Keane/Night Train/Keane - Looking Back.mp3 +C:/Users/Rik/Music/Artists/Keane/Night Train/Keane - My Shadow.mp3 +C:/Users/Rik/Music/Artists/Keane/Night Train/Keane - Stop For a Minute.mp3 +C:/Users/Rik/Music/Artists/Keane/Night Train/Keane - Your Love.mp3 +C:/Users/Rik/Music/Artists/Keane/Under The Iron Sea/Keane - A Bad Dream.mp3 +C:/Users/Rik/Music/Artists/Keane/Under The Iron Sea/Keane - Atlantic.mp3 +C:/Users/Rik/Music/Artists/Keane/Under The Iron Sea/Keane - Broken Toy.mp3 +C:/Users/Rik/Music/Artists/Keane/Under The Iron Sea/Keane - Crystal Ball.mp3 +C:/Users/Rik/Music/Artists/Keane/Under The Iron Sea/Keane - Hamburg Song.mp3 +C:/Users/Rik/Music/Artists/Keane/Under The Iron Sea/Keane - Is It Any Wonder.mp3 +C:/Users/Rik/Music/Artists/Keane/Under The Iron Sea/Keane - Leaving So Soon.mp3 +C:/Users/Rik/Music/Artists/Keane/Under The Iron Sea/Keane - Let It Slide .mp3 +C:/Users/Rik/Music/Artists/Keane/Under The Iron Sea/Keane - Nothing In My Way.mp3 +C:/Users/Rik/Music/Artists/Keane/Under The Iron Sea/Keane - Put It Behind You.mp3 +C:/Users/Rik/Music/Artists/Keane/Under The Iron Sea/Keane - The Frog Prince.mp3 +C:/Users/Rik/Music/Artists/Keane/Under The Iron Sea/Keane - The Iron Sea.mp3 +C:/Users/Rik/Music/Artists/Keane/Under The Iron Sea/Keane - Try Again.mp3 +C:/Users/Rik/Music/Artists/Hey Monday/Hold On Tight/Hey Monday - 6 Months.mp3 +C:/Users/Rik/Music/Artists/Hey Monday/Hold On Tight/Hey Monday - Arizona.mp3 +C:/Users/Rik/Music/Artists/Hey Monday/Hold On Tight/Hey Monday - Candles.mp3 +C:/Users/Rik/Music/Artists/Hey Monday/Hold On Tight/Hey Monday - Homecoming.mp3 +C:/Users/Rik/Music/Artists/Hey Monday/Hold On Tight/Hey Monday - How You Love Me Now.mp3 +C:/Users/Rik/Music/Artists/Hey Monday/Hold On Tight/Hey Monday - Hurricane Streets.mp3 +C:/Users/Rik/Music/Artists/Hey Monday/Hold On Tight/Hey Monday - Josey.mp3 +C:/Users/Rik/Music/Artists/Hey Monday/Hold On Tight/Hey Monday - Obvious.mp3 +C:/Users/Rik/Music/Artists/Hey Monday/Hold On Tight/Hey Monday - Run, Don't Walk.mp3 +C:/Users/Rik/Music/Artists/Hey Monday/Hold On Tight/Hey Monday - Set Off.mp3 +C:/Users/Rik/Music/Artists/Hey Monday/Hold On Tight/Hey Monday - Should've Tried Harder.mp3 +C:/Users/Rik/Music/Artists/Mae/The Everglow/Mae - Anything.mp3 +C:/Users/Rik/Music/Artists/Mae/The Everglow/Mae - Breakdown.mp3 +C:/Users/Rik/Music/Artists/Mae/The Everglow/Mae - Cover Me.mp3 +C:/Users/Rik/Music/Artists/Mae/The Everglow/Mae - Epilogue.mp3 +C:/Users/Rik/Music/Artists/Mae/The Everglow/Mae - Mistakes we Knew we Were Making.mp3 +C:/Users/Rik/Music/Artists/Mae/The Everglow/Mae - Painless.mp3 +C:/Users/Rik/Music/Artists/Mae/The Everglow/Mae - Prologue.mp3 +C:/Users/Rik/Music/Artists/Mae/The Everglow/Mae - Ready and Waiting to Fall.mp3 +C:/Users/Rik/Music/Artists/Mae/The Everglow/Mae - Someone Else's Arms.mp3 +C:/Users/Rik/Music/Artists/Mae/The Everglow/Mae - Suspension.mp3 +C:/Users/Rik/Music/Artists/Mae/The Everglow/Mae - The Everglow.mp3 +C:/Users/Rik/Music/Artists/Mae/The Everglow/Mae - The Ocean.mp3 +C:/Users/Rik/Music/Artists/Mae/The Everglow/Mae - The Sun and the Moon.mp3 +C:/Users/Rik/Music/Artists/Mae/The Everglow/Mae - This is the Countdown.mp3 +C:/Users/Rik/Music/Artists/Mae/The Everglow/Mae - We're So Far Away.mp3 +C:/Users/Rik/Music/Artists/Saves the Day/Saves the Day - All I'm Losing Is Me.mp3 +C:/Users/Rik/Music/Artists/Saves the Day/Saves the Day - At Your Funeral.mp3 +C:/Users/Rik/Music/Artists/Saves the Day/Saves the Day - Cars And Calories.mp3 +C:/Users/Rik/Music/Artists/Saves the Day/Saves the Day - Certain Tragedy.mp3 +C:/Users/Rik/Music/Artists/Saves the Day/Saves the Day - Firefly.mp3 +C:/Users/Rik/Music/Artists/Saves the Day/Saves the Day - Freakish.mp3 +C:/Users/Rik/Music/Artists/Saves the Day/Saves the Day - Jukebox Breakdown.mp3 +C:/Users/Rik/Music/Artists/Saves the Day/Saves the Day - Nightingale.mp3 +C:/Users/Rik/Music/Artists/Saves the Day/Saves the Day - See You.mp3 +C:/Users/Rik/Music/Artists/Saves the Day/Saves the Day - This Is Not An Exit.mp3 +C:/Users/Rik/Music/Artists/Saves the Day/Saves the Day - Your Ghost Takes Flight.mp3 \ No newline at end of file diff --git a/src/main/resources/txt/options b/src/main/resources/txt/options new file mode 100644 index 0000000..4d95aae --- /dev/null +++ b/src/main/resources/txt/options @@ -0,0 +1,182 @@ +LAME 32bits version 3.98.4 (http://www.mp3dev.org/) + +usage: lame [options] [outfile] + + and/or can be "-", which means stdin/stdout. + +RECOMMENDED: + lame -V2 input.wav output.mp3 + +OPTIONS: + Input options: + --scale scale input (multiply PCM data) by + --scale-l scale channel 0 (left) input (multiply PCM data) by + --scale-r scale channel 1 (right) input (multiply PCM data) by + --mp1input input file is a MPEG Layer I file + --mp2input input file is a MPEG Layer II file + --mp3input input file is a MPEG Layer III file + --nogap <...> + gapless encoding for a set of contiguous files + --nogapout + output dir for gapless encoding (must precede --nogap) + --nogaptags allow the use of VBR tags in gapless encoding + + Input options for RAW PCM: + -r input is raw pcm + -x force byte-swapping of input + -s sfreq sampling frequency of input file (kHz) - default 44.1 kHz + --bitwidth w input bit width is w (default 16) + --signed input is signed (default) + --unsigned input is unsigned + --little-endian input is little-endian (default) + --big-endian input is big-endian + + + Operational options: + -a downmix from stereo to mono file for mono encoding + -m (j)oint, (s)imple, (f)orce, (d)dual-mono, (m)ono + default is (j) or (s) depending on bitrate + joint = joins the best possible of MS and LR stereo + simple = force LR stereo on all frames + force = force MS stereo on all frames. + --preset type type must be "medium", "standard", "extreme", "insane", + or a value for an average desired bitrate and depending + on the value specified, appropriate quality settings will + be used. + "--preset help" gives more info on these + --comp choose bitrate to achive a compression ratio of + --replaygain-fast compute RG fast but slightly inaccurately (default) + --replaygain-accurate compute RG more accurately and find the peak sample + --noreplaygain disable ReplayGain analysis + --clipdetect enable --replaygain-accurate and print a message whether + clipping occurs and how far the waveform is from full scale + --flush flush output stream as soon as possible + --freeformat produce a free format bitstream + --decode input=mp3 file, output=wav + -t disable writing wav header when using --decode + + + Verbosity: + --disptime print progress report every arg seconds + -S don't print progress report, VBR histograms + --nohist disable VBR histogram display + --silent don't print anything on screen + --quiet don't print anything on screen + --brief print more useful information + --verbose print a lot of useful information + + Noise shaping & psycho acoustic algorithms: + -q = 0...9. Default -q 5 + -q 0: Highest quality, very slow + -q 9: Poor quality, but fast + -h Same as -q 2. Recommended. + -f Same as -q 7. Fast, ok quality + + + CBR (constant bitrate, the default) options: + -b set the bitrate in kbps, default 128 kbps + --cbr enforce use of constant bitrate + + ABR options: + --abr specify average bitrate desired (instead of quality) + + VBR options: + -V n quality setting for VBR. default n=4 + 0=high quality,bigger files. 9=smaller files + -v the same as -V 4 + --vbr-old use old variable bitrate (VBR) routine + --vbr-new use new variable bitrate (VBR) routine (default) + -b specify minimum allowed bitrate, default 32 kbps + -B specify maximum allowed bitrate, default 320 kbps + -F strictly enforce the -b option, for use with players that + do not support low bitrate mp3 + -t disable writing LAME Tag + -T enable and force writing LAME Tag + + + PSY related: + --temporal-masking x x=0 disables, x=1 enables temporal masking effect + --nssafejoint M/S switching criterion + --nsmsfix M/S switching tuning [effective 0-3.5] + --interch x adjust inter-channel masking ratio + --ns-bass x adjust masking for sfbs 0 - 6 (long) 0 - 5 (short) + --ns-alto x adjust masking for sfbs 7 - 13 (long) 6 - 10 (short) + --ns-treble x adjust masking for sfbs 14 - 21 (long) 11 - 12 (short) + --ns-sfb21 x change ns-treble by x dB for sfb21 + + + experimental switches: + -Y lets LAME ignore noise in sfb21, like in CBR + + + MP3 header/stream options: + -e de-emphasis n/5/c (obsolete) + -c mark as copyright + -o mark as non-original + -p error protection. adds 16 bit checksum to every frame + (the checksum is computed correctly) + --nores disable the bit reservoir + --strictly-enforce-ISO comply as much as possible to ISO MPEG spec + + Filter options: + --lowpass frequency(kHz), lowpass filter cutoff above freq + --lowpass-width frequency(kHz) - default 15% of lowpass freq + --highpass frequency(kHz), highpass filter cutoff below freq + --highpass-width frequency(kHz) - default 15% of highpass freq + --resample sampling frequency of output file(kHz)- default=automatic + + + ID3 tag options: + --tt audio/song title (max 30 chars for version 1 tag) + --ta <artist> audio/song artist (max 30 chars for version 1 tag) + --tl <album> audio/song album (max 30 chars for version 1 tag) + --ty <year> audio/song year of issue (1 to 9999) + --tc <comment> user-defined text (max 30 chars for v1 tag, 28 for v1.1) + --tn <track[/total]> audio/song track number and (optionally) the total + number of tracks on the original recording. (track + and total each 1 to 255. just the track number + creates v1.1 tag, providing a total forces v2.0). + --tg <genre> audio/song genre (name or number in list) + --ti <file> audio/song albumArt (jpeg/png/gif file, 128KB max, v2.3) + --tv <id=value> user-defined frame specified by id and value (v2.3 tag) + --add-id3v2 force addition of version 2 tag + --id3v1-only add only a version 1 tag + --id3v2-only add only a version 2 tag + --space-id3v1 pad version 1 tag with spaces instead of nulls + --pad-id3v2 same as '--pad-id3v2-size 128' + --pad-id3v2-size <value> adds version 2 tag, pad with extra <value> bytes + --genre-list print alphabetically sorted ID3 genre list and exit + --ignore-tag-errors ignore errors in values passed for tags + + Note: A version 2 tag will NOT be added unless one of the input fields + won't fit in a version 1 tag (e.g. the title string is longer than 30 + characters), or the '--add-id3v2' or '--id3v2-only' options are used, + or output is redirected to stdout. + + +MS-Windows-specific options: + --priority <type> sets the process priority: + 0,1 = Low priority (IDLE_PRIORITY_CLASS) + 2 = normal priority (NORMAL_PRIORITY_CLASS, default) + 3,4 = High priority (HIGH_PRIORITY_CLASS)) + Note: Calling '--priority' without a parameter will select priority 0. + +Misc: + --license print License information + + + + Platform specific: + --noasm <instructions> disable assembly optimizations for mmx/3dnow/sse + + + +MPEG-1 layer III sample frequencies (kHz): 32 48 44.1 +bitrates (kbps): 32 40 48 56 64 80 96 112 128 160 192 224 256 320 + +MPEG-2 layer III sample frequencies (kHz): 16 24 22.05 +bitrates (kbps): 8 16 24 32 40 48 56 64 80 96 112 128 144 160 + +MPEG-2.5 layer III sample frequencies (kHz): 8 12 11.025 +bitrates (kbps): 8 16 24 32 40 48 56 64 + diff --git a/src/main/resources/txt/short b/src/main/resources/txt/short new file mode 100644 index 0000000..538d3ff --- /dev/null +++ b/src/main/resources/txt/short @@ -0,0 +1 @@ +medium.mp3 \ No newline at end of file diff --git a/src/main/resources/txt/testfiles.txt b/src/main/resources/txt/testfiles.txt new file mode 100644 index 0000000..6c2c2b6 --- /dev/null +++ b/src/main/resources/txt/testfiles.txt @@ -0,0 +1,12 @@ +junk (with or without header) +PCM_SIGNED 8000.0 Hz, 16 bit, mono, 2 bytes/frame, little-endian +-r 8k -t s16 -c 1 -e signed-integer + + +out (without header) +PCM_SIGNED 8000.0 Hz, 16 bit, stereo, 4 bytes/frame, big-endian +-r 128k -t s32 -c 2 -2 signed integer [reasonable] + +out (without header) +PCM_SIGNED 192000.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian +-r 192k -t s16 -c 2 [-e signed-integer] \ No newline at end of file