I've just entered the black powder making "sport" and from what I've gleaned off the Huge black powder thread in the muzzleloading board, it's the charcoal that matters most.
KNO3 (potassium nitrate) is the oxygen for the fuel (charcoal), and sulfur is an "igniter".
Since charcoal is the fuel, it needs to be of the right wood and char value. Hardwoods are typically unacceptable for making Good BP. Here's an online vendor that sells BP sporting BP powder quality charcoal -
https://www.fireworkcharcoal.com/collections/all
All 3 ingredients need to be separately ground to "air float" quality - meaning each ingredient powder is so fine that slightly disturbing it makes it "smoke".
I use #2 alloy cast balls - .440, .530, .600 - in the HF rock tumbler. The longer the tumble, the better the results.
Good BP for muzzleloaders can be made by just screening the meal powder as it comes out of the tumbler and with enuf water added to make it clay-like. The right screens are required to sift out to 2F and 3F. The results will be 20-25% less potent (less dense) than the commercial powders and require that much more for a gun load - if 70 grains of GOEX was used, perhaps 85 grains of homemade will be required.
The best BP can be made via compressing the slightly damp meal powder. This ups the BP making to a new and more expensive level, but the results may render commercial quality BP for a fraction of their cost in materials.