The の (no) is the bit which does the nominalization. It turns a sentence ending in a verb into a phrase which can be grammatically treated like a noun. Which particle follows (it could be ga, wo, or something else) depends on the context.
X wo miru means "see/watch X", but X ga miru means "X sees". So in your example, if we want the sentence to mean "I saw my son playing the piano", we need to use wo.