Max/MSP is a popular one, basically a fleshed-out commercial version of Pure Data. As somebody with a background in procedural and OO programming, I personally find that graphical approach immensely frustrating, but I’ve known lots of people to whom it speaks.
For a more code-like experience, SuperCollider seems pretty fun, though I haven’t gotten deep into it. ChucK (http://chuck.cs.princeton.edu) is another neat option, if you really want to feel like you’re controlling every sample that goes by.