Don't process drums if no steps.

Possible problem identified by 'scan-build' / Ville Skyttä
Whitespace formatting fix.
Allocate one more space than required.

- Solves: If size is zero, can still store the string null termination [q[j] = '\0';]
Don't confuse static analysers

- match sizeof() with return type of malloc
- keep 2*byte size to store 16 bit values.
Improve portability of malloc, and fully clear the BYTE** array