I tried the simple approach with just the FET and the speaker but all it seems to do is heat up the speaker.
Check what size of negitave voltage that FET gate can take. Make sure it is more than the positive signal you feed into it. Otherwise put a reverse diode across the gate pull down resistor.
The value of R2 means the BC548 will take 1A and fry it. Change it to 1K.Assuming L1 is the speaker then it is fine but not the best of designs. The circuit will take 1A peak current can your power supply cope? It seems a bit brutal to me. Also R4 will get hot it will be dissipating 12 watts max. If you have a square wave then that will average out a 6W but that is still a chunky resistor you need, probably one rated at 10W.However, you can remove C1 and D1
Trying to get the sound loud.