P.NEXT – like a lot of TT’s pattern-related commands – does not specify which of the four pattern it acts upon. Instead, this and similar commands act upon the so-called “working pattern”, which you need to specify with P.N x (x being the pattern number from 0-3) at some point, otherwise it will default to the leftmost pattern in the tracker (pattern 0).
The tricky thing is that once you have specified the working pattern, this specification is valid for all scripts until you change it again. So if you want read from pattern 0 and from pattern 1 with P.NEXT, you have to specifiy the working pattern with P.N x each time before using P.NEXT to read from a different pattern.
So one potential attempt to this would look like this (disclaimer: please note that I am a TT newbie myself, and currently have a different patch running on my system, which means I can’t test this, so please take this with the proverbial grain of salt):
METRO SCRIPT
P.N 0
CV 1 N P.NEXT
P.N 1
CV 2 N P.NEXT
TR.PULSE A
TR.PULSE B
I prefer to first have the CVs output, then trigger the voice. You will see that I already used up all 6 available lines, so I need to define the metronome script execution interval somewhere else, like in the init script.
INIT SCRIPT
M 200
Now you said you wanted to have 48 step sequences, so you need to set the length of your patterns accordingly with P.L, otherwise P.NEXT might get hung at step 0 of a pattern (as the default pattern length is 0). P.L also acts on the working pattern, so you need to specify it here as well. I’d also put that into the init script.
INIT SCRIPT
M 200
P.N 0
P.L 48
P.N 1
P.L 48
I am sure there are more efficient ways to do it, but it should do the trick.
Search here for “working pattern” to learn more about this concept.