Thanks a lot Something like Z = A + B -A.B/normaliztion value On 9/24/07, Alan Horstmann <gineera@xxxxxxxxxxxxxxx> wrote: > On Monday 24 September 2007 12:49, Claudio Matsuoka wrote: > > On 9/24/07, Nobin Mathew <nobin.mathew@xxxxxxxxx> wrote: > > > Can any body throw some lights on how audio mixing is done in > > > software? Basic principle? > > > > Basically you add the PCM samples (if they are at the same resolution > > and sampling rate) and renormalize if needed. The sampling rate > > conversion can be tricky tho. > > I was about to say the same; multiply each sample by the applicable gain and > add - as in this extract from Audacity/src/AudioIO.cpp: > > { > > if (vt->GetChannel() == Track::LeftChannel || > vt->GetChannel() == Track::MonoChannel) > { > float gain = vt->GetChannelGain(0); > > if (gAudioIO->mEmulateMixerOutputVol) > gain *= gAudioIO->mMixerOutputVol; > > for(i=0; i<len; i++) > outputFloats[numPlaybackChannels*i] += gain*tempFloats[i]; > } > > if (vt->GetChannel() == Track::RightChannel || > vt->GetChannel() == Track::MonoChannel) > { > float gain = vt->GetChannelGain(1); > > if (gAudioIO->mEmulateMixerOutputVol) > gain *= gAudioIO->mMixerOutputVol; > > for(i=0; i<len; i++) > outputFloats[numPlaybackChannels*i+1] += gain*tempFloats[i]; > } > } > > I guess implementing it is always more complicated, though! > > Alan > _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel