Combine milk, cream, buttermilk and salt in a 4 quart pot over medium heat.
Bring to a gentle boil.
As the curds begin to separate from the whey, you'll see little white flecks pop to the surface and the milk will turn into a cloudy, watery-looking liquid.
Let it cook for 1 to 2 minutes until larger curds begin to form then remove the pot from the heat and place on a back burner and let sit for 30 minutes to help the curds develop further.
Meanwhile, line a sieve or fine mesh strainer with a few layers of cheesecloth and place it over a deep bowl or pot.
Spoon the curds into the cheesecloth lined strainer. Resist the temptation to pour it into the strainer all at once. Gently ladling the curds keeps them fluffy.
Once all the curds have been ladled into the strainer, pull the sides of the cheesecloth up and over the ricotta to cover it so it doesn't dry out or form a skin on top.
Let it sit in the cheesecloth to drain the excess liquid for 15 to 30 minutes. The length of time you drain it depends on how creamy you would like your ricotta. The longer your drain it the drier it will be. If you are using it in a baked recipe, you'll want a drier texture. If serving it fresh, you want it creamier.
The ricotta may be stored in a covered container in the fridge for up to 2 days.