I want to drive a dual color led (common cathode) from an 10vpp ac source so that on positive excursions one color is lit and on negative portion the other color is lit.
The simplest way I have done this in the past is to put both leds (in opposite directions in parallel) in the feedback of an inverting opamp and then control the current to them via the resistor connected to inverting terminal.
In this situation I do not have the luxury of a spare opamp and space is limited.
There should be a simple way to do this with two transistors and some resistors but my simulations are not working out properly (using a 2n3904 and a 2n3906 I can get alternating flashing but it is not smooth or balanced)
Connect the AC source to each LED anode. Connect a rectifier in inverse direction in parallel across each LED from the LED's anode connection to the common cathode connection (with the appropriate resistor in series with one the AC connections to limit the LED current to the desired value).
That way the LEDs will alternately light, one on each half cycle with the rectifier carrying the current around the LED that is reverse biased.
Here's a simulation of the two rectifier diode, one resistor circuit. The oscilloscope shows the currents for the two LEDs (1mV = 1mA). Notice that each LED lights on alternating half cycles of the sine wave input.
Edit: Changed voltage source from 10Vrms to 3.5Vrms (10Vpp).
The difference in current between the two LEDs is due to the difference in forward voltage between the red and green LEDs. If this is not desirable, then you could use two different value resistors in series with each LED instead of the one resistor in series with the source.