An example of a neurostimulation system may include a storage device, a programming control circuit, and a graphical user interface (GUI). The storage device may store a set of one or more stimulation waveforms each associated with a stimulation field specified by a set of electrodes. Each stimulation waveform represents a pattern of neurostimulation pulses. The programming control circuit may be configured to generate stimulation parameters controlling delivery of the neurostimulation pulses according to the set of one or more stimulation waveforms. The GUI may include a composition control circuit configured to define each stimulation waveform as a function of one or more parameter graphs each depicted as a function of time. The composition control circuit may be configured to allow activation of one or more stimulation fields, present a parameter graph for each activated stimulation field, and allow for adjustment of each presented parameter graph.