OSS-emulation or Jack. I would recommend going these routes, rather than fighting with ALSA.
its no so much a fight, ALSA is just left in the dark, and you need to give it a flashlight - if youre up for the task you might want to add an extended alsa-options flag to the pd argv list, since usually its just not trying to talk to the soundcard in its preferred format (16int, 24int, 32bit ieee, etc). it is pretty redundant to use jack between pd and alsa solely to have more explicit alsa connection parameters at your disposal..