Stereo/Mono Inputs & Auto Sum to Mono Output

Algorithm development and general DSP issues

Moderator: frank

Post Reply
JET
Posts: 15
Joined: Sun Aug 12, 2018 4:29 am

Stereo/Mono Inputs & Auto Sum to Mono Output

Post by JET »

Greetings All!

I'm working on a stereo program that carries the dry signal through, left input to left output & right input to right output. Obviously this isn't a problem mapping the inputs to the outputs, but I'm having an issue when the user unplugs the right input, I'd like for the left input to be mapped to both the left and right outputs.

At this point the following code shown below works when the right input is unplugged, however I'm having a problem when the right input is plugged in. The code below reads in the right input signal, and compares against a threshold, if above the threshold (we have signal) and we send the right input to the right output. If it is below the threshold (we don't have signal) it skips over sending the right input to right output and sends the left input to the right output. All of this seems to be working however I'm getting some crackle/distortion in one of my output channels. It does this whenever the signal is getting quieter, which I'm assuming its happening when the signal is bordering the threshold (possibly rapidly bouncing above and below the threshold). Does anyone know what's going on or if my code below looks incorrect?

Code: Select all

ldax	adcr			; Read in right channel of ADC
absa				; Take absolute value of the signal
rdfx	f1,	fc_60Hz		; Apply LPF at 60Hz to get envelop of signal
wrax	f1,	1.0	
sof	1,	-0.004		; If envelop of signal is less than 0.004,
skp	neg,	noSig		; Skip ahead to noSig

; If here, signal is present at right input		
clr
rdax	adcr,		1
mulx	clean_out 
rdax   	r_revout,   	1      	;Read output from Reverb and write it to ACC. 
rdax	l_modout,	1	;Read output from Modulation and write it to ACC.
wrax   	dacr,	0         		;Write the ACC on DACR and clear it
skp	zro,	end

noSig:	; If here, nothing is plugged into the right input
clr
rdax	adcl,		1
mulx	clean_out 
rdax   	l_revout,   	1      	;Read output from Reverb and write it to ACC. 
rdax	l_modout,	1	;Read output from Modulation and write it to ACC.
wrax   	dacr,	0         		;Write the ACC on DACL and clear it.

end:
frank
Posts: 1244
Joined: Wed Oct 19, 2005 12:26 pm
Contact:

Re: Stereo/Mono Inputs & Auto Sum to Mono Output

Post by frank »

It is probably due to the signal bouncing around the threshold. I would do this in hardware rather than software, a switching jack like ACJM-HHDR
Frank Thomson
Experimental Noize
ice-nine
Posts: 192
Joined: Thu May 24, 2012 9:03 am

Re: Stereo/Mono Inputs & Auto Sum to Mono Output

Post by ice-nine »

frank wrote: Tue Jan 21, 2020 9:36 am It is probably due to the signal bouncing around the threshold. I would do this in hardware rather than software, a switching jack like ACJM-HHDR
Exactly this.
www.stanleyfx.co.uk
"It's fairly straight forward, if you want to start it press start, you can work out the rest of the controls yourself."
JET
Posts: 15
Joined: Sun Aug 12, 2018 4:29 am

Re: Stereo/Mono Inputs & Auto Sum to Mono Output

Post by JET »

That's what I figured was happening but didn't know if there was a slick work around...

Thanks guys! I'll revisit this approach via hardware...
Post Reply