Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 51
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Hi,
I propose adding function to convert stereo sample to mono, code below. It can be placed inside AudioSample.java I think. It works for me from Processing sketch when called on SoundFile.
To keep only one channel and discard the other:
//this will stop playback if it is playing already public stereoToMono(int whichChannel){//whichChannel should be 0 for left and 1 for roght float[] newBuffer = new float[this.frames()]; if(whichChannel>1){whichChannel = 1} if(whichChannel<0){whichChannel = 0} for (int i = 0; i < newBuffer.length; i++){newBuffer[i] = this.read(i, whichChannel);//read only left channel } this.resize(newBuffer.length, false); //change to mono this.write(newBuffer); //copy data from single channel into buffer } To sum up two channels into one:
//this will stop playback if it is playing already public stereoToMono(int whichChannel){//whichChannel should be 0 for left and 1 for roght float[] newBuffer = new float[this.frames()]; if(whichChannel>1){whichChannel = 1} if(whichChannel<0){whichChannel = 0} for (int i = 0; i < newBuffer.length; i++){float left = bufferData[i] = sample.read(i, 0); float right = bufferData[i] = sample.read(i, 1); newBuffer[i] = (left+right)/2} this.resize(newBuffer.length, false); //change to mono this.write(newBuffer); //copy data from single channel into buffer } Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request