It's worth noting that we usually reserve the term for systems that work in real time. Many musical control and synthesis programs take a very long time to produce any output and can only render audio in offline mode. Offline systems can use any of the methods considered above, but we are interested in real-time ones that can provide responses in seconds for the case of composition, or microseconds for the case of synthesis. Procedural audio behaves like an undefined recording, you start the program running, usually with some parameters to determine the kind of output you want, and it either immediately begins to produce sound and music that changes continuously over time, or it responds to input by creating sound and music. Obviously, whether a procedure will run in real-time or not depends on the hardware platform so it's nonsense to talk about a program being a real-time procedure without considering where it will run.
Andy Farnell