The cheapest source I have found for some canvas for projects is/are those painter's canvas drop-clothes. You can find them at the paint stores, hardware stores, and the big home improvement stores. Lots of places are switching over to plastic or paper drop-clothes, but most still have the canvas ones available.
But be sure to check out how TIGHT the weaving is - that is the most important part about getting something that is water resistant/waterproof. To stop moisture from coming through, the fibers/threads need to swell up and block those tiny holes between the threads in the weaving. The tighter the fabric is woven to begin with, the less the fibers need to swell up to seal it. Those "waterproofing" chemicals you spray/paint on do coat the fibers, but they also soak into the threads and swell them up. That's how they work - by soaking into the threads and swelling them up tight against the other threads.
A number of friends were more concerned about weight. So they picked up a high thread count cotton/linen bed sheet. The high thread count means tighter weave. They then treated it with some of the standard waterproofing chemicals - like Thompson's Water Seal. It works very well as a tarp or ground clothe, but for less than half the weight of a true canvas tarp. The only drawback is that the bed sheet is thinner, and not as tough as the canvas. It won't take the same level of use/abuse without tearing - especially when tying it up to use as a tarp/shelter. But as a bed roll cover, they do very well. About the only thing better is a sheet of plastic.
Hope this helps.
Just my humble ramblings to share. Take them as such.
Mikey - yee ol' grumpy blacksmith out in the Hinterlands