Hello, all. My next big project is to write my own software audio mixer, so that I can play multiple audio inputs on a single SourceDataLine. I need to be able to do the following things with PCM audio data:
- Mixing multiple inputs into one 2-channel (left/right) output, maintaining synchronization between the channels
- Converting between (or mixing directly) various audio formats (different sample rates/sample sizes/channels)
- Changing frequency (pitch)
- Changing gain (volume) independently on each channel
I want to be able to do this in pure Java, completely programatically (i.e. no linking with 3rd-party libraries). I'm looking for all tips, source code, tutorials, that kind of thing. I am proficient in several programming languages, so references don't necessarily have to be written specifically for Java.