You could do this in one pattern, basically use if in code to do something when a gpio is a particular level. Could use delta to control timing to have it run for a minimum period or fade in/out.
Another way is to use playlists and the sequencer api. You can jump to a specific playlist position.
some related posts:
Hardware wise, if it’s 3.3v then you can wire it directly.