-2

This i am planning for college project and i have 2 months of time.

Four main things what i need are listed below.

  1. Crossfading feature of the Virtual DJ software.

    Basically, there will be 2 decks (music player) and there will be a volume notch common for both decks. functionality of volume notch, given below.

    consider, on left we have deck A and on right side we have deck B

    if volume notch is dragged from left to right

    { slowly slowly volume of the left deck A fades out, parallely volume of the volume of the right deck B fades in }

  2. Identifying the BPM (beats per minute) of the song.

  3. According to the BPM the speed of the song can be adjusted using a volume type button.

  4. Creating the visual wave form of the song.

Hope you understood what i am trying to say. So, If It is possible to make within 2 months, then please help me out in finding appropriate audio libraries, which can help me in doing all these 4 things

Kara
  • 6,115
  • 16
  • 50
  • 57
Rohit Bind
  • 15
  • 1
  • 4

1 Answers1

1

Yes, you can do all this in Java, in theory, but you will find it's not so easy. There are not a lot of libraries to help you and I think you'll find the two month deadline tricky if you are just getting started:

  1. Crossfading is a simple operation. You can learn to do this yourself.

  2. Identifying the tempo of the song is probably the trickiest thing. I don't know of a Java library that can do it. You can use the C library Aubio either by launching a separate process, or using JNI.

  3. Pitch shift and tempo can be adjusted using SoundTouch. I believe there are several Java implementations around.

  4. You will have to do this yourself. There are other questions about this on SO. See for example my answer to this question: How can I draw sound data from my wav file?

Any one of these tasks might be considered good enough for a simple college project, especially if this is an intro or intermediate course.

Community
  • 1
  • 1
Bjorn Roche
  • 11,279
  • 6
  • 36
  • 58
  • wow awesome such a fast reply.. thnx a lot.. :) – Rohit Bind Apr 17 '13 at 17:40
  • Whilst it is of course possible to implement all of this in Java, there are lots of really good reasons why Java is never used commercially for audio software. Requirement 2 is hard to do from first principles. If you really want to burn 2 months, look academic papers on *onset detection* - alternatively, use something like [Echo Nest](http://echonest.com). Requirement 3 is hard to do well unless you're good with DSP. There are commercial libraries which can do this. Not however, implemented in Java. – marko Apr 17 '13 at 17:43
  • Marko, can yu please help me out in finding the opensource lib.. ???? – Rohit Bind Apr 18 '13 at 13:51