I'm wondering if anyone can point me in the right direction to start this project I have in mind. This program will form the functional backbone of an art piece, the only visible components being a microphone, headphones, and a single button. I want it to work like so: when a user presses a button, the program should begin recording. When the button is pressed a second time, the recording should stop and the sound file saved to a list containing previously recorded files. Additionally, the program should begin playing back a randomly selected sound file from the same list.

It's a pretty simple function, but I know nothing about audio in Java and haven't the slightest clue how to begin. Can anyone tell me how I might do this? I'd take a general plan, but I'd definitely appreciate as many details you feel compelled to offer.

(Extra credit: when not doing the above functions, the program could play all previously recorded files at the same time to create a sort of clamor of voices.)