It's been almost a year since the last posting in here covering this topic - are there any newer examples or libraries that you (Joan or anyone) know of that do the acceleration ramp, constant run-rate, and deceleration ramp, together with actual counting of steps? The "in" way to run steppers with the Pi at the moment is to use an external pulse/direction/enable stepper driver that implements microsteps and current control. They all require exact timed pulses that can be ramped in frequency without any timing discontinuities.
I'm trying to run a peristaltic pump and the only way I can get accurate results is to count steps exactly. The pigpio examples show waves being timed by the pigpio system while timed by the Pi and then stopped or acted on once the time expires: this isn't accurate enough to guarantee a known number of steps. Instead I just need the purpose-designed waveform to come to an end and immediately be followed by another waveform of a different frequency without losing any cycles and matching the two waveforms exactly in terms of high/low states at full-cycle boundaries. It's not clear from pigpio documentation how to do this, so I rely on the examples found here and at the pigpio site, which don't ever seem to go there (unless I missed one?)
Ideally there would be a library/example based on the work done in this article on fast approximated stepper pulse generation math (https://www.embedded.com/design/mcus-processors-and-socs/4006438/Generate-stepper-motor-speed-profiles-in-real-time) There is an Arduino library that does just that. Given that DMA is the way around the non-real-time Raspberry Pi, the article's methods could be used to precalculate waves and then run them through pigpio for accurate rendition.
I'd write this myself but after reading the comments here and anywhere else I could find them, I am still not confident that building a long (minutes-long) stepper activation pulse waveform out of multiples wave trains without glitches due to improperly matched waveform segments is something that will work.