How do I synchronize 2 Pbinds?

I’m just getting started with SC. I’m trying to use a series of chords to drive 2 Pbinds:

(
	a = Pbind(
	\scale,Scale.chromatic(),
	\dur, 1,
	\octave, 4,
	\degree,Plet( \ch, pattern: Pseq([\DM,\AM,\Bm,\Fsm,\GM,\DM,\GM,\AM],inf)).trace
);
	b = Pbind(
	\scale,Scale.chromatic(),
	\octave, 3,
	\dur, 1/3,
	\degree, Pseq([Pget( \ch, default: [0], repeats: inf ).flatten],1).trace
);
c = Plambda(
	Ppar([a,b],1)
).play
)

The first Pbind gets the chord sequence, then using Plet, I pass the chord to the next Pbind to play an arpeggio of the chord. They are played in parallel in a Plambda.
I barely know what’s going on here. I cobbled together a couple examples. This kinda works, but the arpeggios are out of sync with the chords. How do I keep them sync’d.
Is there an easier way to do this?
Thanks

http://doc.sccode.org/Tutorials/A-Practical-Guide/PG_06g_Data_Sharing.html#Communicating%20values%20between%20separate%20event%20patterns

This section discusses some ways to control sync between two patterns where one is reading from the other.

hjh

Thanks for the answer. I think I understand the gist of it. I’ll try applying it to my example.

I used one of the methods you referred me to.

(
	a = Pbind(
	\scale,Scale.chromatic(),
	\dur, 1,
	\octave, 4,
	\degree, Pseq([\DM,\AM,\Bm,\Fsm,\GM,\DM,\GM,\AM],inf).trace
).collect({ |event|
    ~lastBassEvent = event;
}).play(quant: Quant(quant: 1, timingOffset: 0.1));

	b = Pbind(
	\degree,Pfunc { ~lastBassEvent[\degree] }.flatten.trace,
	\scale,Scale.chromatic(),
	\octave, 3,
	\dur, 1/3,
	\amp, 0.5
).play(quant: 1);
)

This seems to work. I think I understand most of it. Quant offset is a confusing. This is a calculation timing value, not a tempo timing. I think I get it.
The second example in that document uses “Ptpar”. I think it means “Timed Parallel”. I’ll try to use it in my original test that used Ppar.

Thanks again for the answer.

I substituted

c = Plambda(
	Ptpar([0.0,a,0.02,b],1)
).play

for

c = Plambda(
	Ppar([a,b],1)
).play

and the original version worked as I wanted. I played with the value of offset. The Quant doc states:

.timingOffset = value
For use with patterns only – this enables patterns to run slightly ahead of their sounding time on the clock, giving you control over the order in which threads execute…

From this I assumed the notes would always sound on the beat, but they don’t. TimingOffset effects when they sound. Is this correct?