I'm requesting your help because I can't make it work very good. By very good, I'm mean relatively to what I expected from it, and by that I mean very poor quality but at least the sound gets louder without saturating at Vcc/5.
Attached below is the schematic of it.
As you can see, it works with a general purpose LM358P OpAmp (I don't expect it to be very great for audio), followed by an emitter follower based on a Darlington pair of two random BJTs I had on my bench.
I won't discuss about the quality of it, the only big problem is that it saturates like crazy when the output is more than 2V peak-to-peak and I'm not quite sure why (it's a way to say that I haven't got any idea).
The strange thing is that if I increase Vcc, it ceases to saturate for one second and then it saturates again. It's like the operating point of the transistor changes for a second while the capacitor charges or discharges itself.
I tried several things. I'm not sure about what value to put for Re. All I've noticed is that under 100 Ohms, no significant improvement can be observed apart from the temperature of the room, and above 10 KOhms, the output signal amplitude decreases too much.
The value of C doesn't seem to change anything, except that under 100nF, the low frequency are cut off too much.
The whole point of the capacitor was to avoid biasing the transistor myself, but since its emitter is connected to -Vcc (in the beginning, it was connected to 0V), I'm not sure wether it is useful anymore. I tried to connect the loud speaker directly to the emitter of the transistor without any major improvement, or without any improvement at all.
I tried to connect the other pin of the loudspeaker to -Vcc (it is a very cheap loudspeaker, under $1, I don't really mind if I destroy it accidentally), and it improved things a bit, but that's a very ugly "solution" since it can damage the loudspeaker. Actually, I don't really know why this improved the saturation.
So, two questions : how do I reduce the saturation, and how do I choose Re and C?