Beyond rate coding: surrogate gradients enable spike timing learning in spiking neural networks | Synapse