Happened across some information about Ammonium Perchlorate Composite Propellant that I think is pretty interesting.
The chemical formula is NH4ClO4. It burns with aluminum, the fuel of choice in white motors, like Aerotech's White Lightning, Cesaroni's White Thunder, and NASA's SRBs, with the equation 10Al + 6NH4ClO4 → 4Al2O3 + 2AlCl3 + 12H2O + 3N2. (source)
An elastomer binder like PBAN or HTPB is added to make the propellant the proper consistency and to add fuel.
The ingredients, of course, determine the color of the flame. Copper added will turn the flame blue and burn cleanly (as in Blue Thunder propellant), but it's notoriously hard to make a pure deep blue (hence the light blue color of Blue Thunder), and in fireworks it takes much skill to develop a good blue. Barium turns the flame green; Barium chloride produces a pure green while barium oxides add the yellowish green of Mojave Green. Strontium nitrate (SrNO3), either added to AP or in place of it, produces the brilliant red of Redline propellant.
Sparkies use a metal powder, usually titanium, that generates the black smoke and yellow sparks. I do not know what creates the black smoke of Black Jack and Smokey Sam motors, or the light yellow of Warp Nine.
Cesaroni Pink propellant, which looks purple, could either be from rubidium compounds, or a careful mix of red and blue.
It appears that there are colors that could be used that aren't. Sodium compounds produce a brilliant yellow flame that overpowers many other colors, while calcium chlorides make orange. Both would make for very cool motors.
The Wikipedia article on APCP has much good information, including some burn configurations. The burn rate of APCP is between 1 and 3mm per second at STP and 6-12mm/sec at 68 atm, and increases at roughly an x0.4 rate with pressure.
This site contains much good information on motor design and grain configurations.
Mini Higgs build, part 2
9 hours ago